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);