"Techniques for digital signal processing are well guarded and held close to the chest, as they have valuable applications for multimedia content. The black art of Infinite Impulse Response ("IIR") filtering has remained veiled in secrecy with little publicly available source code...until now."
Building on the work of cherished luminaries such as Sophocles Orfanidis, Andreas Antoniou, Martin Holters, and Udo Zolzer, this library harnesses the power of C++ templates to solve a useful problem in Digital Signal Processing: the realization of multichannel IIR filters of arbitrary order and prescribed specifications with various properties such as Butterworth, Chebyshev, Elliptic, and Optimum-L (Legendre) responses. The library is provided under the MIT license and is therefore fully compatible with proprietary usage.
Classes are designed as independent re-usable building blocks. Use some or all of the provided features, or extend the functionality by writing your own objects that plug into the robust framework. Only the code that you need will get linked into your application. Here's a list of features:
Using these filters is easy:
// Create a Chebyshev type I Band Stop filter of order 3 // with state for processing 2 channels of audio. Dsp::SimpleFilter <Dsp::ChebyshevI::BandStop <3>, 2> f; f.setup (3, // order 44100,// sample rate 4000, // center frequency 880, // band width 1); // ripple dB f.process (numSamples, arrayOfChannels);
An accompanying demonstration program that works on most popular platforms by using the separately licensed Juce application framework (included), exercises all the functionality of the library, including these features:
This is the provided DSP Filters Demo application, which demonstrates the features of the library and uses the Juce application framework to run on all popular platforms:
If you've been searching in futility on the Internet for some source code for implementing high order filters, then look no further because this is it! Whether you are a student of C++ or digital signal processing, a writer of audio plugins, or even a VST synthesizer coder, "A Collection of Useful C++ Classes for Digital Signal Processing" might have something for you!
DSP Filters Official Discussion Forum
DSP and Audio Plugin Discussion Forum
Juce Official Discussion Forum
Juce Official Site