For some project one ask me to plug a MIDI controller on the network either to send its parameters to lots of computers or just to increase length between controller and computer.
To do so, I’ve plugged the controller onto a Raspberry Pi then the RPi on the network. Here I have several options.
The first one is to make a Pd patch that send all MIDI event over the network. This works and could be cross platform. The receiver could run on Linux, OSX or even Windows and then forward MIDI event to other programs if necessary with a platform specific protocol (IAC Bus on OSX for example).
But some controller (like the Novation Launch Control XL i’m using) doesn’t work with OSS MIDI on Linux, but with Alsa. So you have to connect the device with Pd with aconnect or something else and this could be boring.
I also found a small command line program multimidicast that creates an Alsa client with several ports and multicast MIDI event to network. It works fine on Linux. It is said to works on Windows too, but I can’t test. This is the solution I’m using.
Another solution if all computer are running Linux, is to use aseqnet the alsa sequencer network client/server. It works but you have to know the name or the IP of the server to connect to.
And finally, it should be possible to do the same with Jack. Jack midi could be integrated with Apple midi but I can’t find any resources on internet to build such a setup.