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

Uploaded CPython 3.12 macOS 11.0+ ARM64

signalflow-0.4.8-cp312-cp312-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

signalflow-0.4.8-cp311-cp311-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

signalflow-0.4.8-cp310-cp310-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

signalflow-0.4.8-cp39-cp39-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

signalflow-0.4.8-cp38-cp38-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a951d1782a69fc1dff10c3a2691932b8ddccc5e1a6993bbdb410a57a7a3edb2
MD5 1a6736c62456207b96aaa8badd2f7df2
BLAKE2b-256 421c598b75ef42117dd3f14d3cef5be57361262a9fe9285019e39029750d9669

See more details on using hashes here.

File details

Details for the file signalflow-0.4.8-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.8-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 16030d01685044c094b42ace84cb23af80d9aec983a55dd5f1a1a8599f25dfc7
MD5 6bddfaa07b7c624d325b601f66a5ca34
BLAKE2b-256 c712c058858bc37fa10248a9cbb150289595e03bc1cdeab974ba15bf6dd9aa0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22b9e4dc168e6f18f5cf9f2e247d78729f97405edf9956674cb2da824ffabac5
MD5 0e24fc889f3bc641fe25b2b046c471ce
BLAKE2b-256 c5864a609256475ae971db540919d86c5f246f617c4d6d8a1d1d24a184e23d32

See more details on using hashes here.

File details

Details for the file signalflow-0.4.8-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.8-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3efc6d265c9cd4002d6c0cd62876eac1e8e7c90e0958bc64170dfa31a66dabbf
MD5 1c15e3431b6d249e61d99acbd134ea9c
BLAKE2b-256 9431ae8fa51e10df51c5dd8f1ba2772498fa07c87c5ec3a48c3f54d02a05f1d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0e18a3a280c010478cbd9c3e63ded16a8e00306264c654c4b37629a8ae60723
MD5 28cbbbef5b9a06ae8cae9f27beb1a35c
BLAKE2b-256 fa7f58ad8da174c0a52e146e04d5cb3da2d4fc2bcfe3fc1d09077275ad05cd8e

See more details on using hashes here.

File details

Details for the file signalflow-0.4.8-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.8-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 be0660c85da40fdf9de78da716ee932f0b67e5fa2ba5fcfd0d5d3866717b036f
MD5 a8339b8cba9c23b7c0b0675be6cfc994
BLAKE2b-256 44e8e4e86a439cea86e2d59c24460626a8d7b15c9253f6d937d3af84a03f28c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 244ebaa83cdfbd14fa9b2780cfbfbb53fd5bce5f1ca4950866350b1c32911c92
MD5 3d3f9e268932f339ef401278999dd2cc
BLAKE2b-256 62b36927cc0e3ce0c0297c83600c94d1c75a79e640aa3fbe7dfe1081f500e9a2

See more details on using hashes here.

File details

Details for the file signalflow-0.4.8-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.8-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f7f270a31c8a92d11cdc0b4b45863626ae34b019deaf525eb9dd673f3f49dd91
MD5 4a9e9e07855ed0ded51329f6ce50d659
BLAKE2b-256 21df71bab7b1821675a71f26219a895d56eaeb36feaba43290e58a7acad17a53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for signalflow-0.4.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4605877564f56d7ce5dbb164ab87ce486311f0b52336dd994d97b354e561039b
MD5 685fcce236c0ddd9c5ee372de3c67258
BLAKE2b-256 f1361d257fad3463b4d3fd28e01c5dc98a6162f83925dd0c45c8a4120e528784

See more details on using hashes here.

File details

Details for the file signalflow-0.4.8-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for signalflow-0.4.8-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 66223ce663527e8d186815aa9125a24329c8ae4a5c5a8adf628be5c6da94fefa
MD5 5ac133ed58d2f5e664309ba07ac91b71
BLAKE2b-256 fc660a1be9c056a58e7c53b91e00564d3642202a696dae565961fc4222ece34c

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