Hacker Newsnew | past | comments | ask | show | jobs | submit | arjf's commentslogin

yes - the sample app has demo of single resonator (so frequency bin equivalent) frequency estimation/tracking based on phase shift and also Doppler velocity computation (the code for these is in the Swift package, equations in the upcoming paper...). this video is from an older version of the demo app (less efficient implementation but same principle): https://www.youtube.com/watch?v=iQCPDJ8L_ao


Cool, thanks! I'm currently building a eurorack module where I need to estimate the frequency and phase of a sequence of input gate signals, and an issue I've run into is the delay inherent in the STFT algorithm. This seems like it might work better!


Awesome - The code (Swift or C++) in the Oscillators package is probably the best place to look for implementation details https://github.com/alexandrefrancois/Oscillators

ping me if you have any question


Just want to call out the resources listed at the bottom of the Resonate website:

- The Oscillators app demonstrates real-time linear, log and Mel scale spectrograms, as well as derived audio features such as chromagrams and MFCCs https://alexandrefrancois.org/Oscillators/

- The Resonate Youtube playlist features video captures of real-time demonstrations. https://www.youtube.com/playlist?list=PLVcB_ABiKC_cbemxXUUJX...

- The open source Oscillators Swift package contains reference implementations in Swift and C++.https://github.com/alexandrefrancois/Oscillators

- The open source python module noFFT provides python and C++ implementations of Resonate functions and Jupyter notebooks illustrating their use in offline settings. https://github.com/alexandrefrancois/noFFT


The Sliding Windowed Infinite Fourier Transform (SWIFT) has very similar math, and they provide some analysis in the paper. I use a different heuristic for alpha so I am not sure the analysis transfers directly. In my upcoming paper I have some numerical experiments and graphs that show resonator response across the range.


Actually digging into SWIFT a bit more, the formulas differ by more than just the heuristic for alpha (unless I missed something) so the analysis in the SWIFT paper does not apply directly to(or maybe even at all).


It only requires more computation if you really need to compute the full FFT with all the bins, in which case the FFT is more efficient... With this approach you only compute the bins you really need, without having to pre-filter your signal, or performing additional computations on the FFT result. Some sliding window FFT methods compute frequency bands independently, but they do require buffering and I really wanted to avoid that.


Interesting - thanks for sharing!


This formulation is close to that of the Sliding Windowed Infinite Fourier Transform (SWIFT), of which I became aware only yesterday.

For me the main motivation developing Resonate was for interactive systems: very simple, no buffering, no window... Also, no need to compute all the FFT bins so in that sense more efficient!


Indeed... I honestly don't remember where or how I sourced the value, and why I did not use the "correct" one - I will correct in the next release of the package. Thanks for pointing it out!


You got off easy compared to this dude https://en.wikipedia.org/wiki/William_Shanks


At least I might have introduced a bit of creative noise in some AI coding models :-P


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: