Re: [linux-audio-user] Midi data arrives, but gets stuck in ALSA's buffer

From: Pedro Lopez-Cabanillas <pedro.lopez.cabanillas@email-addr-hidden>
Date: Sun Oct 08 2006 - 23:47:57 EEST

On Sunday, 8 October 2006 12:02, Lee Revell wrote:
> On Sun, 2006-10-08 at 12:34 +0200, Pedro Lopez-Cabanillas wrote:
> > The main difference, though, between the proprietary and the GPL
> > firmware is
> > the standards compliance, that you can see using the command "lsusb
> > -v" with
> > the device when using each one.  
>
> How exactly is the M-Audio firmware not standards compliant?  

The USB MIDI Devices specification can be found in this document:
http://www.usb.org/developers/devclass_docs/midi10.pdf

It defines what a compliant device should provide: a MIDIStreaming interface,
using USB bulk transfers for input and output endpoints; the interfaces and
endpoints should be exposed using standard descriptors, which are defined in
the document. The GPL firmware fulfills all these requirements.

The MAudio firmware uses interrupt transfers for input endpoints, and a set of
non standard descriptors, among other differences. You can list the
descriptors for a device using the command "lsusb -v".

> I thought that the snd-usb-audio driver only supported standards compliant
> devices?

The ALSA USB audio driver uses quirks for a large set of non standard devices,
based on several identifiers, as the vendor and product ids. This is how it
can handle the MAudio firmware. See: alsa-kernel/usb/usbquirks.h ("in a
perfect world, this file would be empty") !!!

Regards,
Pedro
Received on Mon Oct 9 08:15:03 2006

This archive was generated by hypermail 2.1.8 : Mon Oct 09 2006 - 08:15:03 EEST