#ifndef __ComplexFourierTransformTestPatch_hpp__
#define __ComplexFourierTransformTestPatch_hpp__
#include "StompBox.h"
#include "ComplexFourierTransform.h"
class ComplexFourierTransformTestPatch : public Patch {
private:
bool success;
int passed;
int failed;
int fftsize;
ComplexFourierTransform fftArm;
bool assertt(float first, float second, const char *message){ bool cond=false;
float tol=0.0000001;
if(abs(second-first)<tol){
cond=true;
}
return assert(cond, message);
}
bool assert(bool condition,const char * message){
return assert(condition, message, -1);
}
bool assert(bool condition,const char * message, int n){
if(condition==false && success==true){ success=false;
if(n>=0)
debugMessage(message, n);
else
debugMessage(message);
ASSERT(condition, message); failed++;
} else {
passed++;
}
return condition;
}
ComplexFloatArray inout;
public:
ComplexFourierTransformTestPatch(){
fftsize=getBlockSize();
fftArm.init(fftsize);
inout=ComplexFloatArray::create(fftsize);
};
void processAudio(AudioBuffer &buffer){
FloatArray samples=buffer.getSamples(0);
inout.fromFloat(samples); fftArm.fft(inout);
fftArm.ifft(inout);
inout.getRealValues(samples);
samples.multiply(0.2);
}
};
#endif