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_state
is now architecture-agnostic and defined inkfr
namespace. - All expression classes have been moved from
kfr:CMT_ARCH_NAME:internal
tokfr:CMT_ARCH_NAME
namespace. 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.hpp
headers have been moved tosimd
module.State_holder.hpp
has been moved tobase
module.- All code related to expressions have been moved to
base
module. Vec<T, N>:front()
andvec<T, N>:front()
are now writable.Set_elements
functions for output expressions likeget_elements
for input expressions.