comparison 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
comparison
equal deleted inserted replaced
780:8fa98f89eda8 781:b651dc5ff555
28 #include <QSettings> 28 #include <QSettings>
29 29
30 MATCHAligner::MATCHAligner(Document *doc, 30 MATCHAligner::MATCHAligner(Document *doc,
31 ModelId reference, 31 ModelId reference,
32 ModelId toAlign, 32 ModelId toAlign,
33 bool subsequence,
33 bool withTuningDifference) : 34 bool withTuningDifference) :
34 m_document(doc), 35 m_document(doc),
35 m_reference(reference), 36 m_reference(reference),
36 m_toAlign(toAlign), 37 m_toAlign(toAlign),
38 m_subsequence(subsequence),
37 m_withTuningDifference(withTuningDifference), 39 m_withTuningDifference(withTuningDifference),
38 m_tuningFrequency(440.f), 40 m_tuningFrequency(440.f),
39 m_incomplete(true) 41 m_incomplete(true)
40 { 42 {
41 } 43 }
53 ModelById::release(m_tuningDiffOutputModel); 55 ModelById::release(m_tuningDiffOutputModel);
54 ModelById::release(m_pathOutputModel); 56 ModelById::release(m_pathOutputModel);
55 } 57 }
56 58
57 QString 59 QString
58 MATCHAligner::getAlignmentTransformName() 60 MATCHAligner::getAlignmentTransformName(bool subsequence)
59 { 61 {
60 QSettings settings; 62 QSettings settings;
61 settings.beginGroup("Alignment"); 63 settings.beginGroup("Alignment");
62 TransformId id = settings.value 64 TransformId id;
63 ("transform-id", 65 if (subsequence) {
64 "vamp:match-vamp-plugin:match:path").toString(); 66 id = settings.value
67 ("transform-id-subsequence",
68 "vamp:match-vamp-plugin:match-subsequence:path").toString();
69 } else {
70 id = settings.value
71 ("transform-id",
72 "vamp:match-vamp-plugin:match:path").toString();
73 }
65 settings.endGroup(); 74 settings.endGroup();
66 return id; 75 return id;
67 } 76 }
68 77
69 QString 78 QString
81 90
82 bool 91 bool
83 MATCHAligner::isAvailable() 92 MATCHAligner::isAvailable()
84 { 93 {
85 TransformFactory *factory = TransformFactory::getInstance(); 94 TransformFactory *factory = TransformFactory::getInstance();
86 TransformId id = getAlignmentTransformName(); 95 TransformId id = getAlignmentTransformName(false);
96 TransformId subId = getAlignmentTransformName(true);
87 TransformId tdId = getTuningDifferenceTransformName(); 97 TransformId tdId = getTuningDifferenceTransformName();
88 return factory->haveTransform(id) && 98 return factory->haveTransform(id) &&
99 (subId == "" || factory->haveTransform(subId)) &&
89 (tdId == "" || factory->haveTransform(tdId)); 100 (tdId == "" || factory->haveTransform(tdId));
90 } 101 }
91 102
92 void 103 void
93 MATCHAligner::begin() 104 MATCHAligner::begin()
265 } 276 }
266 277
267 bool 278 bool
268 MATCHAligner::beginAlignmentPhase() 279 MATCHAligner::beginAlignmentPhase()
269 { 280 {
270 TransformId id = getAlignmentTransformName(); 281 TransformId id = getAlignmentTransformName(m_subsequence);
271 282
272 SVDEBUG << "MATCHAligner::beginAlignmentPhase: transform is " 283 SVDEBUG << "MATCHAligner::beginAlignmentPhase: transform is "
273 << id << endl; 284 << id << endl;
274 285
275 TransformFactory *tf = TransformFactory::getInstance(); 286 TransformFactory *tf = TransformFactory::getInstance();