[pulseaudio-discuss] enable-lfe-remixing

Alexander E. Patrakov patrakov at gmail.com
Wed Sep 3 05:28:06 PDT 2014


03.09.2014 16:47, David Henningsson wrote:
> Hi,
>
> As you might know, I'm trying to make life a little bit easier for
> laptops with a built-in subwoofer.
>
> Part of that is to revisit our "enable-lfe-remixing" setting, which is
> currently disabled by default.
>
> This means that people playing back stereo material, will, by default,
> complain that their speakers sound more tinny than on Windows.
>
> 1. I understand that there might be reasons we have it disabled by
> default, but it would be good to have those reasons lined up. What are
> those reasons really?

Some subwoofers object to high frequencies being fed to them - they 
produce distorted sound. Also, if regular speakers reproduce low 
frequencies well, the end result is that low frequencies are reproduced 
too well (because they are reproduced twice).

> 2. Should enable-lfe-remixing be a global setting? Or should it be
> configured per port? Per profile?

Definitely not global, not sure about the other options.

> 3. Should it happen that I will end up having to write a low/hipass
> filter for properly separating LFE from main speaker frequencies, what
> are your recommendations? I don't think we have a module we can use, but
> are there finished implementations in libraries that we can just try to
> import into PA? Or do we need to start over from scratch? Has anybody (e
> g Alexander) done any research on this topic?

There was research in the threads here:

http://lists.freedesktop.org/archives/pulseaudio-discuss/2013-March/016500.html

http://lists.freedesktop.org/archives/pulseaudio-discuss/2013-April/016836.html

Basically, the conclusion is that the math is known, and simple enough 
so that I think you can implement it yourself faster than searching for 
a suitable third-party implementation. And, when I start to insist on 
rewindability of everything implementable in a rewindable fashion, you 
will have no choice anyway except to implement this yourself or review a 
patch from me or from someone else. (And I do plan to work on this after 
discussing channel remixers in general with Tanu)

All you need is an LR2 or LR4 cross-over filter. There is a GPLed (v2 
only) implementation of LR4 in AC3Filter, but it is not a library, so 
not really suitable except as a reference.

Here is the theory: 
http://en.wikipedia.org/wiki/Linkwitz%E2%80%93Riley_filter

Here is the code: 
http://www.ac3filter.net/repo/valib/file/49e0393398e6/valib/iir

We can discuss this further or hack a prototype in Dusseldorf.

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list