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:

  • 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.5-cp312-cp312-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.9+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8macOS 11.0+ ARM64

signalflow-0.4.5-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.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 124638c9d8633064476a69ae2264857aa631b059a6324e1a1838eb7f2bc60d32
MD5 ae4afdc593189bc32a36fd5a87c7417c
BLAKE2b-256 c33400bb0d1a42781e123637c68b0dc7a6626c285b1ef14d5b1b7b898714cb68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fb6d59ebcac311c4c73084aa567b9ae849b830fe578a9e0906be2d7f0f2ef69d
MD5 98a0bc3647612b8644773dc282fcdd6a
BLAKE2b-256 74856694a0abf2785300e12af95a79bd7a2e19a816d052043a71d22505857cc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3859758ad0057ceef3e381efbd1bc154280bafba1872874153010f86e90c609e
MD5 7b3a8dc26769ce133de23e15be20a56a
BLAKE2b-256 62f8556129e4711f9b83c4bd10c5df3181ccf1e2e314ddc6bbd148989bf00883

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 26daa3876ab35b94e43b423d53f7aab753197e3a9af6db64bfd0cf1dbbae2a56
MD5 b240722f1dbec5f7a19bdf98b251162d
BLAKE2b-256 e73bb442450ceee28a478b96fa53839b8fe9f2cc60ac7bec9b0f57b03ad626fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 905421a97e46f5d8670950c2ee3b1468165514ab4e217285e8fbdf44b1af39e7
MD5 5f4301e078227bc90ecdfdcf864417d2
BLAKE2b-256 68d5a5642d26465ef78d4bc6778ca67802fc7b72c628f6e09797a2d02f81debe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1a64a83698813d3bfd05f34bd0b2f35bc3844b1657a729cdc7df7d3b41765a32
MD5 1b27356a4e65b7eedbb9aafbc37ec99a
BLAKE2b-256 dad8b539a0ea204c34429d6db2cce439ebb7fa40403621b78d10899b9055cbf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0043ce1e8f9f60aba1111f9c0283d8140da65a14ba67abd24c7863bcc7eb13d0
MD5 6079ba03e94748532e15bcb17e2744e7
BLAKE2b-256 772193cb9fa1d096a738e65cf5c72674941a7d4411d74a880a5a01cbb0286b4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e47be37a25fe4bc03f840660d2b33b030880afa3f7bf6efb3e24b39bf094a4c8
MD5 28f9f63d42789e8593c2d83f9c8bb5f2
BLAKE2b-256 77e7d9d505f28f80db22cd0dcc2b1ca1525147ffc4bb4b0f1f7c026107fa83a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a5f8201ff71ee8709d676f472c114338ee9b3fbc4f90ac01809b944801088a4
MD5 132ea3b848a72d84dea8082211b34203
BLAKE2b-256 87e45844b8fadacc0b9d1ef419672b2ba7209b5c68a50bf1ca3d93a58768d594

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d433b1280ce4f47894298b7e8e5133e08e3c75c1e8811013b3ae522a68bb4d68
MD5 2c43e0c70822c24dc40ca174ebad3fbf
BLAKE2b-256 7cfa0b94e6ecd3a9189ae486cc61ca5010d35383ce8a5534d4dc34a6acb196c3

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