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