TDAbleton - TouchDesigner Ableton Connection

Just curious if its possible to control Ableton Track Sends via any of the TDableton components?
Seems the closest thing is Pan control using the AbletonTrack component.

Is it simple to add Send control, or does this require a deep dive into the extension class.

Some more info on my goal - I’m looking to build a multi-channel audio mixer in TD to control sends in Ableton to route audio to a speaker array.

Thanks in advanced for any suggestions

I’m pretty sure you’ll be able to get at it with the abletonValueListener component. Send a screenshot of the exact UI element you want to control and I can be more helpful.

I looked into the abletonValueListener component, and took a look at how its used in the example project. The example project shows the metronome being controlled, and seemingly to do so requires “SONG” to be entered in the Append To LOM Expression field, and “metronome” to be entered in the Property field.

If navigate through the drop downs to select the Send parameter I want to control it shows default LOM and default return addresses above and below the previously described fields. Must I specify what to append or what the property is? The entries I’ve tried haven’t worked.

Thanks in advanced.

@chris1144

Hey sorry, I overcomplicated it for you because I misunderstood what you were after. Just use the abletonParameter Component. Set it to your track, # Mixer # device, and whichever Send you want. Currently you have to use one abletonParameter component per Send.

@Ivan

Ahh - thanks for pointing that out! Seemingly didn’t dig deep enough into all the components. Will be using at least 12 abletonParameter Component’s to control all the sends :confused:

Since we’re on the topic, could you clarify the abletonValueListener Component, and when its best practice to use this?

If you just want to watch the sends, you can get all of them with abletonDeviceParameters set to # Mixer #. If you need to control them, you’ll have to use individual abletonParameters. My next update will include a Max device that controls multiple parameters, so be on the lookout for that in the next few days.

The abletonValueListener is made to access obscure parts of the Live Object Model that don’t have specific components associated with them. To use it effectively, you have to learn how to write the expressions that access the value you want. You will see the expression created by your LOM parameters in the Default Expression parameter, then you can append code to that with the Append To LOM Expression and property Parameters.

Very much looking forward to that multi-parameter Max device. Thanks for developing that!

Re abletonValueListener: Got it. I figured it was for the more individualized parts of live. Will look more into appending LOM parameters incase that’s needed. Thanks for explaining.

No problem. Will be easier to explain with a specific case if you run into one. Basically, the expression created is sent directly to Ableton Live’s Python, so will look just like something created using this: julienbayle.studio/PythonLiveAP … ive9.6.xml, with the addition of a few macros I created for convenience, notably “SONG” which gives you access to the Song.Song object in that documentation.

Uploaded 1.11.1 -

-abletonMapper component: use standard Ableton mapping system to control parameters from TouchDesigner. This method is faster, smoother, and does not create undo steps.
-fixed bug where abletonRack, abletonLevel, and abletonMapper don’t work in master or return tracks

Ivan - Just connected the TDA Mapper - this is exactly what I was looking for!
Many thanks for developing this :slight_smile:

Just uploaded 1.12.0

  • Fixes problems with unfound Max devices
  • Fixes problems with clip names not being updated
  • Fixes error messages when renaming cuepoints
  • Features for playing clips and scenes in abletonSong and abletonTrack
  • Add clip status callbacks to abletonTrack
  • Add play and stop callbacks for abletonSong
  • Better hiding of CHOP channels on macro and level devices

BACKWARDS COMPATIBILITY CHANGES:

  • abletonChainOrTrack component is now called “abletonChain”. To properly update
  • abletonChainOrTrack components from old versions, change their clone sources accordingly before update.
  • abletonChainParameter has been removed in favor of putting all chain features into abletonParameter. To properly update abletonChainParameter components from old versions, change their clone sources accordingly before update.
    For packaging reasons, the Rack and AudioAnalyzer devices have been moved into TouchDesigner/TDA Project. Also, the TDA_Rack_OSC and TDA_Rack_MIDI_OSC devices have been moved into the subfolders of that project. If Live has trouble finding devices in your set from a previous version, use the ones found in TDA_Project.

Using the demo ableton live project (or a new one with with locators/cuepoints created) and using a brand new TDAbleton, the “last_cuepoint_passed” parameter doesn’t update until you enable “Include Time Data”, whereas when i use the demo .toe you provided, the cuepoint channel updates fine even without the “Include Time Data” parameter enabled.

The cuepoints do depend on “Include Time Data”. You’re either looking in the wrong place or magic is afoot!

Hi!

I have some errors appears, when selecting track in abletonTrack1 and abletonChain1 components. Tried to use demo projects, but the same problems.

TD 2018.25000
TDAbleton 1.12.0
Ableton 9.7.1

thx for feedback.

Uploaded 1.13.0 to top of thread

@ m1gUn0v: please try this one

1.14.0 posted. Sorry for the rapid fire updates! Two issues in one day.

Some important changes that could affect older projects:

  • TDAbleton now requires a TDA Master component on the master track of your Live set. Added a dialog that automatically creates one if it’s missing.
  • Changed default OSC ports to avoid Resolume (and other programs’) defaults. 8887 is now the default TD port. 8001 is now the default Ableton port. If you have trouble connecting with older TDAbleton projects, double-check that your tdAbleton master component in TD and your TDA Master device in Live have matching port settings.

tnx!

1.14.0 works fine. \m/

Hi Ivan,

I think I found a bug in 1.14.0.

I have an Ableton session and some scenes have the same name, in this case ‘STOP’.
Now in the AbletonSongExt SongInfo[‘scenes’], there is only one scene with the name ‘STOP’ and because of this, the total number of scenes is lower then in my Ableton session.
This leads to an ‘list index out of range’ error in line 138 of the AbletonSongExt, when I fire scenes above a certain number (which makes sense).

So, it looks like there is a problem with duplicate names in Ableton scenes, that needs to be handled.

Thank you for this great component!

Cheers, David

I just encountered this as well, not sure if its a Max4Live API/Ableton problem though.

Also just wanted to mention, the cuepoint/locator system in Arrangement view is so good for triggering things in TD, but the band i made the lighting system for uses Session view, so currently I think the best way to get the triggers synced up in TD is to count the bars in Ableton like a dweeb and just have TD wait for that specific bar/beat count.

I’ve also done a little addition of my own to convert beats/sixteenths/time into extra channels for eighths and triplets and some other weirder rhythm stuff (3/4 over 4/4? i’m not really sure the correct musical theory terminology for what they do). It’d be cool to share some user-made extended features and hear how everyone uses TDAbleton.

Also, it would be nice, if the popup window, that opens, when the Ableton session is missing the TDA master plugin, would have a cancel button. It can popup, if you switch Ableton sessions, but you don’t necessarily want to create the TDA master plugin…