Midi Latencey Interview with a Pro

Since MIDI is becoming a major part of how many people dj it seems appropriate to understand as much as possible about the format. A few questions have popped up about midi latencey, how to reduce it and which cables or interfaces are the best to use. Instead of shooting in the dark we asked an expert, namely Florian Bomers- creator of Bomes Midi Translator, the tough questions about midi.

Does Midi Have latency?

The original MIDI standard (“5-pin DIN”) is a serial protocol
where each byte takes 320 microseconds for transmission. Now a
typical MIDI message is 2 or 3 bytes, so it takes at least 0.6 to
0.9 milliseconds until the computer notices that you’ve done
something on a MIDI controller. This wouldn’t be sooo bad, but
today’s MIDI devices usually come with a USB or Firewire
connection, which, unfortunately, adds quite some latency.

Is that really so bad?

A total latency of under 10 milliseconds is usually unnoticeable,
though there is the additional problem of congestion: if two or
more MIDI messages should be sent at the same time, they’ll be
queued up and the last one may come considerably later than
intended

In your testing have you found any midi devices that have more than 10 Ms of latencey?

no, but the entire system can easily exceed 10 milliseconds,
especially when considering audio latency.

Will that really affect a djs performance?

The less overall latency you have, the snappier it will feel
using the controller. With too much latency, you’ll have that
sluggish feel and it’ll be hard to do any precise mixing.

Is there a difference between how you connect your controller to the computer?

yes, indeed. The cables don’t have much impact per se 🙂 But the
type of connection does: typical USB and Firewire MIDI
connections add latency of 2-10 milliseconds. The standard MIDI
implementation for Firewire emulates the original 5-pin DIN speed
(i.e. on average, 1 byte per 320 microseconds) but typically adds
a little delay because MIDI data is piggybacked on audio packets.
Also, the faster the better if you also use the connection for

Is there a measurable difference between USB 1.0 and 2.0?

I haven’t done any measurements with USB 2.0, though in theory it
could perform much better. Still, USB 2.0 is optimized for
throughput and not latency…

what is the best way to achieve the lowest overall midi latency?

This is really hard to say. With little MIDI traffic (e.g. you
use only one controller at a time and the controller doesn’t send
excessive amounts of MIDI data), I’d recommend using a PCI audio
card and connect the controller directly to its MIDI IN jack —
if the controller provides 5-pin DIN MIDI OUT, that is.
Otherwise, I’d have to go and measure different USB and firewire
controllers to find out their latency.

You mentioned there is one thing thats even worse than latency, what is that?

indeed, there is jitter, i.e. how much the delay changes. If
every MIDI message takes exactly the same time to get to the
computer, there’s no jitter. In practice, however, there can be
enormous jitter: for example, let’s assume a connection where
MIDI data is piggybacked with audio packets. For the sake of the
example, an audio packet takes 1 millisecond for transmission,
and audio packets are sent every 10 milliseconds. Now it’s easy
to see that some lucky MIDI messages will take as little as 1
millisecond, but in worst case, a MIDI message has 11
milliseconds latency (if it just missed an audio packet to
piggyback on)

why is jitter so bad?

The problem with jitter is that it affects rhythm. As a rule of
thumb you can say that a trained ear can distinguish rhythmic
deviations of 1 millisecond. Now if you have drum pads or you’re
scratching, or really anything for your live performance, you
want to hear exactly the same rhythm that you play! Too much
jitter will make your performance quite jerky…

As a side note: I’ve read a study where they found out that the
“feel” of a drummer is due to subtle deviations from the perfect
timing. For example, if the bass drum is hit a tad before the
actual beat (say, 2 milliseconds), there’ll be a forward-driving
feel to the performance. Now you can imagine that with jitter of
10 milliseconds, this feel will be replaced with arbitrary
non-rhythmic drums — and this translates to all instruments,
including, controllers…

Too summarize: higher latency will make it harder to perform, but
jitter will kill your music.

How do you measure Jitter?

You cannot measure jitter directly. Just measure the delay for
many MIDI messages and then look at the maximum and minimum
delay: their difference is the jitter. I use modified MIDI THRU
boxes to accurately measure MIDI latency.

How can a person ensure they have the lowest jitter possible?

I wish there was an easy way to do that. Since jitter is directly
related to latency, the same applies here: you need to optimize
all parts of the system: get a controller with low latency and
little jitter, don’t hose your USB/Firewire connection, always
use the latest drivers, use software that is not known for bad
timing…

Fortunately, the audio path usually doesn’t add jitter, so if you
have 5 milliseconds ASIO buffer size, it’s fixed latency and it
will not add jitter.

You are the creator of Bomes Midi Translator Pro, the brains behind our new mini.Translator. How much latency does midi Translator add to the picutre?

below 200 microseconds (or below 0.2ms)

Does the new midi 2.0 spec solve many of these problems?

The MIDI Manufacturers Association (MMA) is currently working on
a new version of MIDI (working title: “HD”). Improvements for
latency, jitter and throughput are high on the list, plus higher
resolution (7 or 14 bits to e.g. 32 bits), more channels, more
message types and more!

Will midi be around for another 20+ years?

I’m sure that the unique properties of MIDI (realtime,
multi-purpose, efficient, low cost) are still very useful for
many decades to come. But if that’ll be via MIDI or something
else depends on the success of “HD”… well, as a member of the
“new MIDI” group at the MMA, I can only say: with HD, it’ll be a
better world 🙂

Bomesdigital dj interviewmidi translatorMini TranslatorTips
Comments (22)
Add Comment
  • nk

    Let’s face it, when they created MIDI, they didn’t ever anticipate that some crazy kid in his bedroom would have hooked up 15 different controllers and would be trying to send the equivalent of a symphony worth of notes every second.

    In fact, way back when, MIDI latency was really not much of an issue due to the fact there was no super-speed busses like USB/FW. The most data you’d want to send at once was a couple of bytes. It was definately not intended to squeeze 400Mbps out of a serial connection, in fact, the old RS232 still is used in major manufacturers. The consumer grade serial busses which you get these days are, as Bomers points out, geared for throughput and not latency.

    So MIDI really isn’t built for what you’re trying to make it do. Put up with it’s limitations until something better comes out. And please, don’t forget the fact that analogue things still exist, and still work exactly how they were intended. Can’t say the same for digital.

  • DJ ToS

    Using OSC is a whole another level. Some reasons:

    – osc is ethernet based, this means you will not be able to connect your midi device to anything else but a computer(at this moment).

    – osc uses adresses vs. midi that uses 7 bits. The integrated circuit that should be running OSC sor starters needs bigger memory pool to store all the OSC textual paths.

    You need better, faster and more expensive IC to have OSC integrated.

  • Kassin

    Great post, thanks for that! I wonder how OSC would perform over the forthcoming Midi 2. And why are the so few OSC controllers / software around ? OSC is presumably a lot better…

  • nico

    Ok, tried this: Logic send two test tones (needle pulse on the whole spectrum), one in deck A, one in deck B. Internal mixer is used, then audio goes in Audiofile Spectre spectrogram. You can clearly see the action of the EQ of T3 (my version is 3.2.2, btw, and I've tested the P600 EQ). It is very easy to watch what the EQ does to the whole spectrum, mid is plainly centered around 1000Hz, the curve is obvious when you turn it up or down. You also plainly see the other needle pulse test tone (I've moved it a bit in frequency and volume). When you turn up the mid or low EQ of A, the response of B doesn't seems to change in the highs. Sorry.

    Now, I've just got to do some listening tests to be sure 🙂

  • nico

    So either I suck, or there is a problem. Will train some more to see if this is me or the jitter…

    TRAINing is the word! If you train, you'll train yourself to avoid that error, probably by budstracting delta T/2, which is roughly 7ms.

    Then, after that, you'll be of no use to us. 🙂

    Btw, can't wait for that test ableton-traktor-ableton results.

    Lol! You get used to latency, and you compensate after a while, but to compensate for jitter you will have to develop precognitive abilities. I can already see the title of the paper in the Journal of Parapsychology: "A model of possible precognition effects in entertainers using an unreliable random MIDI controller" 🙂

  • DJ ToS

    So either I suck, or there is a problem. Will train some more to see if this is me or the jitter…

    TRAINing is the word! If you train, you'll train yourself to avoid that error, probably by budstracting delta T/2, which is roughly 7ms.

    Then, after that, you'll be of no use to us. 🙂

    Btw, can't wait for that test ableton-traktor-ableton results.

  • nico

    Guess an analog mixtable is the way to go 🙂

    In the case of traktor, analog mixer is a way to go in any case…

    NI TDS has a problem with joining multiple channels. It has some kind of frequency compression while using INTERNAL MIXER.

    Simple test: try listening to two songs mixed in together, remember the quality of the sound. After that, add some more mid or low freqs. from either of the song. I notice a loss in the hig-freq.(loss in what way, I can't determine). Please not that main volume is at -5dB and compressor(that button that prevents clipping) is not on.

    I haven't tried mixing all four decks, that must sound interesting.

    Someone please confirm this.

    Interesting, never noticed that, I have an external mixer with two channels. Also I smart mix TDS into Live, so the summing up of decks A&C or B&D is done in Live. I'm very happy with the sound. So at least there is a way around that!

    Will try what you say later, by running some test tone generator in Live and routing them in each TDS deck, then summing up the audio in the internal mixer. Will get back the audio from the mixer in my soundcard input, and feed it back to Live where I'll have a spectrogram running. This way if summing up and using the eq of the internal mixer cause problems, it will be obvious. Did some stuff like that to see what the Key Lock was doing with the sound, and you clearly see some harmonics as soon as you engage it, but it isn't too bad.

    Ok, tried the punching in and out of the audio with the BCR and it is super fun! I have the button reversed, so the track is on when you press the button, and off when you release it. You can do some wicked fast cutting/punching in this way. Overall it works, but sometimes you have the effect I've described above. So either I suck, or there is a problem. Will train some more to see if this is me or the jitter, but I suspect the jitter is causing it, sometimes I'm sure I'm on time and the attack of the beat isn't heard (which is incredibly lame sounding, btw).

  • DJ ToS

    Guess an analog mixtable is the way to go 🙂

    In the case of traktor, analog mixer is a way to go in any case…

    NI TDS has a problem with joining multiple channels. It has some kind of frequency compression while using INTERNAL MIXER.

    Simple test: try listening to two songs mixed in together, remember the quality of the sound. After that, add some more mid or low freqs. from either of the song. I notice a loss in the hig-freq.(loss in what way, I can't determine). Please not that main volume is at -5dB and compressor(that button that prevents clipping) is not on.

    I haven't tried mixing all four decks, that must sound interesting.

    Someone please confirm this.

  • nico

    Jitter is scary :-0!

    we are currently wondering if DVS has jitter

    Mmmm. What's DVS? 🙂

    Digital Vynil Control System aka Serato Scratch

    Awww. This could be a major pain. What do people say on this? Did they notice that scratching tends to be unpredictable? (I guess scratching would be the most affected by this).

    On the other hand 'regular' mixing should be mostly ok, depends on your mixing style (long drawn movements vs short rhythmic). So far my setup is working all right for me.

    I'll try cutting the volume in and out on the beat with the BCR tomorrow. I'll assign a on/off press button to send 0/127 volume. It's usually a good telltale sign of latency issues: if you have randomness in the controls, the attack of the beat becomes mangled or comes back too early. Guess an analog mixtable is the way to go 🙂

  • Ean

    Jitter is scary :-0!

    we are currently wondering if DVS has jitter

    Mmmm. What's DVS? 🙂

    Digital Vynil Control System aka Serato Scratch

  • nico

    Jitter is scary :-0!

    we are currently wondering if DVS has jitter

    Mmmm. What's DVS? 🙂

  • Ean

    Jitter is scary :-0!

    we are currently wondering if DVS has jitter

  • nico

    Gosh. Tried to see if I can reproduce jitter, and it is damn easy to get. I have a firewire MIDI/audio interface and have a BCR20000 plugged on it.

    Just sent a MIDI clock from the interface with Traktor, it does the round to the BCR then back to the computer. Looked at the incoming messages with Midi Monitor, and it isn't pretty, the clock should be stable, and it is random, with values from 7 to 14ms!

    17:07:48.743 From FireWire Audiophile Clock

    17:07:48.750 From FireWire Audiophile Clock

    17:07:48.760 From FireWire Audiophile Clock

    17:07:48.770 From FireWire Audiophile Clock

    17:07:48.785 From FireWire Audiophile Clock

    17:07:48.792 From FireWire Audiophile Clock

    17:07:48.802 From FireWire Audiophile Clock

    17:07:48.812 From FireWire Audiophile Clock

    17:07:48.823 From FireWire Audiophile Clock

    17:07:48.830 From FireWire Audiophile Clock

    17:07:48.844 From FireWire Audiophile Clock

    17:07:48.854 From FireWire Audiophile Clock

    17:07:48.862 From FireWire Audiophile Clock

    17:07:48.872 From FireWire Audiophile Clock

    17:07:48.882 From FireWire Audiophile Clock

    Of course the problem is magnified because I'm doing the round trip, but still, this was with no audio playing and no other apps launched!

    Traktor clock isn't the problem, I've tried with the internal IAC bus and it is perfectly regular.

  • DJ ToS

    I guess we got us a misuntherstanding. I don't care about who is technically better, I don't even care about who's setting the evening on fire.

    The idea of the question is, how differently you grow to become a latency-aware-digital DJ in difference to the realtime vinyl/cd DJ?

    It was not really a question, more something to think about.

  • DJLp

    Hey Tos,

    If I understood your post correctly, here's my opinion. I've been mixing since 1985 or so. For those learning to mix now in the digital age, it's cool because it's simply the present. There won't be a quiz from those that did it with turntables and vinyl back then. Yes, there are joyfully and honorably recognized as the pioneers but overall it's just progression and not a dis to the past. It's like engineers that worked on splicing reel-to-reel tape back in the day. Again, pioneers and master of the original craft. However, some of the tradition of good engineering is preserved in the digital age (and some aren't).

    There was a similar discussion in an older post called "To Sync or not to Sync" (or something like that). Check it out when you have a few. To sum it all up, if the crowd is entertained, most seemed to agree that's all that matters. At the same time, the pioneers and traditionalist are respected for getting it all started.

  • DJ ToS

    I post this so I can read the comments via my email.

    Btw, nice read. Makes me wonder, what are we doing?

    We, people that learn to mix only with computers and midi devices.

    What will we learn and in what way(right or wrong). Are we different by getting used to do all corrections in sound and midi data latency.

  • BentoSan

    Save yer golds for HD midi i say ! :p

  • Niels

    very nice interview. good stuff to know