Skip to main content

SignalFlow is a sound synthesis library designed to make it quick and intuitive to explore complex sonic ideas

Project description

SignalFlow

pypi-version ci stability-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

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.

In brief, SignalFlow can be installed with pip: pip3 install signalflow.

For complete per-platform instructions and setup guides, see Installing SignalFlow.

Examples

Several example scripts are provided in examples.

To download the examples folder:

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.

Node classes

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

Category Classes
Analysis CrossCorrelate, NearestNeighbour, OnsetDetector, VampAnalysis
Buffer BeatCutter, BufferLooper, BufferPlayer, BufferRecorder, FeedbackBufferReader, FeedbackBufferWriter, SegmentPlayer
Buffer: Granulation SegmentedGranulator, Granulator
Control MouseX, MouseY, MouseDown
Envelope ADSREnvelope, ASREnvelope, DetectSilence, Envelope, Line, RectangularEnvelope
FFT FFTContinuousPhaseVocoder, FFTConvolve, FFTBufferPlayer, FFTContrast, FFTCrossFade, FFTLFO, FFTMagnitudePhaseArray, FFTRandomPhase, FFTScaleMagnitudes, FFTTransform, FFT, FFTNode, FFTOpNode, FFTFindPeaks, IFFT, FFTLPF, FFTNoiseGate, FFTPhaseVocoder, FFTTonality, FFTZeroPhase
Operators Add, 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, TimeShift, TriggerMult, Sin, Cos, Tan, Tanh
Oscillators Constant, Impulse, LFO, SawLFO, SawOscillator, SineLFO, SineOscillator, SquareLFO, SquareOscillator, TriangleLFO, TriangleOscillator, Wavetable, Wavetable2D
Processors Clip, Fold, Smooth, WetDry, Wrap
Processors: Delays AllpassDelay, CombDelay, OneTapDelay, Stutter
Processors: Distortion Resample, SampleAndHold, Squiz, WaveShaper
Processors: Dynamics Compressor, Gate, Maximiser, RMS
Processors: Filters BiquadFilter, DCFilter, EQ, MoogVCF, SVFilter
Processors: Panning AzimuthPanner, ChannelPanner, SpatialPanner, StereoBalance, StereoPanner, StereoWidth
Sequencing ClockDivider, Counter, Euclidean, FlipFlop, ImpulseSequence, Index, Latch, Sequence
Stochastic Logistic, PinkNoise, RandomBrownian, RandomChoice, RandomCoin, RandomExponentialDist, RandomExponential, RandomGaussian, RandomImpulseSequence, RandomImpulse, RandomUniform, StochasticNode, WhiteNoise

Contributors

Thanks to the following contributors:

  • Greg White (@gregwht): Examples, documentation and testing
  • Arthur Carabott (@acarabott), Tim Murray-Browne (@timmb): Windows support
  • Dan Stowell (@danstowell): Build improvements
  • Marc Fargas (@telenieko): Generous donation of the signalflow pypi namespace

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

signalflow-0.4.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

signalflow-0.4.10-cp312-cp312-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

signalflow-0.4.10-cp312-cp312-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

signalflow-0.4.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

signalflow-0.4.10-cp311-cp311-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

signalflow-0.4.10-cp311-cp311-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

signalflow-0.4.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

signalflow-0.4.10-cp310-cp310-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

signalflow-0.4.10-cp310-cp310-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

signalflow-0.4.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

signalflow-0.4.10-cp39-cp39-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

signalflow-0.4.10-cp39-cp39-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

signalflow-0.4.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

signalflow-0.4.10-cp38-cp38-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

signalflow-0.4.10-cp38-cp38-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file signalflow-0.4.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 790fcc1716490fe2bc943df3a3f4d8d9b2e7f0cda51709df2101d8a5ffd13112
MD5 30895ee2dafd960ce7e6ba8feba1a105
BLAKE2b-256 6269ceb8bdb46c12f62878d7b8fcf2faa53d730bdeff0be53c4683442d2728d3

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2885ba7c11cecc94afb35646ab39816d83a7a71e5c5c8530abda3055728a6340
MD5 88ca3fd56d71af9db780e4a9a768d379
BLAKE2b-256 4342f08e5c6c92ce5a9efb3b422e8714d16409cfd947bdd7d41e3b063ad4228f

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ee43f5eab24995ebda676cea9336e49b7c61d8ef5a8d7ddd170e312f19bf6cda
MD5 26e5ba8fa3471121103ef1561a123c8a
BLAKE2b-256 a9ff978fc63f517ab0604f1d541d8c1e95e73892a4cdc8db99796607e9a6e1ed

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d96ab26b765ae561cc5f016cf5cc30369c6d1f6bd74bd25c27c89aa825ebd67
MD5 4735583fdddc9847418ec30dce173b1f
BLAKE2b-256 e74365e9d993255ab81c4960a54f40f4892ffd33e33434fb4890246672d3b3d3

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d988c9ecad13f5152bb8c3d8594e32129dc6a6be3800f5fec8e2ee3df162139d
MD5 fe1b8512495f078f95d45251141b3124
BLAKE2b-256 d12304824200a2ba94915408ed07ea0ec18291b6e810de3dd93a96a06cb1eeaa

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4b34301b95589cf2959b4134b4b3799baaeafe0259868d52d58f3292e541f05a
MD5 572af156908c1f42e0007fc96bf89649
BLAKE2b-256 7ce1b5c23bf0d00bf3f5c1a87afa1c8adb9723efd3044853e59443ae9ff1e275

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4490760d1e3601a56836655ee72680308ef823a79967e3284742c86e7de1393
MD5 98117979cbc2b26acff14c7f915909dc
BLAKE2b-256 4536b23553cb60c88b08a5f5fbde601c396e36df53a47a7d6b8901f4120d2dc5

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30531edac3046c81df13e29ac8405a19a5ac36e2e1239868d616026164eec9b8
MD5 f94e9b72a9d521f2d6f1da4e53079997
BLAKE2b-256 b7817c2e7e5e6955e33c91a8658fedf01c222a7bd37909425db25e4a23a4fc90

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 564ed9b69f86aedd4242305a38e8cbb66bba771c5b84a4277b7b689a22a42b1a
MD5 b7802d13b51dd027947a81734f5fd0b3
BLAKE2b-256 c6103e10300686e6cd0a66e9f51de91b8a5b0fa1acd08c74045dc0d07b53e4c6

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46efb9f7a201d3dea12bed0b6f9291926f2538aa730d9cc4004b31b77aae212c
MD5 55a95583530bfb9ae1dace2d75e8e111
BLAKE2b-256 cb099a37d612aa0f0e31c86f44b15cb01470460d456a4dbb847db9aabfac9bee

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d82241f85ce11e473ecccb469e547426313363be11882876a838b23e32aee5b
MD5 67f06145d5acd0a893e027af1eaea1b9
BLAKE2b-256 54d00db7262093f79c9fba7348f8b90a093e6e6f63deac0afec25cbae420faf0

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6505fe3df65222ea1928d5ef988b571fa032c7a59cb7f291d54107825f9998d0
MD5 4f6a5f178053f7d087989f531b0e5c0a
BLAKE2b-256 dbd161a5b263cd4ab5069613e7e8fd61e3ddce06caf49562288fc370d12e3290

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f2684501fa549c045c8a81dc7a9bf49c03441a765bc2490aac8b93d3d4795aa
MD5 a32cb9a37f36b87525dadbc0a289c893
BLAKE2b-256 e16b86ebc7f23dffd423c18d5962be6535841d56bd165d36c231289eb5a39443

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdd66259bc954055ddd347aa445ede4736df5f61d4014e6852c5a0b7e3fdedd6
MD5 6660e515d6db64d4c131b3b23a82214c
BLAKE2b-256 756db6e81544afb70c796c329380b293d9587071b883e0bd67ae10b25890648a

See more details on using hashes here.

File details

Details for the file signalflow-0.4.10-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e9c1b82cf362f6e048fee1c2a5e6f70be7c033bc8f1909f7f85bba821ed44c0e
MD5 7a6b174f456414c303546adf310c98ba
BLAKE2b-256 d8bc6212c1a3348d48b1bd41d0c61eb9bd97f85af41780809ae109e159cf071a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page