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. Its core is written in C++11, so it can also be embedded into other cross-platform applications.
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:
- 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.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 124638c9d8633064476a69ae2264857aa631b059a6324e1a1838eb7f2bc60d32 |
|
MD5 | ae4afdc593189bc32a36fd5a87c7417c |
|
BLAKE2b-256 | c33400bb0d1a42781e123637c68b0dc7a6626c285b1ef14d5b1b7b898714cb68 |
Hashes for signalflow-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb6d59ebcac311c4c73084aa567b9ae849b830fe578a9e0906be2d7f0f2ef69d |
|
MD5 | 98a0bc3647612b8644773dc282fcdd6a |
|
BLAKE2b-256 | 74856694a0abf2785300e12af95a79bd7a2e19a816d052043a71d22505857cc9 |
Hashes for signalflow-0.4.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3859758ad0057ceef3e381efbd1bc154280bafba1872874153010f86e90c609e |
|
MD5 | 7b3a8dc26769ce133de23e15be20a56a |
|
BLAKE2b-256 | 62f8556129e4711f9b83c4bd10c5df3181ccf1e2e314ddc6bbd148989bf00883 |
Hashes for signalflow-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26daa3876ab35b94e43b423d53f7aab753197e3a9af6db64bfd0cf1dbbae2a56 |
|
MD5 | b240722f1dbec5f7a19bdf98b251162d |
|
BLAKE2b-256 | e73bb442450ceee28a478b96fa53839b8fe9f2cc60ac7bec9b0f57b03ad626fa |
Hashes for signalflow-0.4.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 905421a97e46f5d8670950c2ee3b1468165514ab4e217285e8fbdf44b1af39e7 |
|
MD5 | 5f4301e078227bc90ecdfdcf864417d2 |
|
BLAKE2b-256 | 68d5a5642d26465ef78d4bc6778ca67802fc7b72c628f6e09797a2d02f81debe |
Hashes for signalflow-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a64a83698813d3bfd05f34bd0b2f35bc3844b1657a729cdc7df7d3b41765a32 |
|
MD5 | 1b27356a4e65b7eedbb9aafbc37ec99a |
|
BLAKE2b-256 | dad8b539a0ea204c34429d6db2cce439ebb7fa40403621b78d10899b9055cbf5 |
Hashes for signalflow-0.4.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0043ce1e8f9f60aba1111f9c0283d8140da65a14ba67abd24c7863bcc7eb13d0 |
|
MD5 | 6079ba03e94748532e15bcb17e2744e7 |
|
BLAKE2b-256 | 772193cb9fa1d096a738e65cf5c72674941a7d4411d74a880a5a01cbb0286b4c |
Hashes for signalflow-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e47be37a25fe4bc03f840660d2b33b030880afa3f7bf6efb3e24b39bf094a4c8 |
|
MD5 | 28f9f63d42789e8593c2d83f9c8bb5f2 |
|
BLAKE2b-256 | 77e7d9d505f28f80db22cd0dcc2b1ca1525147ffc4bb4b0f1f7c026107fa83a6 |
Hashes for signalflow-0.4.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a5f8201ff71ee8709d676f472c114338ee9b3fbc4f90ac01809b944801088a4 |
|
MD5 | 132ea3b848a72d84dea8082211b34203 |
|
BLAKE2b-256 | 87e45844b8fadacc0b9d1ef419672b2ba7209b5c68a50bf1ca3d93a58768d594 |
Hashes for signalflow-0.4.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d433b1280ce4f47894298b7e8e5133e08e3c75c1e8811013b3ae522a68bb4d68 |
|
MD5 | 2c43e0c70822c24dc40ca174ebad3fbf |
|
BLAKE2b-256 | 7cfa0b94e6ecd3a9189ae486cc61ca5010d35383ce8a5534d4dc34a6acb196c3 |