I'm trying to make 5.1 sound work on my old Soundblaster HD. This through the toslink digital output of the card.

I set those values in the pulseaudio daemon:

 remixing-produce-lfe = yes
 remixing-consume-lfe = yes
 lfe-crossover-freq = 80

 default-sample-channels = 6

And this line in the default config file:

load-module module-combine channels=6 channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe

When I test with

speaker-test -c6

front-left, center and front-right work but not the rear speakers. The rear speakers white noise go through the front ones (as if it was stereo).

I can't test -c 6 with IEC958. If I understood well the theory, this makes sense since I should have the profile


But I just have stereo profiles associated with the card.

What's also bizarre, is that when I play a 5.1 Dolby track, the channel map isn't the one I set in my pulseaudio configuration; the rear speakers are replaced with side speakers (I muted the other channels to see whether the sound went through the rear speakers only - which it doesn't):

 sink input(s) available.
    index: 0
    driver: <protocol-native.c>
    state: RUNNING
    sink: 2 <alsa_output.usb-Creative_Technology_USB_Sound_Blaster_HD_000000VD-00.iec958-stereo>
    volume: front-left: 0 /   0% / -inf dB,   front-right: 0 /   0% / -inf dB,   side-left: 100270 / 153% / 11.08 dB,   side-right: 100270 / 153% / 11.08 dB,   front-center: 0 /   0% / -inf dB,   lfe: 0 /   0% / -inf dB
            balance 0.00
    muted: no
    current latency: 1260.19 ms
    requested latency: 40.00 ms
    sample spec: float32le 6ch 48000Hz
    channel map: front-left,front-right,side-left,side-right,front-center,lfe
    resample method: speex-float-1
    module: 15
    client: 4 <VLC media player (LibVLC 3.0.12)>

The question now being: can I manually create or force a 5.1 sound through IEC958 with those outputs?

  • toslink has some weird encoding for 5.1 due to bandwidth restrictions, it's possible the drivers can't handle this. First take Pulseaudio out of the picture (pulseaudio --kill if it doesn't respawn, or pasuspender), and do a speaker-test directly on the iec958 output (use aplay -L).
    – dirkt
    Jan 30, 2021 at 19:07

1 Answer 1


I should have the profile output:iec958-ac3-surround-51. But I just have stereo profiles associated with the card.

As I wrote: This means that the driver doesn't produce the somewhat weird AC3 5.1 encoding that TOSLINK uses.

I looked into this in more detail in another answer either here or on superuser, and I think I remember it was mostly a licensing problem. Nevertheless, there is no driver support, though I think the result was with enough time and energy one could write some.

Anyhow, you are better off using different means (either several analog channels, or a different kind of digital channel) instead of TOSLINK if you care for good quality 5.1 sound.

the channel map isn't the one I set in my pulseaudio configuration;

This is unrelated.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .