Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-integer k and variable-Q transform #5

Open
TF3RDL opened this issue Jun 28, 2023 · 3 comments
Open

Non-integer k and variable-Q transform #5

TF3RDL opened this issue Jun 28, 2023 · 3 comments

Comments

@TF3RDL
Copy link

TF3RDL commented Jun 28, 2023

Turns out, it is possible to have non-integer k on CQ-sDFT algorithm, which means analysis frequency can exactly corresponds to musical notes instead of approximate one (as mentioned in #3) and it also makes it easier to convert into variable-Q transform like this, it just need one additional factor, namely fiddles

@creaktive
Copy link
Owner

Hey, this is amazing! Thanks for sharing!
And big thanks for doing the implementation :)
May I link your gist from the references section of my project?

@TF3RDL
Copy link
Author

TF3RDL commented Nov 1, 2023

May I link your gist from the references section of my project?

Yes, for somebody besides you and me who make foobar2000 components (by using my JS project as a reference and re-implement the same algorithm in C++ for use in foobar2000 visualization components), especially the fact a lot of components like Musical Spectrum are no longer developed (thus no 64-bit version for use in foobar2000 x64) and are only usable within 32-bit version of foobar2000

@TF3RDL
Copy link
Author

TF3RDL commented Jan 20, 2024

to add to this, I've made this CodePen project demonstrating the sliding DFT with noninteger K allowing variable-Q transform with smoother low frequency peaks and also a faster IIR cousin, the sliding windowed infinite Fourier transform (SWIFT) and even analog-style filter bank (which some professional RTAs including Spectralissime uses it over FFT) and a YouTube video demoing the good-old algorithm not based on FFT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants