Re: Strange alsa behaviour

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

 



  Le 02/09/2010 15:52, Jaroslav Kysela a écrit :
>
> On Thu, 2 Sep 2010, Cyril Russo wrote:
>
>>
>>  Hi,
>>
>>  I've an issue with my new Creative Audigy sound card.
>> I'm using a Debian Squeeze (with official 2.6.32-5-amd64 kernel) system.
>> I've done this step to ensure I'm using the latest version:
>> sudo module-assistant auto-install alsa (which installed the driver from
>> alsa-driver 1.0.23's package)
>>
>> The sound card is correctly detected and it's working, but I've an
>> issue, in that each channel appears as a different device.
>> So in all the software using Alsa I have to select a device and it
>> outputs on a single stereo channel for this particular device.
>>
>> For example, this command lists:
>> # aplay -l
>> **** List of PLAYBACK Hardware Devices ****
>> card 0: CA0106 [CA0106], device 0: ca0106 [CA0106]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>> card 0: CA0106 [CA0106], device 1: ca0106 [CA0106]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>> card 0: CA0106 [CA0106], device 2: ca0106 [CA0106]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>> card 0: CA0106 [CA0106], device 3: ca0106 [CA0106]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>>
>> Here the /proc/asound dump:
>> # find /proc/asound/
>> /proc/asound/
>> /proc/asound/CA0106
>> /proc/asound/card0
>> /proc/asound/card0/id
>> /proc/asound/card0/midi0
>> /proc/asound/card0/iec958
>> /proc/asound/card0/ca0106_reg32
>> /proc/asound/card0/ca0106_reg16
>> /proc/asound/card0/ca0106_reg8
>> /proc/asound/card0/ca0106_regs1
>> /proc/asound/card0/ca0106_i2c
>> /proc/asound/card0/ca0106_regs2
>> /proc/asound/card0/pcm3c
>> /proc/asound/card0/pcm3c/sub0
>> /proc/asound/card0/pcm3c/sub0/prealloc_max
>> /proc/asound/card0/pcm3c/sub0/prealloc
>> /proc/asound/card0/pcm3c/sub0/status
>> /proc/asound/card0/pcm3c/sub0/sw_params
>> /proc/asound/card0/pcm3c/sub0/hw_params
>> /proc/asound/card0/pcm3c/sub0/info
>> /proc/asound/card0/pcm3c/info
>> /proc/asound/card0/pcm3p
>> /proc/asound/card0/pcm3p/sub0
>> /proc/asound/card0/pcm3p/sub0/prealloc_max
>> /proc/asound/card0/pcm3p/sub0/prealloc
>> /proc/asound/card0/pcm3p/sub0/status
>> /proc/asound/card0/pcm3p/sub0/sw_params
>> /proc/asound/card0/pcm3p/sub0/hw_params
>> /proc/asound/card0/pcm3p/sub0/info
>> /proc/asound/card0/pcm3p/info
>> /proc/asound/card0/pcm2c
>> /proc/asound/card0/pcm2c/sub0
>> /proc/asound/card0/pcm2c/sub0/prealloc_max
>> /proc/asound/card0/pcm2c/sub0/prealloc
>> /proc/asound/card0/pcm2c/sub0/status
>> /proc/asound/card0/pcm2c/sub0/sw_params
>> /proc/asound/card0/pcm2c/sub0/hw_params
>> /proc/asound/card0/pcm2c/sub0/info
>> /proc/asound/card0/pcm2c/info
>> /proc/asound/card0/pcm2p
>> /proc/asound/card0/pcm2p/sub0
>> /proc/asound/card0/pcm2p/sub0/prealloc_max
>> /proc/asound/card0/pcm2p/sub0/prealloc
>> /proc/asound/card0/pcm2p/sub0/status
>> /proc/asound/card0/pcm2p/sub0/sw_params
>> /proc/asound/card0/pcm2p/sub0/hw_params
>> /proc/asound/card0/pcm2p/sub0/info
>> /proc/asound/card0/pcm2p/info
>> /proc/asound/card0/pcm1c
>> /proc/asound/card0/pcm1c/sub0
>> /proc/asound/card0/pcm1c/sub0/prealloc_max
>> /proc/asound/card0/pcm1c/sub0/prealloc
>> /proc/asound/card0/pcm1c/sub0/status
>> /proc/asound/card0/pcm1c/sub0/sw_params
>> /proc/asound/card0/pcm1c/sub0/hw_params
>> /proc/asound/card0/pcm1c/sub0/info
>> /proc/asound/card0/pcm1c/info
>> /proc/asound/card0/pcm1p
>> /proc/asound/card0/pcm1p/sub0
>> /proc/asound/card0/pcm1p/sub0/prealloc_max
>> /proc/asound/card0/pcm1p/sub0/prealloc
>> /proc/asound/card0/pcm1p/sub0/status
>> /proc/asound/card0/pcm1p/sub0/sw_params
>> /proc/asound/card0/pcm1p/sub0/hw_params
>> /proc/asound/card0/pcm1p/sub0/info
>> /proc/asound/card0/pcm1p/info
>> /proc/asound/card0/pcm0c
>> /proc/asound/card0/pcm0c/sub0
>> /proc/asound/card0/pcm0c/sub0/prealloc_max
>> /proc/asound/card0/pcm0c/sub0/prealloc
>> /proc/asound/card0/pcm0c/sub0/status
>> /proc/asound/card0/pcm0c/sub0/sw_params
>> /proc/asound/card0/pcm0c/sub0/hw_params
>> /proc/asound/card0/pcm0c/sub0/info
>> /proc/asound/card0/pcm0c/info
>> /proc/asound/card0/pcm0p
>> /proc/asound/card0/pcm0p/sub0
>> /proc/asound/card0/pcm0p/sub0/prealloc_max
>> /proc/asound/card0/pcm0p/sub0/prealloc
>> /proc/asound/card0/pcm0p/sub0/status
>> /proc/asound/card0/pcm0p/sub0/sw_params
>> /proc/asound/card0/pcm0p/sub0/hw_params
>> /proc/asound/card0/pcm0p/sub0/info
>> /proc/asound/card0/pcm0p/info
>> /proc/asound/pcm
>> /proc/asound/timers
>> /proc/asound/modules
>> /proc/asound/cards
>> /proc/asound/devices
>> /proc/asound/version
>> /proc/asound/seq
>> /proc/asound/seq/timer
>> /proc/asound/seq/clients
>> /proc/asound/seq/queues
>> /proc/asound/seq/drivers
>> /proc/asound/oss
>> /proc/asound/oss/sndstat
>> /proc/asound/oss/devices
>>
>> # cat /proc/asound/cards
>>  0 [CA0106         ]: CA0106 - CA0106
>>                       Audigy SE [SB0570] at 0xcf00 irq 18
>>
>> # cat /proc/asound/devices
>>   0: [ 0]   : control
>>   1:        : sequencer
>>   8: [ 0- 0]: raw midi
>>  16: [ 0- 0]: digital audio playback
>>  17: [ 0- 1]: digital audio playback
>>  18: [ 0- 2]: digital audio playback
>>  19: [ 0- 3]: digital audio playback
>>  24: [ 0- 0]: digital audio capture
>>  25: [ 0- 1]: digital audio capture
>>  26: [ 0- 2]: digital audio capture
>>  27: [ 0- 3]: digital audio capture
>>  33:        : timer
>>
>>
>> I've an empty .asoundrc (Using a more complex .asoundrc I'm able to
>> duplicate a channel to all other channels, but it's only duplication,
>> it's the same sound on all channels)
>> As such the audio softwares usually list this while enumerating the 
>> devices:
>> ALSA device: hw:CA0106,0 outs=2-2 ins=2-2 rates=3
>> ALSA device: hw:CA0106,1 outs=2-2 ins=2-2 rates=3
>> ALSA device: hw:CA0106,2 outs=2-2 ins=2-2 rates=3
>> ALSA device: hw:CA0106,3 outs=2-2 ins=2-2 rates=3
>>
>> I want them to list a single device with 8 outputs, and not 4 devices
>> with 2 outputs.
>> I have other systems with different sound cards and it's the first time
>> I'm seeing this.
>
> Use surround71 device (like 'aplay -D plug:surround71'). It combines 
> the stereo devices to a 8-channel device.
Hi,

   Yes, that's what I've did (used speaker-test and a redirection in 
.asoundrc, but it's the same idea). However some software don't allow to 
set up the audio device as a text, but instead enumerate them using 
alsa's functions.
In that case, I can't set them to plug:surround71, and I can only select 
one of the devices (stereo pair).

How come alsa list all channels as separate devices, at first ? Is it 
possible to change this ?

For information, I've put this inside my .asoundrc :
pcm.!default {
      type plug
      slave.pcm "multi"
}

pcm.multi {
      type multi;
      slaves.a.pcm "hw:0,0";
      slaves.a.channels 2;
      slaves.b.pcm "hw:0,1";
      slaves.b.channels 2;
      slaves.c.pcm "hw:0,2";
      slaves.c.channels 2;
      bindings.0.slave a;
      bindings.0.channel 0;
      bindings.1.slave a;
      bindings.1.channel 1;
      bindings.2.slave b;
      bindings.2.channel 0;
      bindings.3.slave b;
      bindings.3.channel 1;
      bindings.4.slave c;
      bindings.4.channel 0;
      bindings.5.slave c;
      bindings.5.channel 1;
}


Best regards,
Cyril




------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
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