// // Created by versustune on 12.06.20. // #ifndef VENO_FFT_H #define VENO_FFT_H #include "JuceHeader.h" class FFT { private: public: FFT () = default; ~FFT () = default; void pushNextSampleIntoFifo (float sample) noexcept; enum { fftOrder = 11, // [1] fftSize = 1 << fftOrder, // [2] scopeSize = 512 // [3] }; void drawNextFrameOfSpectrum (); bool nextFFTBlockReady = false; float scopeData[scopeSize]{}; float fftData[2 * fftSize]{}; protected: dsp::FFT fft{fftOrder}; dsp::WindowingFunction window{fftSize, dsp::WindowingFunction::hann}; float fifo[fftSize]{}; int fifoIndex = 0; }; #endif //VENO_FFT_H