Issue with FFT plugin - Inverse Transformation

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;
}
1 Like