Derek Holzer wrote :
I was thinking about this the other day.... is it possible to have aliasing with Karplus-Strong? Because it's a delay line, nothing is being played back at any higher rate than it was sampled at, so no aliasing should be possible. Right?
The aliasing comes from a moiré (interference) between the frequency of the sampling and the frequency of whatever is going on. In the case of Karplus-Strong, the choice of the number of samples of delay is an integer, therefore the rounding of those values will be a kind of aliasing, and this aliasing will accumulate as the signal is fed back, because all the fractional-sample delays exceeding or missing are going to add up instead of being compensated by the usual counters.
If you antialias Karplus-Strong synthesisers, instead, the antialias will act as a lowpass that will attenuate much of the upper range of possible frequencies. For example, a delay by n samples and a half, is quite equivalent to how [rzero~ -1] acts as a kind of low-pass.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801
On Wed, 31 Mar 2010, Mathieu Bouchard wrote:
The aliasing comes from a moiré (interference) between the frequency of the sampling and the frequency of whatever is going on. In the case of Karplus-Strong, the choice of the number of samples of delay is an integer, therefore the rounding of those values will be a kind of aliasing, and this aliasing will accumulate as the signal is fed back, because all the fractional-sample delays exceeding or missing are going to add up instead of being compensated by the usual counters.
If you antialias Karplus-Strong synthesisers, instead, the antialias will act as a lowpass that will attenuate much of the upper range of possible frequencies. For example, a delay by n samples and a half, is quite equivalent to how [rzero~ -1] acts as a kind of low-pass.
and I forgot to say, if you use [vd~] to circumvent [delread~]'s delay limitation, you will also find that [vd~] is a lot slower (taking more cpu), and that's normal, because [vd~] does antialiasing, whereas [delread~] does not. as a result, you can specify fractionary-sample delays, and when you do, it sounds similar to changing the setting of the [lop~] in your feedback loop, because you can't possibly perform fractionary-sample delay without accidental lowpassing.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801