rsdio at audiobanshee.com
rsdio at audiobanshee.com
Sat Mar 28 08:01:43 CET 2015
On Mar 26, 2015, at 9:12 AM, Colin f <colin at colinfraser.com> wrote:
>> It seems crazy in this day and age that MIDI data cant be sent at the right
>> time given how slow the final 5-pin DIN connection baud-rate is, compared to
>> modern USB and CPU speeds!
> For sending MIDI clock only, USB MIDI is actually worse than serial MIDI.
You're right, Colin. USB-MIDI is seriously flawed (but so damn convenient).
>> I always thought that MIDI data *was* time-stamped and sent ahead of time
>> to the MIDI interface. Isn't that what Roland's MPU401 interface was
>> supposed to achieve? Or is it just that nobody chooses to do it that way, and
>> just uses a crappy windows driver and FIFO mode instead?
> There have been Steinberg and E-Magic interfaces with proprietary
> time-stamping, but never anything that could be shared.
> The MMA missed a trick by not including it in the standard MIDI device
Here's where you're wrong, Colin. The MMA had nothing to do with the USB-MIDI Device Class. That atrocity can be blamed purely on Compaq, Intel, Microsoft, and NEC. I quit working at Microsoft years before that, but witnessed a certain kind of arrogance where outside help was unwelcome. LucasFilms was calling up Microsoft and offering suggestions that the MIDI support in Windows needed help, but Microsoft treated them with no respect. I personally reported several issues with MIDI timing, but was basically ignored. If you can find the articles, the MMA also complains that they were not consulted during the development of USB-MIDI. Who can say whether the MMA would have helped them create a perfect specification, but it's clear to see how bad it turned out without the MMA's involvement. I assume that the same arrogance I witnessed years earlier was still in play when USB-MIDI was foisted upon the world.
It's really strange, considering that USB-Audio turned out okay, and each USB Class Specification has been created by a different group of companies collaborating. I really don't see why the MMA wasn't added to the table back in the late nineties. I just wanted to speak up in defense of the MMA, because it's not their fault that AMT and MTS were left out.
By the way, what's Steinberg's time-stamping protocol for MIDI called?
> A PC with a driver running a MIDI interface over a USB bus with a frame rate
> of 1ms at best, driven by a process that can ask the kernel nicely for a
> callback every 1ms but isn't necessarily going to get it, is never going to
> do better than 2ms jitter.
This is true, but only for USB-MIDI Class Devices.
Other USB custom class protocols can be used to synchronize timelines and send MIDI events ahead of time for super-accurate delivery. This works only for recorded MIDI, though, not for real-time manipulation of the MIDI data (unless handled locally on the Device without crossing USB).
As if you hadn't noticed, I have sort of a love/hate relationship with USB-MIDI. I've implemented several commercial devices using the protocol, because clients want Mac and Windows support, but every time I get into the details I remember how hateful the design is. I wish more people were aware of the better protocols, and then my clients would be asking for something other than USB-MIDI.
More information about the Synth-diy