ALSA help
#1
I'm trying to get more than 2 channel sound out of XBMC.

The setup is Debian Squeeze with the multimedia repository (XBMC 10.0, ALSA 1.0.23)
The hardware is an Athlon 64 X2 2.3GHz, 4GB of RAM, on a 690G board. The S/PDIF output (coax) is connected to my receiver.

ALSA believes my devices are:
Code:
jehannum@fomalhaut:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC883 Analog [ALC883 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC883 Digital [ALC883 Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

ALSA believes my PCMs are:
Code:
jehannum@fomalhaut:~$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=SB
    HDA ATI SB, ALC883 Analog
    Default Audio Device
front:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    Front speakers
surround40:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Digital
    IEC958 (S/PDIF) Digital Audio Output


When XBMC is configured to output 2 channel audio on the default device (basically, leave everything alone after default install), I get 2 channel audio coming from my speakers.

When XBMC is configured to output 5.1 audio on the default device (AC3 and DTS passthru to the default device, iec958, hw:0,1), I get nothing, except the prompt when I play videos that "XBMC was unable to initialize your audio device". I'll capture some of the x console output when I get a chance.

I believe the cause is that surround51 PCM is configured to use the Analog output, but I'm not sure how to change the surround51 PCM. After fiddling around with XBMC for a while, I built an .asoundrc file as such:
Code:
pcm.!surround51 {
  type hw
  card 0
  device 1
}

but then it disappears totally from the PCM list:
Code:
jehannum@fomalhaut:~$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=SB
    HDA ATI SB, ALC883 Analog
    Default Audio Device
front:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    Front speakers
surround40:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround71:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=SB,DEV=0
    HDA ATI SB, ALC883 Digital
    IEC958 (S/PDIF) Digital Audio Output

Any sound gurus have helpful suggestions? I'm kind of puzzled here.
Reply
#2
What happens if you try
Code:
pcm.!default {
   type hw
   card 0
   device 1
}
in your .asoundrc?
Reply
#3
OK, so I found the digital sound bit in the FAQ.

Code:
pcm.dmixer {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:0,1"
    period_time 0
    period_size 1024
    buffer_size 8192
    rate 48000
  }
  bindings {
    0 0
    1 1
  }
}

works like a charm.
Reply

Logout Mark Read Team Forum Stats Members Help
ALSA help0