Mercurial > hg > nnls-chroma
comparison chromamethods.cpp @ 74:b80144039d8f matthiasm-plugin
slightly raised weight for the N chord -- better detection of non-harmonic parts
author | Matthias Mauch <mail@matthiasmauch.net> |
---|---|
date | Fri, 29 Oct 2010 13:14:51 +0900 |
parents | 08d24cc21312 |
children | d398e73b46e0 |
comparison
equal
deleted
inserted
replaced
73:3ef99d22ec6b | 74:b80144039d8f |
---|---|
383 // } | 383 // } |
384 // | 384 // |
385 // } | 385 // } |
386 | 386 |
387 float exponent = 2.0; | 387 float exponent = 2.0; |
388 float boostN = 1.1; | |
388 | 389 |
389 for (int iChord = 0; iChord < loadedChordDict.size()/24; iChord++) { | 390 for (int iChord = 0; iChord < loadedChordDict.size()/24; iChord++) { |
390 float sum = 0; | 391 float sum = 0; |
391 float stand = 0; | 392 float stand = 0; |
392 for (int iST = 0; iST < 24; ++iST) { | 393 for (int iST = 0; iST < 24; ++iST) { |
394 } | 395 } |
395 for (int iST = 0; iST < 24; ++iST) { | 396 for (int iST = 0; iST < 24; ++iST) { |
396 // loadedChordDict[24 * iChord + iST] -= sum/24; | 397 // loadedChordDict[24 * iChord + iST] -= sum/24; |
397 stand += pow(abs(loadedChordDict[24 * iChord + iST]),exponent)/24; | 398 stand += pow(abs(loadedChordDict[24 * iChord + iST]),exponent)/24; |
398 } | 399 } |
399 stand = pow(stand,(float)1.0/exponent); | 400 if (iChord < loadedChordDict.size()/24 - 1) { |
401 stand = pow(stand,(float)1.0/exponent); | |
402 } else { | |
403 stand = pow(stand,(float)1.0/exponent) / boostN; | |
404 } | |
400 for (int iST = 0; iST < 24; ++iST) { | 405 for (int iST = 0; iST < 24; ++iST) { |
401 loadedChordDict[24 * iChord + iST] /= stand; | 406 loadedChordDict[24 * iChord + iST] /= stand; |
402 } | 407 } |
403 | 408 |
404 } | 409 } |