Package: signalflow
SignalFlowSignalFlow is a sound synthesis framework designed for clear and concise expression of complex musical ideas. It has an extensive Python API, for fluid audio experimentation in iPython/Jupyter, with its core written in portable, hardware-accelerated C++11.SignalFlow is in beta status. Interfaces may be subject to change.Examplefromsignalflowimport*#--------------------------------------------------------------------------------# An AudioGraph is made up of a network of interconnected Nodes, which generate# and process audio.#--------------------------------------------------------------------------------graph=AudioGraph()#--------------------------------------------------------------------------------# Passing an array of frequencies creates a stereo output.#--------------------------------------------------------------------------------sine=SineOscillator([440,880])#--------------------------------------------------------------------------------# Simple attack/sustain/release envelope with linear curves.#--------------------------------------------------------------------------------env=ASREnvelope(0.01,0.1,0.5)#--------------------------------------------------------------------------------# Use standard arithmetic operations to combine signals. When a multi-channel# signal is multiplied by a mono signal, the mono signal is auto-upmixed.#--------------------------------------------------------------------------------output=sine*env#--------------------------------------------------------------------------------# Connect the output to the graph, and begin playback.#--------------------------------------------------------------------------------output.play()graph.wait()InstallationSignalFlow requires Python 3.8 or above.In brief, SignalFlow can be installed with pip:pip3 install signalflow.For complete per-platform instructions and setup guides, seeInstalling SignalFlow.ExamplesSeveral example scripts are provided inexamples.To download theexamplesfolder:importsignalflow_examplessignalflow_examples.download_examples()DocumentationIn-depth documentation, including a reference guide to each of the Node classes, can be found atsignalflow.dev.Node classesThe following Node classes are currently included with the base distribution:CategoryClassesAnalysisCrossCorrelate,NearestNeighbour,OnsetDetector,VampAnalysisBufferBeatCutter,BufferLooper,BufferPlayer,BufferRecorder,FeedbackBufferReader,FeedbackBufferWriter,SegmentPlayerBuffer: GranulationSegmentedGranulator,GranulatorControlMouseX,MouseY,MouseDownEnvelopeADSREnvelope,ASREnvelope,DetectSilence,Envelope,Line,RectangularEnvelopeFFTFFTContinuousPhaseVocoder,FFTConvolve,FFTContrast,FFTFlipSpectrum,FFT,FFTNode,FFTOpNode,FFTFindPeaks,IFFT,FFTLPF,FFTNoiseGate,FFTPhaseVocoder,FFTTonality,FFTZeroPhaseOperatorsAdd,AmplitudeToDecibels,DecibelsToAmplitude,ChannelArray,ChannelCrossfade,ChannelMixer,ChannelSelect,Equal,NotEqual,GreaterThan,GreaterThanOrEqual,LessThan,LessThanOrEqual,Modulo,Abs,If,Divide,FrequencyToMidiNote,MidiNoteToFrequency,Multiply,Pow,RoundToScale,Round,ScaleLinExp,ScaleLinLin,Subtract,Sum,Sin,Cos,Tan,TanhOscillatorsConstant,Impulse,LFO,SawLFO,SawOscillator,SineLFO,SineOscillator,SquareLFO,SquareOscillator,TriangleLFO,TriangleOscillator,Wavetable,Wavetable2DProcessorsClip,Fold,Smooth,WetDry,WrapProcessors: DelaysAllpassDelay,CombDelay,OneTapDelay,StutterProcessors: DistortionResample,SampleAndHold,Squiz,WaveShaperProcessors: DynamicsCompressor,Gate,Maximiser,RMSProcessors: FiltersBiquadFilter,DCFilter,EQ,MoogVCF,SVFilterProcessors: PanningAzimuthPanner,ChannelPanner,SpatialPanner,StereoBalance,StereoPanner,StereoWidthSequencingClockDivider,Counter,Euclidean,FlipFlop,ImpulseSequence,Index,Latch,SequenceStochasticLogistic,PinkNoise,RandomBrownian,RandomChoice,RandomCoin,RandomExponentialDist,RandomExponential,RandomGaussian,RandomImpulseSequence,RandomImpulse,RandomUniform,StochasticNode,WhiteNoiseContributorsThanks to the following contributors:Greg White (@gregwht): Examples, documentation and testingArthur Carabott (@acarabott), Tim Murray-Browne (@timmb): Windows supportDan Stowell (@danstowell): Build improvementsMarc Fargas (@telenieko): Generous donation of thesignalflowpypi namespace