Mercurial > hg > svapp
diff align/MATCHAligner.cpp @ 781:b651dc5ff555
Add subsequence option all over the place
author | Chris Cannam |
---|---|
date | Thu, 16 Jul 2020 18:01:50 +0100 |
parents | 87d33e79855b |
children |
line wrap: on
line diff
--- a/align/MATCHAligner.cpp Wed Jul 01 15:34:46 2020 +0100 +++ b/align/MATCHAligner.cpp Thu Jul 16 18:01:50 2020 +0100 @@ -30,10 +30,12 @@ MATCHAligner::MATCHAligner(Document *doc, ModelId reference, ModelId toAlign, + bool subsequence, bool withTuningDifference) : m_document(doc), m_reference(reference), m_toAlign(toAlign), + m_subsequence(subsequence), m_withTuningDifference(withTuningDifference), m_tuningFrequency(440.f), m_incomplete(true) @@ -55,13 +57,20 @@ } QString -MATCHAligner::getAlignmentTransformName() +MATCHAligner::getAlignmentTransformName(bool subsequence) { QSettings settings; settings.beginGroup("Alignment"); - TransformId id = settings.value - ("transform-id", - "vamp:match-vamp-plugin:match:path").toString(); + TransformId id; + if (subsequence) { + id = settings.value + ("transform-id-subsequence", + "vamp:match-vamp-plugin:match-subsequence:path").toString(); + } else { + id = settings.value + ("transform-id", + "vamp:match-vamp-plugin:match:path").toString(); + } settings.endGroup(); return id; } @@ -83,9 +92,11 @@ MATCHAligner::isAvailable() { TransformFactory *factory = TransformFactory::getInstance(); - TransformId id = getAlignmentTransformName(); + TransformId id = getAlignmentTransformName(false); + TransformId subId = getAlignmentTransformName(true); TransformId tdId = getTuningDifferenceTransformName(); return factory->haveTransform(id) && + (subId == "" || factory->haveTransform(subId)) && (tdId == "" || factory->haveTransform(tdId)); } @@ -267,7 +278,7 @@ bool MATCHAligner::beginAlignmentPhase() { - TransformId id = getAlignmentTransformName(); + TransformId id = getAlignmentTransformName(m_subsequence); SVDEBUG << "MATCHAligner::beginAlignmentPhase: transform is " << id << endl;