The MIDI Forum

  1. Bernardo Jimenez Mesa
  2. MIDI Connections
  3. Friday, 26 April 2019
  4.  Subscribe via email
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
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
0
Votes
Undo
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
Comment
There are no comments made yet.
  1. more than a month ago
  2. MIDI Connections
  3. # 1
Accepted Answer Pending Moderation
0
Votes
Undo
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.
Comment
There are no comments made yet.
  1. more than a month ago
  2. MIDI Connections
  3. # 2
  • Page :
  • 1


There are no replies made for this post yet.
Be one of the first to reply to this post!