Surround sound configuration issues

Hello,

This is my first post here.
I am completely new to openSUSE, I installed it today and I am trying to configure my system.
I am a former MS Windows user, but since 2008, I have switched to Linux, however Debian based distributions.

I am making a big step here and I need some help.

I have an ASUS Xonar DS sound card and DTS & Dolby Digital decoder connected to the card via optical cable.
The decoder does not have analogue connections and thus digital is the only way to go.
Listening to music (youtube) only on 2 speakers out of 5.1 is also not an option and thus up-mixing system-wide is needed.

The card is capable of hardware up-mixing and hardware on-the-fly encoding to DTS, known as DTS Interactive.
As far as I know, this feature is not supported on Linux and thus the only solution is software up-mixing.

To my knowledge there are two alsa plugins for this job:

  1. a52 - Dobly Digital
  2. dca - DTS

Let me explain you what I have done…

  1. a52 - Dolby Digital

The alsa-plugins-a52 is not available in the repositories, thus I had to build it from source.
After adding the source repositories, I installed the following packages:


$ zypper in libffmpeg-devel
$ zypper source-install alsa-plugins

then I compiled from source:


$ cd /usr/src/packages/SOURCES
$ tar xvf alsa-plugins-*
$ cd alsa-plugins-*
$ ./configure
$ make

then copied the library:


$ cd a52/.libs
$ cp libasound_module_pcm_a52.so /usr/lib64/alsa-lib/ #for 64bit system (mine is a 64bit system)
$ cp libasound_module_pcm_a52.so /usr/lib/alsa-lib/ #for 32-bit legacy systems

then created a file at ~/.asoundrc with the following content:


pcm.a52 {
  @args [CARD]
  @args.CARD {
    type string
  }
  type rate
  slave {
    pcm {
      type a52
      bitrate 448
      channels 6
      card $CARD
    }
  rate 48000 #required somehow, otherwise nothing happens in PulseAudio
  }
}


then restarted both ALSA and PulseAudio:


$ sudo alsactl restore
$ pulseaudio --kill

then i install pavucontrol:


sudo zypper in pavucontrol

and i run it. I navigated to the Configuration tab and selected the Digital Surround 5.1 profile.
I expected the above to work and it did, but with issues.

Opening a video on youtube, it hangs and the video does not start playing.
Changing the profile to analogue, makes it start and when changing again to digital, while playing, does the job.
This means that for every video, that I open, i have to do that procedure and the same holds true for every other programs that tries to connect to the sound card.

I’ve had such an issue in Debian and solved it with a workaround. I created a virtual device by adding the following in /etc/pulse/default.pa:

load-module module-alsa-sink device=a52 rate=48000 channels=6 tsched=0 sink_properties=device.description=SPDIF sink_name=SPDIF channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe

but it seems that in openSUSE it does not work. PulseAudio won’t load after adding the above lines.
And that’s pretty much what i have done and where I got with a52. It works nice, cpu usage is low and the sound quality is great… but…

  1. dca - DTS
    I found out that unlike a52 plugin, openSUSE the dca plugin in the repositories, so I installed it:

$ sudo zyppper in alsa-plugins-dca

and then I copied the configuration file to my ~/.asoundrc:


$ cp /usr/share/alsa/pcm/dca.conf ~/.asoundrc

then I restarted ALSA and PulseAudio and opened pavucontrol to set my sound card to the digital profile and it worked!
However, the sound quality is bad, increasing or decreasing the volume makes the sound crack and there is noise in general.
I have tried everything I found in link below to get rid of the problem and improve the quality, but no success.
https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Audio_quality

I have two way to do software up-mixing, both of them are working, but with serious problems both of them.

Any ideas?

P.S. Running openSUSE 13.2 64bit

OK, no answer here… but fortunately I solved the issue myself :slight_smile:

I am writing down what I did for future reference of other users.
If there is a wiki page for openSUSE I can also make one for surround sound, but please let me know.

The solution came with a52 plugin.
Following the procedure of my post above, do the following:

  1. Edit /etc/pulse/default.pa:

$ sudo nano /etc/pulse/default.pa

find the following entry:


### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle

and comment the second line like this:


### Automatically suspend sinks/sources that become idle for too long
#load-module module-suspend-on-idle

this will remove noise and cracking.

  1. Edit /etc/pulse/deamon.conf

sudo nano /etc/pulse/daemon.conf

find, uncomment (remove “;”) and change this entry:


; enable-lfe-remixing = no

to:


enable-lfe-remixing = yes

then find, uncomment (remove “;”) and change this entry:


; default-sample-rate = 44100

to:


default-sample-rate = 48000

then find, uncomment (remove “;”) and change this entry:


; default-sample-channels = 2

to:


default-sample-channels = 6

then find, uncomment (remove “;”) and change this entry:


; default-channel-map = front-left,front-right

to:


default-channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe

save and exit.

  1. Now you can either restart ALSA and PulseAudio or reboot.

P.S. For some strange reason restarting ALSA and PulseAudio didn’t do the job for me and everything worked after a reboot.

Welcome to OpenSuse. And thanks for your hard work - i’m sure it will be useful to others.