TDAbleton - TouchDesigner Ableton Connection

Version 1.8.0 is up on the top post.

  • abletonClipSlot COMP for working with clip slots and MIDI clips (read/write notes)
  • various bug fixes and optimizations

Thank you Ivan for this great addon to TD!

I am trying to figure out, how to fire a scene in Ableton from TD.
Can someone give me a hint on how to achieve this?

Thanks.

@django

Good feature! I haven’t built a utility for that, but it is very easy to do using the powerful “RunRemoteCode” method of the tdAbleton component:

RunRemoteCode lets you run Python commands in the MIDI Remote Script. For a mind-blowing list of possibilities, see: julienbayle.net/PythonLiveAPI_do … ive9.6.xml

If you want to experiment with this stuff, the fastest and easiest way is the Ableton Console: derivative.ca/wiki099/index. … ment_Tools

Thank you Ivan, it works like a charm and the possibilities of running remote code are indeed mind blowing.

But I am not a 100% sure, how these commands translate.

To call “Live.Scene.Scene.fire()”, I have to run “op.TDAbleton.RunRemoteCode(‘SONG.scenes[0].fire()’)”

How would I call for example “Live.Application.Application.View.focus_view()”?

So, views are something I haven’t really dived into, but I can give you some starting points.

First, there are the convenience variables set up for you, listed in derivative.ca/wiki099/index. … ment_Tools
APP is used to access the Live application.

So to access the view, you’d just send “APP.view”. “Live.Application.Application.View” is actually the class name, so you have to look in the documentation for the property that holds an object of that class. In this case, it’s “view”.

The other thing is that in those rather inadequate Live Object Model docs, they list the arguments for functions under the title:

This has two arguments and arg2 is a string that apparently identifies a view. This is where it gets into territory that you’ll have to experiment with. And for that, I highly recommend typing commands directly into the Ableton console until you find something that works.

Got it. Thanks again Ivan :smiley:

Would be dope to have a feature that will automatically open the live set associated with a touch file!

Hi,

Thanks for all the work that has gone into this.

I have been going through the Wiki and getting somewhere . Connection is established.
I can see the action of a clip being triggered manually in Ableton in the ‘abletonTrack1’ base as well as tempo data flowing both ways etc

I have streams of data flowing in that I am using to affect visuals, I would like to have that data also trigger clips or samples in Live. I am yet to get this going. I have created TDA midi devices to try and trigger MIDI clips, no luck yet , but i think this is the right direction - but how to trigger audio clips?

In the end do these (midi and audio clips/samples) need to be treated seperately or is there a simple way to fire clips?

thanks,

juddy

derivative.ca/wiki099/index. … letonTrack
If you get the latest version, you’ll find these features very helpful for triggering clips from Python.

derivative.ca/wiki099/index. … onClipSlot
This one has similar features, with more direct control of clips

I put the latest features in the Talk: (aka discussion) sections while they’re still in the experimental stage.

OK , thanks Ivan,

cheers,

With V1.80, calling ‘op.TDAbleton.SongInfo’ hangs TouchDesigner. I can poke that dictionary with len(), and access other attributes, but when I attempt to access ‘tracks’ seems to be the specific point of failure (like 'op.TDAbleton.SongInfo[‘tracks’]). Similarly, trying to use an ‘ExamineDAT’ on the TDAbleton Op, and turning on ‘Expand Classes’ with ‘Extensions’ enabled hangs TD. Using TD 2017.35550.

Are you trying to print SongInfo? Because it gets incredibly huge very quickly and can take multiple minutes to print out. If you want to print, try op.TDAbleton.SongInfo[‘tracks’].keys(). You basically have to print keys for everything but the furthest branches of that dictionary.

If you’re not trying to print, post the code you’re using to access SongInfo. Also let me know if you’re using the demo song or your own.

Cool that you’re going deep :wink:

No print statement, literally just ‘op.TDAbleton.SongInfo’, so I think it was hitting repr() . I understood it got huge, but was assuming it would only take 1-30 seconds to print out. Didn’t let it process for much longer than a minute before declaring it as hanging.

This is using the demo song with a few extra clips and renaming some clip names for unique ids visible from Touch.

Thank you so much for making this! I’ve had plans and tackled small portions of building something like this since 2011 or so - it’s so great to see someone with some great Python chops make such a solid ecosystem & base to build on. I’ve started building a very exciting module on top of this, I’ll post some info/pics once I get a bit further.

Please record your session at the TouchSummit! I really wanted to go, but it overlaps with the first weekend a tour I’m working on (that will use TDAbleton!)

Glad to hear you’re building on this. I checked out your website and it’s full of amazing work. I plan to do as much training as possible in the coming year so maybe our paths will cross somewhere after the summit. Would love to trade techniques. If you post any other TDAbleton questions on forums, please put a link on this thread to be sure I see them.

Do you know how to pull the live set file name with this?

Crazy enough, Ableton doesn’t let you do that, as far as I have been able to discover. That is why I put a name and number field in the TDAMaster M4L device. You can name things there and it will be available in TD in the abletonSong Component parameters.

Hi Ivan,
Possibly my low knowledge of python, but can’t see how to trigger a clip from TD in Ableton.

Changing a Parameter, no probs, connecting data to a Value send in the abletonParameter Op

Is there an equivalent within the Ableton track component I am missing ? I can see the information within the abletonTrack op when I manually fire in Ableton, but not sure how to send a signal back to Ableton and how to designate which clip to fire.

Many thanks,

Justin

Do you have the latest version from the top of this thread?

Posted version 1.8.1

Fixes a bug in TDA_MIDI M4L device that wouldn’t transmit midi data except on default OSC port (8888).

Thanks Ivan,
I had missed the 1.8 train and was still on 1.7.

thanks, all good now

cheers