Noisy delay

I have been trying to incorporate the delay effect into my
multi-effect module but it always turns out really noisy and nasty sounding.
is anyone else having this problem or knows what could be the cause of it?

Have you looked at the delay implementation in the pod “MultiEffect” example code?

void GetDelaySample(float &outl, float &outr, float inl, float inr)
{
fonepole(currentDelay, delayTarget, .00007f);
delr.SetDelay(currentDelay);
dell.SetDelay(currentDelay);
outl = dell.Read();
outr = delr.Read();

dell.Write((feedback * outl) + inl);
outl = (feedback * outl) + ((1.0f - feedback) * inl);

delr.Write((feedback * outr) + inr);
outr = (feedback * outr) + ((1.0f - feedback) * inr);
}

This worked well beyond my expectations. I’ve worked with Arduino (Uno and Due), FV-1, and Bela (via PocketBeagle) and I’ve found the results with Daisy to be the best by far.

I will note, I’m working with a Pod and I have only tested this with a guitar as the input signal (though - in previous attempts even hot guitar signals would cause distortion at the input).

The other issue I’ve had in the past has been real-time modulation of the delay time causing noise or the dreaded “zipper” effect, but it seems that this implementation doesn’t fall prey to those issues. I’ve added a modulation oscillator to my implementation and can get great warble, chorus, and even flange without significant noise.

hm, looking at the multieffect pod example i realize my programming is a real mess, haha :smiley:
But no matter, I’ll try to use it to better my code.

From your description I think my main problem has been what you describe about the real-time modulation. When I change the delay time while the effect is running it starts to distort.

I’ll try to adapt the code you posted into my own and see if that helps. I’ll also try adding a variable resistor at the input.

1 Like

Hi Saotome,
The cause could be an noisy delay time input.
You could try:

  • a physical RC low pass filter on all inputs which modulate the delay time on your daisy.
  • a software low pass filter on the delay time. This one is showed in the example code that Kreiff showed: fonepole(currentDelay, delayTarget, .00007f);

huh, might be.
so is the fonepole thing a function in the daisy library? I’ve never come across it before.