Re: [AH] Alternatives to the UM-880 USB-MIDI interface?

From Brian Willoughby
Sent Wed, Dec 5th 2018, 03:54

Apple has USB-MIDI Class compliant drivers fully sorted. Apple implement =
every aspect of the specification, where Microsoft Windows versions fall =
short. I know this because I have designed USB-MIDI hardware and found =
out the hard way where the OS support for the USB-MIDI specification =
stops.

For my clients, I deliver firmware that supports Windows, because it=E2=80=
=99s a market necessity. Unfortunately, that requires dumbing down the =
feature set to the short list supported by Microsoft. For my personal =
control surfaces and MIDI interfaces, I use firmware that takes full =
advantage of USB-MIDI capabilities, even though these devices only work =
with Mac OS X.


That said, even the USB-MIDI specification is severely lacking. It =
provides no timing information, so precise timing of MIDI events is very =
sloppy. This is a shortcoming of the specification itself.

What you=E2=80=99re witnessing is that manufacturers like Roland and =
MOTU are trying to improve on USB-MIDI by providing a =
non-class-compliant implementation that adds the missing precision. The =
problem here is that there is no standard for decent MIDI time stamping, =
so there=E2=80=99s no way for an OS to ship a class compliant driver. =
The result is that users must download drivers from the manufacturer and =
install them before things will work well. That=E2=80=99s a difficult =
task when operating systems are constantly changing, so I=E2=80=99m not =
really surprised that hardware vendors sometimes fall behind.


Note that there is a standard for better-than-USB-MIDI performance on =
macOS. It falls under the umbrella of Apple=E2=80=99s CoreMIDI. Thanks =
to CoreMIDI, applications like Logic can access the precise timing of =
MOTU MTS (MIDI Time Stamping), and presumably whatever it is that Roland =
has to get beyond the limitations of USB-MIDI. Applications do not need =
to be aware of hardware specifics, or variations in the USB protocol =
additions. As long as they support CoreMIDI, and as long as the hardware =
manufacturers provide CoreMIDI drivers in addition to their USB drivers, =
everything works.

What this means is the Logic can read ahead in your MIDI sequence file, =
deliver the data to the MIDI interface ahead of time in a way that =
circumvents any bandwidth bottlenecks, and then the shared time =
reference allows the MIDI interface to transmit the MIDI data at the =
precise time it was authored for. In the other direction, incoming MIDI =
is marked with a time stamp that is then delivered to the application =
via CoreMIDI in a way that preserves sub-millisecond accuracy. The =
caveat is that you cannot improve real-time passthrough of MIDI data =
because there=E2=80=99s no looking ahead, and thus any bottlenecks in =
bandwidth necessarily introduce latency. In this latter case, you=E2=80=99=
re better off doing MIDI overdubs, with separate record and playback =
passes, rather than attempting to do real-time MIDI manipulation.

For the technical reasons described above, I recommend MOTU (Mark of the =
Unicorn) MIDI interfaces that feature MTS (MIDI Time Stamping). You need =
to make sure that you install the custom drivers, but it=E2=80=99s the =
only system that doesn=E2=80=99t have serious flaws. (I=E2=80=99ve yet =
to evaluate Roland=E2=80=99s improvements, so perhaps they=E2=80=99re on =
par)

Brian Willoughby


On Dec 4, 2018, at 11:02 AM, Jason Proctor <xxxxx@xxxxxxx.xxx> wrote:
> still a little disappointed that operating systems didn't get MIDI =
sorted ages ago and we still have driver compatibility nonsense =
happening this far down the line (and i say this as a developer).
>=20