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, 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:
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
signalflowpypi 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:
- The Python Software Foundation for funding development of learning materials
- JetBrains for providing the IDEs used to develop SignalFlow
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)
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.