[linux-audio-dev] a question re: the MIDI spec

Martijn Sipkema msipkema at sipkema-digital.com
Fri Sep 10 21:50:26 UTC 2004


> > The problem here is that class compliant devices suffer bad timing
> > because they use bulk transfers for MIDI data. The standard for
> > MIDI over FireWire is much better.
> 
> I don't agree on the subject that USB bulk transfers cause bad MIDI timing.  
> Of course, you can't use the same USB host controller at a time with a MIDI 
> interface and some other device like a CD writer and expect both good MIDI  
> timing and fast CD burning. If you can reserve a host controller exclusively 
> for your USB MIDI device, you will get pretty good results, most of the time.
[...]
> - Isochronous transfers send or receive data streams in realtime with 
> guaranteed bus bandwidth but without any reliability.
[...]
> MIDI streams need to be reliable (a single byte lost isn't acceptable), so 
> Isochronous is not an option. Interrupt or Bulk transfers are very similar: 
> they use only the available bandwidth at each moment, so there can be 
> unwanted delays and timing problems. Some manufacturers' proprietary 
> protocols include a timestamp with each USB MIDI packet to enhance the time 
> accuracy, but this can be done either in bulk or interrupt transfers.

MIDI streams need a reliable transport with guaranteed bandwidth. If
USB can't provide this, then it is not really suitable for MIDI, but I'm not
saying it is unusable, just that it may perform worse then traditional
serial multiport MIDI interfaces.

--ms





More information about the Linux-audio-dev mailing list