[pulseaudio-discuss] [RFC PATCH 0/6] LFE filter
David Henningsson
david.henningsson at canonical.com
Wed Jan 28 14:14:44 PST 2015
Hi!
Hui and I have been working on some LFE filter patches lately, and this
is our first draft for review/feedback.
First, I have greedily stolen the math from CRAS, because CRAS is BSD and
as I understand we don't have a problem with merging more liberal licenses.
The LFE filter is implemented in the resampler, which means it is done for
every sink-input rather than every sink - this might mean some additional
CPU processing if many different streams play back at the same time, but
putting it on the sink side would disable the possibility to mix a 2.0 stream
with a 2.1 stream.
The rewind part is very drafty and untested, and I'm not sure I choose the
best design here. But at least this is something that could act as base for
discussion.
Also, while testing we noticed that flat volumes acts a bit weird, making it
impossible to have a high subwoofer volume level but at the same time low
front speaker volume, but I'm not sure if that's a bug or just the (ahem)
normal weirdness of flat volumes.
David Henningsson (4):
lfe-filter: Import code from the Chrome OS audio server
lfe-filter: Enable LFE filter in the resampler
lfe-filter: Add rewind support
resampler: Make some basic functions for rewinding
Hui Wang (2):
daemon-conf: enable the lfe remixing by default
lfe-filter: change the crossover frequency as a parameter
LICENSE | 3 +
man/pulse-daemon.conf.5.xml.in | 7 +-
src/Makefile.am | 3 +
src/daemon/daemon-conf.c | 5 +-
src/daemon/daemon-conf.h | 1 +
src/daemon/daemon.conf.in | 3 +-
src/daemon/main.c | 1 +
src/modules/module-virtual-surround-sink.c | 2 +-
src/pulsecore/core.c | 1 +
src/pulsecore/core.h | 1 +
src/pulsecore/filter/LICENSE.WEBKIT | 27 +++
src/pulsecore/filter/biquad.c | 368 +++++++++++++++++++++++++++++
src/pulsecore/filter/biquad.h | 57 +++++
src/pulsecore/filter/crossover.c | 263 +++++++++++++++++++++
src/pulsecore/filter/crossover.h | 76 ++++++
src/pulsecore/filter/lfe-filter.c | 187 +++++++++++++++
src/pulsecore/filter/lfe-filter.h | 39 +++
src/pulsecore/resampler.c | 49 +++-
src/pulsecore/resampler.h | 7 +
src/pulsecore/sink-input.c | 6 +-
src/pulsecore/source-output.c | 4 +-
src/tests/remix-test.c | 3 +-
src/tests/resampler-test.c | 7 +-
23 files changed, 1106 insertions(+), 14 deletions(-)
create mode 100644 src/pulsecore/filter/LICENSE.WEBKIT
create mode 100644 src/pulsecore/filter/biquad.c
create mode 100644 src/pulsecore/filter/biquad.h
create mode 100644 src/pulsecore/filter/crossover.c
create mode 100644 src/pulsecore/filter/crossover.h
create mode 100644 src/pulsecore/filter/lfe-filter.c
create mode 100644 src/pulsecore/filter/lfe-filter.h
--
1.9.1
More information about the pulseaudio-discuss
mailing list