TDAbleton - TouchDesigner Ableton Connection

Posted 1.18.3

  • Fix major build error in 1.18.2

IMPORTANT:

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.

Thanks, I’ll look into it.
I also found that if I turn Off all of the oscin_ of each instances, performance gain is dramatic!
Perhaps we could implement a toggle to decide if a Component is Send only. Would that make sense?
Capture.PNG

I will look into that possibility and also why those OSC nodes are taking so much time!

Have you found a solution for the cooking issue.
Alternatively, I was wondering if an OSC patterns list was available so we could bypass TDAbleton on TD’s side and output directly in a oscCHOP?

@barouet A couple things coming in the new version (1.21.0). Send Only mode on each component turns off incoming osc completely. Also, turning off Timeslice mode will make osc only cook when values are coming in. Hopefully this will help you.

There is no way to bypass TDAbleton completely, because it is the mechanism by which requests are made to Live for osc data. However, if you find ways to make the components more efficient, do let me know!

Great, thanks! Send Only mode should fix most of my worries concerning performances.

If you want maximum speed from TD to Live, definitely use the rack components and the mapper component.

Howdy,

I’m trying to debug an error i’m having with receiving the midiclip info from
ableton … .the text port says: (below)

Basically the midi clip info isn’t making in to touch…

any thooughts / tricks / clues on sorting this ?

Thanks!

[info]
TDableton: 1.20
TD: 18580

It looks like you’re trying to ask info about a MIDI pitch range that Live doesn’t like. What are your MIDI range parameter settings for the clip slot component? You can send your set and toe if you like. ivan@derivative.ca

Hi there, don’t mean to fill up the thread asking about connection issues, but this one is really driving me nuts!

Short version: Connects on laptop, not on desktop.

  • Used the same (latest) installation file for TouchDesigner on both
  • Same installation of Live Suite 10.1.0 on both
  • Latest Win10 64 on both
  • Followed installation instructions correctly on both
  • Laptop connection between TD and Ableton is virtually bulletproof on default settings, open one, then the other and they instantly see one another and I get the prompt to add a Master.
  • Desktop connection is non-existent or just confusing. The closest I’ve got is: On the default settings it sometimes shows in Ableton as being connected (yellow light) if I manually add a TDA_Master to the Master track, but will then not be connected at the TD end. Never been prompted to add master by TD on desktop. Attempted with a myriad of random port numbers. Attempted after multiple restarts. Attempted with other USB control surfaces unplugged (Push 1, MPK Mini Mk2, two random old casio keyboards through MIDI to USB adapters) and/or disabled in Live’s preferences to leave TouchDesigner as the only control surface. Cannot ping from TD, nor use any controls. Textport output is as follows:

[code]python >>>
/project1/tdAbletonPackage/tdAbleton : Requesting connection to Ableton Live.
python >>>

TDA Remote Script Error

Traceback (most recent call last):
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\Python/lib\SocketServer.py”, line 290, in _handle_request_noblock
self.process_request(request, client_address)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\Python/lib\SocketServer.py”, line 318, in process_request
self.finish_request(request, client_address)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\Python/lib\SocketServer.py”, line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\Python/lib\SocketServer.py”, line 652, in init
self.handle()
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\OSC.py”, line 1797, in handle
self._unbundle(decoded)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\OSC.py”, line 1779, in _unbundle
self.replies += self.server.dispatchMessage(decoded[0], decoded[1][1:], decoded[2:], self.client_address)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\OSC.py”, line 1741, in dispatchMessage
reply = self.callbacks[addr](pattern, tags, data, client_address)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\TDA.py”, line 332, in onMsgCommand
self.sendConnectInfo(client)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\TDA.py”, line 437, in sendConnectInfo
self.sendSongInfo(client)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\TDA.py”, line 487, in sendSongInfo
‘tracks[’ + str(tIndex) +’]’)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\TDA.py”, line 571, in getTrackOrChainInfo
devices[key][‘chains’] = self.getChainsInfo(device)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\TDA.py”, line 590, in getChainsInfo
chain.name, ‘chains[’ + str(cIndex) + ‘]’)
File “C:\ProgramData\Ableton\Live 10 Suite\Resources\MIDI Remote Scripts\TouchDesigner\TDA.py”, line 557, in getTrackOrChainInfo
if device.parameters[1].name == ‘ID_TDA_Ignore’:
IndexError: Index out of range

End TDA Remote Script Error

python >>> [/code]

Not sure what else to try!

The laptop connection is great, and am having lots of fun playing with this tool, but wondered if you could offer any advice? My laptop’s CPU load is pretty high with an Ableton set going at the same time as, say, pretty particles, so I’d love to play with it on the desktop.

P.S. I’ve seen people using this at the same time as Push so presumably the control surface clash thing is resolvable/a non-issue?

Thanks in advance for any advice you can offer.

Have you tried changing the port? There may be something on desktop already using the default one

@hendo433

Actually, looking at that error message again I see what might be the problem. Question… are you using the same Live Set in both situations? I’d like to see the live set you’re using that’s causing that error message. It seems like maybe you’re using a Max device with no parameters? Is that possible?

Hello,
i got this msg in textport
TDA Remote Script Error #
Traceback (most recent call last):
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/Python/lib/SocketServer.py”, line 290, in _handle_request_noblock
self.process_request(request, client_address)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/Python/lib/SocketServer.py”, line 318, in process_request
self.finish_request(request, client_address)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/Python/lib/SocketServer.py”, line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/Python/lib/SocketServer.py”, line 652, in init
self.handle()
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/OSC.py”, line 1797, in handle
self._unbundle(decoded)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/OSC.py”, line 1779, in _unbundle
self.replies += self.server.dispatchMessage(decoded[0], decoded[1][1:], decoded[2:], self.client_address)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/OSC.py”, line 1741, in dispatchMessage
reply = self.callbacks[addr](pattern, tags, data, client_address)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/TDA.py”, line 332, in onMsgCommand
self.sendConnectInfo(client)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/TDA.py”, line 425, in sendConnectInfo
self.sendSongInfo(client)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/TDA.py”, line 494, in sendSongInfo
self.send(client, chunk, ‘/info/songDump/chunk’)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/TDA.py”, line 264, in send
client.send(message)
File “/Applications/Ableton Live 9 Suite.app/Contents/App-Resources/MIDI Remote Scripts/TouchDesigner/OSC.py”, line 1226, in send
raise OSCClientError(“while sending: %s” % str(e))
OSCClientError: while sending: [Errno 55] No buffer space available

End TDA Remote Script Error

ªnyone got this issue before?

@zzz28

Never seen that one. I did a search on “errno 55 no buffer space available” and found some info. It’s some sort of networking error on your machine. I’m guessing your setup has some buffer size limit or something maybe? If you do some searching maybe you’ll find a solution… the udp server networking part is pretty invisible and tricky to debug. Please post again if you figure out what’s going on!

Wow - strange! Indeed, my default Ableton set on my desktop has an instance of the Lounge Lizard EP-4 plugin I use for quickly jotting down ideas on a Rhodes-style instrument. As soon as I deleted that channel, it immediately prompted me to add a TDA_Master!

I hadn’t even clocked that that could be an issue, so thanks for the guidance. When I first read your post, I thought that there might be a conflict with some Max device as you mentioned, but removing the Lounge Lizard VST channel seemed to sort it! Luckily, I have plenty of Rhodes-style VSTs…

Thanks for your response!+

Ha! That’s my bad. Never expected a device with zero parameters! I’ll fix that in future versions. Glad I could help.

Yo Ivan!

I’m hoping to find a way to dynamically rename / label the macro knobs in the TDA_MIDI_Effect_Rack, or any device really.

The idea is to take any tox with up to 8 customPar floats with descriptive parLabels, and I add my new tox as a child and have it automatically create a matching TDA_MIDI_Effect_Rack in a given track in my live set, and set the macro knob labels to match the custom parameter labels of the parent tox.

I’ve got it all working except for the dynamic labels. Changing the label in Ableton is visible immediately in Touch of course, but it looks like it’s not actually possible to set those names through the LOM from Touch. Here’s my console output:

SONG.tracks[0].devices[0].parameters[6]
<DeviceParameter.DeviceParameter object at 0x000000004BE974C8>

SONG.tracks[0].devices[0].parameters[6].name
u’Macro6’

SONG.tracks[0].devices[0].parameters[6].name = ‘weeee’
Traceback (most recent call last):
File “”, line 1, in
AttributeError: can’t set attribute

A quick look at the LOM reference confirmed that this property is read only. Some googling gave me hope that it might be possible to do this from inside the max4live device with something like the examples given here: https://cycling74.com/forums/renaming-a-live-dial

I would try editing the TDA_MIDI_Effect_Rack max patch but I’m a complete max noob and don’t even know where to look.

Do you know if it’s possible to set the macro knob labels from Touch?

Cheers mate!