Introduction
Most computers have multiple network adapters. This can present a problem with IpMIDI and Delta Control because multicast data (DAW control, Delta Control, MIDI Time Code, and MIDI Machine Control) will by default be forwarded to one adapter, defined automatically in the OS routing table. Without any intervention, the route chosen by the OS will be the adapter connected to the internet or your corporate network (the gateway adapter), not the connection to the console.
Single Adapter Solution
The simplest solution is to connect every device to an unmanaged switch (or your home router), and enable only one adapter on your computer, guaranteeing traffic has no choice but to be forwarded to the one connected adapter, and is therefore forwarded to all devices.
Multiple Network Adapters Solution
If you require multiple network adapters active on your computer, you will need to edit the routing table in the OS to ensure the multicast destined for ipMIDI and Delta Control are forwarded through the correct adapter. Note the multicast destination addresses below - Delta Control is only applicable to AWS, Duality, Matrix and Sigma:
225.0.0.38 = Delta Control
To edit the routing table, apply the following commands either in the Terminal in macOS or Command Line (CMD) in Windows.
macOS Routing Table
Persistent Routes
Refered to as 'additional routes' in macOS Terminal.
sudo networksetup -setadditionalroutes <NetServiceName> <IPAddress> <NetMask> <Router>
NetworkServiceName User-given name for the adapter service (not system name)
IP Address 225.0.0.37 or .38 multicast address in this context
Subnet Mask 32 bit (255.255.255.255) in this context
Router IP address of next switch hop (or console if direct)
To confirm the Network Service Name, use the networksetup -listallnetworkservices Terminal command. In this example, the required network is 'USBLAN1'. The computer has an IP address 192.168.10.50 and the router that is responsible for multicast routing is 192.168.10.254.
Example:
sudo networksetup -setadditionalroutes USBLAN1 225.0.0.37 255.255.255.255 192.168.10.254
Subsequently running the networksetup -getadditionalroutes USBLAN1 (using your own network service name) will confirm that this additional, persistent route is now made. If you see multiple entries from previous configurations or attempts, you can remove remove all additional routes for this service/interface using the follow command ready to start again:
sudo networksetup -setadditionalroutes USBLAN1
Temporary Routes - Reset on Login/Restart
These commands can be useful if this is an ad-hoc computer/console network setup, such as a spare network adapter or backup computer. These routing table edits reset on next login, and prevent binding IpMIDI to a destination that later, does not exist:
sudo route -n add -net 225.0.0.37 -interface <NIC system name>
sudo route -n add -net 225.0.0.38 -interface <NIC system name>
Replace <NIC system name> with the system level ifconfig name of the Ethernet adapter connected to the console. You will be asked to enter your password for authentication.
Example:
sudo route -n add -net 225.0.0.37 -interface en0
Additional Useful Network Routing Commands
sudo networksetup -setadditionalroutes <ServiceName> deletes additional routes
networksetup -getadditionalroutes <ServiceName> show additional routes
networksetup -listallnetworkservices lists all network service names
ifconfig lists all adapter system names and info
netstat -nr lists all static routes
netstat -rn | grep <IP address> lists specific static route
sudo route -n delete <IP address> deletes existing static route
Windows routing table
route add -p 225.0.0.37 mask 255.255.255.0 Windows adapter IP address
route add -p 225.0.0.38 mask 255.255.255.0 Windows adapter IP address
Replace Windows adapter IP address with the IP address of the adapter connected to the console.
If you need to print adapter information in CMD to identify this use the ipconfig command.
Caveats
- Apple has periodically changed their method for persistent routing table changes. Should this happen in future, this process may need to be revisited.
- Reinstalling or updating the OS will remove static routes. The configuration process will need to be repeated.
- Anecdotally some consumer TP-Link brand switches do not pass multicast data correctly.
Related content
The Remote app connects but DAW control does not work
