[vlc-devel] [PATCH v3 00/10] Introducing 15- and 31-band ISO equalizers

Ronald Wright logiconcepts819 at gmail.com
Sun Nov 29 23:09:32 CET 2015

This set of patches is an update of last year's patch set that introduces
improvements to the equalizer code, which include 15- and 31-band ISO
equalizers.  The "equalizer-vlcfreqs" boolean option has been deprecated and
effectively replaced with an "equalizer-type" string variable that takes on
values "vlc10" (for a 10-band VLC equalizer), "iso10" (for a 10-band ISO
equalizer), "iso15" (for a 15-band ISO equalizer), and "iso31" (for a 31-band
ISO equalizer).  The equalizer module features a new band parsing technique
that matches the way bands are parsed in the Qt interface.  The provided preset
tables for the ISO bands contain interpolated values from the preset tables for
the VLC bands.  If an appropriately formatted string of band values is given
instead of the preset, the corresponding values will be interpolated if they do
not match the current type of equalizer or will be taken as is otherwise (see
long text under "Bands gain" for more information).  It should be noted that
the updated code distinguishes between rounded frequencies, which are
appropriate for display, and true frequencies, which are actually used for IIR
filtering and interpolation.  The set of patches also includes a bug fix that
corrects preset loading when the equalizer module is initialized.

The default type of equalizer used by the desktop version of VLC is still the
10-band VLC equalizer with frequency centers 60 Hz, 170 Hz, 310 Hz, 600 Hz,
1 kHz, 3 kHz, 6 kHz, 12 kHz, 14 kHz, and 16 kHz.  The type of equalizer that
will always be used by LibVLC is the 10-band ISO equalizer with displayable
frequency centers 31.5 Hz, 63 Hz, 125 Hz, 250 Hz, 500 Hz, 1 kHz, 2 kHz, 4 kHz,
8 kHz, and 16 kHz.

Currently, the extra equalizers can only be loaded from the desktop Qt
interface, since I have close to no experience in OS X development, and the
goal of LibVLC is to keep the API as simple as possible.  However, the code for
LibVLC and the OS X interface has been adapted to the updated code in
equalizer_presets.h so that it can compile.  The Lua interface has also been
updated so that it is in sync with the latest equalizer code.

Ronald Wright (10):
  Add monotone cubic interpolation support
  Add utilities for parsing equalizer band strings
  Add test for monotone cubic interpolation support
  Add test for equalizer band string parsing utilities
  equalizer: Add support for extra sets of ISO bands
  Qt: Add support for extra sets of equalizer ISO bands
  lua: Update equalizer support
  http lua: Update to match updated equalizer support in Lua backend
  macosx: Adapt to new equalizer code with extra sets of ISO bands
  libvlc: Adapt to new equalizer code with extra sets of ISO bands

 include/vlc_eqz_util.h                         |  92 ++++
 include/vlc_interpolation.h                    | 127 +++++
 lib/audio.c                                    |  18 +-
 lib/media_player.c                             |  15 +-
 lib/media_player_internal.h                    |   2 +-
 modules/audio_filter/equalizer.c               | 136 +++--
 modules/audio_filter/equalizer_presets.h       | 665 +++++++++++++++++++++++--
 modules/gui/macosx/AudioEffects.m              |  27 +-
 modules/gui/qt4/components/extended_panels.cpp | 209 +++++---
 modules/gui/qt4/components/extended_panels.hpp |   5 +-
 modules/lua/libs/equalizer.c                   | 243 ++++++---
 po/POTFILES.in                                 |   4 +
 share/lua/http/css/main.css                    |  17 +
 share/lua/http/dialogs/equalizer_window.html   |   3 +
 share/lua/http/js/controllers.js               |  59 ++-
 share/lua/http/mobile_equalizer.html           |   3 +
 share/lua/intf/modules/httprequests.lua        |   1 +
 src/Makefile.am                                |   8 +-
 src/libvlccore.sym                             |  24 +-
 src/misc/eqz_util.c                            | 295 +++++++++++
 src/misc/interpolation.c                       | 216 ++++++++
 test/Makefile.am                               |   6 +
 test/src/misc/eqz_util.c                       | 323 ++++++++++++
 test/src/misc/interpolation.c                  | 129 +++++
 24 files changed, 2366 insertions(+), 261 deletions(-)
 create mode 100644 include/vlc_eqz_util.h
 create mode 100644 include/vlc_interpolation.h
 create mode 100644 src/misc/eqz_util.c
 create mode 100644 src/misc/interpolation.c
 create mode 100644 test/src/misc/eqz_util.c
 create mode 100644 test/src/misc/interpolation.c


More information about the vlc-devel mailing list