Homebrew Guitar Tuner Also Includes MIDI Out

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.

9 thoughts on “Homebrew Guitar Tuner Also Includes MIDI Out

  1. A strobe tuner is pretty easy to implement too.

    Have a row of lights, and flash one after another, so you run through each light once per cycle of the target frequency.

    Then modulate this signal with a schmitt trigger on the input signal, and if the two signals are of a similar frequency the same set of lights should be off. If the frequencies differ, the pattern appears to scroll.

    The algorithm shown here is a great idea. For monophonic pitch tracking, it’s brilliantly quick to compute for a range of notes and pretty accurate.

Leave a Reply to ajfordCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.