changeset 161:123147f096d2 refactors

Expose tuning frequency parameters through plugin
author Chris Cannam
date Thu, 29 Jan 2015 17:13:58 +0000
parents 581b1118ec28
children dda5410ac9f0
files src/MatchVampPlugin.cpp src/MatchVampPlugin.h
diffstat 2 files changed, 32 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/MatchVampPlugin.cpp	Thu Jan 29 17:07:05 2015 +0000
+++ b/src/MatchVampPlugin.cpp	Thu Jan 29 17:13:58 2015 +0000
@@ -62,6 +62,7 @@
     m_defaultParams(defaultStepTime),
     m_feParams(inputSampleRate, m_blockSize),
     m_defaultFeParams(inputSampleRate, m_blockSize),
+    m_secondReferenceFrequency(m_defaultFeParams.referenceFrequency),
     m_fcParams(),
     m_defaultFcParams(),
     m_dParams(),
@@ -282,6 +283,26 @@
     desc.unit = "";
     list.push_back(desc);
 
+    desc.identifier = "freq1";
+    desc.name = "Tuning Frequency of First Input";
+    desc.description = "Tuning frequency (concert A) for the reference audio.";
+    desc.minValue = 220.0;
+    desc.maxValue = 880.0;
+    desc.defaultValue = (float)m_defaultFeParams.referenceFrequency;
+    desc.isQuantized = false;
+    desc.unit = "Hz";
+    list.push_back(desc);
+
+    desc.identifier = "freq2";
+    desc.name = "Tuning Frequency of Second Input";
+    desc.description = "Tuning frequency (concert A) for the other audio.";
+    desc.minValue = 220.0;
+    desc.maxValue = 880.0;
+    desc.defaultValue = (float)m_defaultFeParams.referenceFrequency;
+    desc.isQuantized = false;
+    desc.unit = "Hz";
+    list.push_back(desc);
+    
     return list;
 }
 
@@ -312,6 +333,10 @@
         return (int)m_dParams.metric;
     } else if (name == "noise") {
         return m_dParams.noise;
+    } else if (name == "freq1") {
+        return (float)m_feParams.referenceFrequency;
+    } else if (name == "freq2") {
+        return (float)m_secondReferenceFrequency;
     }
     
     return 0.0;
@@ -344,6 +369,10 @@
         m_dParams.metric = (DistanceMetric::Metric)(int(value + 0.1));
     } else if (name == "noise") {
         m_dParams.noise = (DistanceMetric::NoiseAddition)(int(value + 0.1));
+    } else if (name == "freq1") {
+        m_feParams.referenceFrequency = value;
+    } else if (name == "freq2") {
+        m_secondReferenceFrequency = value;
     }
 }
 
@@ -365,7 +394,8 @@
     m_params.hopTime = m_stepTime;
     m_feParams.fftSize = m_blockSize;
 
-    m_pipeline = new MatchPipeline(m_feParams, m_fcParams, m_dParams, m_params);
+    m_pipeline = new MatchPipeline(m_feParams, m_fcParams, m_dParams, m_params,
+                                   m_secondReferenceFrequency);
 }
 
 bool
--- a/src/MatchVampPlugin.h	Thu Jan 29 17:07:05 2015 +0000
+++ b/src/MatchVampPlugin.h	Thu Jan 29 17:13:58 2015 +0000
@@ -78,14 +78,13 @@
     bool m_smooth;
 
     int m_frameNo;
-    int m_lastFrameIn1;
-    int m_lastFrameIn2;
     
     Matcher::Parameters m_params;
     Matcher::Parameters m_defaultParams;
 
     FeatureExtractor::Parameters m_feParams;
     FeatureExtractor::Parameters m_defaultFeParams;
+    double m_secondReferenceFrequency;
 
     FeatureConditioner::Parameters m_fcParams;
     FeatureConditioner::Parameters m_defaultFcParams;