TDAbleton - TouchDesigner Ableton Connection

Anyone know of a good way to render non-realtime TDAbleton controlled content?
Say for example if I wanted to render a video from Touchdesigner with realtime turned off, which slows touchdesigner so it can render every frame, as opposed to skipping frames, and have that slow down the TDAbleton connection as well so the content syncs up properly.

In an ideal setup, I would like to send OSC messages to Ableton to advance to the next frame. OR have some kind of midi clock sync going on. Any ideas?

hi spaghetti -

Are you controlling Ableton with TouchDesigner or do you have controls from Ableton sending into TD?

I recently completed a music video where I had written a bunch of automation in Ableton that was controlling parts of my TD patch. The way I made the offline render was to do a play-through of the song with Realtime turned on in TD to capture all the automation into a Record CHOP. Then, when I was doing the non-realtime rendering, I looked up the channel values based on the current frame of the timeline.

Is that the pipeline you would need?

Ableton doesn’t have a concept of frames, so I’m not sure how “advancing the frame in Ableton” would work. You could advance the playhead position by the amount of time that would elapse in a frame if you were in realtime mode.

Posted 1.17.0 in top post.

  • Changed default OSC Ports again. There were problems on too many systems. Send feedback if you have conflicts
  • Better sorting of output channels from abletonMIDI, abletonLevel, and abletonRack components.
  • Default Note Channel options on abletonMIDI to show a range of note channels before actual notes are received
  • Fixed a bug in the Demo Set where the abletonRack was broken

this is awesome

Hello! sounds great
Any tutorial on this?

Hi Ivan,

Thank you so much for building this tool - it has been so fun to play with.

I am having an issue in consistently looping through ableton arrangement scenes

I am syncing a series of looks with TDAbleton. I reference a channel that counts up every time a TouchDesigner cycle completes, looping from 0-3. This count updates the ‘scene to fire’ string parameter, as well as the ‘fire clip’ boolean parameter, of the TDAbletonSong COMP.

Sometimes everything transitions perfectly. Other times, the same scene fires repeatedly. I find that if I have the network editor opened at the level of the TDAbleton COMP, the scene switching works as expected, but if i exit that view, the switching stops working.

Attaching my project below. Please refer to the ‘TDAbleton Song’ Comp and the ‘Show Control’ Comp inside of the project
_Spring_Fest_Beta.13.toe (219 KB)

^^Figured out my above issue - just wanted to post the fix here in case anyone else encounters a similar issue.

Touch is pull-based, so since the Null CHOP channel being referenced in the TDAbleton Song COMP was not being called for in perform mode, the Null CHOP was not cooking.

Going to the Common page of the referenced Null CHOP and switching cooking to ‘Always’ resolves the issue.

Thanks to everyone for their help and support solving this!

Posted 1.18.0 in top post.

[]All components now have selective cooking optional with par toggle (default is False)
]abletonSong now has current_cuepoint and tda_connected channels
[]abletonSong now has callbacks onTDAConnectionChange and onSongInfoChanged
]tdAbletonmaster comp now has output with connected channel
[*]fixed channel prefix stripping in MIDI, level, and rack components

Note: I am now only testing as far back as TD version 2018 26590. Should work as far back as 2017 10k versions, but that’s no longer guaranteed.


I see the notes on the Wiki - Cue Points (a.k.a Timeline Locators): abletonSong Component property LastLocatorPassed. Also available via callbacks.

What I am wanting to do is cue a visual and send a message to Live to start playing from a particular Cue Point - locator. At the moment I can only see a way to do this from Live to send ‘last locator passed’ and trigger the visual from Live.

The notes on the Wiki give me the feeling I will need a few Python commands - any way to achive TD controlling triggering of Cue points with a simple linking/triggering such as you can with Clip slots?

Thanks very much,


Trying to connect over network with TDAbleton - for some reason it works fine over Wi-Fi between two PC’s, but when I try to connect a PC running Touch to a Mac with Ableton, the connection is almost impossible. Has anybody had a similar experience/know of a more seamless way of connecting via TDAbleton?


Loving some of the new features In 1.18 Thanks!

One question … I Don’t seem to get any values coming into TD for TDA_Audio_Analyzer and TDA_Level COMPs … any special tricks to getting these working ?
I Can control the marcos from TD tho and see it working on the Ableton End …



Hi Puck,

I’ll dig into this next week.

Until then:

  1. are you connecting locally or over network?
  2. can you send your ableton log files (instructions in wiki if you don’t know where they are) to


I tested the audio analyzer and level COMPs and they’re working fine on my machine. I wonder if you have a conflict on the Max Port. Try changing that in the tdMaster component parameters and the TDA Master device on the Live master track.

Posted 1.18.1

  • fixes some problems with Rack initialization

DO NOT USE! 1.18.2 is built incorrectly

Posted 1.18.2

  • Fix intermittent timing issues when initializing

Posted 1.18.3

  • Fix major build error in 1.18.2


We will no longer be releasing TDAbleton updates here in the forums. They will come out with TouchDesigner builds, so keep an eye on the build notes.

As always, post any bugs here or mention TDAbleton in the title if you create your own thread. If you have a bug emergency, I can send new versions separately so you don’t have to wait for a new build.

Hi, I started using TDA and ran some performance test. Quickly, I experienced performance issues while controlling some parameters on multiple tracks (18 tracks with 3 parameters per track being change @ 30fps). It seems that each module that I instantiate in TD (abletonChain, abletonParameter) cooks between 0.1 and 0.5 ms. Is there a strategy to have better performance for project involving numerous continuous parameter modification over multiple tracks?

The most efficient way to control parameters in Live is to use the abletonRack component, put the devices you want to control inside it, and attach the rack’s macros to the device parameters you want to control. and wire a CHOP into the abletonRack’s input.

Using ableton component parameter controls is better used for setup and testing, not realtime performance.