» LivvvveOSC
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.


Credits: http://liine.net/livecontrol/ableton-liveapi/liveosc/


This repository allows extensive remote control of your Ableton Live set either on the same computer or in a network.
It has been tested to work on both PC and Mac; and alongside TouchOSC, the Launchpad, Akai APC, etc.

I tested with a Ableton Live 8 (both Demo and Registered) and with Max4Life .

Its purpose is to quickly prototype interactive music applications. Almost any control you see in the Clip View of Ableton can be accessed remotely with this collection of tools. Consult the Demo Patch to see some possibilties to read both query the GUI and set various controls.

One of the most valuable properties of this approach is the automatic quantisation when triggering a clip.


1. Copy the "MIDI Remote Scripts\LiveOSC" into your Ableton Live's "Resources" folder.
2. Edit LiveOSC.py in Line 65 to the correct Hosts and Ports (for example to, if you want to test it on localhost ports 8008 and 8009)
3. Start Ableton Live
4. In Options->Preferences->MIDI Sync select LiveOSC as a Control Surface
5. Load a set (e.g. "New in Live 8 Demo")
6. Start "Demo Live Ableton.v4p" and start playing around
7. If you want to add LivvvveOSC to your own project, add the repository in the root (Alt+R)

Gundel and Dagobert

These helper plugins are useful to get a consistent data set of all current elements of any live set automatically, especially with the Iterate plugin. With these you might be able to build a dynamic GUI in vvvv, similar to TouchOSC' Live Control.
While Dagobert (German name for Scrooge McDuck) saves and orders everything he gets his hands on, Gundel (German name for Magica de Spell) is more picky to very certain items. All three plugins are meant to circumvene the lack of spreadability of the modules (and of LiveOSC of course).

However, you can identify the IDs of the controls you want to change by trial+error. If you do you will not need either the plugins nor most of the nodes (like Query, Info, Devices, etc)

Indexing of Elements

While wrapping the possibilities of LiveOSC into v4 modules i did a few design decisions.

Every element of Ableton Live has an ID, that can consist of one, two or even three integer values, depending on the type of the element.

  1. Scene - Integer counting from 0
  2. Track - Integer counting up from 1
  3. Mastertrack - Integer 0
  4. Return - Integer counting down from -1
  5. Clip - TrackID to which the Clip belongs; Integer counting up from 0
  6. Device - TrackID, MasterID or ReturnID to which the clip belongs; Integer counting up from 0
  7. DeviceParameter - TrackID, MasterID or ReturnID to which the clip belongs; DeviceID; Integer counting up from 0

I found that in Ableton there is a strong divide between tracks and return tracks, even though they have a lot in common (both can be muted, the volume can be controlled, sends can be manipulated, devices like vst effects can be added, etc). I started to treat them transparently where I could (especially in the case of Devices).


The biggest Limitation is within Ableton and its way to handle the Python script. Since Python (unlike Max) is called by the GUI Thread and not by the Engine thread, it is not real time. You will experience jittery latency between 1 and 16 ms. For time critical purposes it might be wise to add your own Midi constructions. Also the script might affect the performance of Ableton on older computers.

I wrapped almost everything into modules, the only commands i neglected are the ones to show or highlight stuff in the Ableton Live GUI. Also there might be some Listeners I omitted that are more useful to someone than i anticipated. Consult OSCAPI.txt in the LiveOSC script directory. There are some commands missing in LiveOSC, especially aweful is the lack of polling the number and names of return tracks.


This contribution is kindly supported by intolight ( http://www.intolight.de ) and the ECAS Network ( http://icasnetwork.org/ ).


14.12.11 [12:35 UTC] by velcrome | 2259 downloads
Version 1.1
Show 1 older revisions

Older Revisions

24.06.11 [16:00 UTC] by velcrome | 1118 downloads
Version 1.0

lasal 26/06/2011 - 11:54


mrboni 06/07/2011 - 20:32


veevee 07/07/2011 - 00:55


Lokua 18/01/2012 - 16:34


casinowilhelm 09/05/2012 - 03:28

Hi there- seems to be a typo or problem in the latest version - the host addresses and ports in liveOSC.py and also the example patch may be set to your PC.

Anyway that's not my problem - I can't get this to work. Just using localhost. Neither version (old or new) seems to communicate with live - it seems to send messages on UDP but ableton doesn't react.

I've followed the instructions several times and tried with different versions of vvvv, and tried localhost and fixed IP addresses.
Any known problems e.g with live 8.2.8 by any chance?

I tried on two different computers running win7. One running a firewall, one not.


nissidis 30/07/2012 - 19:18

I had the same problem, this is what you have to put in line #65 of LiveOSC.py file:

self.oscServer = RemixNet.OSCServer('',9001, None, 9000)

PS: send to port 9000 and receive from port 9001 (your localhost in your patch shall be

mrboni 11/12/2012 - 16:48

Is it possible to use liveosc to control play/stop/goto time?

velcrome 16/12/2012 - 01:42

play and stop works of course. goto time is not possible, because basically you can only interact with the clip view of ableton, not the arrangement view- there simply is no time in the clip view.

youngjae 21/12/2012 - 20:11

nnniice! i will give it a spin on live 8.3 with max 5.1. touchOSC worked with audio or midi track but when the plug in placed in any track, it blocked the audio on that track from what I experienced. really to see ableton -vvvv revived.

phn 11/09/2013 - 04:41

Hi...Im trying to obtain a clip status...I'm using address /live/clip/info but somehow this is not working.

This is what I made so far:

Thanks in advance!

dobyhal 24/05/2016 - 23:09

hi, great and useful stuff ! thanks for all your efforts !

lately i was trying to set the time signature for a whole ableton LIVE project. unfortunately this doesn't seem to be defined in the python code.

the "OSCAPI.txt" file says it's possible to set a CLIP's time signature with "/live/clip/signature" but what about the project's time signature ? would it be possible to add/change some lines of code to get there ? or is there some other trick to achieve this ?



velcrome 25/05/2016 - 11:39

hey dobyhal,

i cannot check right now, but i think this was possible with the new and improved LiveOSC toolkit shipping as girlpower in the next vvvv-Message pack, even without modifying py files.

Look into the /live/time command

KUZMA 15/05/2019 - 17:48

Hi there!
I can't see Liveosc control surface within Ableton 10 preferences after 3 steps of installation instruction. It simply doesn't support last live version?
Could you advice please is there some way to make it work?

anonymous user login


~4d ago

micha_nismus: worked out, thank you very much ! :-)

~5d ago

joreg: @micha_nismus does this help? https://youtu.be/xkrbT45BgOQ

~7d ago

micha_nismus: thx joerg. Can anybody help me why i can't see any renderer in gamma? thx :-)

~12d ago

joreg: @micha_nismus instead of discord, we're using matrix, see: chat

~12d ago

micha_nismus: searching for a public discord server for vvvv

~19d ago

joreg: Join us for the 20th #vvvv meetup on January 19th: https://thenodeinstitute.org/event/20-worldwide-vvvv-meetup/

~19d ago

joreg: @schlonzo re "SDSL support" did you see the Shader wizard? or do you mean something different?

~19d ago

joreg: @LCA not aware, but the HIKVision sdk comes with a c# demo. need help for a commercial project? get in touch via devvvvs@vvvv.org

~21d ago

LCA: Has anyone ever made a HIKVision GigE work with vvvv?

~25d ago

schlonzo: What's the shortcut Anton used? =)