2019-04-02
reduce
supports different types and containers other thanunivector
- Assignment operators for
univector
:+=
,*=
etc concatenate
function to concatenate two expressions sequentially- Audio file IO:
read_channels
/write_channels
to read channels data directly without interleaving/deinterleaving as_string
: support forstd::vector
expression_scalar
: support forvec<T>
- CPU detection in cmake subdirectory
- MSVC 2017 32-bit intrinsics
2019-03-15
- Ability to pass
random_bit_generator
by reference - Tests for iOS ARM and ARM64
kfr::complex
is placed inkfr
namespace
2019-03-13
- Detected CPU is now saved to CMake cache
- Linux/AArch64 tests have been added to CI
mask<>
is now a specialization ofvec<>
. This allows using manyvec
functions for masksshort_fir
performance has been increased by around 50%-60%
- Fixed the bug with infinitely loading in Intellisense
2019-03-07
- Android arm & arm64 tests have been added to CI
- Fixed Android support (thanks to https://github.com/Jman420)
- Fixed building cpu detection tool in CMake subdirectory (thanks to https://github.com/Jman420)
2019-02-21
- DFT speeds have been improved by up to 15% on most modern cpus
- Support for MSVC 2017
- Support for GCC 7.3
- Support for GCC 8.2
- Support for resampling complex vectors (Thanks to https://github.com/ermito)
- Tests for various math functions no longer depend on MPFR
- Testo now allocates much less memory during long tests (x3 less than previously)
- Building generators (Thanks to https://github.com/ermito)
2019-01-08
KFR_READCYCLECOUNTER
may be redefined to point to any function returning (pseudo-)random value- Ability to disable random number initialization functions
2018-12-27
- Partial compatibility for Visual Studio 2017
- Support for
KFR_USE_STD_ALLOCATION
univector
support forabstract_reader
/abstract_writer
- Paths in
CMakeLists.txt
2018-12-19
- More documentation
- dspplot:
freqticks
parameter - dspplot:
freq_lim
parameter - dspplot:
freq_dB_lim
parameter - dspplot:
phasearg
parameter - More tests for Sample Rate Converter
- Sample Rate Converter: now computes the transition width of the filter. This makes cutoff frequency more precise
- Sample Rate Converter: now uses Kaiser window with different β parameter for different quality. This leads to a better balance between transition width and sidelobes attenuation.
- Sample Rate Converter:
quality
parameter is now passed as runtime parameter rather than compile time parameter fir.cpp
example has been extended to include examples of applying FIR filters
amp_to_dB
function- 24-bit audio reading
2018-11-28
- WAV file reading/writing
- FLAC file reading
- Audio sample conversion
- Interleaving/deinterleaving
- sample_rate_converter example
- Sample Rate Converter:
process
() function
- Assignment to an empty vector resizes it
- New documentation
- KFR IO is now built separately (only needed for audio file support)
- Resampler bug: sequential calls to
resampler::operator()
may fail
- Optimized non-power of two DFT implementation
- Full AVX-512 support
- EBU R128
- Ability to include KFR as a subdirectory in cmake project
- Number of automatic tests has been increased
- C API for DFT
- Partial GCC 8.x support
- Ability to make sized linspace
fraction
type
- GPL version changed from 3 to 2+
- Refactoring of DFT code
- KFR DFT is now built separately
- FIR filter now supports different tap and sample types (thanks to @fbbdev)
- Various fixes for KFR functions
- FFT with size=128 on architectures with SSE only
- Small kfr::complex type fixes