LancePutnam / Gamma

Generic (Sound) Synthesis Library
Other
458 stars 54 forks source link

Low Pass filter exploding near Nyquist #35

Closed mhetrick closed 8 years ago

mhetrick commented 8 years ago

gam::Biquad<> (set to type gam::LOW_PASS) is exploding when given feedback. So far, in my testing, I've had it explode in the range of 21-22 kHz with a sampling rate of 44.1 kHz (it stabilizes around 20 kHz). This occurs without any input. You can just feed the previous filter output value back in as the new input.

The feedback noise is extremely high frequency. It's not a stable sine wave, but rather noise. It is hard to hear, but you can see it with a scope or amplitude meter.

LancePutnam commented 8 years ago

What kind of feedback are you doing exactly? Something like this: float s = soundSource(); float out = biquad(prevOut + s); prevOut = out;

mhetrick commented 8 years ago

Yes, pretty much that.

LancePutnam commented 8 years ago

I would consider this a more general DSP issue since it's an external feedback loop. Therefore, it's outside the scope of Biquad. You may want to try placing a BlockNyquist in the feedback loop to see if that helps.