Recent submissions

Comment · 4 months ago
Most likely microphone lower range limitation. The fundamental frequency is out of the microphone’s range, so you only see the harmonics.
Comment · 4 months ago
32.7 Hz is C1, lowest C on a standard piano (A440 tuning).

No inherent limitation of the technique, the resonators can be tuned to much lower frequencies. But indeed you‘ll need a better mic than the iphone’s to get frequencies below 50Hz iirc… too bad - the watermelon ripeness checker could be a really cool app :-)

Comment · 4 months ago
Thanks - adding all of that to my to read / to do list :-)
Comment · 4 months ago
Thanks - to be fair the electric piano seems to me like a relatively favorable case for this approach.
Comment · 4 months ago
Comment · 4 months ago
I think the output of a tracking resonator bank is only the basis for higher level analysis that will produce results suitable for specific applications (see my comment on frequency component tracking and prediction/feedback).
Comment · 4 months ago
I used the Exponentially Weighted Moving Average (aka low-pass filter) because it has a very nice iterative form and is very computationally efficient. My objective was low-latency for real-time systems (so no looking into the future either). I haven't looked into using other types of filters because I haven't felt the need for my own applications.

Also my primary objective was tonal analysis so that's where I focused my limited time and resources.

I haven't had time to explore what to do with broadband transients much. A tracking resonator bank will certainly capture the energy (either in tracking mode or not). To me the synthesis examples I have posted on the project site sounds very comparable to traditional vocoder results; not bad but not great, especially with transients (as expected...)

From an analysis point of view, I anticipate that a Novelty measure computed from a tracking resonator bank would be quite usable...

Comment · 4 months ago
My approach is to let the "bins" collide at the filter bank level (really let nearby tracking resonators agree on the dominant frequency in the neighborhood), and use the bank's instantaneous state as input for a frequency component tracker, whose output is a list of (frequency, amplitude) rather than an array of bins.

Here is a short video demonstrating the concept (with spectrogram-style visualization): https://youtu.be/STayypC1pvU

This is all pointing towards a dynamic systems approach, with prediction/feedback loops, e.g. establishing a tonal context and feeding it back into the analysis.

I believe some plasticity in the natural frequencies in the bank and tuning of the resonator dynamics would improve the convergence time to some extent, but I think this will only go so far and most of those effects should be addressed via prediction/feedback.

I envision the timbre analysis to take place on these tracked components as well as harmonics should be tracked as components whose frequencies are multiples of a fundamental (so analysis on actual small number of actual frequencies rather than a large number of bins).

Comment · 5 months ago
Sounds really interesting! Could you share some description of the algorithm used for chord detection? What model of tonality are you using for pitch/chord naming?
Comment · 5 months ago
Spectral analysis has indeed been around as a concept for centuries and there have been apps based on the FFT for decades, so definitely nothing new there. What I have implemented however, while based in known concepts and techniques, allows to achieve real-time, low latency and high resolution (both in time and frequency dimensions) performance that I believe are out of reach of established (published) methods. The apps you link are most likely making use of the FFT, which has become widely supported with efficient hardware acceleration and easy to use libraries, because of its central role in ubiquitous DSP applications, e.g. compression. I would be interested in any publications or at least technical descriptions of algorithms/systems that achieve similar performance!

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton