public interface RTPRecoveryListener
Listener interface for notification on packet loss recovery attempts. Implementing classes will be notified with the current
state of the MIDI stream compared to the state before a detected packet loss. That is: they will be informed about which notes
went on, which went off, which controllers changed values, new pitch bend and timecode values, etc. This is an attempt on a
receiver side implementation of the RTP MIDI journaling system described in RFC 4695. It has been isolated into this
interface for one simple reason:
The concept laid out in the RFC is very complex - it makes up for about 90% of the original paper, trying to cover each and
every aspect that the original MIDI specs make possible, most of which probably never saw real world usage. Currently only
Apple's Network MIDI driver implements it and it only implements it in parts. Some MIDI data types are not refreshed in the
journal at all, some only when certain criteria is met (Note offs for example need to be real Note offs not Note ons with zero
velocity, Timecode will only be refreshed when there is no sysex in the stream, etc.). nmj therefore does not attempt to
internally repair a stream on packetloss, but leaves it to the application to
make the best out of the potentially not 100 % useful information transferred in the recovery journal.