[sdiy] USAMO
rsdio at audiobanshee.com
rsdio at audiobanshee.com
Sat Mar 28 07:28:19 CET 2015
On Mar 26, 2015, at 7:48 AM, Richie Burnett <rburnett at richieburnett.co.uk> wrote:
> From: Oakley Sound
>> The computer OS in conjunction with the DAW software and audio drivers make for spot on audio timing. So all the audio streaming out of your PC's soundcard will be bang on time.
>>
>> The midi output timing is woeful in comparison. Midi is not sent ahead of time with timestamps so the interface can then send it when it should. So it gets sent when it can... which is often not fast enough.
>
> 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!
>
> 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?
Hi Richie,
I never realized that the MPU401 had this ability, but the Owner's Manual explains that it does. Thanks for bringing that to our attention. More recently (recent relative to the MPU401) companies like eMagic and MOTU have developed similar time-stamped MIDI transports. eMagic called theirs AMT (Active MIDI Transmission), and MOTU calls theirs MTS (MIDI Time Stamping).
http://www.soundonsound.com/sos/jan00/articles/emagicamt8.htm
The only drawbacks of these were that AMT only worked in Logic, and MTS only worked in Performer. However, Apple defined CoreMIDI to support time-stamping in a way that all applications can access the capability without being specific to any hardware. Meanwhile, MIDI manufacturers can provide drivers for their interfaces that convert between CoreMIDI and their own, proprietary format. All you need to do is make sure your software supports the time-stamping features of CoreMIDI, and your hardware has an appropriate driver.
Note that any USB-MIDI Class Driver does not have the ability to time stamp, because Microsoft and the other folks who created the USB-MIDI standard did not consult with the MMA (MIDI Manufacturers Association). This is the kind of arrogance that I witnessed first-hand when I worked at Microsoft. They think they don't need help from experts, and the resulting products are disappointing. So, what you will sometimes find are MIDI interfaces that support both USB-MIDI, for the Class Compliant driver, and some kind of proprietary USB custom class that implements time stamping. Some of these devices have a physical switch that must be selected before the device is attached to the computers. Others appear to offer the ability to dynamically switch. I assume that MOTU use the latter for their modern interfaces.
I agree that there's no excuse for MIDI to perform as badly as it does on most systems. You can blame the failures of the companies who brought USB-MIDI upon us, and users for taking the easy path of just plugging things in without studying the technology options for better performance. If I had time, it would be fun to measure the MIDI timing with and without the available time-stamping.
Brian
More information about the Synth-diy
mailing list