diff src/Silvet.cpp @ 215:5ba328aae5be norm

Normalise samples to cumulative maximum (experimentally)
author Chris Cannam
date Tue, 15 Jul 2014 13:32:27 +0100
parents 5bde003a43a9
children b5a8836dd2a4
line wrap: on
line diff
--- a/src/Silvet.cpp	Tue Jul 15 13:28:52 2014 +0100
+++ b/src/Silvet.cpp	Tue Jul 15 13:32:27 2014 +0100
@@ -390,6 +390,7 @@
     m_pianoRoll.clear();
     m_columnCount = 0;
     m_startTime = RealTime::zeroTime;
+    m_signalMax = 0.0;
 }
 
 Silvet::FeatureSet
@@ -401,7 +402,18 @@
     
     vector<double> data;
     for (int i = 0; i < m_blockSize; ++i) {
-        data.push_back(inputBuffers[0][i]);
+        double d = inputBuffers[0][i];
+        if (fabs(d) > m_signalMax) {
+            m_signalMax = fabs(d);
+        } 
+    }
+    for (int i = 0; i < m_blockSize; ++i) {
+        double d = inputBuffers[0][i];
+        if (m_signalMax > 0.0) {
+            data.push_back(d / m_signalMax * 0.5);
+        } else {
+            data.push_back(0.0);
+        }
     }
 
     if (m_resampler) {