synchrotron


Namesynchrotron JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryGraph-based live audio manipulation engine implemented in Python
upload_time2025-08-05 00:18:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords audio-processing dsp live-coding synthesiser synthesizer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Synchrotron

Graph-based live audio manipulation engine implemented in Python

> [!NOTE]
> For the frontend web interface to interact with Synchrotron, go to [SynchrotronUI](https://synchrotron.thatother.dev) ([GitHub](https://github.com/ThatOtherAndrew/SynchrotronUI/)).

---

## 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](https://youtu.be/wlhBz62t2zE)                                                                 |
|----------------------------------------------------------------------------------------------------------------------------------|
| [![Hack Club Showcase - Synchrotron](https://img.youtube.com/vi/wlhBz62t2zE/0.jpg)](https://www.youtube.com/watch?v=wlhBz62t2zE) |

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                                                              |
|-------------------------------------------------------------------------|-------------------------------------------------------------------------|-------------------------------------------------------------------------|-------------------------------------------------------------------------|
| [![](https://i.imgur.com/MXSbFcv.png)](https://i.imgur.com/MXSbFcv.png) | [![](https://i.imgur.com/t924jJd.png)](https://i.imgur.com/t924jJd.png) | [![](https://i.imgur.com/AUAx4xs.png)](https://i.imgur.com/AUAx4xs.png) | [![](https://i.imgur.com/j5xTHEa.png)](https://i.imgur.com/j5xTHEa.png) |

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](https://packaging.python.org/en/latest/tutorials/installing-packages/):

```shell
pip install git+https://github.com/ThatOtherAndrew/Synchrotron
```

Of course, [uv](https://astral.sh/blog/uv) - the faster pip alternative - is also supported:

```shell
uv pip install git+https://github.com/ThatOtherAndrew/Synchrotron
```

## Startup

From the Python environment you installed Synchrotron in, you can start the server:

```shell
synchrotron-server
```

To start the console for a TUI client to interact with the server:

```shell
synchrotron-console
```

## Usage

Synchrotron provides a **Python API**, **[DSL](https://www.jetbrains.com/mps/concepts/domain-specific-languages/)**, 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](https://github.com/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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "synchrotron",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "ThatOtherAndrew <andrew@thatother.dev>",
    "keywords": "audio-processing, dsp, live-coding, synthesiser, synthesizer",
    "author": null,
    "author_email": "ThatOtherAndrew <andrew@thatother.dev>",
    "download_url": "https://files.pythonhosted.org/packages/c8/d1/3fa057f527016d073ffaef0ee312e05ffc761622f6eec74f9ab8fc78a658/synchrotron-0.1.0.tar.gz",
    "platform": null,
    "description": "# Synchrotron\n\nGraph-based live audio manipulation engine implemented in Python\n\n> [!NOTE]\n> For the frontend web interface to interact with Synchrotron, go to [SynchrotronUI](https://synchrotron.thatother.dev) ([GitHub](https://github.com/ThatOtherAndrew/SynchrotronUI/)).\n\n---\n\n## What is it?\n\nSynchrotron is all of the following:\n- DSP (Digital Signal Processing) engine\n- Audio router / muxer\n- Synthesiser\n- Audio effects engine\n- MIDI instrument\n- And more!\n\nIt's still very much a baby project, but make no mistake, it can already be pretty powerful! Take a look for yourself:\n\n| [Hack Club Showcase - Synchrotron](https://youtu.be/wlhBz62t2zE)                                                                 |\n|----------------------------------------------------------------------------------------------------------------------------------|\n| [![Hack Club Showcase - Synchrotron](https://img.youtube.com/vi/wlhBz62t2zE/0.jpg)](https://www.youtube.com/watch?v=wlhBz62t2zE) |\n\nSynchrotron 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.\n\nThis includes (click images to enlarge):\n\n| Blender-inspired node editor UI                                         | Fancy TUI Console                                                       | REST API                                                                | Python API                                                              |\n|-------------------------------------------------------------------------|-------------------------------------------------------------------------|-------------------------------------------------------------------------|-------------------------------------------------------------------------|\n| [![](https://i.imgur.com/MXSbFcv.png)](https://i.imgur.com/MXSbFcv.png) | [![](https://i.imgur.com/t924jJd.png)](https://i.imgur.com/t924jJd.png) | [![](https://i.imgur.com/AUAx4xs.png)](https://i.imgur.com/AUAx4xs.png) | [![](https://i.imgur.com/j5xTHEa.png)](https://i.imgur.com/j5xTHEa.png) |\n\nThe 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.\n\n---\n\n## Installation\n\nSynchrotron can be installed from this repository directly via [pip](https://packaging.python.org/en/latest/tutorials/installing-packages/):\n\n```shell\npip install git+https://github.com/ThatOtherAndrew/Synchrotron\n```\n\nOf course, [uv](https://astral.sh/blog/uv) - the faster pip alternative - is also supported:\n\n```shell\nuv pip install git+https://github.com/ThatOtherAndrew/Synchrotron\n```\n\n## Startup\n\nFrom the Python environment you installed Synchrotron in, you can start the server:\n\n```shell\nsynchrotron-server\n```\n\nTo start the console for a TUI client to interact with the server:\n\n```shell\nsynchrotron-console\n```\n\n## Usage\n\nSynchrotron provides a **Python API**, **[DSL](https://www.jetbrains.com/mps/concepts/domain-specific-languages/)**, and **REST API** for interacting with the *synchrotron server* - the component of Synchrotron which handles the audio rendering and playback.\n\nFor the humans, you can find a web-based user interface for Synchrotron at **[ThatOtherAndrew/SynchrotronUI](https://github.com/ThatOtherAndrew/SynchrotronUI)**.\n\n## Random YouTube Video\n\nI recorded myself at a pretty garden in Queens' College in Oxford yapping about dependency graphs: https://youtu.be/qkNqOcH2jWE\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Graph-based live audio manipulation engine implemented in Python",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/ThatOtherAndrew/Synchrotron/issues",
        "Homepage": "https://synchrotron.thatother.dev",
        "Source": "https://github.com/ThatOtherAndrew/Synchrotron"
    },
    "split_keywords": [
        "audio-processing",
        " dsp",
        " live-coding",
        " synthesiser",
        " synthesizer"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2758794b462566181b63bc93435e6fa026fd50a4a17dbc18c3455c6d2339b95",
                "md5": "f46f203f0319aa8dfcfafc138abc9825",
                "sha256": "77f095da0ea633190ee33ea35320e7a51570915f36469530813dc7d006e46472"
            },
            "downloads": -1,
            "filename": "synchrotron-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f46f203f0319aa8dfcfafc138abc9825",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 10982035,
            "upload_time": "2025-08-05T00:18:54",
            "upload_time_iso_8601": "2025-08-05T00:18:54.499601Z",
            "url": "https://files.pythonhosted.org/packages/a2/75/8794b462566181b63bc93435e6fa026fd50a4a17dbc18c3455c6d2339b95/synchrotron-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8d13fa057f527016d073ffaef0ee312e05ffc761622f6eec74f9ab8fc78a658",
                "md5": "d9e03908d062901a4136914079d5427a",
                "sha256": "86a0a674007a9a98bb309727cafa76c6ce364a3500c360867fb8296f10ec6a82"
            },
            "downloads": -1,
            "filename": "synchrotron-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d9e03908d062901a4136914079d5427a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 13921180,
            "upload_time": "2025-08-05T00:18:57",
            "upload_time_iso_8601": "2025-08-05T00:18:57.038448Z",
            "url": "https://files.pythonhosted.org/packages/c8/d1/3fa057f527016d073ffaef0ee312e05ffc761622f6eec74f9ab8fc78a658/synchrotron-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-05 00:18:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ThatOtherAndrew",
    "github_project": "Synchrotron",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "synchrotron"
}
        
Elapsed time: 0.41147s