SignalFlow is a sound synthesis library designed to make it quick and intuitive to explore complex sonic ideas
Project description
SignalFlow
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:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for signalflow-0.4.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a951d1782a69fc1dff10c3a2691932b8ddccc5e1a6993bbdb410a57a7a3edb2 |
|
MD5 | 1a6736c62456207b96aaa8badd2f7df2 |
|
BLAKE2b-256 | 421c598b75ef42117dd3f14d3cef5be57361262a9fe9285019e39029750d9669 |
Hashes for signalflow-0.4.8-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16030d01685044c094b42ace84cb23af80d9aec983a55dd5f1a1a8599f25dfc7 |
|
MD5 | 6bddfaa07b7c624d325b601f66a5ca34 |
|
BLAKE2b-256 | c712c058858bc37fa10248a9cbb150289595e03bc1cdeab974ba15bf6dd9aa0f |
Hashes for signalflow-0.4.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22b9e4dc168e6f18f5cf9f2e247d78729f97405edf9956674cb2da824ffabac5 |
|
MD5 | 0e24fc889f3bc641fe25b2b046c471ce |
|
BLAKE2b-256 | c5864a609256475ae971db540919d86c5f246f617c4d6d8a1d1d24a184e23d32 |
Hashes for signalflow-0.4.8-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3efc6d265c9cd4002d6c0cd62876eac1e8e7c90e0958bc64170dfa31a66dabbf |
|
MD5 | 1c15e3431b6d249e61d99acbd134ea9c |
|
BLAKE2b-256 | 9431ae8fa51e10df51c5dd8f1ba2772498fa07c87c5ec3a48c3f54d02a05f1d5 |
Hashes for signalflow-0.4.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0e18a3a280c010478cbd9c3e63ded16a8e00306264c654c4b37629a8ae60723 |
|
MD5 | 28cbbbef5b9a06ae8cae9f27beb1a35c |
|
BLAKE2b-256 | fa7f58ad8da174c0a52e146e04d5cb3da2d4fc2bcfe3fc1d09077275ad05cd8e |
Hashes for signalflow-0.4.8-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be0660c85da40fdf9de78da716ee932f0b67e5fa2ba5fcfd0d5d3866717b036f |
|
MD5 | a8339b8cba9c23b7c0b0675be6cfc994 |
|
BLAKE2b-256 | 44e8e4e86a439cea86e2d59c24460626a8d7b15c9253f6d937d3af84a03f28c2 |
Hashes for signalflow-0.4.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 244ebaa83cdfbd14fa9b2780cfbfbb53fd5bce5f1ca4950866350b1c32911c92 |
|
MD5 | 3d3f9e268932f339ef401278999dd2cc |
|
BLAKE2b-256 | 62b36927cc0e3ce0c0297c83600c94d1c75a79e640aa3fbe7dfe1081f500e9a2 |
Hashes for signalflow-0.4.8-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7f270a31c8a92d11cdc0b4b45863626ae34b019deaf525eb9dd673f3f49dd91 |
|
MD5 | 4a9e9e07855ed0ded51329f6ce50d659 |
|
BLAKE2b-256 | 21df71bab7b1821675a71f26219a895d56eaeb36feaba43290e58a7acad17a53 |
Hashes for signalflow-0.4.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4605877564f56d7ce5dbb164ab87ce486311f0b52336dd994d97b354e561039b |
|
MD5 | 685fcce236c0ddd9c5ee372de3c67258 |
|
BLAKE2b-256 | f1361d257fad3463b4d3fd28e01c5dc98a6162f83925dd0c45c8a4120e528784 |
Hashes for signalflow-0.4.8-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66223ce663527e8d186815aa9125a24329c8ae4a5c5a8adf628be5c6da94fefa |
|
MD5 | 5ac133ed58d2f5e664309ba07ac91b71 |
|
BLAKE2b-256 | fc660a1be9c056a58e7c53b91e00564d3642202a696dae565961fc4222ece34c |