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, LiveAPI.org 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.

LiveAPI.org

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 LiveAPI.org 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:

  • LiveOSC: A UDP network based Open Sound Control (OSC) interface that allows both sending and recieving of OSC messages through a Python callback system. Any task that can be performed with the Python API can be triggered as well as monitored. By Nathan Ramella and Rob King.
    LiveTelnet: Telnet server access the Python CLI for exploration and programatical manipulation of the Live Python API. By Rob King.
    Ableton Live API Documentation: Full documentation on whats available in the Ableton Live Python API reprinted with permission from Ableton AG. Original extraction from runtime objects by James Andrew.

    Thoughts about what this might mean for the Live community? Will (hopefully) Ableton continue to push for core implementations of important features relative to clips, MIDI routing, and hooks for future OSC devices? What might this mean given Ableton’s announcement of a partnership with Cycling ’74 (in that case, an official one)? And what do you personally want to do with it, if anything? (Anyone happen to be a Python coder out there?)

  • http://www.corporation.tk corporation

    i've been following his development of the vci-100 vst…

    it sounds really really nice. I can't seem to access his site now (http://www.remix.net/weblog/) but he had a post with a nice .mp3 of a scratching demo…

    this might just make me drop traktor and go with live exclusively, since all i use traktor for is scratching.

  • http://www.jatunmusic.com dead_red_eyes

    Does Ableton support multiple time signatures yet?

    I really wish that Albeton had the ability to cut samples live without them playing right after wards. And then you could trigger them in and out with a MIDI footpedal. I was under the assumption that all you can do is make a loop live, and it will keep playing.

    Albeton seems to be the rave these days … but until they support Multiple Time sigs … I'll stick with Reason 3.0.

  • Chris

    This is awesome news. Every music program I ever used I've wished for an API, but none more than Live. Goodbye custom pd/Max midi dispatchers?

    I'd also like to implement some new track/clip display features, but I want to run those within Live's current screens, so that may involve hacking internals more than an API.

    Of course, it's windows only, which sort of rules out my live rig. Guess I'd better get cracking on mac support!

  • Chris

    dead_red_eyes: you can record a clip and just stop. It requires two pedals, though, one to launch a clip and one to hit the stop button on the whole track. Or the aforementioned custom midi dispatchers to fake it with one pedal.

  • http://indiedanceparty.com DJ McManus

    I'll name my first born after the hacker who can allow two waveform tracks to be displayed at the same time.

    For DJs seeing two track waveforms flowing along instead of just the one would help tremendously.

    Oh the beat juggling I could do!

  • http://www.jatunmusic.com dead_red_eyes

    You have to stop the whole track?! That really sucks.

  • http://www.myspace.com/noou (noou)

    That is truly awesome!

    Love you LiveAPI team!

    Stefano

    (noou)

  • http://cleansmanship.blogspot.com TheNullSet

    Ah…it seems we are one step closer to the realization of the Reaktor-like modular ubersoftware I always dreamed Live could be.

  • http://www.stefangoodchild.com/ Stef Stabilizer

    @dre

    Not the whole project but the stop button on the audio track you are recording onto.

    Which sucks considerably less. :-)

  • http://www.jatunmusic.com dead_red_eyes

    Ahhh that's cool Stef, thanks for clarifying that.

    Stefano!!! It's Scott from "Jatun". Crazy to see you post on here my friend! I didn't know you were a CDM member … awesome!

    What a very small world.

  • http://blog.whats-your.name carmen

    kind of cool, but not until theres SWIG to the entire core lib, live doesn't cost $500 (or at least comes with the source code for that price) and runs on an OS that doesn't suck like linux or freeBSD – i'll stick with porting xsample~ to LV2 thanks..

  • http://www.createdigitalmusic.com Peter Kirn

    Hang on, there, Carmen:

    I'm all for Linux, and all for open source, but you'd say Mac OS X sucks? (Any particular reason?)

    Second, this is an independent project, not really a fully open-source effort. I think the advantage is running on top of this robust, feature-laden foundation that is Live — and getting the advantages that come from hybrid open source/commercial-proprietary efforts, which to many may be worth the price.

    That said, fully open projects I believe are worthy, too. It's just apples to oranges.

  • http://www.myspace.com/audioelectronic Gustavo

    dead_red_eyes:

    Technically live can support ANY time signature, since each clip is an independent loop. If YOU understand how time signatures work, then its trivial to set up loops that all have different and arbitrary time signatures and play against each other. The only downside is that the quantize has to be set to smaller incrememnts, so you have to be more on top of it. You can get around that by learning about clip actions, which can allow you to move from loop to loop at any point.

    Also for those talking about Live playing a sample as soon as it's recorded – get a multi-channel interface, and record to a track that's not assigned to the main outs. You can even monitor in headphones like that. And you need a total of about 6 buttons on a controller to record to any number of tracks, select clips, start playback, and stop playback. Google Kid Beyond for an idea of how this can be set up. Not hard to do if you actually take the time to learn the program.

    Dj McManus:

    If you do your homework with Live, you NEVER need to look at the waveforms while they're playing. Think of preparing all your clips beforehand as picking the records that go in your crate. Live is not emulating 2 turntables and a mixer – and if that's what you're after, then use something like Traktor. Live has its own conventions, that allow you to go much further than a traditional DJ set up. There are well documented procededures for doing beatmatching in realtime to turntables, controlling the pitch & tempo with a slider, and using the nudge features on the clip playback. If you're running into limitations, then you're not seeing the whole picture.

    As someone that has been producing electronic music and DJing for 20 years, I can tell you that if you're saying the limitations of Live are preventing you from making or mixing music… it's really your own lack of effort. Live makes almost everything (except inspiration) TRIVIALLY easy – compared to how it has always been done. 5 minutes of intelligent searching with Google or on the Ableton forums are enough to find almost ANY info that you need.

    Now… back to the LiveAPI. This is an incredible resource for anyone that wants to break away from using Live in the traditional manner, and wants to build their own interface or controller.

    I cant wait to be able to use Live WITHOUT a visible laptop in between me, and the audience.

  • Simon

    Carmen

    OS X is based on BSD.

    I hope they do get round to a os x build soon :)

  • http://www.createdigitalmusic.com Peter Kirn

    @Gustavo: You're right, but to me this is all the more reason that Ableton should add the ability to change overall time signature quantization in scenes, just as scenes can change master tempo. The fact is that clips are not dependent on time signature, that you're really just adjusting the grid of the overall program — all the more reason to be able to change that via some mechanism other than mousing over to a number box and changing it manually. Scenes could do this without disrupting the rest of the program.

    I'll be interested to see whether there's a kludge in the meantime using Python.

    Note, though, to everyone else, that you in fact can mix clips of different time signatures, and that the Arrange view is perfectly capable of doing mixed time sigs; for some reason, Ableton got the reputation that it couldn't — not true.

  • Pingback: mäandern at ad|ae|qu|at

  • http://indiedanceparty.com DJ McManus

    Gustavo … uhhh … good luck with all that.

    Anyways, I'd love to see two waveform windows in Live at the same time. That would be an ideal situation for the way that I want to use it.

    If anyone has any hacks, hints, or suggestions please let me know. I've been using it for a couple years and often use hotkeys to switch between two clip views. I'd love to have two there in tandem.

    Please, no condescending rants or unsolicited bios.

  • http://www.createdigitalmusic.com Peter Kirn

    @DJ McManus: That's about as frequently asked a question as Live gets. I don't think there is a solution for *viewing*. What you're doing is probably your best bet. The other alternative now will be loading something like Deckadance as a plug-in, and focusing on Live for doing less traditional things, though I know that's a poor replacement.

    Even if you created a plug-in for display, Live doesn't display more than one plug-in view at once.

  • http://indiedanceparty.com DJ McManus

    I've found Deckadance to be very unstable. The track view window which shows the entire track as a whole doesn't offer adequate detail compared to the corresponding windows in Traktor, or even Virtual DJ.

    Maybe if you could run two instances of Live on the same machine and link them together?

    That might be an easy enough hack which would solve things for alot of users AND bring my post back to the post which generated this thread AND it will drive Gustavo crazy.

  • http://www.myspace.com/audioelectronic Gustavo

    Dj McManus, please continue to bump into the metaphorical sliding glass door while I sip my cocktail and laugh. :)

    I took the time to describe my particular approach to Live DJing (along with lots of "biased" commentary) on my myspace blog.

    Regardless of my personal opinions, I invite you to experiment, and discover ways of working that suit your personal approach. The LiveAPI can only make more personalized approaches more feasible.

    Good luck!

  • Wildo

    LiveApi.org website is down since 2 weeks now. Any body has feedback about the liveAPI project recently?

  • http://www.julienbayle.net julien

    as wildo, i'm looking for information about liveapi website.

    I would like to create some script between live & processing (processing.org)

  • Pingback: CDM + Yuri » Futuristic Music Design Challenge: Meet the Competitors, Judges

  • Pingback: Create Digital Music » Teaser: ammoBox Project Digitally Scratches … What?

  • hnetu

    Is there a way to make it so Live can read torq, final stratch, and serato files so that the warp makers from live can be used in those progams? I want to stracth the old stuff i warped in Live.

  • http://zetablogger.blogspot.com/ ra saite

    Hi,

    seems like the classic porject is not developed anymore:

    (from the page)

    NOTE TO SELF I need to point the liveapi URLs at MDK's project to reflect that I'm not doing anything with this anymore.

    yeah there is another project here:
    http://www.assembla.com/wiki/show/live-api/cD0bua
    @julien: i am also interested to creating something for processing

  • brian

    i think its caus of the announcement of max for live :(

  • Pingback: The Creation Engine No. 2: An Open Source, Guitar Mounted, Multi Touch, Wireless, OSC Interface for Ableton Live

  • Pingback: LiveAPI – addi.tv

  • http://tavateaweb.com tava tea

    Of course, it’s windows only, which sort of rules out my live rig. Guess I’d better get cracking on mac support!