A few years ago, [Frédéric]‘s brother in law wanted a guitar tuner for Christmas. Instead of going out and buying one, [Frédéric] broke out the soldering iron and built one from scratch.
[Frédéric]‘s tuner is built around an ATMega168 uC on a Real Bare-Bones Board with an LM386 amplifier. The display is a standard 20×2 LCD character display, and the interface is torn from the pages of stomp box schematics with a very hefty foot switch.
Detecting the frequency of a note played into [Frédéric]‘s tuner involves a fair bit of math. To measure the frequency, the Arduino samples the waveform coming from the input jack. This signal is delayed for a fraction of a second and the area underneath the real and delayed waveforms is measured. This delay slides across the original waveform until the area between the real and delayed samples are minimized. At that point, delayed wave form will be exactly one cycle behind the real signal, and the cycles per second can be calculated. It’s called the YIN algorithm, and you can read more about it here.
Since [Frédéric] already knew the exact frequency being played into the tuner, he figured it would be trivial to add a small analog audio to MIDI converter. This feature (as shown in the video after the break) turns the sounds from a guitar into MIDI notes. It’s monophonic and probably a little superfluous, but still very cool.