How to compensate for LP detuning in Karplus Strong

DSP, Plug-in and Host development discussion.
elena2
KVRer
8 posts since 7 Jun, 2018

Post Fri Feb 14, 2020 4:17 pm

It' s ok Mystran 😊 I was simply saying that... it works without artifacts and this is a fact.. after all anybody can actually try it since I explained the details... surely I am not going to publish a paper on it lol because ok in that case all the underlying math should be demonstrated rigorously of course. Once I was using Mathemathica when I was into pure maths (a different story than applied maths) but there are situations where you cannot afford to spend days on calculi (time is scarce and priorities are strict) or to diverge from your current goal too much...

signalsmith
KVRer
17 posts since 5 Jul, 2018 from Cambridge, UK

Re: How to compensate for LP detuning in Karplus Strong

Post Mon Feb 17, 2020 3:58 am

mystran wrote:
Thu Feb 13, 2020 1:06 pm
While sinc-interpolation is more expensive, it also has a problem with feedback loops in the sense that the (unavoidable) latency puts a limit on the minimum delay length (eg. if you have 16 samples of latency, then you can't have a loop shorter than 16 samples, because that would require negative delay). One can reduce this problem by oversampling, but then it gets even more expensive. I would usually suggest "cubic-interpolation"
Since you mentioned this, I was wondering:

Because the latency (for linear phase-response) only matters inside a feedback loop, is it ever worth upsampling and then using a much cheaper interpolation for the feedback? E.g. a linear interpolator is N times more work if you've upsampled xN, but (intuitively) the error is N^2 better, same tradeoff as increasing your windowed-sinc length. (Cubic would presumably be N^4 better, right? Which seems like it might produce some good trade-offs.)

The Karplus-Strong resonator is itself linear - so could you (1) resample without worrying about latency, or non-linear phase, or having a particularly flat pass-band, and then (2) either accept these issues or compensate a bit once you're back down to your original sample-rate?

mystran
KVRAF
5561 posts since 12 Feb, 2006 from Helsinki, Finland

Re: How to compensate for LP detuning in Karplus Strong

Post Mon Feb 17, 2020 5:13 am

signalsmith wrote:
Mon Feb 17, 2020 3:58 am
Because the latency (for linear phase-response) only matters inside a feedback loop, is it ever worth upsampling and then using a much cheaper interpolation for the feedback? E.g. a linear interpolator is N times more work if you've upsampled xN, but (intuitively) the error is N^2 better, same tradeoff as increasing your windowed-sinc length. (Cubic would presumably be N^4 better, right? Which seems like an even better tradeoff.)
Not sure about the error metrics exactly... but the general idea is solid.

For longer loops where the latency isn't an issue, using sinc-interpolation directly is potentially slightly faster than oversampling if you don't need oversampling for anything else (eg. non-linearities). Obviously if there is a lot of other processing in the loop, then oversampling will also increase the cost of those.

As for non-linear phase... this is mostly a problem when it's inside the loop, because there it will detune the harmonics. If it's from the resampling and hence outside the loop, then it doesn't do any additional damage beyond what you would expect from non-linear phase for resampling in general.
Please just let me die.

Return to “DSP and Plug-in Development”