This is a set of C++11 header-only classes/templates to support certain DSP tasks (mostly audio).
It's still growing, but currently includes:
- Delay tools (circular buffers, single/multi-channel delay-lines)
- Interpolators (Lagrange, polyphase, Kaiser-sinc)
- Envelope tools (e.g. box-filter, peak-hold)
- FFT and spectral processing (including multi-channel STFT)
How to use
Clone using Git:
Include the appropriate header file, and start using classes:
Check out the API documentation (Doxygen) for detailed information.
Tests (and scripts to plot graphs etc.) are in a separate repository, to keep the main repo neater:
Where reasonable, the tests should measure actual output quality (not just basic correctness and smoke-tests).
For example, here's the aliasing/accuracy performance of a delay line with windowed-sinc interpolation:
The automated tests check this performance for various input bandwidths, using a table like this:
Running the tests
To run the tests:
To run just the tests in
tests/delay/ (or similar):
There are a few other targets (e.g. for plotting graphs) - check the
Makefile if you're curious.
The main library is MIT licensed (see
LICENSE.txt in the main repo), but the tests, docs and support scripts are licensed differently (just for developing/testing the library).
We're pretty flexible though - if you need something else, get in touch.