[alsa-devel] [CONF] All C-Media Codecs based 5.1 Channel USB- Headsets
thomas schorpp
thomas.schorpp at googlemail.com
Tue Nov 6 19:40:39 CET 2007
Takashi Iwai wrote:
> At Sun, 04 Nov 2007 08:36:56 +0100,
> thomas schorpp wrote:
>> Report to devlist as requested from USB-Audio.conf header:
>
> Thanks for the report.
>
>> 1. all this headsets with windriver inf files + manual showing c-media driver must have
>> the cm106x series 7.1 channel usb-codec in. there's no other from c-media for the design of 5.1
>> channel usb headsets available at this time, see:
>>
>> http://www.cmedia.com.tw/?q=en/usb_audio
>>
>> 2. the headset interface shows up with 8 channels in lsusb -v , 1 8-ch pcm in /proc,
>> and must be driven with
>> surround7.1 pcm plug instead of surround5.1 or it will not work. speaker-test program
>> works with -c6 -Dsurround7.1, test with -c8 works too, but shows that no SideL/R -speakers
>> connected/routed/downmixed ( Speedlink Medusa 5.1 Mobile USB Headset, cm106L)
>
> OK, and what about surround40? Does it work as is (I don't expect so,
> though)?
seems to work fine if i specify default:1 as "stereo playback device" in Xine-UI,
tested yesterday, well it is a headphone, so it is hard to locate speakers but you
get double the volume from parallel speaker drive, 5.1 CH is lower volume ;)
for stereo playback we must assure LFE+Center is off, respectively or stereo maybe
eliminated acoustically. for Xine it sounds not like, but for VLC, but thats real subjective.
the headset has 3 speakers per ear, i dont know the LFE+Center circuits...
so plug:surround40 is a good idea.
>
> For adding the proper configuration, please check the content of
> /proc/asound/cards. It gives the name string.
the "name" is from the drivers "id" parm, right?
> If the proc entry is like:
>
> 0 [Foo ]: FOO - FOO BAR
> FOO BAR DEVICE (Blah 0.0)
>
> then "FOO BAR" is the name string that we need to pass.
> (FYI, "FOO" is the driver string, "Foo" is the ID string and "FOO BAR
> DEVICE (Blah 0.0)" is the longname string.)
>
> Now add the following to ~/.asoundrc:
>
> USB-Audio."FOO BAR".pcm.surround51 {
> @args [ CARD ]
> @args.CARD { type string }
> type route
> ttable.0.0 1
> ttable.1.1 1
> ttable.2.4 1
> ttable.3.5 1
> ttable.4.2 1
> ttable.5.3 1
> slave {
> pcm {
> type hw
> card $CARD
> device 0
> }
> channels 8
> }
> }
will try it tomorrow, thx.
>
> Also, /proc/asound/card*/stream* files would be helpful to understand
tom1:~# cat /proc/asound/card1/stream*
USB Audio at usb-0000:00:10.3-1, full speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: 0x2
Channels: 8
Endpoint: 6 OUT (ADAPTIVE)
Rates: 44100, 48000
Capture:
Status: Stop
Interface 2
Altset 1
Format: 0x2
Channels: 2
Endpoint: 5 IN (ASYNC)
Rates: 44100, 48000
running vdr -a '/usr/bin/ac3dec -6 -D plug:surround71:1' on 5.1 media playback gives:
tom1:~# cat /proc/asound/card1/stream*
USB Audio at usb-0000:00:10.3-1, full speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 1
URBs = 2 [ 8 2 ]
Packet Size = 768
Momentary freq = 48000 Hz (0x30.0000)
Interface 1
Altset 1
Format: 0x2
Channels: 8
Endpoint: 6 OUT (ADAPTIVE)
Rates: 44100, 48000
Xine cdda with default:1 as stereo device setup:
Playback:
Status: Running
Interface = 1
Altset = 1
URBs = 3 [ 8 8 6 ]
Packet Size = 768
Momentary freq = 48000 Hz (0x30.0000) <-- ??? should be 44.1kHz
Interface 1
Altset 1
Format: 0x2
Channels: 8
Endpoint: 6 OUT (ADAPTIVE)
Rates: 44100, 48000
VLC cdda has the best sound output so far:
Playback:
Status: Running
Interface = 1
Altset = 1
URBs = 3 [ 8 8 8 ] <----------XXX ?
Packet Size = 768
Momentary freq = 44100 Hz (0x2c.199a) <--- XXX
Interface 1
Altset 1
Format: 0x2
Channels: 8
Endpoint: 6 OUT (ADAPTIVE)
Rates: 44100, 48000
> more, at best, together with lsusb -vv output.
tom1:~# lsusb -vv -d 0d8c:0006
Bus 005 Device 002: ID 0d8c:0006 C-Media Electronics, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0d8c C-Media Electronics, Inc.
idProduct 0x0006
bcdDevice 0.10
iManufacturer 0
iProduct 2 USB Audio
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 340
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 187
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 8
wChannelConfig 0x063f
Left Front (L)
Right Front (R)
Center Front (C)
Low Freqency Enhancement (LFE)
Left Surround (LS)
Right Surround (RS)
Side Left (SL)
Side Right (SR)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 8
bSourceID 4
bControlSize 1
bmaControls( 0) 0x40
Automatic Gain
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 9
bSourceID 4
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 25
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 12
bNrInPins 3
baSourceID( 0) 1
baSourceID( 1) 9
baSourceID( 2) 11
bNrChannels 8
wChannelConfig 0x063f
Left Front (L)
Right Front (R)
Center Front (C)
Low Freqency Enhancement (LFE)
Left Surround (LS)
Right Surround (RS)
Side Left (SL)
Side Right (SR)
iChannelNames 0
bmControls 0x00
bmControls 0x00
bmControls 0x00
iMixer 0
junk at descriptor end: 00 00 00 00 00 00 00 00 00
AudioControl Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 13
bSourceID 12
bControlSize 1
bmaControls( 0) 0x03
Mute
Volume
bmaControls( 1) 0x00
bmaControls( 2) 0x00
bmaControls( 3) 0x00
bmaControls( 4) 0x00
bmaControls( 5) 0x00
bmaControls( 6) 0x00
bmaControls( 7) 0x00
bmaControls( 8) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 13
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 12
bControlSize 1
bmaControls( 0) 0x00
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 10
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 7
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 5 (SELECTOR_UNIT)
bUnitID 7
bNrInPins 4
baSource( 0) 8
baSource( 1) 15
baSource( 2) 16
baSource( 3) 2
iSelector 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 6
wTerminalType 0x0603 Line Connector
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 15
bSourceID 6
bControlSize 1
bmaControls( 0) 0x00
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 11
bSourceID 6
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0605 SPDIF interface
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 16
bSourceID 5
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x00
bmaControls( 2) 0x00
iFeature 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 1
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 14
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 8
bSubframeSize 2
bBitResolution 16
bSamFreqType 2 Discrete
tSamFreq[ 0] 44100
tSamFreq[ 1] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 9
Transfer Type Isochronous
Synch Type Adaptive
Usage Type Data
wMaxPacketSize 0x0300 1x 768 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 10
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 14
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 2 Discrete
tSamFreq[ 0] 44100
tSamFreq[ 1] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00c8 1x 200 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Devices
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 50
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0003 1x 3 bytes
bInterval 32
Device Status: 0x0000
(Bus Powered)
tom1:~#
>
>
> Takashi
>
thx
y
tom
More information about the Alsa-devel
mailing list