The accessible guitar tuner is an award-winning tuner specifically designed for blind guitar players. Instead of the usual inaccessible display, it features an intuitive audio feedback system. It's...

The accessible guitar tuner is an award-winning tuner specifically designed for blind guitar players. Instead of the usual inaccessible display, it features an intuitive audio feedback system. It's like a geiger counter for frequencies, with a distinct clicking sound indicating the difference between the chosen note and the guitar input. Simply connect your guitar, turn on the device, and select the note to tune to. There is a video of what it sounds like at the end.

Features

The tuner has several knobs and ports, each labeled with 3D printed braille.

It has two 1/4" mono jacks, one for connecting your guitar, and one feed-through output for using it as a guitar pedal.

The input can be either directly from an electric guitar, from a clip microphone attached to an acoustic guitar, or from any other audio source of a few dozen milivolt amplitude. Though a fairly large range of input voltages is supported, some experimentation may be required for best results. Especially on electric guitars a lower volume may give better results.

The feed-through contains both the guitar signal as well as the tuning feedback. This port has a few known issues, and I'd love to hear your feedback on how you think it should work. For now, use with care, and read the known issues section.

There is also a 3.5mm headphone jack, which is the main tuning feedback. Here you can hear a reference tone as well as a clicking sound. The speed of the clicks is twice the difference between the reference and the input. For example, if you hear two clicks per second, you're off by one Hertz. Its output is controlled by the volume and tone knobs described below.

The volume knob does exactly what you'd expect, except for some known issues explained below.

The note selection knob cycles between the 6 standard guitar strings. But before you complain about drop-D, your bass, and your ukulele, you can press the knob to switch to semitone mode. In semitone mode you can have all the notes you want. On request, I can customize your base frequency and preset strings.

Finally, there is a very satisfying power switch. The type that says "clack".

And on the bottom there is a compartment for a 9V battery. The lid has a slot that can be pushed inwards with your nail from the notch in the edge of the case. It may be a bit tricky to insert the battery, ideas and feedback welcome.

Advanced features

Like all other tuners, precision is the best in higher frequencies. If you want to fine-tune your lower notes, one trick you can use to double the precision is to tune on the overtones. For example, you might tune your low E string with an E an octave up. Other overtones are possible, but reliability quickly deteriorates.

All the hardware and software for this tuner is open source. This means that the only limit to what you can do is your dedication. The software is written with Arduino, so all you need to reprogram the tuner is an AVR ISP or FTDI chip. If you plan to do this, I'll be happy to populate the header so you can plug it in without any soldering.

Status

This is the fourth revision of this tuner, the second one I'm selling, and the first that is anywhere close to a real product. For more about the first versions, read the history below.

I ordered 10 PCBs, one for myself, one for a friend, and 8 for you all. After these run out (which may be in a week or in a year), I'll collect feedback and begin work on the next version. The next batch will be bigger, but it may take a few more holidays...

After a lot of tweaking, I'm finally sort of satisfied by how the tuner works, but there are still a few things to sort out. Besides that, it's still a prototype. This means two things. First of all, I want your feedback! I want to know how I can make it even better. Secondly, be a bit careful. Even though I've never had any problems, I'd rather have you try it out on some old equipment, rather than fry your precious baby because it turns out I did something stupid that did not come up in my tests.

Known issues

There are a few things that are not as good as I'd like them to be.

Most importantly, the feed-through port is not very nice currently. I went through several ideas on how it should work, without adding too much extra knobs and complexity. It's a bit hard to get the balance right between input signal and tuning feedback. There is also quite crucially no way to turn off the tuning signal. If you prefer I can just bypass the tuner so you can use headphones while using it in series with your guitar pedals. Or try something funky with wiring it through the power switch... This is something I want your feedback about. How should this work?

A minor issue is that the volume is quit sensitive. Volume is a logarithmic thing, so I just got the wrong parts.

When there is no input the clicking can be quite erratic. Similarly, if you're almost perfectly in tune, there can be some irregular clicking. This is not as bad as it sounds, since it's quite easy to tell the regular tuning clicks from irregular clicks caused by noise. This could be improved by setting some thresholds, but I could not find values that work in all scenarios, so I left it for now.

There is one weird issue with grounding, that I've been unable to pin down. So far this only occurred with the tuner connected to multiple grounded devices, such as when I connect it to my PC, a lab power supply, and an amplifier. Somehow this causes the microcontroller to reset repeatedly, resulting in a different clicking on the outputs. All inputs and outputs have DC-blocking capacitors on them, so this should be harmless. It also never happens when running from battery.

History

Some years ago in a long summer holiday, I was browsing Reddit, when I suddenly found a post from someone asking if there was a guitar tuner for blind people. I googled around a bit, but besides a few one-of mods, there wasn't really anything. But it seemed "not hard", and I was looking for a project for that holiday.

So I thought, just put a microphone and a buzzer on a PCB, take the FFT of the input signal and determine the frequency. If the frequency is too low, buzz one way, if it's too high, buzz another way. This actually sort of worked, so I ordered a PCB form Oshpark, and got three. So I soldered all three and put them on this very page.

I had(and still have) no idea how to market to such a niche audience, so they sold very... slowly. Until Chris Smart bought the last one and tweeted about it. Suddenly people were piling up on the waitlist. One problem, the first thing wasn't all that good.

Over the next few holidays, I slowly chipped away at the problem, and made iteration after iteration until it did not completely suck anymore. I even invented a new tuning algorithm that is more efficient than the classic FFT based approach, more about that below, for the mathematically inclined.

A big milestone was the Hackaday prize for Assistive Technologies. This was a nice deadline to get me to actually finish this thing. In the end I made it to the finals, and won $1000. Because of that, I don't feel too bad about selling a few devices at a loss.

After that came a period where I worked on some small but tough problems that took the tuner from "kinda working" to "actually usable". I also had to learn to design a case, with a bit of help from some Industrial Design friends. Now that the first cases are being 3D printed, it suddenly starts feeling very real, like an actual product rather than a silly prototype.

The tuning algorithm

Just some technical details. Feel free to skip to the video(mostly audio) below.

The basis is formed by the following trigonometric identity.

2 cos(a) cos(b) = cos(a+b) + cos(a-b)

What this says is that when you multiply two frequencies, you get one frequency that is the sum of both frequencies, and a frequency that is the difference between the two. While we're not so much interested in the sum, the difference is exactly what we want for tuning. So you just filter out the sum, and voila, you're left with a sinusoidal signal that is the difference between two inputs.

So you take the guitar, multiply it with a reference tone, and filter the result. The clicks are simply every time the difference signal crosses zero. This is exactly what we want, and way more efficient in both CPU and memory than taking an FFT or doing auto-correlation.

Interestingly, this method is also used in FM modulation in radios. There is a 100MHz carrier, modulated by a few KHz with the audio signal you want to send. By multiplying with another 100MHz carrier on the receiver, you get that difference, your radio signal.

I also found there is an old type of tuner based on spinning disks that uses the same principle. I believe it is still used to tune church bells because you can tune all the overtones at the same time with it as well. Compared to that, generating clicks on zero-crossings is a bit crude, so if you can think of a way to have this kind of rich an precise tuning in an accessible way, I'm all ears.