diff NoveltyCurve.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
line wrap: on
line diff
--- a/NoveltyCurve.h	Wed Aug 13 10:47:39 2014 +0100
+++ b/NoveltyCurve.h	Wed Aug 13 14:18:00 2014 +0100
@@ -18,6 +18,7 @@
 #include "FIRFilter.h"
 #include "WindowFunction.h"
 #include <cassert>
+#include "Spectrogram.h"
 
 class NoveltyCurve{
     float m_samplingFrequency;
@@ -26,23 +27,21 @@
     int m_numberOfBlocks;
     int m_compressionConstant;
     int m_numberOfBands;
-    int * m_bandBoundaries;
-    int m_hannLength;
-    float * m_bandSum;
-    std::vector<float> data;
+    int * m_pBandBoundaries;
+    float * m_pBandSum;
     
     void initialise();
     void cleanup();
-    float calculateMax(std::vector< std::vector<float> > &spectrogram);
-    void subtractLocalAverage(std::vector<float> &noveltyCurve);
-    void smoothedDifferentiator(std::vector< std::vector<float> > &spectrogram, int smoothLength);
-    void halfWaveRectify(std::vector< std::vector<float> > &spectrogram);
+    float calculateMax(const std::vector< std::vector<float> > &spectrogram) const;
+    void subtractLocalAverage(std::vector<float> &noveltyCurve, const size_t &smoothLength) const;
+    void smoothedDifferentiator(std::vector< std::vector<float> > &spectrogram, const size_t &smoothLength) const;
+    void halfWaveRectify(std::vector< std::vector<float> > &spectrogram) const;
     
 public:
     
-    NoveltyCurve(float samplingFrequency, int fftLength, int numberOfBlocks, int compressionConstant);
+    NoveltyCurve(const float &samplingFrequency, const size_t &fftLength, const size_t &numberOfBlocks, const size_t &compressionConstant);
     ~NoveltyCurve();
-    std::vector<float> spectrogramToNoveltyCurve(std::vector< std::vector<float> > spectrogram);
+    std::vector<float> spectrogramToNoveltyCurve(Spectrogram spectrogram) const;
 };
 
 #endif /* defined(__Tempogram__NoveltyCurve__) */