Esempio n. 1
0
void ofxFFTBase::setBufferSize(int value) {
    int bufferSizeNew = ofNextPow2(value);
    
    if(bufferSize == bufferSizeNew) {
        return;
    }
    
    bufferSize = bufferSizeNew;
    binSize = (int)(bufferSize * 0.5);
    
    killFFT();
    initFFT();
    initAudioData(fftData, bufferSize);
}
Esempio n. 2
0
void ofxFFTBase :: setNoOfBands( int value )
{
	int audioNoOfBandsNew;
	audioNoOfBandsNew	= ofNextPow2( value );
	
	if( audioNoOfBands == audioNoOfBandsNew )
		return;
	
	audioNoOfBands		= OFX_FFT_NO_OF_BANDS;
	audioNoOfBandsHalf	= (int)( audioNoOfBands * 0.5 );
    
    killFFT();
	initFFT();
	initAudioData( rawData, getNoOfBands() );
	initAudioData( fftData, getNoOfBands() );
}
Esempio n. 3
0
void ofxFFTBase::initFFT() {
    killFFT();
    
    _fft = new fft(bufferSize);
    
    buffer = (float *)malloc(bufferSize * sizeof(float));
    memset(buffer, 0, bufferSize * sizeof(float));
    
    magnitudes = (float *)malloc(binSize * sizeof(float));
    memset(magnitudes, 0, binSize * sizeof(float));
    
    magnitudesDB = (float *)malloc(binSize * sizeof(float));
    memset(magnitudesDB, 0, binSize * sizeof(float));
    
    phases = (float *)malloc(binSize * sizeof(float));
	memset(phases, 0, binSize * sizeof(float));

    window = (float *)malloc(bufferSize * sizeof(float));
    memset(window, 0, bufferSize * sizeof(float));
    fft::genWindow(3, bufferSize, window);
}
Esempio n. 4
0
ofxFFTBase ::  ofxFFTBase() 
{
    specData        = NULL;
    fftMagnitude    = NULL;
    fftPhase        = NULL;
    fftPower        = NULL;
	fftFreq         = NULL;

    setMaxDecay( 0.995 );
	setPeakDecay( 0.96 );
	setThreshold( 0.5 );
	setMirrorData( false );
	
	renderBorder = 1;
    
	audioNoOfBands		= OFX_FFT_NO_OF_BANDS;
	audioNoOfBandsHalf	= (int)( audioNoOfBands * 0.5 );
    
    killFFT();
	initFFT();
	initAudioData( rawData, audioNoOfBandsHalf );
	initAudioData( fftData, audioNoOfBandsHalf );
}
Esempio n. 5
0
ofxFFTBase :: ~ofxFFTBase() 
{
    killFFT();
}