highfidelity/hifi — pull request #3270 by chansensturm (2014-08-11 06:21:40+00:00)
Title: Added support for biquad, parametric, and multi-band filter eq

Feature requested by Philip Rosedale. Have implemented a multi-band parametric eq, and have integrated it with the interface client app. Two new files, AudioFilter.h/.cpp contain the actual DSP and glue-code for the client application. The design is completely general purpose, and may easily be adapted to support new high/low pass, high/low shelf, all pass and other biquad filter types. See http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt. Only a parametric/peaking EQ design has been implemented here (with support for variable center frequency, gain, and resonance/q).

This proposed design also makes makes it easy trivial aggregate large banks of filters by using c++ templates. See template< typename T, const int N> class AudioFilterBank.

To test/enable the feature, enable:
'Developer:Audio Debugging Tools:Audio Filter Bank'

Four sample 3-band parametric filter profiles response curves have been created:
' 'Developer:Audio Debugging Tools:Audio Filter Options:Flat Response'
' 'Developer:Audio Debugging Tools:Audio Filter Options:Treble Cut'
' 'Developer:Audio Debugging Tools:Audio Filter Options:Bass Cut'
' 'Developer:Audio Debugging Tools:Audio Filter Options:Smiley Curve'

Craig Hansen-Sturm