M4L API path troubles (I'm an idiot)

billybobjobo's icon

OK. This has got to be simple, but I haven't been able to figure it out from the docs.

I'm trying to create a patch that talks to a rack and deactivate all the devices in the chains I'm not using. (I have some monster racks with a lot of cpu-expensive fx in each chain that I need to switch rapidly between.)

I can get the program to set values to parameters of objects, so I got that part right. But it fails when these objects are in chains in the rack.

The parameter I want to set lives in:
the first track
the second device (a rack)
the first chain in the rack
the first device

(My M4L patch is the first track first device.)

so I send this to live.path in my m4l device:
path live_set tracks 0 devices 1 chains 0 devices 0 parameter 0
best I can figure from the LOM doc, but it doesn't work

in fact, when I run getinfo on various paths to see where I'm messing up
I get "no object" when I give:
path live_set tracks 0 devices 1 chains 0

I must be doing something silly. I also don't know what info/files it would be helpful to attach to this post.

I've been scouring the internet and docs for over a day on this one with no avail, so hand holding would be very appreciated! :)

Stephane Morisse's icon

Do you really need M4L to do this ? Can't you use envelope automation ?

Basvlk's icon

go to the parent device path and use 'getchildren'.

Feed those path Id's into a live.object and send the object a 'getpath'

This way, rather than guessing what the right path would be, LIVE itself is telling what exists

billybobjobo's icon

Thanks guys!

I was playing with getpath, getchildren and kept finding nothing.

Turns out I AM an idiot. My (admittedly) old version of Ableton did not support chain paths. So I finally got around to upgrading, now everything works like a charm.

I apologize for the unnecessary post but really appreciate everyone's help! :)