What kind of guitar? What kind of sound transducer? What sample rate?
Signal to noise ratio? How powerful a microcontroller (MIPS, MFLOPs or
MACs per sample)? To what tuning accuracy? With what response time?
Depending on your answers, you might need to examine different solution
methods... anything from counting samples between zero crossings to
interpolated complex cepstrums.
IMHO. YMMV.
it must be capable of tuning both electric and acoustic guitar.
im finished with the signal conditioning part of the hardware. i used
an op amp to have a 2volts squarewave that will be the input signal of
the microcontroller. i will be using the eFH5830 mcu buy EMC.(elan
microelectronics) the mcu is 8-bit RISC type, 3.582Mhz. im aiming for
about +/-2 hz accuracy. with the fastest possible response time...
im thinking about zero crossing detection but the guitar signal is
consists of the fundamental and higher harmonics maybe up to 4 or 5
harmonics... and these harmonics cause erroneous zero crossings...
if this will be done on matlab, maybe FFT and some FIR or IIR will be
handy but the chip is quite new and my only way to do this is by
assembly language which as ive said, im just starting to learn...
as of now, im trying to make a program that will record the period of
the first zero crossing from the external interrupt.. then, ignore all
the higher frequency, just collect maybe 10 or more samples then have
an average. then compare this average to the standard tuning
frequency. find where the detected frequency belongs what string
treshold, then find how much is the error withrespect to the center
tuning freq... display the corresponding error with the "analog needle
meter" to the LCD while also displaying the name of the string being
tuned... i discovered one thing.. these are all EASIER SAID THAN
DONE...
anyways, if theres anyone out there who can give an idea on how to do
the "analog needle meter" program routine, i will greatly appreciate
it. im willing to study all of these stuff. references, examples,
related codes could be very helpful..
thank you all...