diff src/Silvet.cpp @ 34:7d81407a2fd8

Start on EM class
author Chris Cannam
date Fri, 04 Apr 2014 14:28:41 +0100
parents e08c330a761d
children 74b77a4d6552
line wrap: on
line diff
--- a/src/Silvet.cpp	Fri Apr 04 13:43:51 2014 +0100
+++ b/src/Silvet.cpp	Fri Apr 04 14:28:41 2014 +0100
@@ -14,8 +14,7 @@
 */
 
 #include "Silvet.h"
-
-#include "data/include/templates.h"
+#include "EM.h"
 
 #include "maths/MedianFilter.h"
 #include "dsp/rateconversion/Resampler.h"
@@ -267,6 +266,19 @@
     }
 
     Grid cqout = m_cq->process(data);
+    return transcribe(cqout);
+}
+
+Silvet::FeatureSet
+Silvet::getRemainingFeatures()
+{
+    Grid cqout = m_cq->getRemainingBlocks();
+    return transcribe(cqout);
+}
+
+Silvet::FeatureSet
+Silvet::transcribe(const Grid &cqout)
+{
     Grid filtered = preProcess(cqout);
 
     FeatureSet fs;
@@ -279,16 +291,21 @@
         fs[m_cqOutputNo].push_back(f);
     }
 
+    int width = filtered.size();
+
+    int iterations = 12;
+
+    for (int i = 0; i < width; ++i) {
+        EM em;
+        for (int j = 0; j < iterations; ++j) {
+            em.iterate(filtered[i]);
+        }
+        //!!! now do something with the results from em!
+    }
+
     return fs;
 }
 
-Silvet::FeatureSet
-Silvet::getRemainingFeatures()
-{
-
-    return FeatureSet();
-}
-
 Silvet::Grid
 Silvet::preProcess(const Grid &in)
 {
@@ -331,8 +348,6 @@
 
                 int ix = inCol.size() - j - 55;
 
-                //!!! note these filters introduce more latency
-
                 double val = inCol[ix];
                 m_filterA[j]->push(val);