[linux-audio-dev] USB-MIDI Transfer rate

Clemens Ladisch clemens at ladisch.de
Fri Sep 16 15:10:38 UTC 2005


Jens M Andreasen wrote:
> On Fri, 2005-09-16 at 09:52 +0200, Clemens Ladisch wrote:
> > > The MIDI-USB device also have a control channel without any endpoints
> > > (without any physical midi-jacks.) Again only as far as I have
> > > understood; the control channel is not a MidiStream and should therefore
> > > be able to accept a significantly higher transfer rate than the physical
> > > MidiStreams.
> >
> > Control transfers always involve an answer sent by the other device,
> > and multiple control transfers cannot be sent in parallel, so the data
> > rate would be rather low.
>
> In the specific case, I get that the transfer rate on the control equals
> a normal midi stream. The data sent to the control is normal midi data.

Are you speaking about the device's control pipe or about a MIDI port
that happens to be labeled "control"?  The former _cannot_ be used to
send MIDI data, and the latter is just a standard USB MIDI stream.

> Are you absolutely sure that it is not possible to increase the thruput?

Try changing the line:

	ep->max_transfer = usb_maxpacket(umidi->chip->dev, pipe, 1);

in the snd_usbmidi_out_endpoint_create function in usbmidi.c to:

	ep->max_transfer = 512;

or even bigger values.  This should result in more than one packet per
frame.


It would be interesting to know what the maximum data rate is.


Regards,
Clemens




More information about the Linux-audio-dev mailing list