# HG changeset patch # User Matthias Mauch # Date 1288065714 -32400 # Node ID 9a1f83057e846ab48a609a521c9809badec4beda # Parent 1ccb883b585f1b6cc7580618b8c4713eef773fe9 harmonic change had no identifier, changed that in .cpp and .n3 files diff -r 1ccb883b585f -r 9a1f83057e84 Chordino.cpp --- a/Chordino.cpp Mon Oct 25 23:47:06 2010 +0900 +++ b/Chordino.cpp Tue Oct 26 13:01:54 2010 +0900 @@ -185,15 +185,15 @@ m_outputChords = index++; OutputDescriptor d8; - d8.identifier = ""; + d8.identifier = "harmonicchange"; d8.name = "Harmonic Change Value"; d8.description = "An indication of the likelihood of harmonic change. Depends on the chord dictionary. Calculation is different depending on whether the Viterbi algorithm is used for chord estimation, or the simple chord estimate."; d8.unit = ""; d8.hasFixedBinCount = true; d8.binCount = 1; - d8.hasKnownExtents = true; - d8.minValue = 0.0; - d8.maxValue = 0.999; + d8.hasKnownExtents = false; + // d8.minValue = 0.0; + // d8.maxValue = 0.999; d8.isQuantized = false; d8.sampleType = OutputDescriptor::FixedSampleRate; d8.hasDuration = false; @@ -510,8 +510,9 @@ chord_feature.hasTimestamp = true; chord_feature.timestamp = timestamps[0]; chord_feature.label = m_chordnames[chordpath[0]]; - fsOut[0].push_back(chord_feature); + fsOut[m_outputChords].push_back(chord_feature); + chordchange[0] = 0; for (int iFrame = 1; iFrame < chordpath.size(); ++iFrame) { // cerr << chordpath[iFrame] << endl; if (chordpath[iFrame] != oldchord ) { @@ -519,7 +520,7 @@ chord_feature.hasTimestamp = true; chord_feature.timestamp = timestamps[iFrame]; chord_feature.label = m_chordnames[chordpath[iFrame]]; - fsOut[0].push_back(chord_feature); + fsOut[m_outputChords].push_back(chord_feature); oldchord = chordpath[iFrame]; } /* calculating simple chord change prob */ @@ -672,7 +673,7 @@ if (oldChord != maxChord) { oldChord = maxChord; chord_feature.label = m_chordnames[maxChordIndex]; - fsOut[0].push_back(chord_feature); + fsOut[m_outputChords].push_back(chord_feature); } count++; } @@ -681,7 +682,7 @@ chord_feature.hasTimestamp = true; chord_feature.timestamp = timestamps[timestamps.size()-1]; chord_feature.label = "N"; - fsOut[0].push_back(chord_feature); + fsOut[m_outputChords].push_back(chord_feature); cerr << "done." << endl; for (int iFrame = 0; iFrame < nFrame; iFrame++) { @@ -689,10 +690,11 @@ chordchange_feature.hasTimestamp = true; chordchange_feature.timestamp = timestamps[iFrame]; chordchange_feature.values.push_back(chordchange[iFrame]); - fsOut[1].push_back(chordchange_feature); + // cerr << chordchange[iFrame] << endl; + fsOut[m_outputHarmonicChange].push_back(chordchange_feature); } - + // for (int iFrame = 0; iFrame < nFrame; iFrame++) cerr << fsOut[m_outputHarmonicChange][iFrame].values[0] << endl; return fsOut; diff -r 1ccb883b585f -r 9a1f83057e84 NNLSBase.cpp --- a/NNLSBase.cpp Mon Oct 25 23:47:06 2010 +0900 +++ b/NNLSBase.cpp Tue Oct 26 13:01:54 2010 +0900 @@ -49,11 +49,11 @@ m_kernelFftIndex(0), m_kernelNoteIndex(0), m_dict(0), - m_tuneLocal(false), + m_tuneLocal(0), m_chorddict(0), m_chordnames(0), m_doNormalizeChroma(0), - m_rollon(0.0), + m_rollon(0), m_s(0.7), m_useNNLS(1), m_useHMM(1) @@ -290,7 +290,8 @@ } if (identifier == "tuningmode") { - m_tuneLocal = (value > 0) ? true : false; + // m_tuneLocal = (value > 0) ? true : false; + m_tuneLocal = value; // cerr << "m_tuneLocal :" << m_tuneLocal << endl; } // if (identifier == "preset") { @@ -555,7 +556,7 @@ f2.timestamp = f1.timestamp; f2.values.push_back(0.0); f2.values.push_back(0.0); // set lower edge to zero - if (m_tuneLocal) { + if (m_tuneLocal == 1.0) { intShift = floor(m_localTuning[count] * 3); intFactor = m_localTuning[count] * 3 - intShift; // intFactor is a really bad name for this } diff -r 1ccb883b585f -r 9a1f83057e84 nnls-chroma.n3 --- a/nnls-chroma.n3 Mon Oct 25 23:47:06 2010 +0900 +++ b/nnls-chroma.n3 Tue Oct 26 13:01:54 2010 +0900 @@ -44,7 +44,7 @@ vamp:parameter plugbase:chordino_param_s ; vamp:output plugbase:chordino_output_simplechord ; - vamp:output plugbase:chordino_output_ ; + vamp:output plugbase:chordino_output_harmonicchange ; . plugbase:chordino_param_useNNLS a vamp:QuantizedParameter ; vamp:identifier "useNNLS" ; @@ -123,8 +123,8 @@ vamp:sample_rate 21.5332 ; vamp:computes_event_type af:ChordSegment ; . -plugbase:chordino_output_ a vamp:DenseOutput ; - vamp:identifier "" ; +plugbase:chordino_output_harmonicchange a vamp:DenseOutput ; + vamp:identifier "harmonicchange" ; dc:title "Harmonic Change Value" ; dc:description """An indication of the likelihood of harmonic change. Depends on the chord dictionary. Calculation is different depending on whether the Viterbi algorithm is used for chord estimation, or the simple chord estimate.""" ; vamp:fixed_bin_count "true" ; diff -r 1ccb883b585f -r 9a1f83057e84 simplechord.n3 --- a/simplechord.n3 Mon Oct 25 23:47:06 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -@prefix xsd: . -@prefix vamp: . -@prefix : <#> . - -:transform_plugin a vamp:Plugin ; - vamp:identifier "nnls_chroma" . - -:transform_library a vamp:PluginLibrary ; - vamp:identifier "matthiasm" ; - vamp:available_plugin :transform_plugin . - -:transform a vamp:Transform ; - vamp:plugin :transform_plugin ; - vamp:step_size "2048"^^xsd:int ; - vamp:block_size "16384"^^xsd:int ; - vamp:parameter_binding [ - vamp:parameter [ vamp:identifier "notedict" ] ; - vamp:value "0"^^xsd:float ; - ] ; - vamp:parameter_binding [ - vamp:parameter [ vamp:identifier "tuningmode" ] ; - vamp:value "0"^^xsd:float ; - ] ; - vamp:output [ vamp:identifier "simplechord" ] .