Liveapi - how to receive clip name

Hi all,

I want to read the name of the clip that is playing in Ableton Live in a specific channel (track).

LiveAPI should allow me to do that easily. However I’m very new to all of this.

The question is: Has anyone tried something with LiveAPI and vvvv? I’ve searched the forum and no one mentioned LiveAPI before.

For those who haven’t tried it yet, but want to help:

  1. The LiveAPI is a collection of objects representing some parts of Ableton Live. It’s accessible through a Python script which is put inside a specific folder where Live is installed.
  2. There is one script called LiveOSC, which defines some OSC addresses and arguments, and works as an OSC server (?)
  3. Using vvvv I sent it messages like “stop”, “play” successfully with OSCEncoder and UDP client (port 9000). The requested actions were executed - Live stopped and played.
  4. Using vvvv I listen to LiveOSC messages, like “/remix/echo” (sent when LiveOSC is selected inside Live in settings - when it’s initialized)

The problem I have is I don’t know how to “receive” the answer to a message I send to address “/live/name/clip” with arguments (0,0). I’m not even sure I’ve connected the type and arguments pins correctly. Can someone have a look?

I even managed to change the tempo and “rename” the clip, so I must be really close.

I guess if someone knows python, it can probably be done to send the names of the playing clips in all the channels, at regular intervals (100ms) to a specific port and hostname/ip address. That way there would be no need for this “request/response” that I’m aiming at now.

liveapi test.v4p (27.2 kB)

hello all

dragoljub,
i can’t really help you…cause my OSC, python skills are close to 0.

but do you think it’ll be easier with Live8 to receive these informations ?
i’m currently doing the beta test
but without the Akai apc40 and the Max for Live add-on
damned there’s no VVVV for live add-on…steve jobs fault :)
i think Live api is still the only way to receive Live clips
position/states/name etc…(no native OSC support in Live8)
let me know if you get good results with your current trick!

btw : for realtime audio+video sampler/looper
the new live8 device called “Looper” is your friend :)

uh i didnt know about the live api, i’ll try to look into it

circuitb you’re beta testin live 8! tell us more :)

i hope the communication with vvvv will be easier with the max for live add-on…

what is the official live api page? couldnt find it on ableton.com

circuitb: but do you think it’ll be easier with Live8 to receive these informations?

http://www.ableton.com/extend
It may be, I just don’t know enough about it to be sure one way or the other. Nobody knows much, it’s mostly speculations. However, I shared my view on this topic here http://groups.google.com/group/liveapi/browse_thread/thread/ceb078e02787adb3/cfdeec70e3339677?hl=en#cfdeec70e3339677

So that also kind of answers defetto’s question about the official LiveAPI page. There is none. Some time ago, there was something like that, but it was closed. Even then it wasn’t endorsed, you know. It was just a test to see what kind of response they would get, I think… Today, there are two main places for LiveAPI info: http://groups.google.com/group/liveapi/ and http://www.assembla.com/wiki/show/live-api and that is what mdk says as well here: http://forum.ableton.com//viewtopic.php?p=815420#815420 (the ableton forum is not so active on this topic as the google group is)

On the assembla site you can download some packages people created, or you can “check out” the most current code directly from the SVN repository. (Tortoise SVN is good for that) The original package is aslo in the SVN.

Now that I said all that, I can report some news. I managed to get something out of Live. Using a modified version of the LiveOSC, I succeeded in getting the clip names. One user posted his modified version which finally helped me get something: http://forum.ableton.com//viewtopic.php?p=653039#653039 I think it required me to install python. However I cheated. I installed 2.5, and only renamed the folder python25 to python22. It was great to see it working! Unfortunately, it only worked when I send the message without arguments, and then the script sends all the clips’ names. When I specify which track/clip I want, it does not send anything. Maybe it was because of my cheating with the python installation, or the Live version was newer and some part of the LiveAPI changed (I used 7.0.3).

OK! So that’s as far as I have come. I haven’t worked on that more, no time, and also the party for which I was preparing that patch has passed, so I felt less pressure to make something work.

I am still interested because I think song names can be nicely integrated with animation and other visual effects in vvvv, to provide a better connection to music for the audience.

There are other possibilities. There is a new folder “_Framework”, in some newer version of Live (7.0.14 and newer?), which has some new python code, better organized etc. And also, there is a MIDI interface to LiveAPI, called ApiMidi. I wanted to try that too, but was very dissapointed when I could not find a way to send sysex MIDI messages from vvvv. Some people have created Max patches which use ApiMIDI! http://www.youtube.com/watch?v=Kr_pHkF376s At least I think it was ApiMidi, again not sure.

I hope I shed some light on this subject.

For remote control of some of Live’s functions LiveAPI can still be used. Max 4 Live will probably allow the same stuff, but using special Max elements. I still think the primary Max 4 Live feature will be sound creation and manipulation, not control. We’ll have to wait and see. It should be out before summer, or at least during this year.

Maybe that text helps as well… I really don’t know Max, so I still plan to use vvvv and LiveOSC (LiveAPI) for some of the things he talks about there. Eventually. No time now :)

tnx for the links, i’ll have a look ;)

Official Live API

Max for Live also provides objects that allow you to access and modify the inner workings of Live. Modify the tracks, clips, notes, names and values, selection states—and pretty much anything else you can see or hear in Live. This API also allows you to access controller hardware via Live, creating new mappings that can completely repurpose a hardware device. Even if you don’t know what an API is, you can still use devices that other people have built and apply them to your Live setup.

well… i can’t wait :)

héhé,

thanks for your lights
I really don’t know Max, so I still plan to use vvvv and LiveOSC (LiveAPI) same here :)
after reading some topics on the MFL add-on some cycling people claim that it should be possible to open a complete video patch made in Jitter and use it directly in Live…
wait and see…
the new Live8 Devices are great,especially the Looper
but for a complete control over a vvvvidéo patch there’s still some missing features :looper don’t send position/duration informations
of its audio buffer, you still have to mess around with the main unstable MidiClock output.
and it becomes tricky for backward or pitched audio/video playback.

i really hope that with max for live it’ll be possible both :

to control live from outside (via osc, should be possible trough max), so you can use for example vvvv spreads to control sounds… i wonder if it’s possible by the way, to have a spreaded sound in live, like sanch was doin in chuck… you know what i mean? does anybody know if it’s possible? i hope it will with mfl

and to send out datas to vvvv, for example audio spectrums from different tracks, or whatever track names and status

midi clock is workin fine for me so far…

I also had this idea during the weekend about the spectrums of different channels, but it was a different idea.

Why should we wait for Max 4 Live, when maybe we can do some of those things ourselves, or ask people from the vvvv group to consider doing something. The idea is to have vvvv as a dll, a VST effect dll to be precise. I know there are probably lots of problems related to how vvvv’s main engine works and it probably won’t be possible right away, but consider how cool that would be! You could have an node which represents the audio input of the VST plugin. Then you could connect that to the FFT node (somehow), and you would get the sprectrum of that channel in the exact position where the VST is located! You could probably send that data over OSC to another instance of vvvv on another computer for the rendering if you didn’t want to influence the performance of Live.

I would also like a VST instrument version of the plugin! I could put it in an instrument rack, so it would get the same notes! as the VST plugin that is generating the sound.

I don’t know if it is possible, but being able to create parameter inputs on the plugin at run-time would be great: you open the vvvv interface of the plugin, create an IOBox, add description, and that would create the input. Something like the OscGlue plugin, but without needing to edit the config file and re-instantiate the plugin.

I don’t know enough about VST technology, maybe someone can say if my ideas are totally unrealistic or not.

Of course, we would still not be able to “control” Live, but we could do some stuff with audio and MIDI, and that’s a good thing.

don’t no more about this. just a link: http://crca.ucsd.edu/~jsarlo/pdvst/

yeah man your idea is sweet, but i guess it’s something really hard to achieve (or impossible?)… let’s see what devvvvs say

regarding the possibility to get the spectrums of different channels in vvvv, i just found something that hopefully will make it possible

http://www.ntonyx.com/vac.htm

didn’t test it yet, but i will soon, and if it works it’s a big step… but still it would be better to send the spectrums straight out of live

i’ll be waiting for mfl anyway, and i’m just going through the basic max5 tutorials, so i’ll be kinda prepared when it comes out

VST/VSTi/runtime : great idea…i’m sure it’s already in the wish-list :)

i use VAC to send the audio from live and analyze it in vvvv(FFT)
but there’s some performances issues…regarding the number of channels the quality and Latency…

1st you need to use a multi client asio : Asio4All

2nd : the VAC config is a bit tricky to find a good compromise
but anyway it’ll take some cpu resources

3rd : try different asio latency (with Asio4All you can set the latency independently for each driver)
low latency for audio input/output (5-10 ms)
medium latency for audio analyse (25-40 ms)

i’ve quite good results with this kind of setup
1/Live set with many VST/VSTi’s and audio clips
2/a set of controllers( wiimote/gamepad and BCR2000)
a bunch of audio reactive VVVV patch recalled by PGM change
3/Midi-ox and VAC for the audio/midi “links”
4/an eye on the CPU Meter :)

another method : the Wormhole vst plugin you can transmit audio over network or between applications(127.0.0.1)both ways

circuitb are you on skype?

I didn’t know pd had such a thing, it’s interesting! I only wish I could learn to use it. The thing that drives me away, whenever I install it and try to start patching and learning, is its interface. (The same applies to Max). It’s only then that I realize how good vvvv has done it!

Ntonyx VAC seems like a fine solution indeed, maybe I’ll try that one day :)

the interface of max5 is quite cool actually

Just wanted to let anyone keen on Live + VVVV know that some folks over on the Monome forums have got LiveOsc rocking. I tested the newest version with VVVV and seems to all work fine out of the box. Link

Looks like fun :)

Oh only thing should mention is you do need to have Live 8 for this to work.

yep you can send commands to live…
but when i try to change the clip names in live
vvvv doesn’t reflect these changes until i reset the control surface driver or the main asio driver…

unfortunately the tempo informations can’t be received with /live/tempo…live doesn’t send any signals thru UDP when tweaking the left top tempo digits