Mercurial > hg > match-vamp
diff Matcher.cpp @ 16:4c8526c5bf58
Implement features outputs
author | Chris Cannam |
---|---|
date | Fri, 10 Oct 2014 13:16:54 +0100 |
parents | a82276091bbd |
children | 47f98349aa17 |
line wrap: on
line diff
--- a/Matcher.cpp Fri Oct 10 12:55:05 2014 +0100 +++ b/Matcher.cpp Fri Oct 10 13:16:54 2014 +0100 @@ -19,6 +19,7 @@ #include <iostream> #include <cstdlib> +#include <cassert> bool Matcher::silent = true; @@ -84,6 +85,8 @@ initialised = true; + freqMapSize = getFeatureSize(params); + makeFreqMap(); initVector<double>(prevFrame, freqMapSize); @@ -136,6 +139,16 @@ } } // makeFreqMap() +int +Matcher::getFeatureSize(Parameters params) +{ + if (params.useChromaFrequencyMap) { + return 13; + } else { + return 84; + } +} + void Matcher::makeStandardFrequencyMap() { @@ -151,11 +164,10 @@ } while (i <= params.fftSize/2) { double midi = log(i*binWidth/440.0) / log(2.0) * 12 + 69; - if (midi > 127) - midi = 127; + if (midi > 127) midi = 127; freqMap[i++] = crossoverBin + lrint(midi) - crossoverMidi; } - freqMapSize = freqMap[i-1] + 1; + assert(freqMapSize == freqMap[i-1] + 1); if (!silent) { cerr << "Standard map size: " << freqMapSize << "; Crossover at: " << crossoverBin << endl; @@ -177,7 +189,6 @@ double midi = log(i*binWidth/440.0) / log(2.0) * 12 + 69; freqMap[i++] = (lrint(midi)) % 12 + 1; } - freqMapSize = 13; if (!silent) { cerr << "Chroma map size: " << freqMapSize << "; Crossover at: " << crossoverBin << endl;