Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Note: I hope this is the right site to ask it on, as I'm using ubuntu 12.04 64bit but assumably this is a general linux/alsa configuration question.

I've followed the guide at https://help.ubuntu.com/community/DigitalAC-3Pulseaudio and compiled the a52 alsa plugin. It correctly shows up in pulseaudio using pavucontrol and I can select digital ac3 5.1 output for my 'HA INFO U2 USB TO SPDIF' soundcard.

However this produced an annoying noise that sounds different whether sound is playing, or if its muted. The same issue exists with the DTS alsa plugin at http://aepatrakov.narod.ru/dcaenc/. The virtual device shows up fine in pulseaudio but this time the sound is a much more unpleasant noise. I assume this is because the soundcard is doing something to the signal as the receiver is not recognising it as either dolby or DTS.

Things I've tried:

  1. Playing movies in windows using VLC. Both dolby/DTS tracks work in full 5.1 and are detected by my receiver.
  2. Disabling pulseaudio with pasuspender when launching xbmc and setting the custom passthrough device to hw:1,1. This correctly passes the dolby/DTS streams which the receiver correctly detects and plays without a problem.

Hypothesised problem/solution:

  1. The sound card shows up with 2 outputs, one is digital while the other is analogue. It only has physical digital outputs. I assume the analogue output doesn't touch the signal, while the digital one does which is what pulse audio/alsa attaches the plugin to which mangles the stream. Hence why hw:1,1 works correctly with passthrough. I need to tell alsa/pulseaudio to apply the ac3 or dts encoding plugin to device 1 (instead of 0), which presumably is detected as the analogue device. I've tried adding device 1 in the configuration file but I get an error.

How do I either force all outputs to be detected as digital for my card, or set alsa to apply the a52 plugin only to a specific card/device (hw:1,1 in my case)?

A little background:

  1. I need to encode all audio with appropriate mixing to the soundcard as a ac3/dts stream so I can use the 5.1 setup for all audio (stereo being upmixed).
  2. I would strongly prefer to use the digital pathway as far as possible (so there is only my receivers DAC before final amplification, instead of potentially having to deal with multiple ADC/DACs in a chain if I used a soundcard with multi channel analogue out.
  3. The intention is to use brutefir or another convolution engine to individually room correct each speaker so I have a way of individually addressing each channel with filters. This will likely mean a pipeline like alsa <- jack <- pulse which is another configuration hurdle to jump but for now I'm stuck on the first block.

Thanks in advance for your responses/suggestions!

share|improve this question
    
This is not an answer, but have you considered using Ubuntu Studio? You should have an easier time with it. –  terdon Aug 22 '12 at 1:49
    
Thanks for the comment, I might need to switch to it for the jack/brutefir work but would rather avoid the hassle if its not needed. The current issue looks like its a hardware quirk that needs some hack in a config file somewhere which I doubt ubuntu studio would help with. –  psandersen Aug 22 '12 at 3:36
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.