Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
GPL-2.0 License
KFR is an open source C++ DSP framework that contains high performance building blocks for DSP, audio, scientific and other applications. It is distributed under dual GPLv2/v3 and commercial license.
New features, performance improvements, easier setup.
➡️ Upgrade from a previous version
Compiler support:
KFR has no external dependencies except for a C++17-compatible standard C++ library. CMake is used as the build system.
Clang is highly recommended and proven to provide the best performance for KFR. You can use Clang as a drop-in replacement for both GCC on Linux and MSVC on Windows. On macOS, Clang is the default compiler and included in the official Xcode toolchain.
Note: Building the DFT module currently requires Clang due to internal compiler errors and a lack of optimization in GCC and MSVC.
➡️ See Installation docs for more details
🌟 — new in KFR6
➡️ See also How to apply FFT with KFR
sin
, log
and cosh
built on top of SIMD primitivesvec<T, N>
class and related functions that abstracts cpu-specific intrinsicsvec<float,1>
, vec<unsigned,3>
, vec<complex<float>, 11>
all are valid vector types in KFRThe multiarchitecture mode enables building algorithms for multiple architectures with runtime dispatch to detect the CPU of the target machine and select the best code path
C API is available and includes a subset of KFR features including FFT and filter processing.
Powers of 2, from 16 to 16777216 (Higher is better)
Prime numbers from 17 to 127 (Higher is better)
Small numbers from 18 to 119 (Higher is better)
Random sizes from 120 to 30720000 (Higher is better)
See fft benchmark for details about benchmarking process.
(Higher is better)
KFR 6 (latest) https://www.kfrlib.com/docs/latest/
KFR 5 https://www.kfrlib.com/docs/v5/
Built with
dev
- current development version. Pull requests should go to dev
.
main
- current stable version passing all compiler/architecture tests.
v5
- previous version of KFR (no new features, fixes only)
KFR is dual-licensed, available under both commercial and open-source GPL 2+ license.
If you want to use KFR in a commercial product or a closed-source project, you need to purchase a Commercial License.