When I set the modulation source to one of the LFOs and set the LFO wave to noise, dial up the feedback level (which is always less than one) and modulation depth, the phaser blows up. This doesn't happen with any of the other wave shapes. Since it's white noise, I guess the energy build up is much, much greater.
I'd hate to leave the noise waveform out, so I was looking for a place in my algorithm to put in some clipping to keep the feedback from getting out of hand. But nothing I do seems to solve the problem. Here's the algorithm I'm using:
First I modulate the phaser frequency with the modulation sources. This is kind of psuedo code:
Code: Select all
float fc = frequency * pow(2.0f, mod * modDepth);
Code: Select all
float d = fc / halfSampleRate;
float g = (1.0f - d) / (1.0f + d);
Code: Select all
input += feedback * feedbackLevel;
I've clipped the feedback, but that doesn't seem to help. Or perhaps I'm not doing it right, or something.
