TDAbleton - Scene monitor (previous, now, next)

Hello guys! I started to venture into TDAbleton and I am very impressed with so many possibilities, it motivated me to redo my entire audiovisual project using TD as the maestro for everything.

Right now what I’m trying to do is have TD show me information about scenes the Ableton Live project as the project runs.

In the TD Demo project I saw that part of what I need is already demonstrated through the ‘AbletonSong Callbacks’, where we have the information of the scene that is running and also the one that was triggered.

Help me to also have information about the next scene and the last scene played. In short, I’m thinking something like this:

[LAST] - Verse (Previous Scene)
[NOW] - Bridge (Actual Scene)
[NEXT] - Chorus (Next Scene)

Can you help me? Thank you in advance and congratulations to everyone involved in building this amazing tool!!

bye

Is this just adding and subtracting one from current scene? You can build that with mathCHOP, constantCHOP, or callbacks.

Or is there something more complicated about knowing previous and next scene?

It is probably not optimized well, because I duplicated 3 times the same operator, but they have low CPU usage, so I think it is acceptable. I hope this is what you were looking for :slight_smile:

TdAbleton previous,now,next example.toe (159.2 KB)

Thanks for the help Ivan!
I thought it would be simple, could you detail how it would be in practice? I’m still figuring out how it all works.

Thank you for your help!! But from what I understand your suggestion will show the clip of the correct tracks? What I want is the visualization of the scenes.

Are you working in CHOPs or Python? Oh I see you have an example let me look at that…

Oh that’s not your example, that’s @Kubbuk’s suggestion. I think I might need to see a simple example of what you’re looking for to help…

1 Like

Ok @ivan, my project is still in the beginning, still in development. Here is also a print of the open project that illustrates well what I’m looking for.

The goal is to convert this information into an OSC text signal for Resolume Arena.


TDAbletonDemo.158.toe (213.2 KB)

Something like that?
I add 1 empty cell because it’s not working properly on 0 index name without it.

TDAbletonDemo.toe (228.2 KB)

Perfect @kubbuk!! Thank you very much!
I will study your project to understand the path you took to reach this result. This will be of great help!

Now it’s time to move on to the final stage, have thisis informations transmitted via the OSC, I’m looking for that, but I’d appreciate it if you could help.

I managed to complete the project! Thank you @kubbuk for your dedicated time helping me!
Based on your solution, I understood the path taken and adjusted the project to the final objective. I’ll share the project here in case anyone is interested in this or something similar.
I’m going to continue my studies to improve my knowledge but the little contact with TD already showed that from now on I won’t do anything without him :slight_smile:
Thanks,
TDAbletonDemo.toe (213.6 KB)

2 Likes

Friends I’m back :slight_smile:
I could open another topic but as the subject is related to this project I will deal with these new questions here, if you think it is better to open another topic let me know ok?

I am moving forward in the construction of my project. And really enjoying the result!! I came across 2 situations that I would like your help.

1st
Is there any way for the list of scenes to be updated as they are edited in Ableton Live? For example, when I create a new scene or reposition one, TD doesn’t update the list. I need to open the project again for the update to take place.

2nd
I’m setting up a control in Open Stage Control to trigger the scenes, I have a window with several buttons and each one of them is responsible for triggering the scenes, like, buttons from 01 to 24 = scenes from 01 to 24. They are already properly addressed via midi with Ableton Live (I chose this path for now because I still don’t have the knowledge to trigger these commands through TD). In addition to the buttons, I have text boxes with the respective names of the scenes, these names are received via OSC by TD, using the same technique discussed in this topic. The way I’m doing it is working, however, I’m using many “datexec” operators, one for each text box. Is there no way to use just one operator? Something like this:

def onTableChange(dat):
oscstring = op(‘scenes’).cell([X],1)
oscpath = ‘/text_[X]’

op(‘oscout_sceneNames’).sendOSC (oscpath, [oscstring])
return

[X] = equals the cell number and also the number of the corresponding text box.

Did I make myself clear? Thanks!!

If scenes aren’t updating in realtime that is a bug in TDAbleton. I will look into it.

Regarding DAT exec, you can put many DAT names or use wildcards in a single datexec DATs parameter. You can then decipher the results by examining the dat argument in the callback.

Thanks for the help @Ivan !

Regarding the Wildcard in Dat exec could you point me in the right direction?

This is the script I’m using:

def onTableChange(dat):
oscstring = op(‘scenes’).cell(1,1)
oscpath = ‘/text_1’

op(‘oscout_sceneNames’).sendOSC (oscpath, [oscstring])
return

As a result I am sending the name of scene 1 to the OSC address “/text_1”.

In my control in Open Stage Control I have 24 trigger buttons for the scenes. What I did was duplicate the DAT Execute operator and I changed the cell corresponding to the following scene and so I went, something like this:

Button 1 = Scene 1
def onTableChange(dat):
oscstring = op(‘scenes’).cell(1,1)
oscpath = ‘/text_1’

op(‘oscout_sceneNames’).sendOSC (oscpath, [oscstring])
return

#######

Button 2 = Scene 2
def onTableChange(dat):
oscstring = op(‘scenes’).cell(2,1)
oscpath = ‘/text_2’

op(‘oscout_sceneNames’).sendOSC (oscpath, [oscstring])
return

Button 24 = Scene 24
def onTableChange(dat):
oscstring = op(‘scenes’).cell(24,1)
oscpath = ‘/text_24’

op(‘oscout_sceneNames’).sendOSC (oscpath, [oscstring])
return

Thanks,

And the scenes don’t actually update in real time in TD when we edit them in Ableton Live.

Scenes update perfectly for me in current version. Can you upgrade your TDA? Also, what version of Live are you running? If you can send me your .toe and live set (collect and save) I will test your particularly setup. ivan@derivative.ca

As far as the DAT setup, it would help me a lot to look at what you have. So, again, post your toe file or email it to me and I can more easily tell you how to adapt.

Hello @Ivan ! With your confirmation that the scenes are up to date, I created a new project and copied and pasted the components and the scene update started working. I can’t say what was different about the other project. But glad it’s resolved! Thanks!!

As for optimizing DAT Execute components, I’ll post the file here for you to take a look at, everything is working but I believe there are ways to optimize the use of DAT components.
TDAbleton-MyProject.toe (150.0 KB)

I’m advancing little by little with the project and I’m already very happy with the result, as it’s already 90% of the way. To reach 100% I need to understand how to interact with Ableton Live through TD, for example, I need to have buttons that increase and decrease the bpm of Ableton Live, I would like to do this through TD, with buttons that will be activated by the OSC command of my controller. I believe it is possible right?

In the same way the triggers of the scenes, for now I solved this with midi buttons directly from my controller, but it would be really cool to have all this command management inside the TD.

@Ivan I came across something that I don’t think should happen. When you can take a look :wink:

When we create a scene or do a repositioning or any other editing (such as changing the name), the value of “clip_trigger_quantization” is changed to “none”. Strange isn’t that!?

I do see a bug with quantization! Thank you.

This file has all your executes working in one. I can’t test because I don’t have your project, but this should do the same thing your original file does, with only one tableexecDAT. If you need help understanding what I did, search “for loops in Python” and “f-strings in Python”.
TDAbleton-MyProject.1.toe (150.7 KB)

Hi @Ivan thanks a lot for your help but I think you forgot to upload the file :slight_smile:

derp, sorry. Edited post to include it