KFR 7: major DSP update, new audio I/O, elliptic filters, and performance improvements
KFR, an open-source C++ DSP library, has reached version 7 with new DSP algorithms, wider platform support, and performance gains.
Key additions:
Elliptic IIR filter design and zero-phase IIR filtering via `filtfilt`.
Reworked audio reading/writing with support for WAV, W64, RF64/BW64, AIFF, FLAC, CAF, ALAC, MP3, and raw formats.
New high-level Audio module aimed at multichannel processing.
Initial RISC-V SIMD support.
Requires C++20.
KFR capabilities:
IIR and FIR filter design and processing.
DFT, including multidimensional transforms.
Sample-rate conversion using a polyphase filter based on a Kaiser window.
Matrix transpose and other matrix/tensor operations.
SIMD-optimized math and DSP functions.
KFR focuses on performance through extensive vectorization (SSE, AVX, NEON, RVV) with optional runtime dispatch.
GitHub: https://github.com/kfrlib/kfr
Docs: https://kfr.dev/docs/latest/
License: GPLv2+ (see the site for other licensing options).
New benchmark results from the LIGO, Virgo, and KAGRA collaborations are available, comparing KFR's performance against FFTW for signal processing in gravitational-wave research: https://ar5iv.labs.arxiv.org/html/2503.14292
https://redd.it/1ozhd60
@r_cpp
Post #24273
19