# HG changeset patch # User Chris Cannam # Date 1423137203 0 # Node ID d23dad16d6f9aef7b9c1999fa9e62c7ffdcd378a # Parent 31602361fb65d37e19e8fd8e5b9ce98897f8171f Simplify freq handling diff -r 31602361fb65 -r d23dad16d6f9 match-vamp-plugin.n3 --- a/match-vamp-plugin.n3 Fri Jan 30 14:54:18 2015 +0000 +++ b/match-vamp-plugin.n3 Thu Feb 05 11:53:23 2015 +0000 @@ -17,7 +17,7 @@ :library_maker foaf:name "Simon Dixon and Chris Cannam" ; foaf:logo ; - foaf:page . + foaf:page ; . plugbase:library a vamp:PluginLibrary ; diff -r 31602361fb65 -r d23dad16d6f9 src/FeatureExtractor.cpp --- a/src/FeatureExtractor.cpp Fri Jan 30 14:54:18 2015 +0000 +++ b/src/FeatureExtractor.cpp Thu Feb 05 11:53:23 2015 +0000 @@ -24,7 +24,7 @@ using namespace std; -//#define DEBUG_FEATURE_EXTRACTOR 1 +#define DEBUG_FEATURE_EXTRACTOR 1 FeatureExtractor::FeatureExtractor(Parameters parameters) : m_params(parameters) @@ -76,7 +76,9 @@ int crossoverMidi = lrint(log(crossoverBin * binWidth / refFreq)/ log(2.0) * 12 + 69); +#ifdef DEBUG_FEATURE_EXTRACTOR cerr << "FeatureExtractor::makeStandardFrequencyMap: refFreq = " << refFreq << endl; +#endif int i = 0; while (i <= crossoverBin) { @@ -91,6 +93,11 @@ if (target >= m_featureSize) target = m_featureSize - 1; m_freqMap[i++] = target; } + +#ifdef DEBUG_FEATURE_EXTRACTOR + cerr << "FeatureExtractor: crossover bin is " << crossoverBin << " for midi " + << crossoverMidi << endl; +#endif } void diff -r 31602361fb65 -r d23dad16d6f9 src/MatchPipeline.cpp --- a/src/MatchPipeline.cpp Fri Jan 30 14:54:18 2015 +0000 +++ b/src/MatchPipeline.cpp Thu Feb 05 11:53:23 2015 +0000 @@ -23,7 +23,7 @@ Matcher::Parameters matchParams, double secondReferenceFrequency) : m_fe1(feParams), - m_fe2(feParams), + m_fe2(paramsWithFreq(feParams, secondReferenceFrequency)), m_fc1(fcParams), m_fc2(fcParams), m_pm1(matchParams, dParams, 0), @@ -33,11 +33,6 @@ m_lastFrameIn2(0), m_frameNo(0) { - if (secondReferenceFrequency != 0.0) { - feParams.referenceFrequency = secondReferenceFrequency; - m_fe2 = FeatureExtractor(feParams); - } - m_pm1.setOtherMatcher(&m_pm2); } @@ -45,6 +40,14 @@ { } +FeatureExtractor::Parameters +MatchPipeline::paramsWithFreq(FeatureExtractor::Parameters params, double freq) +{ + if (freq == 0.0) return params; + params.referenceFrequency = freq; + return params; +} + void MatchPipeline::feedFrequencyDomainAudio(const float *arr1, const float *arr2) { diff -r 31602361fb65 -r d23dad16d6f9 src/MatchPipeline.h --- a/src/MatchPipeline.h Fri Jan 30 14:54:18 2015 +0000 +++ b/src/MatchPipeline.h Thu Feb 05 11:53:23 2015 +0000 @@ -115,6 +115,8 @@ vector m_c1; vector m_c2; bool aboveThreshold(const vector &f); + FeatureExtractor::Parameters paramsWithFreq(FeatureExtractor::Parameters, + double); }; #endif