//--------------------------------------------------------------
void AudioAnalyzer::update() {

    float rmsAmplitude  = 0;

    for (int i = 0; i < bufferSize; i++) {

        //calculate the root mean square amplitude
        rmsAmplitude += audioInput[i];//sqrt(audioInput[i]*audioInput[i]);

    }

    //now we need to get the average
    rmsAmplitude /= (float)bufferSize;
    averageVal = rmsAmplitude;
    //cout << "average Val " << averageVal << endl;

    fft->setSignal( audioInput );

    memcpy(fftOutput, fft->getAmplitude(), sizeof(float) * fft->getBinSize());

    for(int i = 0; i < fft->getBinSize(); i++)
        eqOutput[i] = fftOutput[i] * eqFunction[i];

    fft->setPolar(eqOutput, fft->getPhase());

    fft->clampSignal();
    memcpy(ifftOutput, fft->getSignal(), sizeof(float) * fft->getSignalSize());

    for(int i = 0; i < bufferSize; i++)
        blendfft[i] = .9*blendfft[i] + .1*ifftOutput[i];

    //aubio.processAudio(audioInput, NUM_BANDS);
    //for(int i = 0; i < bufferSize; i++)
    //	averageVal += ifftOutput[i];
    //averageVal = 1;//(float)bufferSize;
    //aubio.amplitude;

    //stats_pitch.update(aubio.pitch);

    calculateAverageFFTBands( eqOutput, fft->getBinSize() );

    updatePeaks(peakThreshold, eqOutput, fft->getBinSize());

    panel.update();
}
void GuiSpectrumAnalyser::setVisualizationMode(int mode)
{
    visualization_mode = mode;

    visualizationMenu->setItemChecked(MODE_ANALYSER, (mode == MODE_ANALYSER));
    visualizationMenu->setItemChecked(MODE_DISABLED, (mode == MODE_DISABLED));

    if (mode == MODE_ANALYSER)
    {
        if (!winSkinVis)
        {
            winSkinVis=new WinSkinVis(this,"WinSkinVis");
            connect(winSkinVis,SIGNAL(doRepaint()),this,SLOT(updatePeaks()));
        }
    }
    else
    {
         delete winSkinVis;
         winSkinVis = NULL;
    }

    update();
}