Mercurial > hg > svapp
comparison align/TransformAligner.cpp @ 767:dd742e566e60 pitch-align
Make a start on further alignment methods
author | Chris Cannam |
---|---|
date | Thu, 21 May 2020 16:21:57 +0100 |
parents | 6429a164b7e1 |
children | 1b1960009be6 |
comparison
equal
deleted
inserted
replaced
761:6429a164b7e1 | 767:dd742e566e60 |
---|---|
27 | 27 |
28 #include <QSettings> | 28 #include <QSettings> |
29 | 29 |
30 TransformAligner::TransformAligner(Document *doc, | 30 TransformAligner::TransformAligner(Document *doc, |
31 ModelId reference, | 31 ModelId reference, |
32 ModelId toAlign) : | 32 ModelId toAlign, |
33 bool withTuningDifference) : | |
33 m_document(doc), | 34 m_document(doc), |
34 m_reference(reference), | 35 m_reference(reference), |
35 m_toAlign(toAlign), | 36 m_toAlign(toAlign), |
37 m_withTuningDifference(withTuningDifference), | |
36 m_tuningFrequency(440.f), | 38 m_tuningFrequency(440.f), |
37 m_incomplete(true) | 39 m_incomplete(true) |
38 { | 40 { |
39 } | 41 } |
40 | 42 |
56 QString | 58 QString |
57 TransformAligner::getAlignmentTransformName() | 59 TransformAligner::getAlignmentTransformName() |
58 { | 60 { |
59 QSettings settings; | 61 QSettings settings; |
60 settings.beginGroup("Alignment"); | 62 settings.beginGroup("Alignment"); |
61 TransformId id = | 63 TransformId id = settings.value |
62 settings.value("transform-id", | 64 ("transform-id", |
63 "vamp:match-vamp-plugin:match:path").toString(); | 65 "vamp:match-vamp-plugin:match:path").toString(); |
64 settings.endGroup(); | 66 settings.endGroup(); |
65 return id; | 67 return id; |
66 } | 68 } |
67 | 69 |
68 QString | 70 QString |
69 TransformAligner::getTuningDifferenceTransformName() | 71 TransformAligner::getTuningDifferenceTransformName() |
70 { | 72 { |
71 QSettings settings; | 73 QSettings settings; |
72 settings.beginGroup("Alignment"); | 74 settings.beginGroup("Alignment"); |
73 bool performPitchCompensation = | 75 TransformId id = settings.value |
74 settings.value("align-pitch-aware", false).toBool(); | 76 ("tuning-difference-transform-id", |
75 QString id = ""; | 77 "vamp:tuning-difference:tuning-difference:tuningfreq") |
76 if (performPitchCompensation) { | 78 .toString(); |
77 id = settings.value | |
78 ("tuning-difference-transform-id", | |
79 "vamp:tuning-difference:tuning-difference:tuningfreq") | |
80 .toString(); | |
81 } | |
82 settings.endGroup(); | 79 settings.endGroup(); |
83 return id; | 80 return id; |
84 } | 81 } |
85 | 82 |
86 bool | 83 bool |
155 | 152 |
156 auto alignmentModel = std::make_shared<AlignmentModel> | 153 auto alignmentModel = std::make_shared<AlignmentModel> |
157 (m_reference, m_toAlign, ModelId()); | 154 (m_reference, m_toAlign, ModelId()); |
158 m_alignmentModel = ModelById::add(alignmentModel); | 155 m_alignmentModel = ModelById::add(alignmentModel); |
159 | 156 |
160 TransformId tdId = getTuningDifferenceTransformName(); | 157 TransformId tdId; |
158 if (m_withTuningDifference) { | |
159 tdId = getTuningDifferenceTransformName(); | |
160 } | |
161 | 161 |
162 if (tdId == "") { | 162 if (tdId == "") { |
163 | 163 |
164 if (beginAlignmentPhase()) { | 164 if (beginAlignmentPhase()) { |
165 other->setAlignment(m_alignmentModel); | 165 other->setAlignment(m_alignmentModel); |