abletonSONG last_started_scene and follow actions

Not sure if this is a bug, or just all that the LOM provides, but I have a main-track with scenes that utilize follow-actions and clip groupings. ie scene3 either repeats, or triggers scene7-9. And scene9 always goes back to scene3.

The problem is that abletonSONG COMP’s channel ‘last_started_scene’ doesn’t correctly update to scene3, if after scene9, scene3 chooses to repeat.

I’ll try to say it another way, because its a somewhat particular use-case.

LOGIC:
scene 3 = 50/50 (scene3/scene7)
scene 7 = 100% (scene8)
scene 8 = 100% (scene9)
scene 9 = 100% (scene3)

If scene3 chooses to repeat, then last_started_scene remains at value 9 until scene7 is triggered, even though scene3 could repeat numerous times.

A problem this creates is that it becomes difficult to tell if scene9 has ended.

Thanks for any insight.

The LOM is a bit tricky with scene changes but I’ll look into this for the next round of TDAbleton development. For now, if follow actions aren’t working, you might try the technique where you include a track with a silent midi note that is unique to each scene, then track scene changes by looking for notes on that track.

Thanks for the quick reply Ivan.

The dummy-clips idea helped solve my issue. But just for clarity, follow-actions are working for me, just not detecting all changes inside of TDAbleton.

Also I tried using the abletonSong Callbacks, and the results are similar. The playing-clip or SceneStarted does not update in the instance I laid out previously.

Thanks again Ivan.

Thanks for heads up. I totally understand the problem, it’s just going to take a bit of a deep dive to fix, but it’s in my todo! It may well be an issue with LOM, but I will try when I get back into some TDAbleton changes.

1 Like

I was able to get this working a little bit better. The change will be in the next experimental build.

Here’s the gotcha: Live only gives info about the triggered scene, it doesn’t tell you when the scene is actually started. This is because a scene is never actually “playing”… it’s just a macro to play a bunch of clips. That last started scene is really just a guess based on triggers turning on and off. So, if you trigger the same scene by hand multiple times before it starts, TDA is going to think it started on the second click. Similarly, if you trigger one scene and then another before the first actually starts, TDA is going to think the first one started.

That said, follow actions will give the proper started scene, and manual scene starts will work as long as you let the actual scene start before you add another one.

I think the best workaround if this gotcha causes trouble for you is to have a dummy clip in each scene that you never play manually and only use to track whether the scene is playing. You can also try to create your own system with abletonSong component’s “onSceneTriggered” callback. That callback is what everything is based on and it comes directly from Live.

It’s the best I could do with the info that Ableton gives!

Thanks Ivan. This seems like a cool feature. I was using the dummy-track workaround just as you explained and it has been working well for my program.

That said, follow actions will give the proper started scene, and manual scene starts will work as long as you let the actual scene start before you add another one.

Are you implying you’ve created separate callbacks for ‘started scenes’ and ‘manual starts’ ?

Either way, thanks for all your hard work, can’t wait to see the new tdableton.

ps. Not sure this is of much use, but I ended up adding an ‘arm’ toggle to abletonTrack. Eventually I ended up using an automation envelope inside of Live, but maybe someone can find a use for it.

tdAbletonTrack_AddArm.toe

Comments inside note, the added python line changes.

No there aren’t separate callbacks. There’s no way for me to tell them apart. What I’m saying is that the “last_started_scene” channel will be incorrect if you manually trigger scenes too quickly. By “too quickly” I mean you click to trigger a scene before the last triggered scene actually started.

1 Like