c@7: // c@7: // Spectrogram.h c@7: // Tempogram c@7: // c@7: // Created by Carl Bussey on 07/08/2014. c@7: // Copyright (c) 2014 Carl Bussey. All rights reserved. c@7: // c@7: c@7: #ifndef __Tempogram__Spectrogram__ c@7: #define __Tempogram__Spectrogram__ c@7: #include c@7: #include c@7: #include c@7: c@13: typedef std::vector > Spectrogram; c@13: typedef std::vector > SpectrogramTransposed; c@13: c@11: class SpectrogramProcessor{ c@13: size_t m_inputLength; c@13: size_t m_windowLength; c@13: size_t m_fftLength; c@13: size_t m_hopSize; c@13: size_t m_numberOfOutputBins; c@13: double * m_pFftInput; c@13: double * m_pFftOutputReal; c@13: double * m_pFftOutputImag; c@7: c@7: void initialise(); c@7: void cleanup(); c@7: public: c@13: SpectrogramProcessor(const size_t &inputLength, const size_t &windowLength, const size_t &fftLength, const size_t &hopSize); c@11: ~SpectrogramProcessor(); c@13: c@13: std::vector< std::vector > process(const float * const pInput, const float * pWindow) const; c@7: }; c@7: c@7: #endif /* defined(__Tempogram__Spectrogram__) */