
KFR, a C++ DSP library, has been updated to v5.2.0 with significant performance improvements (up to 40% increase in speed) and new features.
KFR is packed with optimised building blocks for creating highly efficient audio applications and plug-ins and is known for its top FFT performance.
KFR5 contains DFT-related features, convolution, IIR/FIR filtering and filter design, sample rate conversion, loudness computation, window functions, audio formats support, tensor & matrix operations, SIMD-enabled math and statistical functions, fast random number generation and other features. Optimised for all variants of x86 and arm.
New in KFR 5:
- New
tensor<T, dims>class for multidimensional data (like nparray). - All built-in expressions support multiple dimensions.
- Exception support (may be configured to call user-supplied function or std:abort).
- [changes required] CMake variables now have
KFR_prefix. - Template parameter deduction for
vec, sovec{1, 2}is the same asvec<int, 2>{1, 2} - [changes required]
random_stateis now architecture-agnostic and defined inkfrnamespace. - All expression classes have been moved from
kfr:CMT_ARCH_NAME:internaltokfr:CMT_ARCH_NAMEnamespace. Expression_traits<T>introduced to support interpreting any object as kfr expression.- [changes required] User-defined expressions should be rewritten to be used in KFR5.
- Out-of-class assign operators for all input & output expressions.
Round.hpp,clamp.hpp,select.hpp,sort.hpp,saturation.hpp,min_max.hpp,logical.hpp,abs.hppheaders have been moved tosimdmodule.State_holder.hpphas been moved tobasemodule.- All code related to expressions have been moved to
basemodule. Vec<T, N>:front()andvec<T, N>:front()are now writable.Set_elementsfunctions for output expressions likeget_elementsfor input expressions.

