Mercurial > hg > nnls-chroma
changeset 94:19f3b33a19fb matthiasm-plugin
corrected viterbi frame initialisation
author | matthiasm |
---|---|
date | Thu, 02 Dec 2010 23:39:57 +0900 |
parents | 12cdf228c47d |
children | dab7e7bfeba1 |
files | nnls-chroma.n3 viterbi.cpp |
diffstat | 2 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/nnls-chroma.n3 Thu Dec 02 23:11:27 2010 +0900 +++ b/nnls-chroma.n3 Thu Dec 02 23:39:57 2010 +0900 @@ -299,6 +299,17 @@ vamp:bin_names ( "A (bass)" "Bb (bass)" "B (bass)" "C (bass)" "C# (bass)" "D (bass)" "Eb (bass)" "E (bass)" "F (bass)" "F# (bass)" "G (bass)" "Ab (bass)" "A" "Bb" "B" "C" "C#" "D" "Eb" "E" "F" "F#" "G" "Ab"); vamp:computes_signal_type af:Chromagram ; . + +plugbase:nnls-chroma_output_consonance a vamp:DenseOutput ; + vamp:identifier "consonance" ; + dc:title "Consonance estimate." ; + dc:description """A simple consonance value based on the convolution of a consonance profile with the semitone spectrum.""" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 1 ; + vamp:computes_signal_type af:TonalChangeDetectionFunction; + . + plugbase:tuning a vamp:Plugin ; dc:title "Tuning" ; vamp:name "Tuning" ;
--- a/viterbi.cpp Thu Dec 02 23:11:27 2010 +0900 +++ b/viterbi.cpp Thu Dec 02 23:39:57 2010 +0900 @@ -12,11 +12,6 @@ if (trans[0].size() != nState || trans.size() != nState || obs[0].size() != nState) { cerr << "ERROR: matrix sizes inconsistent." << endl; } - - for (int iState = 0; iState < nState; ++iState) delta[iState] = init[iState]; - for (int iFrame = 1; iFrame < nFrame; ++iFrame) { - for (int iState = 0; iState < nState; ++iState) delta[iFrame*nState + iState]; - } // vector<vector<double> > delta; // "matrix" of conditional probabilities vector<vector<int> > psi; // "matrix" of remembered indices of the best transitions @@ -28,7 +23,7 @@ /* initialise first frame */ // delta.push_back(init); for (int iState = 0; iState < nState; ++iState) { - delta[iState] *= obs[0][iState]; + delta[iState] = init[iState] * obs[0][iState]; deltasum += delta[iState]; } for (int iState = 0; iState < nState; ++iState) delta[iState] /= deltasum; // normalise (scale)