KFR 7.1 has been released introducing a new FFT implementation

18 August 2026

KFR 7.1 brings a major FFT performance boost. Power-of-two sizes are up to 40% faster, and sizes with many prime factors now use a more optimized algorithm. The release also adds a low-overhead FFT API, new audio filtering and decoding features, and GCC and MSVC support for DFT.

FFT performance

The main change in KFR 7.1 is the FFT. Power-of-two sizes are up to 40% faster. Sizes with many prime factors get a further speedup from switching to a more optimized algorithm.

AVX2 float real forward in-place FFT benchmark NEON double real forward in-place FFT benchmark

The charts show real forward in-place FFT results for AVX2 (float) and NEON (double). The full set of results is on the benchmark page.

FFT API and DFT support

  • ngfft: new low-overhead FFT API with manual memory management
  • GCC and MSVC support for DFT
  • MSVC: DFT compilation options are handled correctly

Audio module

  • audio_filter applies independent multi-channel FIR, IIR and convolution filtering to planar audio_data
  • Core Audio decoder for macOS and iOS, with binary_reader input, floating-point output and precise frame seeking
  • New audio_data members: apply_gain_dB, normalize, clamp, to_mono, to_interleaved, to_planar, select_channel, select_channels and clone

DSP and expressions

  • filter::apply_zeros function
  • reset() support for stateful DSP expressions
  • operator== for portable_vec
  • expression_reduce now accepts parameters by value
  • KFR_BASETYPE_F32 CMake option for 32-bit fbase

Upgrading

KFR 7.1 contains one breaking change:

  • uitype now converts only from float to unsigned integer

Other changes

  • Bit-index permutation optimizations for Clang and the generic backend
  • Code documentation now has near 100% Doxygen-style coverage
  • Major documentation update with dozens of new articles and automatically tested code examples
  • Automatic snippet testing via cxxdox, and cxxdox updated to 0.2.1
  • Python plotting functionality refactored

Fixes

  • Generic backend fixes, including NaN handling
  • sample_rate_converter fixes, with new tests
  • Unaligned integer access avoided in SIMD operations
  • Signed/unsigned shift fixes
  • arange, isnegative, cartesian and expression_concatenate fixes
  • audio_data interleaved constructor fix

See the changelog for the complete list, and the documentation for the updated guides.