From: Magnus.Moraberg on
Hi,

When I did my ungraduate studies I designed a simple software
algorithm to extract note information from a guitar track. I extracted
notes from guitar chords using an sliding fft. Taking the magnitufe
spectrum, I multiplied the value in one bin by that of its prime
multiples. In other words, I multipled the value in bin 10 by that
found in bin 20, 30, 50, 70, 110, and 130. This worked great when
extracting notes from major and minor type chords where notes share a
large number of harmonics.

Since then I've designed a number of electronaic instruments which
rather than taking midi input, take a note value and an amplitude
value pertainent to a point in time. Therefore the signal sent to the
instrument looks something like this -

00ms A4+40 0dB
10ms A4+30 5dB
20ms A4+20 10dB
30ms A4+10 15dB
40ms A4+00 20dB
50ms A4-10 25dB
60ms A4-20 30dB

What I'm interested in now is process a human voice in order to
extract the same information listed above. So I wish to convert a
singing voice to the following -

A(t)*sin(2*pi*f(t) + ph(t))

I think my old approach to pitch tracking is not required here and was
wondering if you guys cold suggest some schemes, papers etc which
might be of interest to me. Perhaps there is software available also
which I might be interested in.

Thanks for your help,

Barry.