# HG changeset patch # User matthiasm # Date 1292670466 -32400 # Node ID 96769283f83654d36100add14c01700c23dcdf8c # Parent 9d81703dcf6e6ac9f266b50a99dcc45448d381f9 debugging consonance (framewise normalisation) diff -r 9d81703dcf6e -r 96769283f836 NNLSChroma.cpp --- a/NNLSChroma.cpp Tue Dec 07 21:27:36 2010 +0900 +++ b/NNLSChroma.cpp Sat Dec 18 20:07:46 2010 +0900 @@ -438,15 +438,21 @@ float notesum = 0; consonance.values.push_back(0); - for (int iSemitone = 0; iSemitone < 84-24; ++iSemitone) { - notesum += f3.values[iSemitone] * f3.values[iSemitone] * treblewindow[iSemitone] * treblewindow[iSemitone]; - float tempconsonance = 0; + + for (int iSemitone = 0; iSemitone < 84; ++iSemitone) { + float tempconsonance = 0; + int sumlength = 1; for (int jSemitone = 1; jSemitone < 24; ++jSemitone) { + if (iSemitone+jSemitone > 84-1) break; + sumlength++; tempconsonance += f3.values[iSemitone+jSemitone] * (consonancepattern[jSemitone]) * treblewindow[iSemitone+jSemitone]; } - consonance.values[0] += (f3.values[iSemitone] * tempconsonance * treblewindow[iSemitone]); + notesum += f3.values[iSemitone] * f3.values[iSemitone] * treblewindow[iSemitone] * treblewindow[iSemitone] * sumlength; + consonance.values[0] += (f3.values[iSemitone] * tempconsonance * treblewindow[iSemitone]) * sumlength; } + // cerr << consonance.values[0] << " " << f3.timestamp << " "<< notesum << endl; if (notesum > 0) consonance.values[0] /= notesum; + f4.values = chroma; f5.values = basschroma;