[music-dsp] measuring partial frequencies

robert bristow-johnson rbj at surfglobal.net
Mon Jan 12 13:30:01 EST 2004


well, guess what guys, i'm back on music-dsp.  i had just been hangin' on
comp.dsp (a USENET group i would recommend to music-dspers) but it looks
like i've been missing out.  "hi" to old-timers and the same to folks i
hadn't met yet.

On 01/12/2004 11:39:28 -0800, Peter Thom at peter at sonicreef.com wrote:

> From: "Peter Thom" <peter at sonicreef.com>
> To: <music-dsp at shoko.calarts.edu>
> Subject: [music-dsp] measuring partial frequencies
> Date: Mon, 12 Jan 2004 11:39:28 -0800
> Reply-To: music-dsp at ceait.calarts.edu
> 
> What would be the best way to measure exact partial frequencies of a
> tone? Any ideas?

in my biased and prejudiced opinion, if the tone is quasi-periodic
(sometimes called "quasi-harmonic" but incorrectly called "pseudo-
periodic"), what i would do is analyze the note using the Wavetable
Synthesis model.  ("wavetable synthesis" is another commonly misused term
here on music-dsp and in the industry.  it is *not* the common PCM sample
playback or "sampling synthesis" that many chips do or what Emu keyboards
do, it is more like what the Prophet VS synth or perhaps the Waldorf synths
do.)

if you take wavetable "snapshots" of the tone waveform every 1 ms (this will
require a good pitch detector and, until redundant wavetables are culled, is
a *big* increase in memory requirements), DFT each wavetable and convert to
magnitude and phase of each "harmonic" partial, the time derivative of each
partial's phase represents exactly the deviation of the partial's frequency
from the perfect integer harmonic value.

this is described pretty rigorously in the Wavetable Synthesis 101 paper
that lives on the harmony-central.com web site.  it's sorta mathematical.
the C code i used when i did the paper is *very* old and would require a bit
of work to make it portable.  i was planning on MATLABizing it but have
gotten around to it yet.

r b-j




More information about the music-dsp mailing list