void ofxFft::prepareCartesian() { if(!cartesianUpdated) { if(!polarUpdated) executeFft(); else updateCartesian(); } if(!cartesianNormalized) normalizeCartesian(); }
float* ofxFftw::ifft(float* a, float* b, fftMode mode) { if(mode == OF_FFT_POLAR) { setAmplitude(a); setPhase(b); updateCartesian(); } else if(mode == OF_FFT_CARTESIAN) { setReal(a); setImaginary(b); } memcpy(ifftIn, amplitude, sizeof(float) * bins); for(int i = 1; i < signalSize; i++) ifftIn[signalSize - i] = phase[i]; fftwf_execute(ifftPlan); setSignal(ifftOut); signalReady = false; return getSignal(); }