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

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. Its core is written in C++11, so it can also be embedded into other cross-platform applications.

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, FFTContrast, FFTFlipSpectrum, 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, 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

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

signalflow-0.4.6-cp312-cp312-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

signalflow-0.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

signalflow-0.4.6-cp311-cp311-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

signalflow-0.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

signalflow-0.4.6-cp310-cp310-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

signalflow-0.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

signalflow-0.4.6-cp39-cp39-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

signalflow-0.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8macOS 11.0+ ARM64

signalflow-0.4.6-cp38-cp38-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 385c30f9be5e7b0a10ed10b875a1c08ef5baaed69b4de55f56d62dc2440a5235
MD5 6e5d1b6860dc6e6653dcc9c45330f862
BLAKE2b-256 9a3acadc143337f22cc6143d70d4ddef912bc842215056ce1ebce3c14b4eb030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5319a608c21db8fca4aff40e92e3e8a63ebca9306054d5aa978c911145e77da3
MD5 f19a0b5b8a8d93c114950d65b20f3e89
BLAKE2b-256 26952bf79de301e0eb5bdd7395ceaa1cb0e3edd388f2e8dc9dac29c932747763

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 14bfadbd9305a4dd59fadf29b276d247e22e253f5dda26546c77fa804ac550e9
MD5 254f8cdd2b1c291279f6e1abdcacc4e8
BLAKE2b-256 559ad47e409cb840acc351dde4664452eec2a4bae5b57fe530e87c3e7d3c6330

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3d147726811c9706f06bebb1d5eb9805b73c419409bec053bac2021d057666a
MD5 58c1d85bd6bc7f026a72e5ee6680e23f
BLAKE2b-256 1f498122ca13ea260abe13bc8edd08aab11b5b6a37d7ed6747797358e5875fc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7701dba452093fae13aa564de6e663464d00e6aa702ec5ff20e8cfd6392a8f8d
MD5 7b5f29a7ea8f84f033d7b8e1dbb84e33
BLAKE2b-256 a88604677b839eb5988b0025add59f74b1c05632e928d60327e5828ed0ac920d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7057d00f231a413afdb207c71a22f5c169be51dae0f74dc00f4c0d7e84e05299
MD5 0735cc3dc2ac3eca45dd981be899b41d
BLAKE2b-256 0c8201b96c7b9c41805eff1f74a00d496ec5034933cc6bf74c3cb729192a3ef8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29dbf00a0c3c9d71d44f2bc1db0f6ac773d81c50a7e2611fa270c38fd4a0c218
MD5 9a9dead2362e7686ac793671e80075ea
BLAKE2b-256 28b5e2681d307dcfe015ea926c83037dd5f2233d1ed98e584c148b793b6f61e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a02beb1cf80bbb96c98457a72b9377a6527dda6f6d7508af808a92e3a6bf1df5
MD5 4671f91649bdb54010cd69483528cd32
BLAKE2b-256 9b657a859e93020848a29dcbc89b25becc9e91b8ca232e06914a40bdb9ddbe0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4c055d5c804ba4c6501559c5d7dbf573f4b07944a047b5710b276e97ece4134d
MD5 2a97d0a44048c55d6ee595fcdb211423
BLAKE2b-256 d52b171775447ee1f2061d771ca294fd2fb22b20ac89f6bf086f831bc8d4580b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c0d2ca4f46d235ef6e01ffd72ac09b918198632a08bf8c1f41d408ccc3f439b
MD5 e08bf9c57eee6f1efc49bd099eeacd6f
BLAKE2b-256 d353699bb697b2d31c37adcb3c9fb79594fbbc25134008af6f7e98ec189dea15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1d34023d35b333179a9635fa35ddda70764a5dde6f48cc411206eb2edf53dd5
MD5 8ffdb64bd2df50320c15025721a2506e
BLAKE2b-256 2523f496637b6c7b4ca7dc0edad20207c27efbbd7407f41603a0206947966459

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 64cf078ca2e9a8266bc2f8fa3061865997231e1f4e125b1ceb4d3f7fcca37f1a
MD5 c44e9d0a3110882e79194ae93f195eee
BLAKE2b-256 6839fa2f883b060dcda28f4f14285a8d5735e287185845831ee92008e0f0e64a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02481d2384f5b6988b9e13f2295e655a8c94d3262fa20c3c260be96abbf639bd
MD5 b2361a68fb59c659d8f02fe88bd74155
BLAKE2b-256 b4fe703225be5e42be6bb33aef17afe1e95c4e6cfd9581154046f470d4cfde50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e42f2a7c382d639fabc5442a2aace526f4b4151fb8928b8a060c7aee22b4b796
MD5 78064d4698886e59509bd537dde8c503
BLAKE2b-256 83da506661368b74ed8cf50041a4159e989a2c960a285660a29d70e080e6e9ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2ca17b4dda790ccc1a32f3560766b5c1a801077b9c930a1c14e3ef711fc086dc
MD5 1b82552c2c09e882f07a8a5d2cf60b62
BLAKE2b-256 127e2e11102cda6bc0c5336c07aac7201f28fb19c4c554813b84edcb90241e02

See more details on using hashes here.

Supported by

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