Live API - getting the track that my device is placed on

discopatrick's icon

I know that using the live.path object I can get any track by number, e.g.

live_set tracks 0
live_set tracks 1
live_set tracks 2

But what if I want my device to get the track it has been placed on? I cannot hard-code any particular track number, I need to get it dynamically. How do I do this?

discopatrick's icon

Hmm, just googled

"max for live" get track number

I'll check that first.

Jeremy's icon

Check out this post for a solution (you only need the stuff on the left of the patcher, ending at 'zl.slice 4'.

discopatrick's icon

Thanks Jeremy. That's quite similar to the solution I found on the link I posted above.

Thijs Koerselman's icon

I need to figure this out too, but both links are dead...

Just a hint would be enough I guess.

discopatrick's icon

The easiest way to get the current track is to use [live.path this_device canonical_parent]

The canonical parent of a device is always the track it is placed on, according to the docs.

Thijs Koerselman's icon

Ah yes now I remember I've use that before :) Where is this documented though? The LOM reference only lists live_set, live_app and control_surface as path starting points...

discopatrick's icon

See under the headings 'Root objects' and 'Canonical Parent'.

Thijs Koerselman's icon

Thanks! All is clear now :)