The current LFE crossover filter removes low frequencies from the main channels and puts them into the LFE channel with the wrong amplitude. It is not known for sure what is the correct relative amplitude (acoustic measurements are required with real hardware), and changing that might introduce a new bug, "it clips the LFE channel". So just disable the feature by default until a better understanding emerges how it should work. This, essentially, returns the defaults to their state as of PulseAudio 6.0. Some more observations: - Most of available active analog speakers on the market do the necessary crossover filtering already, and HDMI receivers can be configured to do that, too, so a crossover filter in PulseAudio is harmful in these use cases. - The "laptop with a builtin subwoofer" use case requires manual configuration anyway because the default crossover frequency (120 Hz) is wrong for laptop speakers. - Finally, Windows 10 with a built-in USB audio driver does not synthesize the LFE channel given a 5.1 card and a stereo audio stream by default. Hides: https://bugs.freedesktop.org/show_bug.cgi?id=95021 Signed-off-by: Alexander E. Patrakov <patrakov at gmail.com> --- man/pulse-daemon.conf.5.xml.in | 4 ++-- src/daemon/daemon-conf.c | 4 ++-- src/daemon/daemon.conf.in | 4 ++-- src/pulsecore/core.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/man/pulse-daemon.conf.5.xml.in b/man/pulse-daemon.conf.5.xml.in index 1abc94f..ed77158 100644 --- a/man/pulse-daemon.conf.5.xml.in +++ b/man/pulse-daemon.conf.5.xml.in @@ -136,12 +136,12 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. channel is available as well. If no input LFE channel is available the output LFE channel will always be 0. If no output LFE channel is available the signal on the input LFE channel - will be ignored. Defaults to <opt>yes</opt>.</p> + will be ignored. Defaults to <opt>no</opt>.</p> </option> <option> <p><opt>lfe-crossover-freq=</opt> The crossover frequency (in Hz) for the - LFE filter. Defaults to 120 Hz. Set it to 0 to disable the LFE filter.</p> + LFE filter. Set it to 0 to disable the LFE filter. Defaults to 0.</p> </option> <option> diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c index 965a5c8..4277301 100644 --- a/src/daemon/daemon-conf.c +++ b/src/daemon/daemon-conf.c @@ -82,8 +82,8 @@ static const pa_daemon_conf default_conf = { .log_time = false, .resample_method = PA_RESAMPLER_AUTO, .disable_remixing = false, - .disable_lfe_remixing = false, - .lfe_crossover_freq = 120, + .disable_lfe_remixing = true, + .lfe_crossover_freq = 0, .config_file = NULL, .use_pid_file = true, .system_instance = false, diff --git a/src/daemon/daemon.conf.in b/src/daemon/daemon.conf.in index b48afa2..fcc9cb9 100644 --- a/src/daemon/daemon.conf.in +++ b/src/daemon/daemon.conf.in @@ -54,8 +54,8 @@ ifelse(@HAVE_DBUS@, 1, [dnl ; resample-method = speex-float-1 ; enable-remixing = yes -; enable-lfe-remixing = yes -; lfe-crossover-freq = 120 +; enable-lfe-remixing = no +; lfe-crossover-freq = 0 ; flat-volumes = yes diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c index 6d102f5..2a96dfa 100644 --- a/src/pulsecore/core.c +++ b/src/pulsecore/core.c @@ -142,8 +142,8 @@ pa_core* pa_core_new(pa_mainloop_api *m, bool shared, bool enable_memfd, size_t c->realtime_scheduling = false; c->realtime_priority = 5; c->disable_remixing = false; - c->disable_lfe_remixing = false; - c->lfe_crossover_freq = 120; + c->disable_lfe_remixing = true; + c->lfe_crossover_freq = 0; c->deferred_volume = true; c->resample_method = PA_RESAMPLER_SPEEX_FLOAT_BASE + 1; -- 2.8.2