[alsa-devel] snd-usb-audio for Radikal Technologies SAC-2K

Raphaël Doursenaud rdoursenaud at free.fr
Wed Oct 20 10:04:53 CEST 2010

Hash: SHA1


I'm working on getting the usb part of this very nice control surface to
work with alsa. I sniffed the usb traffic of the windows driver then
browsed the snd-usb-audio source code for clues.

I managed to get it partially working using a modified QUIRK_MIDI_EMAGIC
since the protocols are fairly similar (at least the 0xF5 port switching

Please find attached the patch I came up to.

I have a few problems and dark areas I hope you'll be able to light up a
little :

First, I more or less get the picture of what the code is doing but
there's one part I fiddled with that I don't understand fully. What are
the .out_cables and .in_cables bitmasks doing besides defining the
number of ports ?

Next, the input part seem to work flawlessly on all ports, but I have
what seems to be a buffer overflow on the device when outputting midi
data. Comparing the windows and linux usb traffic, something obvious
shows up : the windows driver seem to be waiting for the device's
acknowledgment after each sent byte before sending the next one while
the snd-usb-audio module sends a bunch of bytes at once that ends up
confusing the device _and_ module. How can I make it behave like the
windows driver ?

I have traffic and error logs available if needed.

- -- 
Raphaël Doursenaud
Version: GnuPG v2.0.16 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sac-2K.patch
Url: http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20101020/0e5bde70/attachment.bat 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rdoursenaud.vcf
Type: text/x-vcard
Size: 199 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20101020/0e5bde70/attachment.bin 

More information about the Alsa-devel mailing list