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];