signalflow


Namesignalflow JSON
Version 0.5.2 PyPI version JSON
download
home_pageNone
SummarySignalFlow is a sound synthesis library designed for clear and concise expression of sonic ideas
upload_time2025-02-10 09:42:50
maintainerNone
docs_urlNone
authorDaniel Jones
requires_python>=3.8
licenseNone
keywords audio sound synthesis dsp sound-synthesis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SignalFlow

![pypi-version](https://img.shields.io/pypi/v/signalflow) ![ci](https://github.com/ideoforms/signalflow/actions/workflows/build.yml/badge.svg) [![stability-beta](https://img.shields.io/badge/stability-beta-33bbff.svg)](https://github.com/mkenney/software-guides/blob/master/STABILITY-BADGES.md#beta)

SignalFlow 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.

## Example

```python
from signalflow import *

#--------------------------------------------------------------------------------
# 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()
```

## Installation

SignalFlow requires Python 3.8 or above, and supports macOS, Linux (x86_64), Raspberry Pi (3+), and Windows (64-bit).

In a nutshell, SignalFlow can be installed with pip: `pip3 install signalflow`.

For a complete walkthrough on setting up your system with Python and SignalFlow, see [Installing SignalFlow](https://signalflow.dev/installation/).

## Examples

Several example scripts are provided in [examples](examples).

To download the `examples` folder:

```python
import signalflow_examples
signalflow_examples.download_examples()
```

## Documentation

In-depth documentation, including a reference guide to each of the Node classes, can be found at [signalflow.dev](https://signalflow.dev/). 

## Node class library

The following Node classes are currently included with the base distribution:

| Category | Classes  |
|:---------|:---------|
| **Analysis** | [CrossCorrelate](https://signalflow.dev/library/analysis/crosscorrelate/), [NearestNeighbour](https://signalflow.dev/library/analysis/nearestneighbour/), [OnsetDetector](https://signalflow.dev/library/analysis/onsetdetector/), [VampAnalysis](https://signalflow.dev/library/analysis/vampanalysis/) |
| **Buffer** | [BeatCutter](https://signalflow.dev/library/buffer/beatcutter/), [BufferLooper](https://signalflow.dev/library/buffer/bufferlooper/), [BufferPlayer](https://signalflow.dev/library/buffer/bufferplayer/), [BufferRecorder](https://signalflow.dev/library/buffer/bufferrecorder/), [FeedbackBufferReader](https://signalflow.dev/library/buffer/feedbackbufferreader/), [FeedbackBufferWriter](https://signalflow.dev/library/buffer/feedbackbufferwriter/), [HistoryBufferWriter](https://signalflow.dev/library/buffer/historybufferwriter/), [SegmentPlayer](https://signalflow.dev/library/buffer/segmentplayer/) |
| **Buffer: Granulation** | [SegmentedGranulator](https://signalflow.dev/library/buffer/granulation/segmentedgranulator/), [Granulator](https://signalflow.dev/library/buffer/granulation/granulator/) |
| **Control** | [MouseX](https://signalflow.dev/library/control/mousex/), [MouseY](https://signalflow.dev/library/control/mousey/), [MouseDown](https://signalflow.dev/library/control/mousedown/) |
| **Envelope** | [Accumulator](https://signalflow.dev/library/envelope/accumulator/), [ADSREnvelope](https://signalflow.dev/library/envelope/adsrenvelope/), [ASREnvelope](https://signalflow.dev/library/envelope/asrenvelope/), [DetectSilence](https://signalflow.dev/library/envelope/detectsilence/), [Envelope](https://signalflow.dev/library/envelope/envelope/), [Line](https://signalflow.dev/library/envelope/line/), [RectangularEnvelope](https://signalflow.dev/library/envelope/rectangularenvelope/) |
| **FFT** | [FFTContinuousPhaseVocoder](https://signalflow.dev/library/fft/fftcontinuousphasevocoder/), [FFTConvolve](https://signalflow.dev/library/fft/fftconvolve/), [FFTBufferPlayer](https://signalflow.dev/library/fft/fftbufferplayer/), [FFTContrast](https://signalflow.dev/library/fft/fftcontrast/), [FFTCrossFade](https://signalflow.dev/library/fft/fftcrossfade/), [FFTLFO](https://signalflow.dev/library/fft/fftlfo/), [FFTMagnitudePhaseArray](https://signalflow.dev/library/fft/fftmagnitudephasearray/), [FFTRandomPhase](https://signalflow.dev/library/fft/fftrandomphase/), [FFTScaleMagnitudes](https://signalflow.dev/library/fft/fftscalemagnitudes/), [FFTTransform](https://signalflow.dev/library/fft/ffttransform/), [FFT](https://signalflow.dev/library/fft/fft/), [FFTNode](https://signalflow.dev/library/fft/fftnode/), [FFTOpNode](https://signalflow.dev/library/fft/fftopnode/), [FFTFindPeaks](https://signalflow.dev/library/fft/fftfindpeaks/), [IFFT](https://signalflow.dev/library/fft/ifft/), [FFTLPF](https://signalflow.dev/library/fft/fftlpf/), [FFTNoiseGate](https://signalflow.dev/library/fft/fftnoisegate/), [FFTPhaseVocoder](https://signalflow.dev/library/fft/fftphasevocoder/), [FFTTonality](https://signalflow.dev/library/fft/ffttonality/), [FFTZeroPhase](https://signalflow.dev/library/fft/fftzerophase/) |
| **Operators** | [Add](https://signalflow.dev/library/operators/add/), [AmplitudeToDecibels](https://signalflow.dev/library/operators/amplitudetodecibels/), [DecibelsToAmplitude](https://signalflow.dev/library/operators/decibelstoamplitude/), [Bus](https://signalflow.dev/library/operators/bus/), [ChannelArray](https://signalflow.dev/library/operators/channelarray/), [ChannelCrossfade](https://signalflow.dev/library/operators/channelcrossfade/), [ChannelMixer](https://signalflow.dev/library/operators/channelmixer/), [ChannelOffset](https://signalflow.dev/library/operators/channeloffset/), [ChannelSelect](https://signalflow.dev/library/operators/channelselect/), [Equal](https://signalflow.dev/library/operators/equal/), [NotEqual](https://signalflow.dev/library/operators/notequal/), [GreaterThan](https://signalflow.dev/library/operators/greaterthan/), [GreaterThanOrEqual](https://signalflow.dev/library/operators/greaterthanorequal/), [LessThan](https://signalflow.dev/library/operators/lessthan/), [LessThanOrEqual](https://signalflow.dev/library/operators/lessthanorequal/), [Modulo](https://signalflow.dev/library/operators/modulo/), [Abs](https://signalflow.dev/library/operators/abs/), [If](https://signalflow.dev/library/operators/if/), [Divide](https://signalflow.dev/library/operators/divide/), [FrequencyToMidiNote](https://signalflow.dev/library/operators/frequencytomidinote/), [MidiNoteToFrequency](https://signalflow.dev/library/operators/midinotetofrequency/), [Multiply](https://signalflow.dev/library/operators/multiply/), [Pow](https://signalflow.dev/library/operators/pow/), [RoundToScale](https://signalflow.dev/library/operators/roundtoscale/), [Round](https://signalflow.dev/library/operators/round/), [ScaleLinExp](https://signalflow.dev/library/operators/scalelinexp/), [ScaleLinLin](https://signalflow.dev/library/operators/scalelinlin/), [SelectInput](https://signalflow.dev/library/operators/selectinput/), [Subtract](https://signalflow.dev/library/operators/subtract/), [Sum](https://signalflow.dev/library/operators/sum/), [TimeShift](https://signalflow.dev/library/operators/timeshift/), [Sin](https://signalflow.dev/library/operators/sin/), [Cos](https://signalflow.dev/library/operators/cos/), [Tan](https://signalflow.dev/library/operators/tan/), [Tanh](https://signalflow.dev/library/operators/tanh/) |
| **Oscillators** | [Constant](https://signalflow.dev/library/oscillators/constant/), [Impulse](https://signalflow.dev/library/oscillators/impulse/), [LFO](https://signalflow.dev/library/oscillators/lfo/), [SawLFO](https://signalflow.dev/library/oscillators/sawlfo/), [SawOscillator](https://signalflow.dev/library/oscillators/sawoscillator/), [SineLFO](https://signalflow.dev/library/oscillators/sinelfo/), [SineOscillator](https://signalflow.dev/library/oscillators/sineoscillator/), [SquareLFO](https://signalflow.dev/library/oscillators/squarelfo/), [SquareOscillator](https://signalflow.dev/library/oscillators/squareoscillator/), [TriangleLFO](https://signalflow.dev/library/oscillators/trianglelfo/), [TriangleOscillator](https://signalflow.dev/library/oscillators/triangleoscillator/), [Wavetable](https://signalflow.dev/library/oscillators/wavetable/), [Wavetable2D](https://signalflow.dev/library/oscillators/wavetable2d/) |
| **Processors** | [Clip](https://signalflow.dev/library/processors/clip/), [Fold](https://signalflow.dev/library/processors/fold/), [Smooth](https://signalflow.dev/library/processors/smooth/), [WetDry](https://signalflow.dev/library/processors/wetdry/), [Wrap](https://signalflow.dev/library/processors/wrap/) |
| **Processors: Delays** | [AllpassDelay](https://signalflow.dev/library/processors/delays/allpassdelay/), [CombDelay](https://signalflow.dev/library/processors/delays/combdelay/), [OneTapDelay](https://signalflow.dev/library/processors/delays/onetapdelay/), [Stutter](https://signalflow.dev/library/processors/delays/stutter/) |
| **Processors: Distortion** | [Resample](https://signalflow.dev/library/processors/distortion/resample/), [SampleAndHold](https://signalflow.dev/library/processors/distortion/sampleandhold/), [Squiz](https://signalflow.dev/library/processors/distortion/squiz/), [WaveShaper](https://signalflow.dev/library/processors/distortion/waveshaper/) |
| **Processors: Dynamics** | [Compressor](https://signalflow.dev/library/processors/dynamics/compressor/), [Gate](https://signalflow.dev/library/processors/dynamics/gate/), [Maximiser](https://signalflow.dev/library/processors/dynamics/maximiser/), [RMS](https://signalflow.dev/library/processors/dynamics/rms/) |
| **Processors: Filters** | [BiquadFilter](https://signalflow.dev/library/processors/filters/biquadfilter/), [DCFilter](https://signalflow.dev/library/processors/filters/dcfilter/), [EQ](https://signalflow.dev/library/processors/filters/eq/), [MoogVCF](https://signalflow.dev/library/processors/filters/moogvcf/), [SVFilter](https://signalflow.dev/library/processors/filters/svfilter/) |
| **Processors: Panning** | [AzimuthPanner](https://signalflow.dev/library/processors/panning/azimuthpanner/), [ChannelPanner](https://signalflow.dev/library/processors/panning/channelpanner/), [SpatialPanner](https://signalflow.dev/library/processors/panning/spatialpanner/), [StereoBalance](https://signalflow.dev/library/processors/panning/stereobalance/), [StereoPanner](https://signalflow.dev/library/processors/panning/stereopanner/), [StereoWidth](https://signalflow.dev/library/processors/panning/stereowidth/) |
| **Sequencing** | [ClockDivider](https://signalflow.dev/library/sequencing/clockdivider/), [Counter](https://signalflow.dev/library/sequencing/counter/), [Euclidean](https://signalflow.dev/library/sequencing/euclidean/), [FlipFlop](https://signalflow.dev/library/sequencing/flipflop/), [ImpulseSequence](https://signalflow.dev/library/sequencing/impulsesequence/), [Index](https://signalflow.dev/library/sequencing/index/), [Latch](https://signalflow.dev/library/sequencing/latch/), [Sequence](https://signalflow.dev/library/sequencing/sequence/), [TriggerMult](https://signalflow.dev/library/sequencing/triggermult/), [TriggerRoundRobin](https://signalflow.dev/library/sequencing/triggerroundrobin/) |
| **Stochastic** | [Logistic](https://signalflow.dev/library/stochastic/logistic/), [PinkNoise](https://signalflow.dev/library/stochastic/pinknoise/), [RandomBrownian](https://signalflow.dev/library/stochastic/randombrownian/), [RandomChoice](https://signalflow.dev/library/stochastic/randomchoice/), [RandomCoin](https://signalflow.dev/library/stochastic/randomcoin/), [RandomExponentialDist](https://signalflow.dev/library/stochastic/randomexponentialdist/), [RandomExponential](https://signalflow.dev/library/stochastic/randomexponential/), [RandomGaussian](https://signalflow.dev/library/stochastic/randomgaussian/), [RandomImpulseSequence](https://signalflow.dev/library/stochastic/randomimpulsesequence/), [RandomImpulse](https://signalflow.dev/library/stochastic/randomimpulse/), [RandomUniform](https://signalflow.dev/library/stochastic/randomuniform/), [StochasticNode](https://signalflow.dev/library/stochastic/stochasticnode/), [WhiteNoise](https://signalflow.dev/library/stochastic/whitenoise/) |

## Contributors

Thanks to the following contributors:

- Greg White ([@gregwht](https://github.com/gregwht)): Examples, documentation and testing
- Arthur Carabott ([@acarabott](https://github.com/acarabott)), Tim Murray-Browne ([@timmb](https://github.com/timmb)): Windows support
- Dan Stowell ([@danstowell](https://github.com/danstowell)): Build improvements
- Marc Fargas ([@telenieko](https://github.com/telenieko)): Generous donation of the `signalflow` pypi namespace
- Ed Gillett: Generous donation of Linux build machine
- Sid Gudka: Generous donation of Windows build machine

## License

Use of the SignalFlow library with a Python interpreter, script or notebook is licensed under the free and permissive [MIT License](LICENSE.md).

Use of SignalFlow or its components outside of a Python environment (for example, embedded within a binary object) is subject to a separate agreement. Please [contact the author](https://danieljohnjones.com/contact/) to discuss.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "signalflow",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "audio, sound, synthesis, dsp, sound-synthesis",
    "author": "Daniel Jones",
    "author_email": "dan@erase.net",
    "download_url": null,
    "platform": null,
    "description": "# SignalFlow\r\n\r\n![pypi-version](https://img.shields.io/pypi/v/signalflow) ![ci](https://github.com/ideoforms/signalflow/actions/workflows/build.yml/badge.svg) [![stability-beta](https://img.shields.io/badge/stability-beta-33bbff.svg)](https://github.com/mkenney/software-guides/blob/master/STABILITY-BADGES.md#beta)\r\n\r\nSignalFlow 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.\r\n\r\nSignalFlow is in beta status. Interfaces may be subject to change.\r\n\r\n## Example\r\n\r\n```python\r\nfrom signalflow import *\r\n\r\n#--------------------------------------------------------------------------------\r\n# An AudioGraph is made up of a network of interconnected Nodes, which generate\r\n# and process audio. \r\n#--------------------------------------------------------------------------------\r\ngraph = AudioGraph()\r\n\r\n#--------------------------------------------------------------------------------\r\n# Passing an array of frequencies creates a stereo output.\r\n#--------------------------------------------------------------------------------\r\nsine = SineOscillator([440, 880])\r\n\r\n#--------------------------------------------------------------------------------\r\n# Simple attack/sustain/release envelope with linear curves.\r\n#--------------------------------------------------------------------------------\r\nenv = ASREnvelope(0.01, 0.1, 0.5)\r\n\r\n#--------------------------------------------------------------------------------\r\n# Use standard arithmetic operations to combine signals. When a multi-channel \r\n# signal is multiplied by a mono signal, the mono signal is auto-upmixed.\r\n#--------------------------------------------------------------------------------\r\noutput = sine * env\r\n\r\n#--------------------------------------------------------------------------------\r\n# Connect the output to the graph, and begin playback.\r\n#--------------------------------------------------------------------------------\r\noutput.play()\r\ngraph.wait()\r\n```\r\n\r\n## Installation\r\n\r\nSignalFlow requires Python 3.8 or above, and supports macOS, Linux (x86_64), Raspberry Pi (3+), and Windows (64-bit).\r\n\r\nIn a nutshell, SignalFlow can be installed with pip: `pip3 install signalflow`.\r\n\r\nFor a complete walkthrough on setting up your system with Python and SignalFlow, see [Installing SignalFlow](https://signalflow.dev/installation/).\r\n\r\n## Examples\r\n\r\nSeveral example scripts are provided in [examples](examples).\r\n\r\nTo download the `examples` folder:\r\n\r\n```python\r\nimport signalflow_examples\r\nsignalflow_examples.download_examples()\r\n```\r\n\r\n## Documentation\r\n\r\nIn-depth documentation, including a reference guide to each of the Node classes, can be found at [signalflow.dev](https://signalflow.dev/). \r\n\r\n## Node class library\r\n\r\nThe following Node classes are currently included with the base distribution:\r\n\r\n| Category | Classes  |\r\n|:---------|:---------|\r\n| **Analysis** | [CrossCorrelate](https://signalflow.dev/library/analysis/crosscorrelate/), [NearestNeighbour](https://signalflow.dev/library/analysis/nearestneighbour/), [OnsetDetector](https://signalflow.dev/library/analysis/onsetdetector/), [VampAnalysis](https://signalflow.dev/library/analysis/vampanalysis/) |\r\n| **Buffer** | [BeatCutter](https://signalflow.dev/library/buffer/beatcutter/), [BufferLooper](https://signalflow.dev/library/buffer/bufferlooper/), [BufferPlayer](https://signalflow.dev/library/buffer/bufferplayer/), [BufferRecorder](https://signalflow.dev/library/buffer/bufferrecorder/), [FeedbackBufferReader](https://signalflow.dev/library/buffer/feedbackbufferreader/), [FeedbackBufferWriter](https://signalflow.dev/library/buffer/feedbackbufferwriter/), [HistoryBufferWriter](https://signalflow.dev/library/buffer/historybufferwriter/), [SegmentPlayer](https://signalflow.dev/library/buffer/segmentplayer/) |\r\n| **Buffer: Granulation** | [SegmentedGranulator](https://signalflow.dev/library/buffer/granulation/segmentedgranulator/), [Granulator](https://signalflow.dev/library/buffer/granulation/granulator/) |\r\n| **Control** | [MouseX](https://signalflow.dev/library/control/mousex/), [MouseY](https://signalflow.dev/library/control/mousey/), [MouseDown](https://signalflow.dev/library/control/mousedown/) |\r\n| **Envelope** | [Accumulator](https://signalflow.dev/library/envelope/accumulator/), [ADSREnvelope](https://signalflow.dev/library/envelope/adsrenvelope/), [ASREnvelope](https://signalflow.dev/library/envelope/asrenvelope/), [DetectSilence](https://signalflow.dev/library/envelope/detectsilence/), [Envelope](https://signalflow.dev/library/envelope/envelope/), [Line](https://signalflow.dev/library/envelope/line/), [RectangularEnvelope](https://signalflow.dev/library/envelope/rectangularenvelope/) |\r\n| **FFT** | [FFTContinuousPhaseVocoder](https://signalflow.dev/library/fft/fftcontinuousphasevocoder/), [FFTConvolve](https://signalflow.dev/library/fft/fftconvolve/), [FFTBufferPlayer](https://signalflow.dev/library/fft/fftbufferplayer/), [FFTContrast](https://signalflow.dev/library/fft/fftcontrast/), [FFTCrossFade](https://signalflow.dev/library/fft/fftcrossfade/), [FFTLFO](https://signalflow.dev/library/fft/fftlfo/), [FFTMagnitudePhaseArray](https://signalflow.dev/library/fft/fftmagnitudephasearray/), [FFTRandomPhase](https://signalflow.dev/library/fft/fftrandomphase/), [FFTScaleMagnitudes](https://signalflow.dev/library/fft/fftscalemagnitudes/), [FFTTransform](https://signalflow.dev/library/fft/ffttransform/), [FFT](https://signalflow.dev/library/fft/fft/), [FFTNode](https://signalflow.dev/library/fft/fftnode/), [FFTOpNode](https://signalflow.dev/library/fft/fftopnode/), [FFTFindPeaks](https://signalflow.dev/library/fft/fftfindpeaks/), [IFFT](https://signalflow.dev/library/fft/ifft/), [FFTLPF](https://signalflow.dev/library/fft/fftlpf/), [FFTNoiseGate](https://signalflow.dev/library/fft/fftnoisegate/), [FFTPhaseVocoder](https://signalflow.dev/library/fft/fftphasevocoder/), [FFTTonality](https://signalflow.dev/library/fft/ffttonality/), [FFTZeroPhase](https://signalflow.dev/library/fft/fftzerophase/) |\r\n| **Operators** | [Add](https://signalflow.dev/library/operators/add/), [AmplitudeToDecibels](https://signalflow.dev/library/operators/amplitudetodecibels/), [DecibelsToAmplitude](https://signalflow.dev/library/operators/decibelstoamplitude/), [Bus](https://signalflow.dev/library/operators/bus/), [ChannelArray](https://signalflow.dev/library/operators/channelarray/), [ChannelCrossfade](https://signalflow.dev/library/operators/channelcrossfade/), [ChannelMixer](https://signalflow.dev/library/operators/channelmixer/), [ChannelOffset](https://signalflow.dev/library/operators/channeloffset/), [ChannelSelect](https://signalflow.dev/library/operators/channelselect/), [Equal](https://signalflow.dev/library/operators/equal/), [NotEqual](https://signalflow.dev/library/operators/notequal/), [GreaterThan](https://signalflow.dev/library/operators/greaterthan/), [GreaterThanOrEqual](https://signalflow.dev/library/operators/greaterthanorequal/), [LessThan](https://signalflow.dev/library/operators/lessthan/), [LessThanOrEqual](https://signalflow.dev/library/operators/lessthanorequal/), [Modulo](https://signalflow.dev/library/operators/modulo/), [Abs](https://signalflow.dev/library/operators/abs/), [If](https://signalflow.dev/library/operators/if/), [Divide](https://signalflow.dev/library/operators/divide/), [FrequencyToMidiNote](https://signalflow.dev/library/operators/frequencytomidinote/), [MidiNoteToFrequency](https://signalflow.dev/library/operators/midinotetofrequency/), [Multiply](https://signalflow.dev/library/operators/multiply/), [Pow](https://signalflow.dev/library/operators/pow/), [RoundToScale](https://signalflow.dev/library/operators/roundtoscale/), [Round](https://signalflow.dev/library/operators/round/), [ScaleLinExp](https://signalflow.dev/library/operators/scalelinexp/), [ScaleLinLin](https://signalflow.dev/library/operators/scalelinlin/), [SelectInput](https://signalflow.dev/library/operators/selectinput/), [Subtract](https://signalflow.dev/library/operators/subtract/), [Sum](https://signalflow.dev/library/operators/sum/), [TimeShift](https://signalflow.dev/library/operators/timeshift/), [Sin](https://signalflow.dev/library/operators/sin/), [Cos](https://signalflow.dev/library/operators/cos/), [Tan](https://signalflow.dev/library/operators/tan/), [Tanh](https://signalflow.dev/library/operators/tanh/) |\r\n| **Oscillators** | [Constant](https://signalflow.dev/library/oscillators/constant/), [Impulse](https://signalflow.dev/library/oscillators/impulse/), [LFO](https://signalflow.dev/library/oscillators/lfo/), [SawLFO](https://signalflow.dev/library/oscillators/sawlfo/), [SawOscillator](https://signalflow.dev/library/oscillators/sawoscillator/), [SineLFO](https://signalflow.dev/library/oscillators/sinelfo/), [SineOscillator](https://signalflow.dev/library/oscillators/sineoscillator/), [SquareLFO](https://signalflow.dev/library/oscillators/squarelfo/), [SquareOscillator](https://signalflow.dev/library/oscillators/squareoscillator/), [TriangleLFO](https://signalflow.dev/library/oscillators/trianglelfo/), [TriangleOscillator](https://signalflow.dev/library/oscillators/triangleoscillator/), [Wavetable](https://signalflow.dev/library/oscillators/wavetable/), [Wavetable2D](https://signalflow.dev/library/oscillators/wavetable2d/) |\r\n| **Processors** | [Clip](https://signalflow.dev/library/processors/clip/), [Fold](https://signalflow.dev/library/processors/fold/), [Smooth](https://signalflow.dev/library/processors/smooth/), [WetDry](https://signalflow.dev/library/processors/wetdry/), [Wrap](https://signalflow.dev/library/processors/wrap/) |\r\n| **Processors: Delays** | [AllpassDelay](https://signalflow.dev/library/processors/delays/allpassdelay/), [CombDelay](https://signalflow.dev/library/processors/delays/combdelay/), [OneTapDelay](https://signalflow.dev/library/processors/delays/onetapdelay/), [Stutter](https://signalflow.dev/library/processors/delays/stutter/) |\r\n| **Processors: Distortion** | [Resample](https://signalflow.dev/library/processors/distortion/resample/), [SampleAndHold](https://signalflow.dev/library/processors/distortion/sampleandhold/), [Squiz](https://signalflow.dev/library/processors/distortion/squiz/), [WaveShaper](https://signalflow.dev/library/processors/distortion/waveshaper/) |\r\n| **Processors: Dynamics** | [Compressor](https://signalflow.dev/library/processors/dynamics/compressor/), [Gate](https://signalflow.dev/library/processors/dynamics/gate/), [Maximiser](https://signalflow.dev/library/processors/dynamics/maximiser/), [RMS](https://signalflow.dev/library/processors/dynamics/rms/) |\r\n| **Processors: Filters** | [BiquadFilter](https://signalflow.dev/library/processors/filters/biquadfilter/), [DCFilter](https://signalflow.dev/library/processors/filters/dcfilter/), [EQ](https://signalflow.dev/library/processors/filters/eq/), [MoogVCF](https://signalflow.dev/library/processors/filters/moogvcf/), [SVFilter](https://signalflow.dev/library/processors/filters/svfilter/) |\r\n| **Processors: Panning** | [AzimuthPanner](https://signalflow.dev/library/processors/panning/azimuthpanner/), [ChannelPanner](https://signalflow.dev/library/processors/panning/channelpanner/), [SpatialPanner](https://signalflow.dev/library/processors/panning/spatialpanner/), [StereoBalance](https://signalflow.dev/library/processors/panning/stereobalance/), [StereoPanner](https://signalflow.dev/library/processors/panning/stereopanner/), [StereoWidth](https://signalflow.dev/library/processors/panning/stereowidth/) |\r\n| **Sequencing** | [ClockDivider](https://signalflow.dev/library/sequencing/clockdivider/), [Counter](https://signalflow.dev/library/sequencing/counter/), [Euclidean](https://signalflow.dev/library/sequencing/euclidean/), [FlipFlop](https://signalflow.dev/library/sequencing/flipflop/), [ImpulseSequence](https://signalflow.dev/library/sequencing/impulsesequence/), [Index](https://signalflow.dev/library/sequencing/index/), [Latch](https://signalflow.dev/library/sequencing/latch/), [Sequence](https://signalflow.dev/library/sequencing/sequence/), [TriggerMult](https://signalflow.dev/library/sequencing/triggermult/), [TriggerRoundRobin](https://signalflow.dev/library/sequencing/triggerroundrobin/) |\r\n| **Stochastic** | [Logistic](https://signalflow.dev/library/stochastic/logistic/), [PinkNoise](https://signalflow.dev/library/stochastic/pinknoise/), [RandomBrownian](https://signalflow.dev/library/stochastic/randombrownian/), [RandomChoice](https://signalflow.dev/library/stochastic/randomchoice/), [RandomCoin](https://signalflow.dev/library/stochastic/randomcoin/), [RandomExponentialDist](https://signalflow.dev/library/stochastic/randomexponentialdist/), [RandomExponential](https://signalflow.dev/library/stochastic/randomexponential/), [RandomGaussian](https://signalflow.dev/library/stochastic/randomgaussian/), [RandomImpulseSequence](https://signalflow.dev/library/stochastic/randomimpulsesequence/), [RandomImpulse](https://signalflow.dev/library/stochastic/randomimpulse/), [RandomUniform](https://signalflow.dev/library/stochastic/randomuniform/), [StochasticNode](https://signalflow.dev/library/stochastic/stochasticnode/), [WhiteNoise](https://signalflow.dev/library/stochastic/whitenoise/) |\r\n\r\n## Contributors\r\n\r\nThanks to the following contributors:\r\n\r\n- Greg White ([@gregwht](https://github.com/gregwht)): Examples, documentation and testing\r\n- Arthur Carabott ([@acarabott](https://github.com/acarabott)), Tim Murray-Browne ([@timmb](https://github.com/timmb)): Windows support\r\n- Dan Stowell ([@danstowell](https://github.com/danstowell)): Build improvements\r\n- Marc Fargas ([@telenieko](https://github.com/telenieko)): Generous donation of the `signalflow` pypi namespace\r\n- Ed Gillett: Generous donation of Linux build machine\r\n- Sid Gudka: Generous donation of Windows build machine\r\n\r\n## License\r\n\r\nUse of the SignalFlow library with a Python interpreter, script or notebook is licensed under the free and permissive [MIT License](LICENSE.md).\r\n\r\nUse of SignalFlow or its components outside of a Python environment (for example, embedded within a binary object) is subject to a separate agreement. Please [contact the author](https://danieljohnjones.com/contact/) to discuss.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "SignalFlow is a sound synthesis library designed for clear and concise expression of sonic ideas",
    "version": "0.5.2",
    "project_urls": null,
    "split_keywords": [
        "audio",
        " sound",
        " synthesis",
        " dsp",
        " sound-synthesis"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "945690e6aee4ee881525120b4e4f08ed8f8b1c0e97d37b336b640e796c8ce867",
                "md5": "8d4f66b2d295a275f1b9a50da3c5ad69",
                "sha256": "a1e37fcc23439eb63768c791e46567d752296bc092dbc2e083c76359018d87ab"
            },
            "downloads": -1,
            "filename": "signalflow-0.5.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8d4f66b2d295a275f1b9a50da3c5ad69",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 3304666,
            "upload_time": "2025-02-10T09:42:50",
            "upload_time_iso_8601": "2025-02-10T09:42:50.170668Z",
            "url": "https://files.pythonhosted.org/packages/94/56/90e6aee4ee881525120b4e4f08ed8f8b1c0e97d37b336b640e796c8ce867/signalflow-0.5.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0eb79a5e5b4b45484468cd7b07c9f92c1194ea7fd41bdb34db724f6c885546b8",
                "md5": "aa2f4e318dcbf88d2498ed7d4cad4ac9",
                "sha256": "bc7f25b35a592b9ccf6059ece38322e9a0af782781a7b172f7aebccc62a860aa"
            },
            "downloads": -1,
            "filename": "signalflow-0.5.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "aa2f4e318dcbf88d2498ed7d4cad4ac9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 3304107,
            "upload_time": "2025-02-10T09:42:53",
            "upload_time_iso_8601": "2025-02-10T09:42:53.934925Z",
            "url": "https://files.pythonhosted.org/packages/0e/b7/9a5e5b4b45484468cd7b07c9f92c1194ea7fd41bdb34db724f6c885546b8/signalflow-0.5.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14c822e0092445fdcc3975a670d2a8b9207f396fb46fee013efae82686c76164",
                "md5": "d5a2a97b3d8bd47f0bed294a3f322f49",
                "sha256": "8cf714033f8f24cd7aab9b4fef6a7a57c3be6e2d22c08cb374e71ef9b109c104"
            },
            "downloads": -1,
            "filename": "signalflow-0.5.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d5a2a97b3d8bd47f0bed294a3f322f49",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 3304568,
            "upload_time": "2025-02-10T09:42:58",
            "upload_time_iso_8601": "2025-02-10T09:42:58.008358Z",
            "url": "https://files.pythonhosted.org/packages/14/c8/22e0092445fdcc3975a670d2a8b9207f396fb46fee013efae82686c76164/signalflow-0.5.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b9760ccc7fae88c48df43e98408ef189719ef8803f11367a793d9fef48cc002f",
                "md5": "14fba7f2726093a0732a7b1bab824ab4",
                "sha256": "6966fc4b511759ee7bacb1bd8b38840e16224b459bf4001afcba16fda5ce9f3d"
            },
            "downloads": -1,
            "filename": "signalflow-0.5.2-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "14fba7f2726093a0732a7b1bab824ab4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 3304596,
            "upload_time": "2025-02-10T09:43:02",
            "upload_time_iso_8601": "2025-02-10T09:43:02.032594Z",
            "url": "https://files.pythonhosted.org/packages/b9/76/0ccc7fae88c48df43e98408ef189719ef8803f11367a793d9fef48cc002f/signalflow-0.5.2-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0910d80b52fc94c58c6d77cedede362478d75ddc7bc52eb8374c07b2b5a9f236",
                "md5": "f01c0acb225ff83c3bbb1da60dd14edf",
                "sha256": "42a6079bf395b48d179761148e66d181c28e200c9bcb1b958695d64aa5466f1b"
            },
            "downloads": -1,
            "filename": "signalflow-0.5.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f01c0acb225ff83c3bbb1da60dd14edf",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 3322688,
            "upload_time": "2025-02-10T09:43:06",
            "upload_time_iso_8601": "2025-02-10T09:43:06.013740Z",
            "url": "https://files.pythonhosted.org/packages/09/10/d80b52fc94c58c6d77cedede362478d75ddc7bc52eb8374c07b2b5a9f236/signalflow-0.5.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eb54bb7bf6443d21ba32242647b0c7863d61e2f48e6971fd0ad0da2d4ea673ed",
                "md5": "d9f9ce7ad9d5015502e65657ff644c51",
                "sha256": "2bb1a7bd9b23e7331ef15ca22da1b58d7920c835615f0e5d33c2922671dc619c"
            },
            "downloads": -1,
            "filename": "signalflow-0.5.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d9f9ce7ad9d5015502e65657ff644c51",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 3308104,
            "upload_time": "2025-02-10T09:43:10",
            "upload_time_iso_8601": "2025-02-10T09:43:10.525760Z",
            "url": "https://files.pythonhosted.org/packages/eb/54/bb7bf6443d21ba32242647b0c7863d61e2f48e6971fd0ad0da2d4ea673ed/signalflow-0.5.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-10 09:42:50",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "signalflow"
}
        
Elapsed time: 3.79536s