[LAD] Stabilising self-oscillating filters?

Fons Adriaensen fons at kokkinizita.net
Mon Aug 27 13:26:07 UTC 2007

On Mon, Aug 27, 2007 at 11:11:39AM +0100, Gordon JC Pearce wrote:

> On Mon, 2007-08-27 at 11:35 +0200, Fons Adriaensen wrote:
> > You can use atanf(), tanh(), x / sqrtf (1 + x * x), ...
> So that would hold it around unity gain, maintaining the oscillation
> without going hugely offscale?

Yes. Once the oscillation is sustained the amplitude will settle at a
level that corresponds to exactly unity gain.

> I did briefly consider a simple "compressor" in the feedback loop with a
> shortish (a few cycle's worth) time constant, the idea being for it to
> work like the lightbulb or thermistor in a Wien Bridge oscillator.

That would probably be much more difficult - 'a few cycles' depends on
the frequency, and depending on the type of filter you have in the level
detector, the whole thing may start behaving like a pulsar rather than
as an oscillator (can be fun as well). But it can be done.

Anyway, maintaining a constant Q (and a fixed feedback level at which
oscillation will be sustained) is not obvious at higher frequencies, 
say above Fs/8. I remeber it was one of the more difficult aspects
when I wrote the Moog Filter plugin years ago.


Follie! Follie! Delirio vano è questo !

More information about the Linux-audio-dev mailing list