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

Uploaded CPython 3.12 macOS 11.0+ ARM64

signalflow-0.4.9-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.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

signalflow-0.4.9-cp311-cp311-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

signalflow-0.4.9-cp310-cp310-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

signalflow-0.4.9-cp39-cp39-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

signalflow-0.4.9-cp38-cp38-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac514455a0e46c09a7fb8ff902d28087bb12fdf627b04c4990c020b4ef7fc6ed
MD5 67b39e943d5fe606ff51f2ef4cdf7d24
BLAKE2b-256 665e4b14c9a693dfd4c3b5744f33857bd09d035a4050dee9a39a42a3945fe879

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d3ce5bf97fce22834f9581a6a127cc0ca687dea377f8f649de81be971205bc5
MD5 25b399b1082c4ec7d7108f615927f221
BLAKE2b-256 8cc45baa34cf706aaec6e76cbedfc174b7270991ffd66c1d18b08cb0da9979d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1808706158d9beeaa397d23e7d120b821a2be1188cd2923cf00777619d621bdb
MD5 22ffc6a9406bab8b52e7e0c0a129b68d
BLAKE2b-256 73a6c9e58d9bad247f4faea9cbbd1b8bd096b00d80b7262eddd239008d6d9538

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e610a031eb86ca3df098ad344815640a2d2b4b60c4122a6d9bcf8ed9b36a0df
MD5 f47fec8970b5e70104321afebb7355d1
BLAKE2b-256 2da10b8d336ff2aad0adfb20d32d3031769989eecf054a7156ff088cceb24a3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4fc931924d212e9ed0af4e137238f0d2c30e1d4c385c70ad325ef52b2fd5b37
MD5 6392047da5a76df651f093cd8f7c4557
BLAKE2b-256 429c1477f215861187cfa7d4ecb0efac1e9727b0a184ad7afaad7444a4b389e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2e21f7f17b9a2232c8d9a3107e010c902d70da20c2ff6806678b835b73fc7048
MD5 e0ed79f6a0c13608fd2ab5a7f1f37160
BLAKE2b-256 7ccc4941f47cb657bbe9272151cfa95b6ab8506ddfd15d2e0c25cadcbd4d3f77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab897abeea62e69f955b0d7edf2a962d29c4becc60d501b3c061c04e70212254
MD5 3c7543b6b098bbeda6a0ee8b3de83f38
BLAKE2b-256 41518daa06e704ba230d3fca981c68d5c7f7a265269a7bebefcf6d3c02d70e01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04015507f4673721a0a6bed6494055154c1b1a2e8ae65af600583e46fe50b39a
MD5 afa778a56c04cb3fcaaab6a4c40ad84d
BLAKE2b-256 f6ede555c8c82f166ac4d72c82c63e16c1c3053b39cc15259143ee1f2dec1d4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 643b586e821a69c454d33e082d6ac26dd693f05591cbaa6703e2f5c9ab160ae2
MD5 9fff074fcb6e95a27be4b102394dfca5
BLAKE2b-256 b4d933113646e36c85f29ed037d714bdf229abe3bdd749b50bcc0673cea17f50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be4750a42cfd3fbff083b2bc884bfaf53abba3e956d70db0326bbde8ba88779f
MD5 1cb1eb2409f7c1d04e421ff7764c6b33
BLAKE2b-256 156b9623d6ca7cf73abe00f3728223ed983c8dc796ffb6cbf0647babcabe1664

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9bb09121cbe5429e7a62629d1903266960e0a572db67ba951b22c4b296bbb627
MD5 e70339e5235703f19992b8498aaa2cc6
BLAKE2b-256 ab7db153adcb9b847375636e757412f578d7913564f36330a28049e96e67eeca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4993673d18e504e46f6a39f91e2ea388a38962a3dc572918b18dd60fd69ed97c
MD5 442223bfe58737046856ed8e167bd99f
BLAKE2b-256 8b7602039bd0d41a5dbaf5f75fc3ca3f2c27a92a1882a28f4b306a58237b448d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0742809ccfc6abfc372ecff5c49930ed2049276d713abf718bcfdf4db594eb58
MD5 e10019d11dd5f3ae218319dcdab30013
BLAKE2b-256 895fdb6f35f2214c601c2d7694765598e02bd13d8ffea0cee8ad63a62d32fc54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1223adbc0ac0009ed28af6cf5b6fbb994c3593e7096bb38feb7e98fd10f84ef
MD5 046d63ce149608e232c9575a2344be22
BLAKE2b-256 95ebf556d3363a9fae15d1dcd4d29ebab79f650d61e3f6d5bc88f486ab2966d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.9-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 45035c2536b056a9d8a4f06f6f34b11c7717817a7538c25e84be899255f79aae
MD5 562850c87434cbffa5db26730c40d06c
BLAKE2b-256 7ed5b487e58342c4d893f9f4bb958c5d2f0d384759beaa275d4e80b8c1aff095

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