[LAU] Advice: solution to hookk up several USB-MIDI devices

Clemens Ladisch clemens at ladisch.de
Thu Jul 26 19:09:36 CEST 2018


David Kastrup wrote:
> Clemens Ladisch <clemens at ladisch.de> writes:
>> David Kastrup wrote:
>>> If you want to hook up several ones of those via a USB hub, make sure
>>> that this hub has a separate "Transaction translator" per port so that
>>> a USB1.1 transaction from one Midi interface does not keep other
>>> transactions from happening: the 12Mbps limitation should only be per
>>> Midi interface, not per aggregating hub which can talk at 480Mbps to
>>> the computer.
>>
>> MIDI's speed of 0.03 Mbps is less than one percent of the USB 1.1 limit;
>> the lack of a transaction translator does not matter at all (unless
>> other, high-speed USB devices are connected to the hub).
>
> If we are aggregating 4 4-port interfaces used in two directions (USB
> rates are half-duplex), we need 32 times the bandwidth.  So we are
> already at 1Mbps of raw data rate without any packaging.  90% of the
> full-speed bandwidth can be reserved for isochronous transfers which
> MIDI isn't.

That would matter only if the isochronous device is connected to the
same hub.  (Which might actually happen in case of an audio+MIDI
device.)

> Queuing theory tells us that independent events close to filling up a
> given bandwidth tend to stack up, so in what order is a single
> transaction translator going to schedule transfers?

In practice, FIFO.  Anyway, the delay would be too short to matter
(a single USB MIDI packet takes less time than a MIDI bit).

> What will be the effect on jitter?

Smaller than the effect of having to wait for the next edge of the
31.25 kHz MIDI clock.  And certainly much smaller than the effect
of scheduling bulk transfers in the next 1-ms USB frame.

> And events created by arrangers are not actually independent: time
> codes and chord notes and drums are coming out back-to-back.

Events for the same device will be merged into a single USB packet
(at least in Linux).


Regards,
Clemens


More information about the Linux-audio-user mailing list