fbpx
Skip to main content

MIDI Forum

Jitter and latency ...
 
Notifications
Clear all

Jitter and latency - USB / Firewire / Thunderbolt

3 Posts
3 Users
0 Reactions
18.9 K Views
Bernardo Jimenez Mesa
Posts: 2
New Member
Topic starter
 

Hello. I´ve been a constant MIDI user for more than two decades. Huge MIDI fan. I´ve tried everything. Hardware sequencers, all sorts of software, midi interfaces, etc.
I can truly say that USB midi interfaces produce all sorts of timming inaccuracies. Seems to me (but not 100% sure) that firewire behaves better. I haven´t tried yet thunderbolt.
Any experiencies regarding these different protocols and their performance with MIDI?
Cheers

 
Posted : 26/04/2019 3:49 am
Geir Helgi
Posts: 1
New Member
 

Hey there, I’m just copy pasting this information from the maker of Sequentix, haven’t found a better explanation; gives you a good idea of “why” USB is not ideal for TIMING (it’s ok IMO for note on/off messages)

(copied from a well known source, a master of MIDI -perfectly sums up the “problems” with USB based MIDI)

“USB MIDI has a bit of a problem with timing.
Full speed USB runs at 12 mbps, a data rate over 300 times faster than serial MIDI.
But USB is frame based, with a frame rate of 1kHz, i.e. one frame every millisecond.
A MIDI event being transmitted over USB must wait between zero and one milliseconds before it is actually sent, depending on when the event was generated by the processor relative to the regular frame period of the USB host.
You can send multiple MIDI events in a single frame, which gives a big advantage over serial MIDI as polyphony increases, but for getting a single byte of MIDI clock pulse out of a CPU, USB just can’t match serial MIDI.
If the line is clear, the start bit of a serial MIDI message can happen on the next transition of the serial interface’s baud rate generating clock, which has a period of 32 microseconds for plain old MIDI.
A quick example to show you what this means in practice…
A tempo of 120 bpm at 24 ppqn means a clock tick period of 20.833ms (rounded to 3 decimal places)
The ideal timing of the clock ticks should be:
0
20.833
41.667
62.5
83.333
104.167
125

Delayed until the next USB frame, the best case timing will be:
0
21
42
63
84
105
125

The period between each tick is usually 21ms, with a 20ms tick every so often to average out at 20.833.
A 21ms tick gives a tempo of 119.04 bpm
A 20ms tick gives a tempo of 125 bpm.
That’s quite a lot of cyclic error on your tempo signal.”

USB + MIDI is ok if you sequence and send out all MIDI information from that computer/DAW into hardware with absolutely no external sequencing.

Anyways, IMO it’s not worth even trying to use it seriously,
I personally do not use USB MIDI other than notes that do not have to be perfectly in time,
which are only “playing”/triggering notes on a certain synth (which is clocked from a real hardware source)
and for SysEx transfers.

So yes, FireWire might be better (off the top of my head: it has something called ‘Constant bit-flow’ or something, allowing the steam to go through without those pesky ‘windows’ that the USB controllers introduce.

Ultimately you want a MIDI port hardwired to the CPU, like on older computers (who have either USB ports or Serial Interfaces)

IMO the speed of a CPU also has a lot to do with timing, how “overly” fast the CPUs are today, remember that during the “golden age” of Computer MIDI timing the CPU speeds were in the sub 10 MHz 😉

-Geiri Helgi

 
Posted : 17/05/2019 8:09 am
Mike Kent
Posts: 86
Trusted Member
 

Your experience might not be USB specific. Some USB MIDI devices have much better timing than others. it could be the devices you are using, not USB itself.

Chair of MIDI 2.0 Working Group

 
Posted : 01/06/2019 11:01 pm
Share: