Live API

“If only Live could …”

Hard-core Live users dream of more than just an extra feature widget or two. They imagine a world in which they can hack and alter the way Live itself behaves. They want the ability to develop software that works with Live at a low-level. In short, what they want is an SDK. It’s a beautiful vision, but it would create challenges for Ableton: they’d have a whole new support burden, and any change to the program would mean having to update the SDK, in parallel. If only there were a way around this problem. If only you could use a scripting language like Python to make developing advanced Ableton Live tools easier. If only you could harness a whole community of programmers and users to undertake testing and support — you know, like have the source … but … open … like open-source.

Announced early this morning, is just that. And even if you’re not, say, a Python programmer, you may soon be reaping its benefits, whether using a more powerful clip setup in performance or hooking up a Monome controller.

In short: it’s an API. It’ll run apps that the larger Live community could use, for tasks like using OpenSoundControl for control. It’s not affiliated in any way with Ableton, in that they’re not supporting it, but it is being done with their blessing (so they’re not about to shut it down). The project is open source. You can script in Python. You can share projects. You can expect some things will break on a regular basis — definitely keep around those old versions of Live, to be safe, when you upgrade. But you can also expect this to be a huge landmark for the bleeding-edge end of the Live community.

One bit of bad news: it is Windows-only for the moment, though the developers are Mac fans, and while Mac support seems to be more complex, it is planned — there’s just no date yet. (Okay, Mac Python gurus, go help them!)

Rob King (who did the Telnet bit, among other things) writes CDM:

I thought I should give you a heads up on a new project that I have been working on over the past couple weeks, and am pretty excited about. It’s all detailed in our release below, but basically Nathan Ramella, James Andrew, and I have uncovered a Python API in Ableton Live which gives you access to a nice chunk of the internals of Live. We have developed a couple apps so far such as a Telnet server to access the Python interpreter, and a easily extensible OSC Server to control live. And best of all, these new ways of controlling live just appear as extra remote devices in Live!

We all feel that this opens up Live significantly for developers, and hope to see some really interesting new interfaces for Live coming about. Rest assured I’ll be updating PlayLive to take advantage of this, and support features like automatically updating track/clip/controller names, and a new midi-loopback-less setup. No more need for a client and server side of PlayLive!

The exciting part, of course, is that last bit: what you can do with it: finally get around the lack of OSC support and make clips and MIDI routing more powerful. This seems like it might create a new developer/user relationship: users can actually experiment with new features that might eventually influence official development.

By the way, while all of you have evidently been making wishes, here’s an interesting tidbit about Nathan Ramella: “His next project is a custom VST for the Vestax VCI-100 with special focus on features for Ableton users.”

And what about Ableton? I’d actually heard some of the Abletons publicly bat around the idea of some sort of API, and the developers said as much. But the concerns about support seemed to hold the company back — and wanting to do something and actually being able to take the leap are two different things. The result, in fact, seems to be even better, because the entire source code for this project is open, and the whole endeavor is fully community-based and independent.

In the end, the developers got Ableton’s blessing. Rob writes, “We’ve actually been in touch with the CTO of Ableton, and they’ve actually been quite supportive in all this and even offered to answer our questions about the API. We also gave them a preview of our works in progress, and worked out a disclaimer with them. ”

The SDK includes: