Newbie: Addresses in Ableton Live

Hello everyone,

I am a complete Newbie at Open Stage Control. Having browsed through the topics in this forum I am quite intimidated by the level of programming knowledge that everyone here seems to have. I am just a somewhat advanced computer user, but I don’t know to code at all.

Here is where I am stuck: I managed to successfully set up Open Stage Control on my Mac following Jorge Vargas’ tutorial on Youtube. I managed to establish the communication between Open Stage Control and Ableton Live: I created two push buttons that send note values: address /note; preArgs [1,60] and [1,64] respectively. After loading a softsynth in Track 1 in Ableton, I can now play two notes with Open Stage Control. They sound as long as I push the button and stop when I release it. So far everything is fine.

However, now I am stuck: I added a fader to my newly created template, but I have no idea what address I need to put in to control the volume a track in Ableton Live. I have tried different things like /track_1/volume or /control/fader1 but the console always comes back with an error message like the following: ERROR: MIDI: invalid address (/control/fader1).

Where can I find the addresses that Ableton understands for controlling different parameters? Or what am I missing here?

I apologize for what is probably a very stupid question to all of you - but I really am stuck here…

It seems you’re mixing up two different kind of messages : OSC and MIDI. OSC messages can have any address and values and can be sent on network targets only (“ip_address:port_number”). MIDI messages are limited to very specific addresses as defined in the documentation, these are converted to actual MIDI messages and can be sent to midi targets only (“midi:device_name”).

To find what Ableton expects for controlling its parameters you’ll need to dig its documentation or maybe ask for help on a forum dedicated to this software.

Thank you very much for your quick response. It was very helpful.

It seems that I need some specific Max4Live devices to use OSC with Ableton Live. I will try them out as soon as I can.

The communication via MIDI does work well and I have now managed to control faders via the midi learn function in Ableton Live.

I have tried the M4L Livegrabber device and I got a fader to work.The communication with Ableton via OSC is now established! I am very happy. Now I can build my template.

Thank you very much again for your help - and for this great software, for that matter.

Great ! In case you’re using v1, keep in mind it’s still in alpha and things are subject to change until the stable release.

I use 0.49.12, but I am already looking forward to v1 :smiley:

Hi, in Ableton there are many ways to control things.

-one is of course the manual mapping mode, but its static

-then there are control surface scripts, way more powerful and dynamic.
those are included in Ableton for many controllers, or some ship the script with the Hardware.
to make your own you need phyton programming skills, and there is no official documentation.
theres a paid app to make your own scripts easily:
theres also a simplified version provided by Ableton where you just have to edit a textfile:
its limited but already way better than mapping manually,
for example you can set 8 device parameter controls and parameter bank buttons.
they will automap to your selected device with the famous “blue hand” like an APC40
its very easy to setup.

-then finally there is Max for live where you can do pretty much anything.
M4L has native Access to Live’s API, there are examples included on how to control almost
everything in Ableton
even OSC = OpenSoundControl which is the holy grail for controlling stuff
and allows you to use O-S-C OpenStageControl which is the holy grail of control Apps :wink:
you can start to learn max here:
Max actually goes way deeper than Ableton itself but is fairly easy to learn since its a visual
programming Language, not limited to that tho.
the tutorial is a bit old and max now looks different but its still great to learn. after that you will find
every info you need for OSC in the official forum, its huge, theres an answer for everything. just use
the search function


Thank you very much for this detailed explanation. So far I have used manual mapping and Livegrabber, but blue hand control with a simple script is already on my todo list. I am not sure when I will take the time to learn M4L, but I am definitely interested. Thank you for pointing me to all these resources. I am quit excited about all the possibilities that open up before me…

Thanks for you help @endo !

Hi guys!
I am total newbie in OSC and scripting, so.. sorry in advance for stupid questions ))
I created the button with this setup first:
on 127
off 0
mode tap
address /note
preArgs [1,55]
target midi:OSC

I mapped it to Record button in Ableton Live. And got what i needed:

  1. First tap - start recording
  2. Second tap - disarm recording
    But the issue is that "/note" means that i borrow one of the key on my midi keyboard, so i can`t play with this key.

After that i changed address to "/control". And each "tap" now is starting recording, and i can`t disarm it. Yes i know that i can use stop button for this, but i want to understand how it works, so it will help me understand OSC better. How can i recreate the same behavior as with "/note" address?
Also i tried to change "tap" to "toggle" with "/control" address. In this case it works also fine:

  1. First click enables recording in Ableton (OSC button is enabled)
  2. Second click disables recording in Ableton (OSC button is disabled)

P.S. Ableton manual says that:

  1. A "Note On" message toggles the switch`s state;
  2. Controller values 64 and above turn the switch on, while controller values below 64 turn it off.

And if it is not difficult, please tell me about my question above. Thank you.

I'm not sure what is your problem but for me a simple button works fine
buttonRec.json (2.1 KB)

Hi Zoltan. Thank you for help!

With /note and /control addresses the same button acts differently. So i was interested, how to achive the same result ))
I also searched about basics of JS. And all of this is a bit easier now to understand )) Without basics the user manual is like rocket science