What's new in KFR 3.0

15 March 2019

MSVC, GCC and AVX512 as well as DFT with non-power of 2 sizes.

MSVC and GCC supportNew in KFR 3

Now KFR supports building in Microsoft Visual Studio 2017 and GCC 7+.

As before, Xcode and Clang is 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

Now FFT 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 the previous versions on most modern cpus.


Resampling Improved in KFR 3

Now the highest quality of KFR resampling implementation has been proved by the well known Sample Rate Convertor comparison

Complex number support for resampling algorithm and other improvements

Internal filter quality can now be set at runtime

Ability to get transition width, sidelobe attenuation and filter order selected for given quality

EBU R 128 loudness New in KFR 3

New class has been added to support loudness computation according to 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/writing to let you work with one internal type 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
  • Generic code as fallback

Other improvements and changes

Build system

  • Ability to include KFR as a subdirectory in cmake project
  • Ability to link objects built for multiple architectures into one binary
  • Ability to detect host cpu at compile-time


Changed to GPL 2+ allowing use of KFR in both GPL 2 and GPL 3 licensed codebases