Delay Clicks

Hello folks,
I’ve been experimenting with daisy seed the past couple of days and I really like it. I plan to create a delay and reverb module with it and it’s going well, but I cannot seem to escape completely one annoing issue. When you change the delay time it creates very annoing clicks. When I connected it to a potentiometer it would click all the time because of noise in the ADC. I made a function to stabilize it and now its greatly reduced, but still if I want to change it and rotate the pot, it would create these annoing clicks. Is there anyway that this can be avoided? I guess the problem is that when the length of the buffer is changed, there are new samples that have very different values than the previous sample and that creates the click. I would think its possible to smooth the samples somehow but i don’t know exactly how. Maybe there could be some check in the Audio Callback if the potentiometer has just changed it’s value to use the old sample and not try to read the new one?
The other problem I’m having is that the Reverb doesn’t work with 96Khz for some reason. Is this because the processor cannot cope and just crashes, or is there some bug somewhere? Thanks!

You probably need some interpolation.

This site is ripe with information on how to implement it.

Thanks, that looks like a great resource! I tried to implement it by saving the last sample to a variable, and then interpolating with the current one. In the link you gave they interpolate between the current and next, but I don’t see how I could do that since the daisy seed delay line tool only gives the current sample. Anyway it looks like it is doing the job atleast partially. It’s not quite perfect but it definitely reduces the clicking alot. I don’t know how this affects the dynamic range though. I didn’t notice a noticable worsening of the sound, but I got to experiment a bit more.

Ah you’re using the DelayLine class. By the looks of it, interpolation is already implemented in that class. Try using any of the other Read methods, and see if that makes it sound better. And yes, linear interpolation induces a low pass filter in the signal. You could try the more advanced interpolation techniques mentioned in at the link I posted previously.

I think that combined with filtering on the parameter should solve your issues. You could try to implement linear interpolation on the delay time as well, smoothing out the change in delay time a bit.

2 Likes