Adaptive Filters
Has anyone worked with adaptive filters in msp before? I'm trying to implement something similar to a feedback destroyer, and the idea I keep coming back to is using an adaptive filter to do the job. Is there an object I should look at?
I found a reference online, here http://ccrma.stanford.edu/~eberdahl/Projects/FeedbackCancellation/FeedbackCancellation.pdf, that makes reference to a Pd object that could potentially be ported over, but I'm hoping something already exists.
Thanks in advance for the help,
Jeff
I also found a tool by Peter Kassakian here:
I can't get it to run on my system, though. Mac OSX 10.4.10, Max/MSP 4.6.3 w/ Jitter 1.6.3, Intel Mac. I get the following message:
=95 error: linearprediction~: unable to load object bundle executable
2007-09-07 00:31:21.978 MaxMSP[490] CFLog (21): dyld returns 2 when
trying to load /Users/vautin/Documents/Audio/Max/AdaptiveFilters/linearpred=
I assume the external was compiled for PPC? I'm new to the externals game, so any information anyone can provide would be very welcome.
Thanks!
Right, these are PPC only at the moment.
I'll try to round up the source for these and see if I can't make a working UB version.
mz
Quote: Jeff wrote on Fri, 07 September 2007 06:25
----------------------------------------------------
> I also found a tool by Peter Kassakian here:
>
> http://www.cnmat.berkeley.edu/~kassak/Kassaksite_files/Software/MaxMSP/
>
> I can't get it to run on my system, though. Mac OSX 10.4.10, Max/MSP 4.6.3 w/ Jitter 1.6.3, Intel Mac. I get the following message:
>
> =95 error: linearprediction~: unable to load object bundle executable
>
> 2007-09-07 00:31:21.978 MaxMSP[490] CFLog (21): dyld returns 2 when
>
> trying to load /Users/vautin/Documents/Audio/Max/AdaptiveFilters/linearpred=
>
> I assume the external was compiled for PPC? I'm new to the externals game, so any information anyone can provide would be very welcome.
>
> Thanks!
----------------------------------------------------
Thanks mzed, let me know what you find!
Bump?
bump? gen. for the lower latency in feedback loops.
The http link above didn't work, but the paper is here:
https://ccrma.stanford.edu/~eberdahl/Projects/FeedbackCancellation/FeedbackCancellation.pdf
Source file for adaptfilt~ appers to be here:
https://ccrma.stanford.edu/~eberdahl/Projects/AdaptFilt/proj/adaptfilt.cpp
Looks like it could be gen-ified. Making a start, will post if I make any progress.
OK I believe I've ported the C++ source of adaptfilt~ to gen~ below.
AFAICT this object's purpose is, given a raw and filtered input, to extract a FIR model for this filter; and it does this very well.
If someone wants to pick this up to implement feedback suppression let me know & please post back here!
Grfham
Hey Graham,
that is very helpful! I have only implemented adaptive filters offline in Python so far.
Next step would be to modify your patch and make a kernel adaptive filter - if I figure out how to do the memory management on the kernels, since this method is memory based (saves all old values, if no forgetting factor is introduced).
Maybe it's smarter to implement a training and testing function so I don't have to rely to heavily on that. Just thinking out loud here :)
Best wishes