McLaren Labs’ rtpmidi
software has been around for a few years now. It reliably sends and receives MIDI events and properly implements error correction. The software is robust and has been used in very many different environments by an enormous number of users.
But, we knew there were some limitations around scheduled note timing, and we resolved to get to the bottom of it.
We revisited the implementation of the timing of playing of MIDI events, and did a deep-dive of this article by Apple
As a result, we have refined the computations regarding received notes. Here is a summary.
- Some RTPMIDI senders can pack two or more notes into a single packet, with a time-difference specifier between them. Previously, our software ignored these time-differences. The result was that the notes packed together into a packet would play simultaneously. The new behavior inserts the necessary time delays upon playback.
- The computation of the time delta in the graph displaying the latency of each received event has been changed slightly, and is now more accurate.
- Our implementation still plays events as soon as they are received. In the future we may add the capability to add latency to the playback path. (Note: the addition of latency can compensate for skew and jitter.)
It is very possible that most users will observe no differences with the new version.
Expect to see revised timing roll out in upcoming releases.