This repository contains a comparison of sample-rate conversion (SRC) algorithms, with an emphasis on performance for non-integer SRC factors. Currently two oversampling algorithms are implemented:
- libsamplerate (Sinc interpolation, using
SRC_SINC_FASTEST
mode) - Holters-Parker Resampler (using 4th-order Butterworth filters)
- Lanczos Resampler (borrowed from the Surge Synthesizer project)
On my Linux machine, the HP resampler is faster than libsamplerate by the following amounts:
$ cmake -Bbuild
$ cmake --build build --config Release
Then to run the testing tool, run
./build/src_test
.
- libsamplerate
- The Holters-Parker Resampler is based on the filters derived in their 2018 DAFx paper
- matplotlibcpp
- The HP-Resampler, and Lanczos Resampler use a ton of code borrowed from the Surge Synthesizer project (in particular, the
SSEComplex
andLanczosResampler
classes written by Paul Walker)
The code in this repository is licensed under the GPLv3. Enjoy!