Graph-based live audio manipulation engine implemented in Python
Synchrotron is all of the following:
- DSP (Digital Signal Processing) engine
- Audio router / muxer
- Synthesiser
- Audio effects engine
- MIDI instrument
- And more!
It's still very much a baby project, but make no mistake, it can already be pretty powerful! Take a look for yourself:
Hack Club Showcase - Synchrotron |
---|
Synchrotron has been designed from the ground up with maximum flexibility and interoperability in mind, and as such, there are many ways to use Synchrotron and interact with the server.
This includes (click images to enlarge):
Blender-inspired node editor UI | Fancy TUI Console | REST API | Python API |
---|---|---|---|
The possibilities are endless - whether you wish to render audio to a WAV file on a remote server, or embed the Python package as a dependency for your desktop app. Use Synchrotron as a Python library, interact with its webserver's endpoints through an HTTP client, or use the elegant Synchrolang syntax to control it with just your keyboard.
Synchrotron can be installed from this repository directly via pip:
pip install git+https://github.com/ThatOtherAndrew/Synchrotron
Of course, uv - the faster pip alternative - is also supported:
uv pip install git+https://github.com/ThatOtherAndrew/Synchrotron
From the Python environment you installed Synchrotron in, you can start the server:
synchrotron-server
To start the console for a TUI client to interact with the server:
synchrotron-console
Synchrotron provides a Python API, DSL, and REST API for interacting with the synchrotron server - the component of Synchrotron which handles the audio rendering and playback.
For the humans, you can find a web-based user interface for Synchrotron at ThatOtherAndrew/SynchrotronUI.
I recorded myself at a pretty garden in Queens' College in Oxford yapping about dependency graphs: https://youtu.be/qkNqOcH2jWE