Mercurial > hg > svapp
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(); |