Maybe, but anyway I tried using perform() directly and this time it seems like it is working.
I already tried today but maybe something went wrong because I still had issues.
Anyway, here is the working code:
void MainContentComponent::getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill)
{
jassert( bufferToFill.buffer->getNumSamples() == 512 );
int numSamples = bufferToFill.buffer->getNumSamples();
float lTime = 0.f;
FFT lForwardFFT(9, false);
FFT lReverseFFT(9, true);
for (int channel = 0; channel < 2; ++channel)
{
lTime = mTime;
FFT::Complex lTData[numSamples];
FFT::Complex lSpectrumData[numSamples];
for(int i = 0; i < numSamples; i++)
{
lTime += 0.19;
lTData[i].r = cos(lTime);
lTData[i].i = 0.f;
}
lForwardFFT.perform(lTData, lSpectrumData);
lReverseFFT.perform(lSpectrumData, lTData);
float lTDataReal[numSamples];
for(int i = 0; i < numSamples; i++)
{
lTDataReal[i] = lTData[i].r / (float)numSamples; // the division part, I am not sure about it.
}
bufferToFill.buffer->copyFrom(channel, 0, lTDataReal, numSamples);
}
mTime = lTime;
}
