please excuse me in advance if this topic has already been posted, I
wasn't able to find it.
Let's assume I have a wav file which contains a non-overlapped
sequence of the notes of the scale (A with 440Hz, B with 466Hz, B#
494Hz... G# 830), each one with a fix duration of for ex. 1s.
What I'm trying to do is the following: I need to analyse the "song"
and determine which note is being played at different times. I know I
have to look at the frequency spectrum, but I don't know how...
1. Shall I use DFT (which takes complex numbers when I only have real
ones) or shall I use another transform (for ex. DCT)?
2. Do I have to perform the transform several times using different
windows with different sizes (for ex. if the sampled file has
44100Hz, I have to perform the transform the first time with a
window of 44100/440=100 samples and look for the first harmonic,
a second time with 44100/466=95 samples, an so on...)?
3. If the point 2 is correct (i.e., I have to perform the transform
several times using different window sizes), how can I speed up
the computation? If I can't choose arbitrarily the sample set,
how can I use FTT that takes only data with a "pow2 size"?
Thanks a lot