Daniel Jones presented this project at NIME 2023:
AbletonOSC: A unified control API for Ableton Live
This paper describes AbletonOSC, an Open Sound Control API whose objective is to expose the complete Ableton Live Object Model via OSC. Embedded within Live by harnessing its internal Python scripting interface, AbletonOSC allows external processes to exert real-time control over any element of a Live set, ranging from generating new melodic sequences to modulating deeply-nested synthesis parameters. We describe the motivations and historical precedents behind AbletonOSC, provide an overview of its OSC namespace and the classes of functionality that are exposed by the API, and discuss new types of musical interaction that AbletonOSC enables.
Previously, I have attempted an integration between Tidal and Bitwig via BitwigOSC:
My memory is a little weak, but I remember some limitations/frustrations being:
- Unable to achieve sample-level sync of Tidal MIDI / Audio recording, messing around with
nudge
- Lack of bidirectional OSC comms
- BtiwigOSC written in Java, using official API but not possible (for me) to alter as needed
I am now evaluating whether to embark on a new effort with AbletonOSC.
In comparison to before:
- Many existing Tidal x Ableton projects that could be built upon / integrated
- Many more users of Ableton than Bitwig
- Many more Python programmers than Java (at least in this domain)
- AbletonOSC seems quite sustainable given its current developers/users, and compatibility with the Live Object Model
tidal-listener
seems to be mature enough now for bidirectional comms, see e.g. tidal-gui GitHub - polymorphicengine/tidal-gui: trying to make a GUI for tidal with threepenny-gui and codemirror- Also possibility of using Vortex which is written in Python, and integrates with Sardine which uses Link Clock Vortex - Sardine Documentation
A few questions for folks here:
- Would you be interested in using such a project, if so what for?
- Would you be interested in contributing development time to such a project, and if so what aspect(s)?
- Would you be more interested in Strudel / Tidal / Vortex / integration?
I have my own sense of how I would use this, but I believe it could be quite flexible for different approaches. And if we went the Vortex route, being in the Python ecosystem opens up for many possibilities regarding creative AI/ML.