That all sounds quite correct to me. One wavetable per octave seems like a reasonable approach to the problem, limiting the highest partials to those under Nyquist when the wavetable is plated back at its highest frequency. This would only work where you were generating discreet notes, of course, and not using FM synthesis or other methods which might sweep the frequency below or above the given octave. Tradeoffs....
D.
On 3/28/10 4:47 PM, Matteo Sisti Sette wrote:
Well, that is only if all the partials remain under the Nyquist frequency. The idea is to limit the higher harmonics to the ones described by whatever formula you use to generate the waveforms, but if you eliminated all of them them you would just have a sine wave again ;-) So what you get is considerably less aliasing, but without oversampling and filtering you will still get some.
Please correct me if I am wrong:
You can choose between allowing for just a little bit of aliasing, or loosing just few highest harmonics... ("a little bit" and "few" may become "a lot of" if the span of pitches you are going to synthesize with one single wavetable grows)
The idea is:
- Determine the amplitudes and phase of all (infinite) theorically
needed harmonics (by fourier analysis of the waveform, not digitally in the patch but with paper, equations and books)
- Generate a wavetable which is a sum of sinusoids with the amplitudes
and phases determined at setp (1), but discard those that exceed the Nyquist frequency (index>=N)
Now, the index N of the first harmonic to eliminate depends on the frequency at which the wavetable is going to be reproduced, And you obviously cannot (usually) generate as many wavetable as the pitches to be played which may be infinite.
So you may for example generate one wavetable per octave, or per whatever interval: then you have to choose whether you take all the harmonics "needed" for the lowest end of the interval, thus getting a little bit of aliasing, maximum at the highest end of the interval. Or you take all the harmonics "needed" for the highest pitch in the interval, in which case you never have even the least amount of aliasing, but you get a wave that "misses" the highest harmonics when the wavetable is played at a pitch approaching the lowest end of the interval assigned to that table......
Is this correct?