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

LivvvveOSC

misc ableton-live liveosc max4live osc remote control
Credits: http://liine.net/livecontrol/ableton-liveapi/liveosc/

about

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.

Installation

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 127.0.0.1, 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).

Limitations

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.

Credits

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

download

LivvvveOSC.zip
14.12.11 [12:35 UTC] by velcrome | 1795 downloads
Version 1.1
Show 1 older revisions

Older Revisions

LivvvveOSC.zip
24.06.11 [16:00 UTC] by velcrome | 902 downloads
Version 1.0

lasal 26/06/2011 - 11:54

cool

mrboni 06/07/2011 - 20:32

wowski

veevee 07/07/2011 - 00:55

yay!

Lokua 18/01/2012 - 16:34

nice!

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.

thanks!

nissidis 30/07/2012 - 19:18

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

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

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

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 ?

best

oliver

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

Shoutbox

~3d ago

joreg: In case you missed: We're starting with free bi-weekly introductions to #vvvv next week in #berlin free-vvvv-intro-workshops-this-summer-in-berlin #creativecoding

~4d ago

guest: uno|https://platform.uno/

~11d ago

joreg: @beyon too bad. but from now on we have a fixed schedule: every 4th tuesday in the month! hope this helps to plan evvvveryones visits

~11d ago

beyon: joreg: ah, bad timing, I would be happy to attend but I doesn't look like it will work out

~11d ago

joreg: @beyon any chance you can add 2 days to stay? would be great to have you at the (not yet announced) #vvvv meetup on the 23rd!

~11d ago

~12d ago

beyon: I'll be in Berlin July 13-22 - anything interesting going on in that time frame?