On 5 Apr 2006, at 13:55, Tim Blechmann wrote:
On Wed, 2006-04-05 at 13:25 +0100, David Plans Casal wrote:
I'm trying to use pd's own fft routines in an object I'm trying to help develop and release, built with flext.
are you serious about that? using the fftw library would be several times faster than the mayer fft ...
My aim is indeed to eventually use fftw instead. But I'm just trying to get my head around the concept of making an fftw 'plan' for now...and cleaning up the code for this thing before uploading to SF. Charles Henry sent me a really kind email explaining fftw use, but I just haven't really understood it yet.
Feel free to suggest how you'd do it in the snippet I sent ;-)
My guess is I would use fftw3f (for floats vs double precision), then
fftw_plan plan:
plan=fftwf_plan_r2r_1d(size, input, output, FFTW_R2HC, flags); fftwf_execute(plan);
I'm not sure how to marry fftw's planning idea with the code I've got, which puts real and imaginary results in two arrays:
int N=n; int N2=N>>1; // N/2 mayer_realfft(N,out); n=N2; register float* r = out+1; // real values register float*i = out+N-1; // imaginary while(--n){ // start at position N/2-1 leave out 0 *r=*r**r+*i**i; // Squared Modulus r++;i--; } *(out+N2) = *(out+N2)**(out+N2); // value at N/2+1 *out=*out**out;
cheers,
david
-- David Plans Casal Researcher, UEA Studios d.casal at uea dot ac dot uk http://www.davidcasal.com