calebzulawski / fourier

Fast Fourier transforms (FFTs) in Rust
Apache License 2.0
238 stars 20 forks source link

feature request: constant q transform #13

Open vandenoever opened 4 years ago

vandenoever commented 4 years ago

Constant Q Transform is a transformation for audio that uses a log scale for the frequency instead of a linear scale like FFT does. A fast implementation of Constant Q Transform uses FFT and a kernel.

https://en.wikipedia.org/wiki/Constant-Q_transform http://academics.wellesley.edu/Physics/brown/pubs/effalgV92P2698-P2701.pdf

CQT is implemented in ffmpeg en mpv and gives intuitive visualization of which notes are being played at a given time.

https://trac.ffmpeg.org/wiki/FancyFilteringExamples#showcqt

vandenoever commented 4 years ago

There's already a crate for cqt, but it does not use the fast implementation with fft.

https://github.com/alexjago/cqt