# [PD] smallest possible value of a delay-time

Ben Saylor bensaylor at fastmail.fm
Mon May 17 14:10:14 CEST 2004

```On Monday 17 May 2004 07:47 pm, Frank Barknecht wrote:
> Hallo,
>
> Roman Haefeli hat gesagt: // Roman Haefeli wrote:
> > yeah, the problem is karplus-strong-synthesis. the sound is
> > generated by feedbacks, so the length of  the delay determines the
> > frequency. if the grid of possible delay-values is 1 sample, you
> > get very large spaces between the resulting frequencies. (f = srate
> > / delayinsamples). it's not only about smaller than 1 sample, but
> > more precise than a sample. have a look at the beginning of this
> > discussion.
>
> Yes. One problem is the highest possible frequency you can create
> with Karplus-Strong synthesis.
>
> There you have:
>
>  frequency of tone = 1/delay length in seconds
>
> If you create a 1-sample-delay, your delay length is exactly
> 1/samplerate and freq would become == samplerate, also according to
>
> But as the sample theorem tells us, you cannot create a signal with a
> frequency that is larger than SR/2, so to actually make use of a
> Karplus-Strong delayline, you'd need to make the delay at least 2
> samples long.
>
> The other, more interesting problem is, can you and how could you get
> around the quantization of possible pluck frequencies according to
> above formula? Do you need to oversample to get delays with
> fractional samples length? Like when you want to synthesize a pluck
> with a frequency of 16000 Hz in CD quality, you'd need a delay length
> of 44100.0 / 16000.0 ~= 2.75 samples. Or is this possible with some
> kind of interpolation like in a wavetable oscillator or does it
> require oversampling? I think, it should be possible with
> interpolation, but I'd have to dig out those DSP books for that or
> search the music-dsp archive...
>
> Ciao

It definitely seems to be possible to get around the quantization using
interpolation.  Here's a polyphonic stringed instrument I made which
uses vd~.  It can play any pitch up to midi note 77 (about the maximum
with a 44100hz sample rate and blocksize=64).

http://home.gci.net/~pamsaylor/ben/polystr.inst.pd
http://home.gci.net/~pamsaylor/ben/polystr.voice.pd
http://home.gci.net/~pamsaylor/ben/polystr.string.pd

Ben

```