[pulseaudio-discuss] [RFC PATCH 0/6] LFE filter

Alexander E. Patrakov patrakov at gmail.com
Wed Jan 28 20:44:05 PST 2015


I confirm that I have received this and intend to review. However, due 
to some existing non-PulseAudio work with a deadline, I will not be able 
to review until Feburary 2.

29.01.2015 03:14, David Henningsson wrote:
> 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
>

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list