I finally bought a new sound card: A Sound Blaster Audigy SE (Sound Blaster Audigy SE - Sound Blaster Audigy SE), but lspci says :

└─(~)-> lspci -vv -s 04:09.0
04:09.0 Multimedia audio controller: Creative Labs SB Audigy LS
	Subsystem: Creative Labs Device 100a
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (500ns min, 5000ns max)
	Interrupt: pin A routed to IRQ 18
	Region 0: I/O ports at cc00 [size=32]
	Capabilities: <access denied>
	Kernel driver in use: audigyls

Ok, it's an Audigy LS.


Let's configure this card with Alsa. It suggests me to use the ca0106 module. Once detected and the module loaded, I have now hw:0,0, hw:0,1 and hw:0,2. Which are respectively front, rear and center. Apparently I can't have a native 5.1 surround system. I have 3 different cards. But Alsa let's the possibilty to mix differents things with the /etc/asound.conf file.

I tried differentthings. I've been able to set up a correct dmix system, nor a valid surround system, but NOT both. And no one seemed to manage to make that working. I asked for a little help on #alsa@freenode :

<Yoda-BZH>      hi ppl
<Yoda-BZH>      is it possible to have dmix AND surround (5.1) at the same time ? (with ca0106 module)
<wishie>        no
<Yoda-BZH>      seriously ?!
<Zider> hey wishie :)
<wishie>        Yoda-BZH: seriously
<Yoda-BZH>      :(
<Yoda-BZH>      why isn't that possible ?
<Zider> wishie: shouldn't it be possible to hack up an .asoundrc to do that?
<wishie>        because the ca0106 is used as 3 x 2ch devices
<wishie>        and the ca0106 has to use all 3 at once to get 6ch sound
<wishie>        so basically..
<wishie>        you have to mix all 3 streams to get 6ch, then dmix the result
<wishie>        thats where the problem lies.
<wishie>        dmix only accepts a hw device as a slave
<Zider> aha
<wishie>        and which one do you give it ? the 1st, 2nd, or 3rd hw device (each 2ch)
<Zider> none of the above!
<Zider> ;)
<wishie>        exactly
<Zider> didn't know dmix required a hardware device
<wishie>        the ca0106 can also be used in a 1x6ch device mode, but its not implemented
<Zider> ah
<wishie>        i believe this is due to the fact, the buffer becomes insanely small if its used in that mode.
<wishie>        but!
<Zider> so the answer is "no, not yet"
<Zider> :)
<Yoda-BZH>      hmmmm
<Yoda-BZH>      ok
<wishie>        you CAN get it working, IF you want to get compilcated and use PulseAudio aswell
<--     hiptobecubic has quit (No route to host)
<wishie>        i did get it working at one stage, for someone.. cant remember how, though.
<wishie>        i think it involved doing the upmixing, then passing the resulting stream to PA, then back to ALSA..heh
<wishie>        it was nasty, in any event.
<jeeger`>       are the in-kernel drivers in 2.6.27 newer than alsa-1.0.17?
<jeeger`>       because then I could try out the out-of-kernel drivers

So, without external mixing software (pulseaudio, arts, esd ...) it's not possible to have both dmix and surround5.1.


I often read posts on OSS, in particular this one that make me thinking a lot. With this Alsa problem, I decided to try OSS4. They proposes different packages, event a .deb file. I downloaded it and installed.

└─(/home/yoda/usr/share/oss)-> dpkg -i oss-linux-4.0-1016_i386.deb

The package stopped Alsa proprely, detected correctly my sound card and compiled some drivers. Once loaded the audigyls module, I checked my /dev/dsp* devices. And here is the result :

└─(~)-> ls -l /dev/dsp*
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp -> /dev/oss/audigyls0/pcm0
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp0 -> /dev/oss/audigyls0/pcm0
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp1 -> /dev/oss/audigyls0/pcm1
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp2 -> /dev/oss/audigyls0/pcm2
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp3 -> /dev/oss/audigyls0/pcm3
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp_ac3 -> /dev/oss/audigyls0/pcm0
lrwxrwxrwx 1 root root  8 sep 26 09:17 /dev/dsp_in -> /dev/dsp
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp_mmap -> /dev/oss/audigyls0/pcm0
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp_multich -> /dev/oss/audigyls0/pcm3
lrwxrwxrwx 1 root root 23 sep 26 09:17 /dev/dsp_out -> /dev/oss/audigyls0/pcm0

Well, I admit that that's really cool to have different /dev/dsp? devices for a single sound card. Software mixing is working on a single device, and if you have an old style OSS software (like teamspeak), you can set it to use a different device ... for the same sound card. Really cool !

Oss is bundled with two mixer software, a command line (ossmix) and a graphical tool (ossxmix). Here's a screenshoft of the graphical one : ossxmix_window.jpg

Pretty cool huh ?

Well, I don't understand what everything means ... but I managed quite easily to make a surround system working with software mixing. I just have to enable spread.

All applications has the oss plugin, so every one is happy, and can send all their crappy sound to a valid device without conflict.

The final word

This post is not intented to make the glory of OSS4, but the fact is that OSS4 make the point with it system for this sound card. I really like Alsa, but I can't use it on my system. Sorry Alsa.