On 01/03/2016 05:30 PM, Len Ovens wrote:
On Sat, 2 Jan 2016, Jonathan E. Brickman wrote:

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.
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.

I am not certain that MIDI must have 100% reliability to be useful in something like a tablet controller, as long as status feedback exists so the operator knows that a signal has failed.  But MIDI does have to have 100% reliability to be useful to drive a synth from a keyboard.  And I will think that for very high fidelity situations, audio transmission does have to either have 100% reliability -- with retransmission or a good enough setup that there simply is no audible loss -- or has to have seriously good interpolative resampling capability to hide the losses. 

According to at least one reference I found, the Ubuntu inclusions "scenic" and "midistream" are said to be RTP-MIDI complete with journaling, and it does sound to me like this is likely to be the best-of-breed for remote instrument control over IP right now.  I'll be trying these next unless another option arises.

J.E.B.

--
Jonathan E. Brickman   jeb@ponderworthy.com   (785)233-9977
Hear us at http://ponderworthy.com -- CDs and MP3 now available!
Music of compassion; fire, and life!!!