Mercurial > hg > nnls-chroma
comparison chromamethods.cpp @ 89:7af5312e66f8 matthiasm-plugin
new boost N parameter in chordino, chord dictionary loaded on initialisation (not construction) of plugin
author | Matthias Mauch <mail@matthiasmauch.net> |
---|---|
date | Wed, 01 Dec 2010 23:08:55 +0900 |
parents | f568555390f1 |
children | b095d83585c9 |
comparison
equal
deleted
inserted
replaced
88:fc28c50caace | 89:7af5312e66f8 |
---|---|
275 path.push_back(envPath.substr(index)); | 275 path.push_back(envPath.substr(index)); |
276 | 276 |
277 return path; | 277 return path; |
278 } | 278 } |
279 | 279 |
280 vector<string> chordDictionary(vector<float> *mchorddict, vector<vector<int> > *m_chordnotes) { | 280 vector<string> chordDictionary(vector<float> *mchorddict, vector<vector<int> > *m_chordnotes, float boostN) { |
281 | 281 |
282 typedef tokenizer<char_separator<char> > Tok; | 282 typedef tokenizer<char_separator<char> > Tok; |
283 char_separator<char> sep(",; ","="); | 283 char_separator<char> sep(",; ","="); |
284 | 284 |
285 string chordDictBase("chord.dict"); | 285 string chordDictBase("chord.dict"); |
302 } | 302 } |
303 } | 303 } |
304 | 304 |
305 iostreams::stream<iostreams::file_source> chordDictFile(chordDictFilename); | 305 iostreams::stream<iostreams::file_source> chordDictFile(chordDictFilename); |
306 string line; | 306 string line; |
307 int iElement = 0; | 307 // int iElement = 0; |
308 int nChord = 0; | 308 int nChord = 0; |
309 | 309 |
310 vector<string> loadedChordNames; | 310 vector<string> loadedChordNames; |
311 vector<float> loadedChordDict; | 311 vector<float> loadedChordDict; |
312 if (chordDictFile.is_open()) { | 312 if (chordDictFile.is_open()) { |
366 } | 366 } |
367 // cerr << os.str() << endl; | 367 // cerr << os.str() << endl; |
368 loadedChordNames.push_back(os.str()); | 368 loadedChordNames.push_back(os.str()); |
369 | 369 |
370 m_chordnotes->push_back(tempchordnotes); | 370 m_chordnotes->push_back(tempchordnotes); |
371 for (int iNote = 0; iNote < tempchordnotes.size(); ++iNote) { | 371 // for (int iNote = 0; iNote < tempchordnotes.size(); ++iNote) { |
372 cerr << tempchordnotes[iNote] << " "; | 372 // cerr << tempchordnotes[iNote] << " "; |
373 } | 373 // } |
374 cerr << endl; | 374 // cerr << endl; |
375 } | 375 } |
376 } | 376 } |
377 } | 377 } |
378 // N type | 378 // N type |
379 loadedChordNames.push_back("N"); | 379 loadedChordNames.push_back("N"); |
380 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(0.5); | 380 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(0.5); |
381 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(1.0); | 381 for (unsigned kSemitone = 0; kSemitone < 12; kSemitone++) loadedChordDict.push_back(1.0); |
382 vector<int> tempchordvector; | 382 vector<int> tempchordvector; |
383 m_chordnotes->push_back(tempchordvector); | 383 m_chordnotes->push_back(tempchordvector); |
384 float exponent = 2.0; | 384 float exponent = 2.0; |
385 float boostN = 1.1; | 385 // float m_boostN = 1.1; |
386 | 386 // cerr << " N BOOST : " << boostN << endl << endl; |
387 for (int iChord = 0; iChord < loadedChordDict.size()/24; iChord++) { | 387 for (int iChord = 0; iChord < loadedChordDict.size()/24; iChord++) { |
388 float sum = 0; | 388 float sum = 0; |
389 float stand = 0; | 389 float stand = 0; |
390 for (int iST = 0; iST < 24; ++iST) { | 390 for (int iST = 0; iST < 24; ++iST) { |
391 sum += loadedChordDict[24 * iChord + iST]; | 391 sum += loadedChordDict[24 * iChord + iST]; |