I just did some latency testing to compare (among many things) MIDI over USB vs Serial (DIN).
The short answer is that MIDI over USB was marginally better than Serial (DIN) MIDI. However, this was anything but a “real world” test.
More details:
I produced MIDI and audio by hitting Middle C on a Yamaha S08. Sound and MIDI were routed by various paths through an RME Babyface Pro FS on Host A (a Win10x64, i7-6gen, 2-core, 16GB, 2016 PC laptop) and recorded on a second Host (a Win10x64, i7-11gen, 8-core, 64GB, 2022 PC laptop) with an RME UCX II.
I recorded sound directly from the keyboard’s phones port, from the audio out ports through Host A using TotalMix Direct Monitoring as well as going through Cantabile (a DAW) on Host A, and also the audio generated from MIDI input to Kontakt running a full-featured sound library (The Grandeur). The Serial (DIN) MIDI cable was also tapped to produce and audio signature to mark the start and end of MIDI events as issued by the keyboard, using this Audio Tap Cable in this post
I recorded all sounds simultaneously into multi-track WAV files and analyzed them in Reaper. I repeated tests 10 times to get averages, jitter (min to max), and other statistics.
In my tests, USB performed with 0.25 msec lower latency and 0.29 msec lower jitter than Serial (DIN) MIDI. However, these differences in average latency were not statistically significant (p=0.22). Also, the USB line was a dedicated line with no other traffic and handled single, isolated MIDI events, so this is not a “real world test”.
Latency when rendering Kontakt using USB MIDI was 4.02 msec with 1.90 msec jitter at 44.1kHz and reduced to 3.28 msec with 1.19 msec jitter at 48kHz. As many folks have noted, jitter is the killer.
Here’s my test rig, which was set up to also test the latency saving of TotalMix Direct Monitoring vs going through ASIO and the DAW (like 3+ msec RTL) and the effect of going from 44.1kHz to 48kHz sample rates (more than I expected, since my Kontakt sample libraries are 48kHz so I get about 18% improvement in latency).
