Instant visualisation of notes
Amuencha allows you to visualize the notes contained in an audio signal. The idea is to gather notes separated by an octave along the same directions of a spiral, so that chords clearly stand out, even reversed. You can also record yourself with a microphone (in red) while playing some recording (in blue), so you can work your tuning :-)
The typical audio analyzer uses Fast Fourier Transforms (FFT) in order to find the frequency content. The problem with this approach is that notes follow the logarithm of the frequencies… while the FFT is linear in frequency. This results in a loss of precision. Even worse, the window function used for localizing the frequencies in time is often non-optimal, which increases this precision loss. Generally, nearby frequencies « bleed on » the one being analyed.
Amuencha does not uses FFT. I first create a bank of filters, each centered on one frequency to analyze. These filters are complex exponentials convoluted with a Kaiser window, which support is set according to the frequency to analyze. Once these filters are applied to the signal, I use a time-frequency reassignement technique in order to exploit the complex phase of the signal. This method combines the information from nearby filters, but with a different phase, in order to restore very precisely the frequency content with the smallest possible delay. Precision is fixed graphically by creating a filter on average every 3 pixels along the spiral curve. Finally, a fading effect is added to previously analysed frequencies, so as to give a visual indication of the notes evolution through time.
The result is a “clean” visualization of the frequency content of the music being played. The spiral representation makes chords stand out (above, a D# major), even if they are reversed and spread over multiple octaves. Yet, Amuencha does no automated chord recognition. This would be the next step: please contact me if you are interested in this project!
Harmonics are easily seen. For example, in the above image, I sing a D# at the microphone (in red), on top of a recording (here the intro of Clocks by Coldplay). The fundamental is on the second branch of the spiral - I sing in this example one octave below the piano. The first harmonic (twice the base frequency) corresponds to the D# one octave above, on the upper branch of the spiral. The visual fading shows that my voice is not completely stable through time and fluctuates a bit around the target note. The third harmonic (three times the base frequency) corresponds to A#.
Historically, we tuned the instruments using ratios of the fundamental frequencies, which is done simply by using the same ratios for the chord lengths on a guitar. Hence, one can build a major chord with the third and fifth harmonics (the second and fourth being octave changes). Using a C as the fundamental, for example, the third harmonic is a G on the octave above and the fifth is an E two octave above. Of course this is not so simple anymore since the advent of the Equal Temperament, which allows to easily transpose music, but for which ratios are not respected anymore. Amuencha allows you to easily see, for example, that the 5th harmonic no longer corresponds to exactly an E in modern music…
You can download this Debian package (recommended), or attempt to decompress and execute this AppImage on a not-too-old system (x86_64, glibc2.15 required), or compile it yourself with the source code.
Amuencha uses the Jack audio system for minimal latencies (I use an external UR22mkII with a “true” microphone), but you can also work with the internal mike of your laptop if needed. I exclusively use Debian/Linux but, if this is not your case and you have sucessfully compiled this program on your favorite OS, please notify me so we can make your patches available to all :-)
Amuencha is free/libre software, license LGPL v2.1 or more recent.