Re: Unrecognized USB Sound Card Roland UA-55 - QuadCapture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Clemens and Ewald,

Bought this card the other week, been looking into making it work on my linux box. I am not a coder, so what follows is speculative.

I have both the UA-25EX and the UA-55, so made some lsusb -v comparisons and deductions:

(In the next mail (because of  mailing list limitation):
Main specifications of the UA-55 from the manual.
lsusb -v outputs for the following:
UA-55
UA-25EX standard mode
UA-25EX advanced 44.1 mode
UA-25EX advanced 48 mode
UA-25EX advanced 96 playback mode
UA-25EX advanced 96 record mode. )

The UA-55 does not have an advanced mode switch. Comparing lsusb -v for UA-25Ex and UA-55, it looks like the UA-55 is always in advanced mode.

The UA-25EX in normal mode is standards compliant, so lsusb -v knows how to interpret all the data. We get values for bNrChannels, bBitResolution, bSamFreq and wFormatTag (e.g. 2 channels, 16bit, 44100Hz, PCM).

Both the UA-25EX and UA-55 in advanced mode give UNRECOGNIZED values in lsusb -v, examples:

UA-25EX advanced mode 44.1kHz sample rate:
** UNRECOGNIZED:  07 24 01 07 00 01 00
** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00

UA-55:
** UNRECOGNIZED:  07 24 01 01 00 01 01
** UNRECOGNIZED:  0b 24 02 01 04 04 18 01 80 bb 00

The comment for create_uaxx_quirk in quirks.c says that the only way to detect samplerate is to look at wMaxPacketSize, but it is not true. The device does tell us:

44 ac 00 -> 0x00ac44 = 44100
80 bb 00 -> 0x00bb80 = 48000

So I attempt to interpret the data structure of these UNRECOGNIZED values with the help of "frmts10.pdf", "Frmts20 final.pdf" and correlations between UA-25EX standard and advanced modes. Example:

Audio class-specific stream interface
07      bLength = 7
24      bDescriptorType = CS_INTERFACE
01      bDescriptorSubtype = AS_GENERAL
01      bTerminalLink = 1
00      bDelay = 0 frames
01      wFormatTag (1) = PCM
01      wFormatTag (2) = PCM
          (  or WAVE_FORMAT_IRAT BeCubed Software Inc 0x0101
            or IBM_FORMAT_MULAW  0x0101 ? )
Audio class-specific type I format
0b      bLength = 11
24      bDescriptorType = CS_INTERFACE
02      bDescriptorSubtype = FORMAT_TYPE
01      bFormatType = TYPE_I
04      bNrChannels = 4 channels
04      bSubFrameSize = 4
18      bBitResolution = 0x18 = 24 bits
01      bSamFreqType = 1 (1 sampling frequency only)
80 bb 00        tSamFreq = 0x00bb80 = 48000 Hz sample rate

Seems straightforward enough. Trying to put this into the drivers, I fail miserably because I can't code. I try to make a copy in quirks.c of create_uaxx_quirk called create_ua55_quirk and just put the UA-55 values in it, but it doesn't fit.

The UA-55 has many combinations of channels and samplerates and wMaxPacketSize (and even the same wMaxPacketSize for 44.1kHz and 48kHz samplerates), so wMaxPacketSize is unsuitable for determining samplerate.

I don't know how to make the driver read the info from those UNRECOGNIZED values, even if it's clearly there. I don't know if the driver needs to be told about the 4 and 6 channel outputs. I don't know how the double wFormatTag relates to the channels. I don't know where to begin to find out about these things. Phew.

(The manual hints that you should be able to stream 2channel audio as is. There is no mention of 6 channels in the manual.)

Parsing the unrecognized data with the above interpretation yields:

UA-55 interface 0 altsetting 0:  ** UNRECOGNIZED:  06 24 f1 01 00 00
UA-55 interface 0 altsetting 1: 4channel 24bit 44100Hz wMaxPacketSize 0x070
UA-55 interface 0 altsetting 2: 4channel 24bit 48000Hz wMaxPacketSize 0x070
UA-55 interface 0 altsetting 3: 4channel 24bit 96000hz wMaxPacketSize 0x0d0
UA-55 interface 0 altsetting 4: 2channel 24bit 192000hz wMaxPacketSize 0x0c8
UA-55 interface 1 altsetting 0:
UA-55 interface 1 altsetting 1: 6channel 24bit 44100Hz wMaxPacketSize 0x0a8
UA-55 interface 1 altsetting 2: 6channel 24bit 48000Hz wMaxPacketSize 0x0a8
UA-55 interface 1 altsetting 3: 6channel 24bit 96000Hz wMaxPacketSize 0x138
UA-55 interface 1 altsetting 4: 2channel 24bit 192000Hz wMaxPacketSize 0x0c8
UA-55 interface 2 altsetting 0: ** UNRECOGNIZED:  06 24 f1 02 01 01
UA-55 interface 2 altsetting 1:
UA-55 interface 3 altsetting 0:
UA-55 interface 3 altsetting 1:
UA-55 interface 4 altsetting 0:
UA-55 interface 4 altsetting 1:
UA-55 interface 4 altsetting 2:
UA-55 interface 4 altsetting 3:
UA-55 interface 4 altsetting 4:

UA-25EX stdrd int 0 alt 0: Audio Control Device
UA-25EX stdrd int 1 alt 0: Audio Streaming
UA-25EX stdrd int 1 alt 1: 2ch 16bit 44100Hz wMaxPacketSize 0x0c0
UA-25EX stdrd int 2 alt 0: Audio Streaming
UA-25EX stdrd int 2 alt 1: 2ch 16bit 44100Hz wMaxPacketSize 0x0c0
UA-25EX adv 44.1 mode int 0 alt 0:
UA-25EX adv 44.1 mode int 0 alt 1: 2ch 24bit 44100Hz wMaxPacketSize 0x120
UA-25EX adv 44.1 mode int 1 alt 0:
UA-25EX adv 44.1 mode int 1 alt 1: 2ch 24bit 44100Hz wMaxPacketSize 0x120
UA-25EX adv 44.1 mode int 2 alt 0:
UA-25EX adv 44.1 mode int 2 alt 1:
UA-25EX adv 48 mode int 0 alt 0:
UA-25EX adv 48 mode int 0 alt 1: 2ch 24bit 48000Hz wMaxPacketSize 0x140
UA-25EX adv 48 mode int 1 alt 0:
UA-25EX adv 48 mode int 1 alt 1: 2ch 24bit 48000Hz wMaxPacketSize 0x140
UA-25EX adv 48 mode int 2 alt 0:
UA-25EX adv 48 mode int 2 alt 1:
UA-25EX adv 96 playback int0 alt 0:
UA-25EX adv 96 playback int0 alt 1: 2ch 24bit 96000Hz wMaxPacketSize 0x260
UA-25EX adv 96 playback int1 alt 0:
UA-25EX adv 96 playback int1 alt 1:
UA-25EX adv 96 record int0 alt 0:
UA-25EX adv 96 record int0 alt 1: 2ch 24bit 96000Hz wMaxPacketSize 0x260
UA-25EX adv 96 record int1 alt 0:
UA-25EX adv 96 record int1 alt 1:


Any hints on how to hack up a driver for this?

Cheers,

Aleks
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux