[vlc-devel] [PATCH 0/6] Introducing 15- and 31-band ISO equalizers

Ronald Wright logiconcepts819 at gmail.com
Thu Jul 24 19:19:16 CEST 2014

This set of patches introduces improvements to the equalizer code, which
include 15- and 31-band ISO equalizers.  The "equalizer-vlcfreqs" boolean
option has been 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.

Ronald Wright (6):
  equalizer: Fix bug in preset loading
  Add monotone cubic interpolation support
  equalizer: Add support for extra sets of ISO bands
  Qt: Add support for extra sets of equalizer ISO bands
  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_interpolation.h                    | 122 ++++
 lib/audio.c                                    |  18 +-
 lib/media_player.c                             |  15 +-
 lib/media_player_internal.h                    |   2 +-
 modules/audio_filter/equalizer.c               | 235 ++++++--
 modules/audio_filter/equalizer_presets.h       | 751 +++++++++++++++++++++++--
 modules/gui/macosx/AudioEffects.m              |  26 +-
 modules/gui/qt4/components/extended_panels.cpp | 277 ++++++---
 modules/gui/qt4/components/extended_panels.hpp |   8 +-
 po/POTFILES.in                                 |   2 +
 src/Makefile.am                                |   2 +
 src/libvlccore.sym                             |   3 +
 src/misc/interpolation.c                       | 219 +++++++
 13 files changed, 1495 insertions(+), 185 deletions(-)
 create mode 100644 include/vlc_interpolation.h
 create mode 100644 src/misc/interpolation.c


More information about the vlc-devel mailing list