Graph-based live audio manipulation engine implemented in Python
Project description
Synchrotron
Graph-based live audio manipulation engine implemented in Python
[!NOTE] For the frontend web interface to interact with Synchrotron, go to SynchrotronUI (GitHub).
What is it?
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.
Installation
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
Startup
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
Usage
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.
Random YouTube Video
I recorded myself at a pretty garden in Queens' College in Oxford yapping about dependency graphs: https://youtu.be/qkNqOcH2jWE
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synchrotron-0.1.0.tar.gz.
File metadata
- Download URL: synchrotron-0.1.0.tar.gz
- Upload date:
- Size: 13.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86a0a674007a9a98bb309727cafa76c6ce364a3500c360867fb8296f10ec6a82
|
|
| MD5 |
d9e03908d062901a4136914079d5427a
|
|
| BLAKE2b-256 |
c8d13fa057f527016d073ffaef0ee312e05ffc761622f6eec74f9ab8fc78a658
|
Provenance
The following attestation bundles were made for synchrotron-0.1.0.tar.gz:
Publisher:
pypi.yml on ThatOtherAndrew/Synchrotron
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
synchrotron-0.1.0.tar.gz -
Subject digest:
86a0a674007a9a98bb309727cafa76c6ce364a3500c360867fb8296f10ec6a82 - Sigstore transparency entry: 349908698
- Sigstore integration time:
-
Permalink:
ThatOtherAndrew/Synchrotron@41029bdcfc02fa128bd4abacd35cb1821caa3e68 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ThatOtherAndrew
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@41029bdcfc02fa128bd4abacd35cb1821caa3e68 -
Trigger Event:
push
-
Statement type:
File details
Details for the file synchrotron-0.1.0-py3-none-any.whl.
File metadata
- Download URL: synchrotron-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77f095da0ea633190ee33ea35320e7a51570915f36469530813dc7d006e46472
|
|
| MD5 |
f46f203f0319aa8dfcfafc138abc9825
|
|
| BLAKE2b-256 |
a2758794b462566181b63bc93435e6fa026fd50a4a17dbc18c3455c6d2339b95
|
Provenance
The following attestation bundles were made for synchrotron-0.1.0-py3-none-any.whl:
Publisher:
pypi.yml on ThatOtherAndrew/Synchrotron
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
synchrotron-0.1.0-py3-none-any.whl -
Subject digest:
77f095da0ea633190ee33ea35320e7a51570915f36469530813dc7d006e46472 - Sigstore transparency entry: 349908718
- Sigstore integration time:
-
Permalink:
ThatOtherAndrew/Synchrotron@41029bdcfc02fa128bd4abacd35cb1821caa3e68 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ThatOtherAndrew
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@41029bdcfc02fa128bd4abacd35cb1821caa3e68 -
Trigger Event:
push
-
Statement type: