Update to rustfft 6.0 and Rust 2018 edition #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Heya! When I tried to use stft from crates.io it failed with an error related to
nalgebra-0.5
. I poked around in the forks and found YoshieraHuang/stft which adds some modernizations on which this PR is based:STFT::new_with_zero_padding()
(via YoshieraHuang@3695eb8)The latter commit allows
cargo bench
andcargo criterion
to be run with stable Rust.From there, I updated the
Cargo.toml
to useedition = "2018"
and updated the dependencies torustfft = "6.0"
,num = "0.4"
andapodize = "1.0"
. I made sure to sanitize the code using rustfmt and Clippy.The newer rustfft version appears to do FFT in-place now, but has support for an externally allocated scratch buffer. I added this to the
STFT
struct - the benchmarks indicate a slight performance increase with that change.The existing integration tests were lacking an assertion to actually ensure the correct results are calculated. I added a dev dependency on
approx = "0.5"
to do perform said comparisons; the calculations are now also performed twice to ensure that a call tocompute_column()
does notcorrupt the internal state.