# Quantifying the frequency shift of a delay with LP filtered feedback

I am working at a Karplus-Strong sound synthesis technique where an excitation impulse is subjected to a delay with feedback and a one pole LP filter in the feedback line. The process is simply y=(x+ky)[-n] Where x is the input signal, y is the output signal, n is the delay length in samples in the circular delay buffer and k is the feedback factor from 0 to 1. If no filtering is applied at the feedback line, the resulting frequency will be

sample rate / n.

If I apply a simple one pole LP filter in the feedback line, which is very effective for simulation of plucked strings, of form

y=x+f*(y[-1]-x)

where f is the filtering factor from 0 to 1, I get a frequency shift which is in some manner proportional to f (the higher f, the higher the shift downwards in frequency).

My problem is, I have no means to quantify this shift, the underlying math is likely too complex for me. But I would like to discover the exact relationship linking f and n so I can compensate n in function of f in order to avoid detuning (n is not integer but a real number becsuse I am using interpolation to read my samples from the circular buffer). The only thing I discovered is that such function D m=D(n,f) always passes by 0 for f=0 and by 1 for f=0.5 and likely goes to infinity for f=1 but it is neither a suitably scaled hyperbole nor exponential but something else.. Thanks in advance

• This is a linear process so not clear to me how you would get a frequency shift. Are you absolutely sure the frequency shift you are experiencing is due to this filter? – Dan Boschen Feb 12 at 0:21
• @DanBoschen : the frequency that is shifted is not the input frequency, but the peak of the frequency response envelope in response to white noise or an impulse as the input. – hotpaw2 Feb 12 at 2:44
• @hotpaw2 Ah I see, thanks, that makes more sense now. – Dan Boschen Feb 12 at 2:54
• @elena I am not quite following your formula and how the resulting frequency would be sample rate /n. Is your process also y[m]= x[m-n] + k y[m-n] where n is the delay in samples as you defined? y only gives the result for one sample, so it is clearer if you can describe every sample in y as y[m] or some other index. Please clarify – Dan Boschen Feb 12 at 12:18
• The process is simply a delay with feedback, how would you describe it ? I think y[t]=x[t-n]+b*y[t-n] is the correct equation, b being the feedback factor. Plus, in the feedback line there is a 1 pole LP filter. It is the so called Karplus Strong process – elena Feb 13 at 18:00