What's new in KFR 3.0
MSVC, GCC, and AVX512 support, as well as DFT with non-power-of-2 sizes.
MSVC and GCC supportNew in KFR 3
KFR now supports building with Microsoft Visual Studio 2017 and GCC 7+.
As before, Xcode and Clang are fully supported.
AVX512 supportNew in KFR 3
Full support for the latest Intel vector extensions has been added to achieve maximum performance on the most recent CPUs.
Fast Fourier Transform
All DFT sizes New in KFR 3
FFT now supports any input size, not only powers of two. KFR automatically selects the best algorithm internally for maximum performance.
Better performance for modern cpus Improved in KFR 3
In KFR 3, FFT performance is improved by about 15% compared to previous versions on most modern CPUs.
DSP
Resampling Improved in KFR 3
Now the highest quality of KFR resampling implementation has been proved by the well-known Sample Rate Converter comparison
Complex number support for the resampling algorithm, and other improvements
Internal filter quality can now be set at runtime
Ability to get the transition width, sidelobe attenuation, and filter order selected for a given quality
EBU R 128 loudness New in KFR 3
New class has been added to support loudness computation according to the EBU R 128 standard
FIR/IIR filters, filter design, Window functions Improved in KFR 3
FIR filter performance has been increased by around 50%-60% for up to 33 taps
Audio files support Improved in KFR 3
KFR supports reading and writing of WAV files (including W64) and reading of FLAC files
Automatic Audio sample conversion New in KFR 3
KFR can convert samples during reading and writing, letting you work with one internal type while keeping full portability
Supported OS/Compilers/ArchitecturesImproved in KFR 3
- macOS
- Linux
- Windows (including MinGW)
- Android (target OS)
- iOS (target OS)
- Xcode
- Clang
- Visual Studio 2017
- GCC
- AVX, AVX2, AVX512
- SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2
- ARM NEON, ARM64 NEON
- Generic code as fallback
Other improvements and changes
Build system
- Ability to include KFR as a subdirectory in a CMake project
- Ability to link objects built for multiple architectures into one binary
- Ability to detect the host CPU at compile time
License
Changed to GPL 2+, allowing KFR to be used in both GPL 2 and GPL 3 licensed codebases

