RustAudio / dasp

The fundamentals for Digital Audio Signal Processing. Formerly `sample`.
Other
860 stars 61 forks source link

Provide a non-allocating, pure-rust FFT #33

Open mitchmindtree opened 8 years ago

mitchmindtree commented 8 years ago

I might be vastly underestimating the work and complexity involved in this, but it would be an excellent feature to have and is undoubtably a fundamental tool of DSP.

I could find three current pure-rust fourier transform implementations that might be useful for reference:

The Fourier Transform Wikipedia

Circles, Sines and Signals - An awesome explanation on how DFT works.

andrewcsmith commented 8 years ago

Leaving a couple things here, to look into:

We could conceptually make this work in-place and overwrite a given &mut [Frame] with the spectrum data. It might not be the most efficient implementation, though.

andrewcsmith commented 7 years ago

A few months down the line—rustfft is actually fantastic (now stable at 1.0), and I've used it a lot. I would vote we just aim for interoperability with rustfft: focus on time domain / stream manipulations here, and let others focus on the frequency domain.

Rustfft looks like it already works with int values, and is attracting a lot of PRs for specific prime value optimizations, a la FFTW.