Hi C5505 forum,
I have been working with my C5505 EzDSP to implement DSP audio effects and apart from basic delay and reverb algorithms I have succesfully implemented a 5-band parametric equalizer. I have found a lot of information regarding other delay-based audio effects such as flanger/chorus which I have been trying to implement and although I get a chorusy effect I hear kind of crackling noise as well.
I'm using a LFO (1 Hz sine waveform) that modulates a 480 sample delay buffer. Here's what I do:
- For each sample the program calculates the actual sinewave value. I'm using the sinewave generator written by TI's Richard Sikora, which outputs only integer values. This sinewave has a pk to pk value of 480.
- Read the current circular buffer value given by the sinewave generator starting at buffer_length/2 (in this case 240). Compute the algorithm value.
- Write at the current circular buffer position.
I think that the problem occurs once the algorithm gets a N=0 delay value since the buffer is full of samples and as soon as it starts incrementing again it reads this wrong values instead of reading a blank buffer space.
So do I have to clear the buffer once the program gets to the "bottom" of the buffer? Or am I missing something else?
Thanks in advance!