[sdiy] Techniques for Multiplying MIDI Clock frequency?

mskala at northcoastsynthesis.com mskala at northcoastsynthesis.com
Fri Dec 24 01:00:40 CET 2021

On Thu, 23 Dec 2021, Brian Willoughby wrote:
> 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.

I think the bulk endpoint thing is sufficient to prevent any "fall back"
of USB-MIDI to low speed.  Low speed devices only have interrupt and
control endpoints.  USB-MIDI requires bulk endpoints.  Even if it might be
easy to imagine ways of exchanging the same packets with an interrupt
endpoint that would normally be transferred over bulk, there'd be problems
to solve for which there's no obvious single right way to do it; and the
resulting homemade protocol would be so far from the standard that you
couldn't expect any existing hosts or devices other than your own to
support it.

I don't think number of endpoints is actually a big deal here.  I'm not
sure low-speed and full-speed actually have different numbers of endpoints
allowed, and a very basic USB-MIDI implementation doesn't need many
endpoints anyway.  A Roland UM-ONE in class compliant mode, for instance,
only has three endpoints:  one bulk in, one bulk out, and the control
endpoint.  I've certainly seen low-speed devices with that many endpoints
(because separate endpoints for "boot" and "full HID" protocols), and I
would expect that some low-speed devices with more exist.

Matthew Skala
North Coast Synthesis Ltd.

More information about the Synth-diy mailing list