On Sat, 2 Jan 2016, Jonathan E. Brickman wrote:Len, thanks for the rundown. I put a lot of effort into ipmidi/qmidinet, and there was definite occasional loss which I could not eliminate. Also tried both varieties of netjack; similar result. I did not find any usable error correction therein. (Error detection is irrelevant for this; error correction is priceless!) Latencies were very nicely low, but indeed for instrument control any MIDI loss, even one byte per minute, is unacceptable.
For midi over a network have a look at
https://en.wikipedia.org/wiki/RTP_MIDI
https://code.google.com/p/midikit/
RTP_midi is supposed to be standard and does (if fully implemented) have error checking. The other standard is ipmidi (see qmidinet) ipMIDI does not make sure of 100%... it would have to be tunneled through tcp to get that. UDP tunneled through tcp on a local LAN may be acceptable timing wise for your purposes, I don't know.
MIDI, unlike audio, must have 100% reliablility to be useful. That reliablilty is first that all events must reach the other side and second timing needs to be preserved. A small miss in timing while anoying, is tolerable. A missing byte is not. One missing byte = either a missing event or a malformed event that can change the meaning of that event. (even from a note off to a note on)
Both RTP_midi and ipmidi sit on top of other IP protocols and are therefore wifi compatible.
I am guessing ssh or telnet over wifi (if set to binary) may work just as well too. I don't know if you need ssh or not. If you are willing to do a bit of programming, making a jack client connected to a tcp server/client should be easy enough though. I have not played with netjack and do not know how reliable that is for MIDI. I have not had trouble with Xruns though which would be the same thing.