From Brian Willoughby Sent Sat, Dec 22nd 2018, 02:00
Hmm, I didn=E2=80=99t see anything specific to CoreMIDI, custom drivers, = or the send-ahead features. Florian said, =E2=80=9Cworks like charm=E2=80=9D - but I assumed that = was using the standard USB-MIDI Class compliant driver that is built in = to macOS and which works with all USB-MIDI Devices. Your messages raised more questions about this elusive feature than they = answered - other than assurance that the AMT-8 has basic functionality. Maybe I lost some messages with more details. Brian On Dec 21, 2018, at 4:53 PM, Jason Proctor <xxxxx@xxxxxxx.xxx> wrote: > as Florian and I mentioned earlier in the thread, the current AMT-8 > driver works fine with later operating systems. (Sierra, here, at > least.) >=20 > and yes anyone can take advantage of send-ahead timestamping, but > whether they do is another matter :-) >=20 > On Fri, Dec 21, 2018 at 4:49 PM Brian Willoughby wrote: >> AMT-8 support would require a CoreMIDI driver from Emagic or Apple. = Whether CoreMIDI has changed since such a driver was written, and = whether it would still work on a modern OS is the real question. I=E2=80=99= m not aware of any significant changes to CoreMIDI that orphaned any = prior drivers, but I=E2=80=99m also not aware of whether the AMT-8 ever = had a CoreMIDI driver. >>=20 >> At any rate, if there is a CoreMIDI driver then all CoreAudio MIDI = software would be able to take advantage of Advanced MIDI Transmitter = features. That=E2=80=99s the beauty of CoreMIDI: They managed to = implement send-ahead timestamping in a way that=E2=80=99s not specific = to any particular hardware implementation. Of course, not all apps take = advantage of this, but those that do shouldn=E2=80=99t be tied to any = particular hardware. >>=20 >> If anybody has more information, then please share. I remember = strongly considering the AMT-8 for its features, but settled on the MOTU = MTP-AV =E2=80=9CMIDI timepiece=E2=80=9D with SMPTE. Not that I=E2=80=99ve = actually used the thing in decades... >>=20 >> Brian >>=20 >>=20 >> On Dec 7, 2018, at 9:43 AM, Jason Proctor wrote: >>> fwiw, the Emagic AMT-8 and Unitor interfaces implemented send-ahead >>> timestamping way back when (hence the name Advanced MIDI = Transmitter). >>>=20 >>> not sure whether any drivers or apps still support it (maybe Logic = as >>> previously described) >>>=20 >>>> From: Bruno Afonso >>>> Date: 7 December 2018 at 13:56:56 >>>> To: Brian Willoughby >>>> Cc: Analog Heaven, Jason Proctor >>>>=20 >>>> Brian is right, what is nice about the motu stuff is their = timestamping. Drivers can be finicky at times. I'm curious to know about = the timing of the newer mio offerings... with a uC or smart oscilloscope = one could properly test these. I don't have a mio... >>>>=20 >>>> On Tue, Dec 4, 2018, 22:56 Brian Willoughby, wrote: >>>>>=20 >>>>> 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. >>>>>=20 >>>>> 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. >>>>>=20 >>>>>=20 >>>>> 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. >>>>>=20 >>>>> 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. >>>>>=20 >>>>>=20 >>>>> 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. >>>>>=20 >>>>> 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. >>>>>=20 >>>>> 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=99= s 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) >>>>>=20 >>>>> Brian Willoughby >>>>>=20 >>>>> On Dec 4, 2018, at 11:02 AM, Jason Proctor 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).