comparison Spectrogram.h @ 13:7680cc4c0073

* Tidying - made length of array variables type size_t and for loops unsigned int, where index > 0. * Window length parameter is now a dropdown box.
author Carl Bussey <c.bussey@se10.qmul.ac.uk>
date Wed, 13 Aug 2014 14:18:00 +0100
parents 09fb76606b2b
children
comparison
equal deleted inserted replaced
12:d58409ecd720 13:7680cc4c0073
10 #define __Tempogram__Spectrogram__ 10 #define __Tempogram__Spectrogram__
11 #include <vector> 11 #include <vector>
12 #include <vamp-sdk/FFT.h> 12 #include <vamp-sdk/FFT.h>
13 #include <cmath> 13 #include <cmath>
14 14
15 typedef std::vector <std::vector<float> > Spectrogram;
16 typedef std::vector <std::vector<float> > SpectrogramTransposed;
17
15 class SpectrogramProcessor{ 18 class SpectrogramProcessor{
16 int m_inputLength; 19 size_t m_inputLength;
17 int m_windowLength; 20 size_t m_windowLength;
18 int m_fftLength; 21 size_t m_fftLength;
19 int m_hopSize; 22 size_t m_hopSize;
20 int m_numberOfOutputBins; 23 size_t m_numberOfOutputBins;
21 double * fftInput; 24 double * m_pFftInput;
22 double * fftOutputReal; 25 double * m_pFftOutputReal;
23 double * fftOutputImag; 26 double * m_pFftOutputImag;
24 std::vector< std::vector <float> > spectrogramOutput;
25 27
26 void initialise(); 28 void initialise();
27 void cleanup(); 29 void cleanup();
28 public: 30 public:
29 std::vector< std::vector<float> > process(const float * const input, const float * window); 31 SpectrogramProcessor(const size_t &inputLength, const size_t &windowLength, const size_t &fftLength, const size_t &hopSize);
30 SpectrogramProcessor(unsigned int inputLength, unsigned int windowLength, unsigned int fftLength, unsigned int hopSize);
31 ~SpectrogramProcessor(); 32 ~SpectrogramProcessor();
33
34 std::vector< std::vector<float> > process(const float * const pInput, const float * pWindow) const;
32 }; 35 };
33 36
34 #endif /* defined(__Tempogram__Spectrogram__) */ 37 #endif /* defined(__Tempogram__Spectrogram__) */