There is an cross-correlation class [cc~] in the flib library, which you can use to do auto-correlation. It has both a time domain and a frequency domain CC function. I found the output of the time domain implementation to be easier to interpret.
There are also number of other feature extraction objects in flib that might help with what you need, including [peak~], which does the same as [peakit~] except that with [peak~] the magnitude spectrum isn't calculated by the object, so you can precalculate the power spectrum, log mag spectrum, cepstrum and pass it to the object. With [peak~] you can also set a threshold as a percentage below the maximum peak found.
You might find [bmax~] useful, as it returns the bin numbers of the n most prominent partials, I think similar to ekext/[hasc~]. (ekext/[hssc~] might also be useful, but you have probably already tried).
Also you might want to try flib/[irreg~], flib/[ss~] which measure spectral irregularity and spectral smoothness respectively.
I guess it depends how prominent you are expecting the feedback to be, and how it is distributed across the spectrum.
Let me know how you resolve this issue, as I am very interested in this.
HTH,
Jamie
BTW: sounds like a good installation!
On Mon, 31 Jul 2006 01:01:56 -0400 hans@eds.org wrote:
This isn't a standard feedback suppression system that I am after. I
want to be able to play with the feedback while having the ability to
prevent it from taking over. Its part of an interactive installation
I am working on, the next generation of this:The autocorrelation stuff sounds interesting, plus I just found Ed
Kelly's [peakit~], which gives amplitude info of FFT channels..hc
On Jul 31, 2006, at 10:23 AM, padawan12 wrote:
Feeback tends toward periodicity at 1/t for a delay of t so you could do an autocorrelation (expensive - does Pd have an object to help with that?) of te feedback signal to look for it. Since you know the frequency in advance a simple bp filter is more effective. Not sure what you mean by "dominant" part. If gain is greater than unity then it will eventually be, but if you think of a Karplus=Strong it is by definition once the excitory signal has vanished. Am I understanding your question(?) if I say the best way is to simply monitor the
amplitude , because if G>1 the amplitude will *always* keep growing.On Sun, 30 Jul 2006 19:07:12 -0400 Hans-Christoph Steiner hans@eds.org wrote:
Has anyone done anything with trying to detect feedback in a signal? I am not looking so much for feedback suppression techniques, but rather detection techniques. I am working on a system that has a slow feedback loop. I want to detect when feedback is the dominant part of the signal, and make the system respond in novel ways.
.hc
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
Man has survived hitherto because he was too ignorant to know how to
realize his wishes. Now that he can realize them, he must either
change them, or perish. -William Carlos Williams
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list