[alsa-devel] [CONF] All C-Media Codecs based 5.1 Channel USB- Headsets
thomas schorpp
thomas.schorpp at googlemail.com
Sun Nov 18 05:38:17 CET 2007
thomas schorpp wrote:
> 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.
tom1:/etc# cat /proc/asound/cards
0 [V8237 ]: VIA8237 - VIA 8237
VIA 8237 with ALC850 at 0xa800, irq 22
1 [Audio ]: USB-Audio - USB Audio
USB Audio at usb-0000:00:10.3-1, full speed
2 [AiptekDV3500 ]: USB-Audio - DV 3500
DV 3500 at usb-0000:00:10.1-2, full speed
USB-Audio."USB Audio".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
}
}
hm. this seems to change nothing here, wether with VLC or
vdr with -a '/usr/bin/ac3dec -6 -D surround71:CARD=Audio'
(ac3dec with my "enable -6 with DD2.0 input patch from alsa bugzilla).
speaker-test -Dsurround51:CARD=Audio -c 6 -t wav still err "no conf avail.".
speaker-test -Dsurround71:CARD=Audio -c 6 -t wav is fine.
speaker-test -Ddefault:CARD=Audio -c 6 -t wav aligns speakers wrongly with or
without /etc/asound.conf
anyway. i'm fully satisfied. :) if You want me to test more, drop me a note.
>
>>
>> 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
>
y
tom
More information about the Alsa-devel
mailing list