SYNC MIDI port on the back of a device

The Importance of Jitter and Latency

Note: this blog post assumes you know about MIDI Clock.

What is Latency

Latency is a constant delay between the audio produced by two devices. When dealing with MIDI Clock, latency can be caused by:

  • the clock source (sending the clock with a delay)
  • the device receiving the clock (adding a delay between the reception of the clock and the sound output)

This can be particularly problematic in live performance scenarios or complex studio setups where precise timing is essential for maintaining cohesion.

The problems of latency extend beyond just timing issues. For instance, in a studio environment, a small 20ms latency on the monitoring headphones of a singer will give a strange phaser/chorus effect which could cause the singer to perform badly. Or even worse with a drummer hearing flams (double hits) at every snare hit.

Very small latency could also cause phase cancellation when recording low frequency instruments - for example two bass synths playing right after each other might cancel out the low frequency, resulting in a very thin bass sound which would be much deeper and full if there was no latency.

 

Jitter explained in a graph - image courtesy of tnt-audio.com
Jitter in clocks explained with a graph. Image: courtesy of tnt-audio.com

 

What is Jitter

You may have heard about Jitter before. Jitter refers to small and unpredictable variations in time of when the MIDI clock "ticks” are sent. In other words, this is about how regular the ticks are, how stable the distance between each tick is. Just like a drummer accelerating during a drum fill and then suddenly slowing down to go back to the original tempo. You could call jitter "very short and temporary latencies” that occur through time.

For example, at 125bpm, MIDI Clock messages must be sent precisely every 20ms. A jittery clock might delay one message by 1ms, which means the distance between the ticks will be 20ms, then 21ms, then 19ms, then back to 20ms. The overall timing should be unaffected, but the short jump means that the receiving machine will see a very quick change in tempo: 21ms is equivalent to 119 BPM, and 19ms is 132 BPM) can have pretty bad consequences.

Large jitter could cause disruption in the rhythm of the music, or worse it could create drift (aka latency), if it causes the receiving device to skip a tick for example.

Measuring and comparing Jitter

All clock sources have jitter, and measuring jitter is difficult because guess what - measuring equipment have their own internal clock, with its own jitter as well! So the only way to measure precisely clock jitter is to use measuring equipment with very a fast and precise clock.

Some time ago I have been measuring jitter on 3 types of MIDI Clock sources: a DAW (Digital Audio Workstation, a recording software), a typical synthesizer, and a dedicated MIDI Master Clock (the Midronome, also called "Nome I”, predecessor of Nome II). To do this I used a 100MHz digital logic analyzer, measuring the raw digital data of the Clock ticks sent.

See the video in details:

The results are pretty clear:

  1. DAWs' MIDI Clocks have so much jitter that they will barely be usable - their jitter will also heavily depend on what the computer is doing
  2. Synths' MIDI Clocks are not ideal but their jitter should not have a huge impact, as long as the chain of devices is kept relatively short
  3. Dedicated MIDI Master Clock hardware is designed to have extremely low jitter and this is confirmed by the results. In this case the measured jitter was at most +/- 5ns, which is exactly one period (10ns) of the measuring equipment's clock (100MHz). In other words, we reached the maximum precision of the measuring equipment, so the real jitter could easily be much lower. But it does matter, all we need to know is that it's very very low.

Something to think about is not only the clock source jitter but everything down the chain. Just like a game of chinese whispers, the jitter gets worse at every step. A 1ms jitter might seem like nothing, but if this jittery clock is used and retransmitted multiple times in a chain of devices, each device adding its own jitter, maybe the final audio between the first and last devices of the chain will have a 20ms jitter.

The more precise the clock source is, the less chance you will get issues down the chain.

Conclusion

Let me finish with a few advices when dealing with jitter and/or latency:

  • Use your ears first - do not try to solve a problem that does not exist. If it sounds good, it's good. Maybe you have horrible jitter, but what if that's actually what makes your music sound magic? I often hear many people who want a perfectly jitter-free clock, but want to add "swing”… which is basically jitter!
  • If have clock or timing issues, the first step is to simplify the setup, and to try to keep the MIDI chain as short as possible. If you have 20 devices, it will be better to use one large MIDI Thru box with 20 outputs (making a 2-levels chain), rather than using 5 smaller MIDI Thru box back to back (making a 6-levels chain).
  • If you see a huge latency (above 100ms for example), it probably is a wrong configuration somewhere, no hardware will have that kind of delay.
  • If your setup involves both DAW and hardware, you will have clock issues, it's pretty much inevitable. Maybe you can make the DAW less important, getting it to play non-timed instruments only? Or if you are using it to record, maybe you can accept that it will not be recorded on the grid?
  • If you've checked all of these and still have clock issues, then I'm afraid the only solution might be to use dedicated hardware like Nome II or an equivalent, especially if you're using a hybrid DAW+hardware setup.
Back to blog

Leave a comment