diff YinUtil.h @ 136:7cbf40306c10 vamp-fft-revision

Add state to YinUtil, prepare to use the Vamp FFT (but don't actually use it yet)
author Chris Cannam
date Fri, 19 Aug 2016 12:00:13 +0100
parents 60eb8771d340
children c2b426f4d841
line wrap: on
line diff
--- a/YinUtil.h	Fri Aug 19 11:31:57 2016 +0100
+++ b/YinUtil.h	Fri Aug 19 12:00:13 2016 +0100
@@ -14,29 +14,35 @@
 #ifndef _YINUTIL_H_
 #define _YINUTIL_H_
 
-#include "vamp-sdk/FFT.h"
-#include "MeanFilter.h"
-
 #include <cmath>
 
 #include <iostream>
 #include <vector>
 #include <exception>
 
+#include "vamp-sdk/FFT.h"
+
 using std::vector;
 
 class YinUtil
 {
 public:
-    static double sumSquare(const double *in, const size_t startInd, const size_t endInd);
-    static void difference(const double *in, double *yinBuffer, const size_t yinBufferSize);
-    static void fastDifference(const double *in, double *yinBuffer, const size_t yinBufferSize);
-    static void slowDifference(const double *in, double *yinBuffer, const size_t yinBufferSize);
-    static void cumulativeDifference(double *yinBuffer, const size_t yinBufferSize);
-    static int absoluteThreshold(const double *yinBuffer, const size_t yinBufferSize, const double thresh);
-    static vector<double> yinProb(const double *yinBuffer, const size_t prior, const size_t yinBufferSize, size_t minTau = 0, size_t maxTau = 0);
-    static double parabolicInterpolation(const double *yinBuffer, const size_t tau,
-                                         const size_t yinBufferSize);
+    YinUtil(size_t yinBufferSize);
+    ~YinUtil();
+    
+    double sumSquare(const double *in, const size_t startInd, const size_t endInd);
+    void difference(const double *in, double *yinBuffer);
+    void fastDifference(const double *in, double *yinBuffer);
+    void slowDifference(const double *in, double *yinBuffer);
+    void cumulativeDifference(double *yinBuffer);
+    int absoluteThreshold(const double *yinBuffer, const double thresh);
+    vector<double> yinProb(const double *yinBuffer, const size_t prior,
+                           size_t minTau = 0, size_t maxTau = 0);
+    double parabolicInterpolation(const double *yinBuffer, const size_t tau);
+
+private:
+    const size_t m_yinBufferSize;
+    Vamp::FFTReal m_fft;
 };
 
 #endif