The /live/song/get/track_data command queries multiple tracks and clips in a single OSC message
AbletonOSC’s /live/song/get/track_data accepts (track_index_min, track_index_max, property1, property2, …) and returns a flat tuple of values for all requested properties across the track range. Properties must be namespaced as track.name, clip.name, clip.length, or clip_slot.property_name. The response is ordered track-by-track, then property-by-property within each track, with clip data interleaved per clip slot. This is the correct approach for syncing a large visual client to the current session state on startup — a single round-trip instead of one OSC message per track×property.
Examples
/live/song/get/track_data 0 12 track.name clip.name → returns a flat list: [track0_name, clip0_0_name, clip0_1_name, …, track1_name, …]. Parse by knowing the number of tracks and clips per track.
Assessment
Write the /live/song/get/track_data call to retrieve the name and length of every clip across tracks 0–3. Why is this preferable to issuing individual /live/clip/get/name calls on startup?