- typos and small fixes
- removed
FrequencySpectrum::to_log_spectrum
(was useless; my understanding was wrong) - added example
live-visualization
that shows how you could visualize a spectrum in real-time
- removed example
live-spectrum-visualization
(was really bad)
- MSRV is now 1.56.1
- Rust edition 2021
- example
live-spectrum-visualization
requires Rust stable1.55.0
because theringbuffer
-dependency requires it - the rest of the crate should still build with the current MSRV
1.52.1
- if you run tests, you need
1.55.0
!
- bugfix of a bug since v1.0.0
- added
scaling::combined
which helps you to combine several scaling functions - added
FrequencySpectrum::to_log_spectrum
which gives you a more usable spectrum when you analyze music for example.- this is not optimal yet :(
- Needs code contributions.. doesn't look as nice and convenient as other implementations. I don't really know what to do here.
- The library returns now a result and will no longer panic under certain circumstances.
- removed
per_element_scaling_fn
in favor ofcomplex_scaling_fn
, which is now just calledscaling_fn
- the old behaviour was more confusing than beneficial - renamed
ComplexSpectrumScalingFunction
toSpectrumScalingFunction
and moved it into thescaling
-module - MSRV is now
1.52.1
stable
- many internal improvements
- rust-toolchain.toml for build stability and reproducibility
- really minor performance improvements (~5 %)
- added example
live-spectrum-visualization.rs
(still not perfect, but works) - added example
bench.rs
- Feature "rustfft-complex" uses "rustfft"-crate at version 6 which is faster/more optimized (~25%).
- improved CI
- README update
This crate now uses microfft::real
as default FFT implementation. It is by far the fastest implementation
and there are no disadvantages, despite (with microfft
version 0.4.0) the maximum FFT size is 4096. If you
need bigger FFT sizes, use feature rustfft-complex
.
This crate now works in no_std
-environments by default.
Added MIT to file headers where it was missing.
Fixed wrong usage of microfft::real
+ bumped version of microfft
to 0.4.0
.
Currently it seems like with this implementation you only can get
the frequencies zero to sampling_rate/4
, i.e. half of Nyquist frequency!
I found out so by plotting the values. Wait until
https://gitlab.com/ra_kete/microfft-rs/-/issues/9 gets resolved.
README fix.
Typo in README.md code example.
Typo in README.md.
- MSRV is now Rust 1.51 (sorry but that's the only way I can make it
no_std
-compatible) - This crate is now really
no_std
- you can choose between three FFT implementations at compile time via Cargo features.
The new default feature is
rustfft-complex
(which is stillstd
) but there are also the two newno_std
-compatible targetsmicrofft-complex
(more accurate, like rustfft) andmicrofft-real
(faster, less accurate) - several small improvements and fixes, see: https://github.com/phip1611/spectrum-analyzer/milestone/3?closed=1
FrequencySpectrum::min()
andFrequencySpectrum::max()
now return tuples/pairs (issue #6)FrequencySpectrum
now has convenient methods to get the value of a desired frequency from the underlying vector of FFT results (issue #8)FrequencySpectrum
now has a field + getter forfrequency_resolution
(issue #5)
For all issues see: https://github.com/phip1611/spectrum-analyzer/milestone/2