Skip to main content

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, and supports macOS, Linux (x86_64), Raspberry Pi (3+), and Windows (64-bit).

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

For a complete walkthrough on setting up your system with Python and SignalFlow, 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 class library

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

Category Classes
Analysis CrossCorrelate, NearestNeighbour, OnsetDetector, VampAnalysis, YinPitchTracker, ZeroCrossingRate
Buffer BeatCutter, BufferLooper, BufferPlayer, BufferRecorder, FeedbackBufferReader, FeedbackBufferWriter, HistoryBufferWriter, SegmentPlayer
Buffer: Granulation SegmentedGranulator, Granulator
Control MouseX, MouseY, MouseDown
Envelope Accumulator, ADSREnvelope, ASREnvelope, DetectSilence, Envelope, Line, RectangularEnvelope
FFT FFTBufferPlayer, FFTContinuousPhaseVocoder, FFTFindPeaks, FFTMagnitudePhaseArray, FFTNode, FFTOpNode, FFTPhaseVocoder, FFT, IFFT
Fft: Features FFTSpectralCentroid, FFTSpectralFlatness, FFTSpectralFlux
Fft: Processors FFTContrast, FFTConvolve, FFTCrossFade, FFTLFO, FFTLPF, FFTNoiseGate, FFTRandomPhase, FFTScaleMagnitudes, FFTTonality, FFTTransform
Operators Add, AmplitudeToDecibels, DecibelsToAmplitude, Bus, ChannelArray, ChannelCrossfade, ChannelMixer, ChannelOffset, ChannelSelect, Equal, NotEqual, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual, Modulo, Abs, If, Divide, FrequencyToMidiNote, MidiNoteToFrequency, Multiply, Pow, RoundToScale, Round, ScaleLinExp, ScaleLinLin, SelectInput, Subtract, Sum, TimeShift, Sin, Cos, Tan, Tanh
Oscillators Constant, Impulse, LFO, SawLFO, SawOscillator, SineLFO, SineOscillator, SquareLFO, SquareOscillator, TriangleLFO, TriangleOscillator, Wavetable, Wavetable2D
Physical Maraca
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
Processors: Reverb FeedbackDelayNetwork
Sequencing BlockCounter, ClockDivider, Counter, Euclidean, FlipFlop, ImpulseSequence, Index, Latch, Sequence, TriggerMult, TriggerRoundRobin
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
  • Ed Gillett: Generous donation of Linux build machine
  • Sid Gudka: Generous donation of Windows build machine

Support

Thanks to the following supporters and sponsors:

License

Use of the SignalFlow library with a Python interpreter, script or notebook is licensed under the free and permissive MIT License.

Use of SignalFlow or its components outside of a Python environment (for example, embedded within a binary object) is subject to a separate agreement. Please contact the author to discuss.

Metadata

Release files for signalflow 0.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for signalflow 0.5.5
File Actions
signalflow-0.5.5-cp313-cp313-macosx_12_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 12.0+ x86-64 Details for signalflow-0.5.5-cp313-cp313-macosx_12_0_x86_64.whl
signalflow-0.5.5-cp313-cp313-macosx_12_0_arm64.whl CPython 3.13 CPython 3.13 macOS 12.0+ ARM64 Details for signalflow-0.5.5-cp313-cp313-macosx_12_0_arm64.whl
signalflow-0.5.5-cp312-cp312-macosx_12_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 12.0+ x86-64 Details for signalflow-0.5.5-cp312-cp312-macosx_12_0_x86_64.whl
signalflow-0.5.5-cp312-cp312-macosx_12_0_arm64.whl CPython 3.12 CPython 3.12 macOS 12.0+ ARM64 Details for signalflow-0.5.5-cp312-cp312-macosx_12_0_arm64.whl
signalflow-0.5.5-cp311-cp311-macosx_12_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 12.0+ x86-64 Details for signalflow-0.5.5-cp311-cp311-macosx_12_0_x86_64.whl
signalflow-0.5.5-cp311-cp311-macosx_12_0_arm64.whl CPython 3.11 CPython 3.11 macOS 12.0+ ARM64 Details for signalflow-0.5.5-cp311-cp311-macosx_12_0_arm64.whl
signalflow-0.5.5-cp310-cp310-macosx_12_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 12.0+ x86-64 Details for signalflow-0.5.5-cp310-cp310-macosx_12_0_x86_64.whl
signalflow-0.5.5-cp310-cp310-macosx_12_0_arm64.whl CPython 3.10 CPython 3.10 macOS 12.0+ ARM64 Details for signalflow-0.5.5-cp310-cp310-macosx_12_0_arm64.whl
signalflow-0.5.5-cp39-cp39-macosx_12_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 12.0+ x86-64 Details for signalflow-0.5.5-cp39-cp39-macosx_12_0_x86_64.whl
signalflow-0.5.5-cp39-cp39-macosx_12_0_arm64.whl CPython 3.9 CPython 3.9 macOS 12.0+ ARM64 Details for signalflow-0.5.5-cp39-cp39-macosx_12_0_arm64.whl
signalflow-0.5.5-cp38-cp38-macosx_12_0_x86_64.whl CPython 3.8 CPython 3.8 macOS 12.0+ x86-64 Details for signalflow-0.5.5-cp38-cp38-macosx_12_0_x86_64.whl
signalflow-0.5.5-cp38-cp38-macosx_12_0_arm64.whl CPython 3.8 CPython 3.8 macOS 12.0+ ARM64 Details for signalflow-0.5.5-cp38-cp38-macosx_12_0_arm64.whl

Total release size: 29.9 MB

Release files / signalflow-0.5.5-cp313-cp313-macosx_12_0_x86_64.whl

Download URL signalflow-0.5.5-cp313-cp313-macosx_12_0_x86_64.whl
Size 2.6 MB
Tags CPython 3.13 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
694f2011ec8fa5748bdfb2a03ec0e8814513739559f643bb10d5479fa381ee91
BLAKE2b-256 checksum
How to use checksums
ee22f0cc97185200ee41396f83bffc5065107ebee2363c8f20ee9c44cfaca9d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp313-cp313-macosx_12_0_arm64.whl

Download URL signalflow-0.5.5-cp313-cp313-macosx_12_0_arm64.whl
Size 2.4 MB
Tags CPython 3.13 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
6350ac135f85d2b587fe44cbe09c7b2ce925e3e7487b6ccfbb47efd77c5efd13
BLAKE2b-256 checksum
How to use checksums
5ed9efe9f37eb3eeb5b64f6e13c3eb55de3d254e811c69d9f0e50e23643d6948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp312-cp312-macosx_12_0_x86_64.whl

Download URL signalflow-0.5.5-cp312-cp312-macosx_12_0_x86_64.whl
Size 2.6 MB
Tags CPython 3.12 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
1042df47d06fed7a0aec8af4d6045411c57d6c3f2479bd4ad3471a36d2b09db3
BLAKE2b-256 checksum
How to use checksums
8dac4c0e5251f1b0264c56a0557e38041226b2cc7d1fe5a8e2ac7920a5e9c03f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp312-cp312-macosx_12_0_arm64.whl

Download URL signalflow-0.5.5-cp312-cp312-macosx_12_0_arm64.whl
Size 2.4 MB
Tags CPython 3.12 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
50a1639773b58b379e9b05633c7a1b3037d2d6d42d5baabc8e3f22ddc7fe927a
BLAKE2b-256 checksum
How to use checksums
0cdf7677b4fa31653b79cbfcbf3d088dd4aa8fa749b4778fbef09ac40ca2e6d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp311-cp311-macosx_12_0_x86_64.whl

Download URL signalflow-0.5.5-cp311-cp311-macosx_12_0_x86_64.whl
Size 2.6 MB
Tags CPython 3.11 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
5607f82e0e52e2389ec936e9ac1bcacedd1d9a09277c3f1d53972256ffc53554
BLAKE2b-256 checksum
How to use checksums
794b22d7863e0417aa8eeb763fbc8d7bc26340a9be7ee480c828971712882eab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp311-cp311-macosx_12_0_arm64.whl

Download URL signalflow-0.5.5-cp311-cp311-macosx_12_0_arm64.whl
Size 2.4 MB
Tags CPython 3.11 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
46bf5ba51f66ccca40e880d55b64b200c7b6f498290ecb7da5b03c0217c80993
BLAKE2b-256 checksum
How to use checksums
e9c1adc11a895d0a0c921e09f25bb6d02487b8ec3c9adfcad5b53a5b9ce01ecd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp310-cp310-macosx_12_0_x86_64.whl

Download URL signalflow-0.5.5-cp310-cp310-macosx_12_0_x86_64.whl
Size 2.6 MB
Tags CPython 3.10 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
66c24f1666f589de61badca4fc2cd4b834bc865ef23d1d8b3b2b303a9f48f939
BLAKE2b-256 checksum
How to use checksums
abb3f18aced7a3feb1fd36da5210fddff519d428e34e1cef5edd5b52788b597c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp310-cp310-macosx_12_0_arm64.whl

Download URL signalflow-0.5.5-cp310-cp310-macosx_12_0_arm64.whl
Size 2.4 MB
Tags CPython 3.10 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
7f3ac9f2da87c80b7c4d5a891b4390a55385ecad526ff46cfd7f76de3bfc56a0
BLAKE2b-256 checksum
How to use checksums
1f81e0a4eb11ddb1516b97786a564b86934d612e4a675efa7faf9e85a126226f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp39-cp39-macosx_12_0_x86_64.whl

Download URL signalflow-0.5.5-cp39-cp39-macosx_12_0_x86_64.whl
Size 2.6 MB
Tags CPython 3.9 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
4eaffc124bb7b9250603802aeab2d2e9ce45187ccaff250c2e28e75d225f5083
BLAKE2b-256 checksum
How to use checksums
62c7772601ad0fb63fe02bac67c7fc4c622ba53fce7cb8164c5be30b903b4e9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp39-cp39-macosx_12_0_arm64.whl

Download URL signalflow-0.5.5-cp39-cp39-macosx_12_0_arm64.whl
Size 2.4 MB
Tags CPython 3.9 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
6dabbf5255e869703bd95a8364e5b3f427060b63d978aa8ea1e4e020f7c41772
BLAKE2b-256 checksum
How to use checksums
a5a0868a283723c3ea8bdec709b73b438cf4f4b4fcc0a914541ff5769bc3c4a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp38-cp38-macosx_12_0_x86_64.whl

Download URL signalflow-0.5.5-cp38-cp38-macosx_12_0_x86_64.whl
Size 2.6 MB
Tags CPython 3.8 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
6ec6ec482fbde484afb8de7ebfb467293a7a51fc6568d7bb66a71f6287532690
BLAKE2b-256 checksum
How to use checksums
313757721b3428479b1a9555da8240a3ff3d6b79a62e21ee2d496c194b88c4d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Release files / signalflow-0.5.5-cp38-cp38-macosx_12_0_arm64.whl

Download URL signalflow-0.5.5-cp38-cp38-macosx_12_0_arm64.whl
Size 2.4 MB
Tags CPython 3.8 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
029839f9adb2a10df8129f5d014c0b5139c0585cbeb54430f2298dd8ae1e2ee4
BLAKE2b-256 checksum
How to use checksums
055deb2b1c6169b4fe13677b625e892c6fc793564e356116ba9a1c89fa35d887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.0

Security for signalflow 0.5.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page