[sdiy] Techniques for Multiplying MIDI Clock frequency?
brianw at audiobanshee.com
Fri Dec 24 00:31:14 CET 2021
Are you sure about all of those details, Mike?
The USB-MIDI specification does not have any mention of USB 2. My recollection is that USB-MIDI started out as requiring Full Speed clock rates, and this was not increased when faster USB clock rates were added. There is only USB-MIDI 1.0 and it has not been improved - most likely because there is so much existing support for USB-MIDI 1.0 that any "improvements" would simply break compatibility.
Also, USB 1 includes both Low Speed and Full Speed. While you are correct that Low Speed is actually worse than Classic MIDI, there has never been a USB-MIDI specification that allowed for the use of Low Speed. So, while it's possible for some devices to "fall back" to Low Speed mode, that should not be allowed for a USB-MIDI device. I looked for this to be spelled out in the USB-MIDI 1.0 spec, but I couldn't find anything quickly - it might boil down to the use of Bulk endpoints, which aren't allowed for Low Speed, or perhaps just that USB-MIDI has too many endpoints beyond what Low Speed allows.
USB 2.0 added High Speed, which happens to be backwards-compatible with Full Speed USB 1.0 devices, including USB-MIDI. So, while a USB 2.0 hub might allow more devices to be attached, it's not actually going to make the USB-MIDI devices run any faster. At best, USB 2.0 reduces the bandwidth interference from other devices, which makes it more likely that USB-MIDI Interrupt endpoints will be serviced in a timely fashion. Since USB-MIDI doesn't use the bandwidth and latency guarantees of Isochronous endpoints, the resulting latency depends entirely upon the Host operating system scheduling of Interrupt endpoints.
I've written a few USB-MIDI firmwares, so I've experimented with what's possible here. In the early days, there were many bugs in vendor examples, but over time those have gotten a lot better. Some chips have a USB stack that's flawless, but it's difficult to know that until you use it.
On Dec 20, 2021, at 09:34, Mike Bryant <mbryant at futurehorizons.com> wrote:
> Totally agree some USB stacks for MIDI are useless (Linux/ALSA anybody) but that doesn't damn USB itself. MIDI2.0 depends on using USB (or Ethernet) and even on original MIDI it gives far better performance provided you have use USB2.0.
> But USB 1 is actually worse than 5 pin DIN so make sure it isn't falling back into that.
> -----Original Message-----
> From: MTG
> Sent: 20 December 2021 17:27
> USB-MIDI is another layer (of hell). I don't think it's going to solve any issues that 5-pin DIN has. Maybe because the microcontrollers that have USB are typically many, many times faster than an old 8-bit one though. OTOH, some USB stacks are very poorly written.
> On 12/20/2021 8:55 AM, Benjamin Tremblay via Synth-diy wrote:
>> I finally bought a mini scope. I have no excuse not to use it.
>> I agree, this is not a hard limitation on 5 pin MIDI, but it’s too
>> easy for developers interested in performance to abandon it and move to USB.
More information about the Synth-diy