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