[PD] feedback stability..? avoding mic->speaker feedback loops

Charles Henry czhenry at gmail.com
Tue Sep 16 14:34:07 CEST 2008


So, you want to walk right up to the edge of instability and back away, right?
We've all been there.  I wanted to do the same thing with an entire
room once, and I still do.  I've been working on a new adaptive filter
design which I hope will have better performance.

I think for your application, the LMS adaptive filters are your best
bet.  I haven't used the LMS filters before, so someone else will have
to comment on how to do this.

What you need to do is equalize the frequency response between
loudspeaker and microphone.

Anywhere in frequency that the gain in the loop is greater than 1,
causes instability.  This *includes* any kind of effects that you
apply in your feedback loop.  You're not only going to have to know
the frequency response of the loudspeaker-to-microphone transfer
function, you'll have to know the frequency response of all your
effects.

So, notch filtering doesn't fix the problem.  Equalization and careful
design of your digital effects does.  Also, you  should probably look
into putting compression on the output--this will not stop feedback,
but will prevent it from getting too loud.

Chuck

On Tue, Sep 16, 2008 at 5:08 AM, Damian Stewart <damian at frey.co.nz> wrote:
> so, to further elaborate, i want to avoid mic->speaker->mic feedback loops.
>
> this is for the RJDJ project that has been posted about a couple of times
> already (there's possibly still places in the Vienna sprint, if anyone
> wants to be flown to Vienna, put up in a swanky hotel, and make music with
> Pd for the iPhone this coming weekend; look back a week or two for the
> invite message).
>
> anyway, i have a patch that implements a resonator that feeds back on
> itself, to turn incoming audio into some kind of big cheesy
> holy-angels-choir kind of chord. this works fine and dandy in theory, but
> i'm getting a problem sometimes when playing it on the iphone, namely that
> the microphone and earpieces are physically very close together on the
> bundled iphone headphones, so under certain conditions, nasty feedback will
> happen. i could apply a notch filter to that particular frequency (we
> already calculate the input spectral centre), but then the feedback might
> happen in a different place if people are using non-standard
> headphones/microphones. it would be nicer to have a more general feedback
> limiting mechanism. (this would be useful for live performance rigs, too.)
>
> now, CPU on the device is very limited, but we are already performing an
> FFT on the input to use for analysis, so this data is available. i only
> vaguely understand how FFT works, but would it be possible to perform
> band-limited filtering on the input based on this data? my idea goes like
> this: since feedback tends to be about particular narrow-band signal peaks,
> could i for example square each FFT bin to exaggerate these peaks, then
> scale down to 10% or so, then subtract this from the incoming audio? would
> i do this by constructing an inverse FFT, and then subtracting the (scaled)
> IFFT output from the raw audio input? the aim is to reduce feedback without
> altering the rest of the incoming sound too much, so i don't want to base
> the audio on just an IFFT reconstruction of the signal (cos IFFT sounds ugly).
>
> are FFT results guaranteed to be normalised? ie, will squaring an FFT bin
> always result in a lower signal level?
>
> --
> damian stewart | skype: damiansnz | damian at frey.co.nz
> frey | live art with machines | http://www.frey.co.nz
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>




More information about the Pd-list mailing list