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

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.12 macOS 10.9+ x86-64

signalflow-0.4.7-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.7-cp311-cp311-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

signalflow-0.4.7-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.7-cp310-cp310-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

signalflow-0.4.7-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.7-cp39-cp39-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

signalflow-0.4.7-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.7-cp38-cp38-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b80e6e222cbd695b2ece57081a66864184f78052d7600307e251e0ca09a56b7f
MD5 1a35177ffd0896faaa7b8b120fd3de98
BLAKE2b-256 93764cdaabcd9879bf947fa5d317c1d610e4da3ec1167022f7720458b2167a82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc0c79948522946580da142a573eac17f415bab7618fbafea0c5b6a35053effd
MD5 936965aec052ec91f1285cf14f4fa7ab
BLAKE2b-256 661af233cae13986371fb3bec3339fed86c8dcecb7e528bf53e439e134e49400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9cce37cc2c564c961466b3dd1298773bb7debab2b0535ee99e0aae19ec3bb10c
MD5 7c5bbd0ea9d7e276aa20878bf7219915
BLAKE2b-256 ac6415120d29b0fced6f63c5a01c1b564bc123d08285046952d5c3048f564c24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14ae087eb9775a031e346a52801d9cfef42625e4470496ccd4ff1d6e6e3a249e
MD5 cbe3b355d86e843cbcff0bf21d85d0f0
BLAKE2b-256 8d837beea92f309b05112b9e9ccd6660517355f71102da73f3e640e9707e935d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a643337efbd6deae307fb531b1ea7cce2e3f794c0c425c3a0bb7d5aab13977d
MD5 4041164077b8ed9ef08eb28e31a84078
BLAKE2b-256 90962c4ee66a59b3ca0aa4e4bbc1f9e0f90843c34f753506adfe92fe72b3acaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7554393fafd9b36dd0f85b7c24edf036bdcb52e513a56d12bf14b1c8b87a5977
MD5 404e3bbdf6885c9dfd755a1481507579
BLAKE2b-256 4ad90ebb15d1461491259e888492ce073b11e4b5daf7c3da171eab8e7d75f569

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b506c2fe29432db1cbb798328dde58d7c83abab2611352e84952fa70abd49f7
MD5 52676579d132884e83051e4e48452acd
BLAKE2b-256 7ad5e454a57727340d601eb345079679eb918a2b6cb606355538f5791d920cdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d6bf9ee47c3fc410d93bd1f3184f2d887732c56dfdfa9cd612937b13f844581
MD5 df5c9e41ed762e256c53c390391311e5
BLAKE2b-256 b0056e10d5772b71b2b4c6302c3476e6168428d2cc144603d19ed84a293a9f12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3b129840bae4f4b369568c3179f7be34e505606de11d15482b4cb64abd2479f7
MD5 a843c63af3b24659c4016aa94a808775
BLAKE2b-256 5213e2e8422e8258856c1c8009df48d103e14874b5ae79bbc15e924003973d4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cbd1d3b4c1df1d9d8c2c4e1aa6414af5e860bb3c289f7ec71d6235bd6689eab
MD5 e38da4793112e547a9ad58abba07624f
BLAKE2b-256 6df044c43842dcb644e9a2fd9837b834117889dd0c3b906e71432e24c3884176

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e093c00ec0d96012317b6c267d2e2b41e0c7c92ce949aa3d7ee11208c2549af
MD5 aef88945f66505a3a7797676df68c838
BLAKE2b-256 eecc39e4b0fffc7aad23573197498b36593c615b95f13c002be819e1bfb7fa35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d76d1d726d7473cd98e0ea839767e10865b29d22385348b851c5ea2c4e1b4a8a
MD5 46348beccabc7c0dfe496b859f230dfc
BLAKE2b-256 abe37edfb4da2cb612fecafb414bac19e87a6873f3b9d4cbbeaa0d5a0b402a1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18e38bc9f0ba681ec6d44e93d037245db172352828a0617c9c51e2835789415e
MD5 3548b3f749530511a39b8550191cb12b
BLAKE2b-256 6874367352219436195346b093f63209f7000cc3560e5071910eeca4a2c79297

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 615793741aacfd900e84726b1589e8b7310089c8439aca1bfd7b3be6c3ec3f74
MD5 db0ed7a4711e2ea4a2bdaa5942c12911
BLAKE2b-256 bb0c430aa795cff8d6d073bc1d73127e87c089ac2fed7f5f236a4ca7d72744de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.7-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bf365bc1daba0275ca56c80bc33802f877fad2eebe7fc7e90b71421fd817670e
MD5 7ca33ef424e080b5fdb5a2c846bd2a8a
BLAKE2b-256 00ca00081fa0b26ceb15cda11f19ccb88748278fcc878ff9a3253efa7b5b3def

See more details on using hashes here.

Supported by

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