Mercurial > hg > match-vamp
changeset 39:2f8a802b62f9
Avoid freqMap overruns for unusual sample rates
author | Chris Cannam |
---|---|
date | Thu, 13 Nov 2014 12:55:29 +0000 |
parents | a43b53d32735 |
children | 15a7fdc02c58 a68204b9a529 |
files | src/Matcher.cpp |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Matcher.cpp Thu Nov 13 09:50:30 2014 +0000 +++ b/src/Matcher.cpp Thu Nov 13 12:55:29 2014 +0000 @@ -202,9 +202,11 @@ while (i <= params.fftSize/2) { double midi = log(i*binWidth/440.0) / log(2.0) * 12 + 69; if (midi > 127) midi = 127; - freqMap[i++] = crossoverBin + lrint(midi) - crossoverMidi; + int target = crossoverBin + lrint(midi) - crossoverMidi; + if (target >= freqMapSize) target = freqMapSize - 1; + freqMap[i++] = target; } - assert(freqMapSize == freqMap[i-1] + 1); + if (!silent) { cerr << "Standard map size: " << freqMapSize << "; Crossover at: " << crossoverBin << endl;