Mercurial > hg > nnls-chroma
comparison chromamethods.cpp @ 44:109d3b2c7105 matthiasm-plugin
regarding the chord estimation:\n * tweaked chord templates\n * that means that the original method also changed
author | matthiasm |
---|---|
date | Mon, 25 Oct 2010 01:58:37 +0900 |
parents | d6bb9b43ac1c |
children | 6e76c7710fa1 |
comparison
equal
deleted
inserted
replaced
43:131801714118 | 44:109d3b2c7105 |
---|---|
363 loadedChordNames.push_back("N"); | 363 loadedChordNames.push_back("N"); |
364 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(0.5); | 364 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(0.5); |
365 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(1.0); | 365 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(1.0); |
366 | 366 |
367 // normalise | 367 // normalise |
368 float sum = 0; | 368 // float sum = 0; |
369 for (int i = 0; i < loadedChordDict.size(); i++) { | 369 // for (int i = 0; i < loadedChordDict.size(); i++) { |
370 sum += pow(loadedChordDict[i],2); | 370 // sum += pow(loadedChordDict[i],2); |
371 if (i % 24 == 23) { | 371 // if (i % 24 == 23) { |
372 float invertedsum = 1.0/sqrt(sum); | 372 // float invertedsum = 1.0/sqrt(sum); |
373 for (int k = 0; k < 24; k++) { | 373 // for (int k = 0; k < 24; k++) { |
374 loadedChordDict[i-k] *= invertedsum; | 374 // loadedChordDict[i-k] *= invertedsum; |
375 } | 375 // } |
376 sum = 0; | 376 // sum = 0; |
377 } | 377 // } |
378 | 378 // |
379 } | 379 // } |
380 | |
381 | |
382 for (int iChord = 0; iChord < loadedChordDict.size()/24; iChord++) { | |
383 float sum = 0; | |
384 float stand = 0; | |
385 for (int iST = 0; iST < 24; ++iST) { | |
386 sum += loadedChordDict[24 * iChord + iST]; | |
387 } | |
388 for (int iST = 0; iST < 24; ++iST) { | |
389 loadedChordDict[24 * iChord + iST] -= sum/24; | |
390 stand += pow(loadedChordDict[24 * iChord + iST],2)/24; | |
391 } | |
392 stand = sqrt(stand); | |
393 for (int iST = 0; iST < 24; ++iST) { | |
394 loadedChordDict[24 * iChord + iST] /= stand; | |
395 } | |
396 | |
397 } | |
398 | |
380 | 399 |
381 | 400 |
382 nChord = 0; | 401 nChord = 0; |
383 for (int i = 0; i < loadedChordNames.size(); i++) { | 402 for (int i = 0; i < loadedChordNames.size(); i++) { |
384 nChord++; | 403 nChord++; |