Electronic – arduino – Getting notes from a classical guitar using Arduino

arduino

I had an idea for a project that consists on finding the notes that are being played on a classical guitar using an Arduino. Now, I've never used an Arduino before, so I'm not sure if this is doable or if there is a better way.

I need to detect the frequency of each string, and then try to match that frequency to the correct note. I can't just use 1 single sensor for all the strings, because each note can be on several positions on the fretboard. The information would then be transmitted wirelessly to a computer. It could be the raw information (to be processed by the computer) or the board could do the hard work itself, but maybe that would increase latency.

Do you have any suggestions on how to do this? Is there an optical sensor that can detect the frequency at which a string vibrates and that could be placed beneath each string?

Best Answer

What you need to do is sample the sound into a waveform and then run a Fast Fourier transform on it.

I very much doubt that the Arduino is powerful enough to do this. I would suggest instead using something more in tune with digital signal processing, such as a dsPIC or other DSP based microcontroller.