ADAU1452
Production
The ADAU1452 /Â ADAU1451Â /Â ADAU1450 are automotive qualified audio processors that far exceed the digital signal processing capabilities of earlier SigmaDSPÂ...
Datasheet
ADAU1452 on Analog.com
Hi.
I'm currently increasing the quality of my ADAU1452 audio effects. I have successfully removed any kind of clicks and pops from every effects but chorus and delay. In both effects, I encounter the same click source: when I change the delay amount, it creates clicks. Here is a simplified schematic of the delay. It is easier to understand than the chorus one :
Feedback is set to about 0.1, or we have too much feedback and it starts to oscillate.
Both dry(input) and wet(delayed) signals are mixed together with a HW slew mux.
To illustrate the problem, I chose 0*dry+1*wet, so I removed the mux.
Now I'm using a uC to safeload the delay values. From 10ms to 200ms by 10ms steps. With a ~1kHz sinus at the input. Here is the envelope:
The amplitude show no oscillation due to too much feedback.
As you can see, when you change the delay amount, there is a discontinuity in the phase, leading to a brutal amplitude change: a click!
I know that it's due to the buffer size change. If you remove/add some samples in the start/end of the buffer, and do the addition with the original sinus, then it's likely to have phase problems.
If you have an audio signal with more sinus than one, you will have more problems .
Note that I know when clicks will occur.
I tried to mute the delayed path for a certain amount of time using the following HW slew mux : didn't work. It delays the clicks, but do not remove them.
I tried to perform 10x1ms steps instead of a single 10ms step: didn't work, leads to 10x more clicks .
8th order low-pass filter, only active during clicks: worked, but it's a bad idea. There is click noise around 1kHz, so we can't filter it in an inaudible way.
Any other ideas?
Best regards,
Simon
HI Simon:
Would you consider modifying the delay slowly.? smoothing changes reduces sudden transitions. This can easily be done using a voltage control or slesing mux where a slewing volume controls is the method for slowly changing the delay. Lastly, there are fractional delays that allow even more sudden changes,
Please comment.
Miguel
Hi Miguel.
To have a good user experience while turning the "delay knob", the processing time should be <100ms.
Let's examine 3cases:
The problem concern only the phase of the signal. Not the amplitude. So even a small phase change would lead to a click. That's why using more steps don't really help.
An amplitude problem would have been solved by a slew mux. Phase problems are harder to solve.
At least I know when the clicks occur!
Here is my idea:
The whole processing takes less than 100ms, and works very well with silence or multi-frequency signals (with a lone sinus, it removes the click but leads to a noticeable amplitude change).
For the chorus, it cause less problems, because the different voices (delays) are all <20ms without any form of feedback. So I just need to mute the output during 20ms with a slew mux, it isn't very noticeable.
I didn't try the fractional delay, because I've enough resolution with the integer delay (I use 1ms or 10ms steps) .
Thanks for your help Miguel, I'll put the topic resolved.
Simon