TDAbleton Connection problem over Ethernet LAN Mac to Mac

My Setup:

Ableton: MacBook Air M1, Ableton Live 12 suite 12.3.6

TouchDesigner: Mac Mini M4 Tahoe V26.4

Testing Version: TD 2025.32460 Commercial, TDAbleton 2.6.5

Network: Direct Ethernet cable from Belkin USBc to Ethernet on Macbook Air M1 to Mac mini M4 ethernet in port, manually assigned IPs

Macbook Air M1: 192.168.50.2 Subnet mask 255.255.255.0

Macbook Mini M4: 192.168.50.1 Subnet mask 255.255.255.0

Firewalls: All OFF No anti virus software

Ping between machines: OK - works both ways, no dropouts, always works

File exchange between machines: Ok can share pix, music etc both ways

TDAbleton connects fine when both Live 12 and TouchDesigner on Mac Air M1

TDAbleton connects fine when connecting both with my WiFi network

What I’ve tried:

  • lots of googling, you tube, forum searches
  • disabled wifi both macs
  • set nework service order Ethernet on top, both machines
  • reinstalled TDAbleton per wiki instructions multiple times & updated all components
  • let TouchDesigner and Ableton Live 12 suite access on local networ
  • set all users for read.write permissions
  • it connected once successfully after changing TouchDesigner In Port to 5000 and pinging in TDAbleton worked but I have never been able to repeat that after rebooting macs

Issue:

Cannot get a consistent reliable connection on TDA Master in Ableton on Mac air between Touch Designer on Mac mini with Ableton port 58888 default and Max port 51111. Surprisingly AbletonSong seems to work even though TDAbleton Package shows no connection!

The Out address in TDA Master in Live on Mac air seems ok at 192.168.50.1 for Mac mini
The Out port seems ok at 5000

Tried multiple ports (default and random), but TD still doesn’t connect properly

Reinstalled TDAbleton in Mac Remote Scripts multiple times, ensured the latest version etc

My theory: has something to do with mac ports and I really don’t understand how to know what ports are in use on Macs?, or else some weird permissions issue? But I am frustrated I can get TDAbleton to work on wifi or both on same machine but not over hardwired Ethernet.

Can anyone explain how to check if it is a port issue or a permissions issue? I don’t really want to use a wifi connection for a live set. Does anyone have ethernet working like this?

Would appreciate any guidance from Ivan or other network gurus gurus please on how to troubleshoot this. On my third day of tests here…pulling my hair out….

Thanks all!

One interesting new piece of evidence for network administrator types: When I bought, downloaded and ran a program called Network Port Scanner to try to see what was going in my Mac mini M4 ports, TD Ableton suddenly connected ok! Attached is the report it came up with overnight showing my port 5000 for Touch Designer and a bunch I do not know anything about. Is it possible there is some missing step in TDAbleton to “free up ports” or something like that? How exactly do these ports work on Macs and where is the best place to learn about them? Any guru advice welcomed.

Thanks.

After that one time connection, it has not worked again. I have read that 5000 is in the registered ports range, so I will try 50000 for dynamic/private range. Is anyone using Ethernet successfully between macs and TDAbleton? If so please let me know how.

thanks all.

I have not been able to figure anything out, but I haven’t had 2 macs to dive deep on. This summer I should be able to take a look. Sorry about the long delay on this!

@Ivan thanks for responding. I understand the difficulty in replicating odd setups like mine. But just 5 minutes ago I just got it to reconnect again from complete reboots so I think I am ok now. I spent all day reading up on ports etc but even though it is not in the recommended “dynamic/private ports” range of 49152 to 65,535 when I went back to Touch Designer In Port 5000 (in registered ports range of 1024-49151) when I connected with transmit on in TDA master it instantly connected and actively changed the TouchDesigner In Port to yellow 59152 on TDAbleton page and started working. Still rather mysterious to me but if it works again I will stick with it. If it works several times in a row I will call this solved. but perhaps for other beginners at networking a few more words on what all these ports mean and which ones we should leave alone and which ones we should change when it does not connect automatically would be helpful. I love TDAbleton once I connect ok so thanks for a great program. Here are my current settings that “work” while connected in screenshot.

No cigar. These setting worked once then failed to connect on consecutive tries after complete shutdowns and reboots. I am puzzled why when everything is working and I save both programs it suddenly ceases to work on rebooting. Not very deterministic. Does anyone think there is any merit in trying older builds of TD than 2025.32460 with TDAbleton? Is anyone in the world succeeding at running TDAbleton and Live on Macs consistently and reliably (ie works every time) over hard wired ethernet LAN? Giving up on my reliable consistent Ethernet network dream for TDAbleton…. Is BitWig more reliable maybe?

This is frustrating. I will definitely dive in again as soon as I have access to 2 Macs. Should be in the coming week or so.

Thanks Ivan. After further wifi testing I found the connection success rate for TDAbleton was 10/10 for an essentially empty Live 12 set with just TDA master on a new empty TD network. But with my full music set 0/10 with my complex full touchdesigner visuals set. And 4/10 with a dead simple touch designer test network. Therefore I have abandoned TDAbleton for now. I will use the Ableton Link CHOP instead to control my visuals in TouchDesigner at a jam this Friday night.

But I would definitely prefer TDAbleton for my art show coming up next spring, which I have to start coding soon. And the ping times over wifi were orders of magnitude longer than Ethernet.

I would just try to make TDAbleton on ethernet as repeatable and tolerant as possible with a reasonable live set of 3 songs with roughly 24 tracks and average of 6 scenes per song. If connection could work every time these last tests suggest running smaller, completely separate Live12 sets for each song rather than this JH3 set with all 3 in one als set. Good luck in your testing. I sure hope you can solve it.

Would you be up for making your live set and network available to us for testing? Graphic and audio resources are probably unnecessary, just the structure… you can send a zip or link to download to ivan@derivative.ca

Just to make sure we’re testing the same thing

Sure. I will get you something tomorrow from older set as I am packing up now for jam tonight and am about 40 versions later now for Ableton Link on wifi. No time right now…

Not sure if it’s the same problem but I have also had problems with Mac’s and network ports. Something weird about the order of the services. No matter what I did, only manually changing the order of the services (order itself doesn’t matter) worked for me. It somehow activates the Ethernet ports. I then discovered that a script with the sys module that changes the order and then back solves it. It runs on startup.

Interesting! Can you share your script? Would love to know if it solves @gordharris’s problem

ping again for your live sets. I’m having trouble reproducing and could use your test case. If you wouldn’t mind doing a “Collect All and Save”. I don’t need any audio files if the set is too big. Zip or link download to ivan@derivative.ca, or I emailed you my gmail address if you want to share via Drive.

I am pretty sure it’s not an issue with your toe file, so don’t worry about that for now…

Thanks Ivan for gmail address. added you as share on google drive for full live set. Hopefully you got that tonight. Also previously sent toe file on gmail. With this ethernet setup I had trouble reproducing anything - seemed to change every time. Hope this helps.

Hey, we just tried this here but no luck reproducing the issue. The two macs were able to connect to each other without issue.

Two things I’d ask you to try. In a command prompt, check what the value for this is:

ulimit -n

If it’s something low like 256, can you try increasing it using

sudo launchctl limit maxfiles 128000 524288

Reboot,and then confirm that ulimit -n shows a large number.

I also notice that you are using broadcast for this. How is your network setup? Are the source and destinations on the same switch, and is the switch setup to forward broadcast packets or possibly is it blocking them?

Thank you Malcolm and Ivan for making time for this. Sorry for the delay in responding - had two deadlines this week I had to hammer on. I will set up the system again today and try your suggestions. But just to clarify, I was not using a network switch with the Ethernet setup but just a direct connection between the two Macs with a standard non-crossover cat5 cable, one RJ45 end directly into Mac Mini M4, the other end into a Belkin USB-C to Ethernet adapter recommended and sold to me by Apple. I could do file transfers and pinging fine both ways with this.

I also tried using a GiG- E switch and could also connect that way with some IP address juggling, but still only very intermittent TouchDesigner to TDAbleton successful connections. At the end there near my deadline I was trying lots of random things including turning broadcast on as the documentation is still not all that clear on what settings should actually be on the Ableton Live end.

And hopefully you saw the note about wifi connecting 10/10 times ok with “toy” test files in TD and TDA that were almost empty networks, intermittently with mid sized files and 0-1/10 times with the files I shared with Ivan on Google Drive.

So a request for you is if you guys can successfully connect 10/10 times over Ethernet with the typical to medium sized TD Live 12 set I shared with an almost empty TouchDesigner file, could you possibly share that working setup with me so I could build from it forward in the future?

I am a complete beginner at Terminal and unix and wary of damage I might do as superuser but will try out your commands once I set up the whole old Mac system again. I will get back to you today. Thanks again for your help.

Wow! That worked! Before your Terminal commands there was an odd situation - with these new IP addresses I assigned manually the TDA Master still showed “Disconnected” in Live12 on Mac Air M1 but I could see timing data coming in on AbletonSong1. After I entered your terminal commands and rebooted, ulimit -n still showed 256, not a large number. Tried again with sudo but same result. But then when I retried my Touch Designer program on Mac Mini M4 it immediately did a full connect and worked properly, with TDA Master on Mac Air showing connected properly and stop/play working correctly! So I rebooted Mac mini M4 and retested 5 times and they all worked properly and connected ok. Well done wizards!

Ping times both ways are now low averaging around 0.848 to 0.907 ms so much better than wifi. And ethernet connection direct and secure as I wanted.

Thank you very much - see screenshots for reference on a “working Ethernet reliable setup” for other beginners.

To wrap this up, a few final questions:

Q1: What exactly did those terminal commands do?

Q2: How do I best learn more about magic unix terminal commands for Mac for absolute beginners?

Q3: Should Broadcast flag be on or off in TDA Master and do you think it is safe to stick with all those settings shown in screenshot of Live12 in future or should anything change?

Many thanks!

If you do ulimit node now, it shows a much bigger number right (after the reboot)? If not, there may be another thing we need to set to make this stick more globally.

A network connection on macOS is treated like an ‘open file’, so it’s counted against that 256 limit.

The commands increase the number of open files a process can have. Why it’s so low by default on macOS, I don’t know. Just goolging and stackoverflow is good for this.

It’s fine to use broadcast in your case.

Thanks for the explanation. No, ulimit still shows 256.

Sorry it took so long, here’s my script. Also I had this problem on the M4 Mac mini only, on my MacBook Pro M1Pro I dont need the script.

import subprocess
import time

def onStart():
    # Your specific network service names
    artnet_service = "Ethernet"
    internet_service = "internet_vlan"
    
    try:
        # 1. Grab all available services so we can keep the rest of the order intact
        result = subprocess.run(["networksetup", "-listallnetworkservices"], 
                                capture_output=True, text=True, check=True)
        
        # Clean up the list (stripping out headers and the asterisks macOS uses for disabled services)
        all_services = [s.strip() for s in result.stdout.split('\n') 
                        if s.strip() and "An asterisk" not in s]
        all_services = [s.replace("*", "") for s in all_services]

        # Double-check that both services actually exist
        if artnet_service not in all_services or internet_service not in all_services:
            debug(f"Error: Couldn't find service {artnet_service} or {internet_service}.")
            return

        # 2. THE JIGGLE: Bump Art-Net to the number 1 spot temporarily
        # We're building a list with Ethernet sitting right at the top
        jiggle_order = [artnet_service] + [s for s in all_services if s != artnet_service]
        subprocess.run(["networksetup", "-ordernetworkservices"] + jiggle_order, check=True)
        
        # Quick pause to let the macOS network stack bind the Art-Net socket
        time.sleep(1.0)
        
        # 3. FINAL SETUP: Push Internet back up to number 1
        # Ethernet drops to 2nd place - this keeps Art-Net active but stops it from hogging the gateway
        final_order = [internet_service, artnet_service] + [s for s in all_services if s not in [artnet_service, internet_service]]
        subprocess.run(["networksetup", "-ordernetworkservices"] + final_order, check=True)
        
        debug(f"Network priority locked in: 1. {internet_service}, 2. {artnet_service}")
        
    except Exception as e:
        debug(f"Network script error: {e}")