eromlignod said:
I'm sorry Jon; I didn't mean to come across like a smartass.
I currently have methods to determine pitch with very high accuracy
and I'm well aware of the musical ramifications of my work. I was
just hoping that there was a product out there with similar accuracy,
but that would allow me to compare each harmonic frequency, not just
measure the fundamental alone.
As has been suggested, it looks like I'll have to use my device in
conjunction with a tuneable band-pass filter and measure each harmonic
one at a time.
Well, I'm not going to read your other posts. Sorry. Maybe you do explain in
more detail whats going on but I have my own projects I have to work on.
I think though what your failing to realize is that the signal your trying
to measure is not stable. That is, the frequency is time dependent. This
means no matter how accurate you measure you will still get a "blur" of
frequencies and also there amplitudes(which I know you are not worried about
in this case).
Think of vibrato but on a much smaller scale. If you are measuring
frequencies changes past this level it does no good.
For example, Lets suppose you have perfect pitch and can determine the
frequency within 1 cent. Now suppose someone is playing a not on a guitar
and using vibrato. Do you think you can determine the frequency within
1cent? No, its impossible! Why? Because there is no frequency. There is an
average frequency which you can use to determine the average pitch but even
that might be wrong because they might not be vibrating around a fixed
pitch.
So the point is not so much your measuring methods but that the vibrations
themselfs are time-dependent.
A simple model might be something like this:
x(t) = cos(f*t)
then we say that the frequency is f. This is a mathematical model
though(note that its fourier transform is dirac(w + f) + dirac(w - f)...
which are only idealized anyways).
What we really have is something like
x(t) = cos(f(t)*t)
Suppose f(t) is a perfect vibrato around some fixed frequency f
then you have
x(t) = cos((f + A*cos(m*t))*t)
where A is the strength and m is the frequency.
Hopefully you can appreciate that x(t)'s frequencies are spread out around
f. Obviously it depends on both m and A.
I think though that you'll find any real string isn't going to behave as
ideally as you think it is. I could be wrong here as I haven't done any
extensive research on it. One way to sorta see whats going on is look at a
STFFT and watch the frequencies change with time. The fundamentals are not
such a big deal because they are so low and you'll barely see them move but
the higher up you go the more drastic the effect becomes.
If you remember my calculations before, we had C4 was 0.761hz while C8 was
13hz. This means that going through 4 octaves gave a factor of 17. That
might not seem like much but when you consider the higher overtones above
10khz it becomes more signficant(assuming you take the human and his
imperfect ear out of the picture).
In any case, it really depends on what your trying to accomplish. I'll leave
it up to you since you know more about what your trying to do. I'm just
trying to get the point across that your not dealing with a mathematical
model and so you have to work within the confines of reality. From my brief
glimpse of other posts it seems your trying to get the frequencie of a
vibrating piano strings. But again, there is no "frequency" because its
always changing. But what you can do is get an average frequency which will
center around an "ideal" frequency and then you can use that ideal one for
whatever calculations you want. Since most errors will be normally
distributed and most imperfections will be symmetric(for the most part) will
also be distributed symmetrically any type of averaging will reduce them. A
simple average won't work because of potential analomous behavior(outliers)
but taking that into account you'll get a pretty good result(most likely).
If I were you, since you seem concerned with getted the most precise result,
I would look into just how much a normal vibrating string deviates from the
ideal. You should first know what your up against because it might be
impossible to do what you want. (I had a similar problem when trying to do
some pitch shifting stuff)