Mercurial > hg > svapp
comparison align/Align.cpp @ 768:1b1960009be6 pitch-align
Provide callback for output preprocessing before DTW, use it for freq-pitch conversion; use direct setting of completion on alignment models instead of creating fake outputs for completion only
author | Chris Cannam |
---|---|
date | Fri, 22 May 2020 17:17:44 +0100 |
parents | dd742e566e60 |
children | 1d6cca5a5621 |
comparison
equal
deleted
inserted
replaced
767:dd742e566e60 | 768:1b1960009be6 |
---|---|
21 | 21 |
22 #include "framework/Document.h" | 22 #include "framework/Document.h" |
23 | 23 |
24 #include "transform/Transform.h" | 24 #include "transform/Transform.h" |
25 #include "transform/TransformFactory.h" | 25 #include "transform/TransformFactory.h" |
26 | |
27 #include "base/Pitch.h" | |
26 | 28 |
27 #include <QSettings> | 29 #include <QSettings> |
28 #include <QTimer> | 30 #include <QTimer> |
29 | 31 |
30 using std::make_shared; | 32 using std::make_shared; |
149 aligner = make_shared<TransformDTWAligner> | 151 aligner = make_shared<TransformDTWAligner> |
150 (doc, | 152 (doc, |
151 reference, | 153 reference, |
152 toAlign, | 154 toAlign, |
153 transform, | 155 transform, |
154 TransformDTWAligner::RiseFall); | 156 TransformDTWAligner::RiseFall, |
157 [](double freq) { | |
158 if (freq < 0.0) { | |
159 return 0.0; | |
160 } else { | |
161 return double(Pitch::getPitchForFrequency(freq)); | |
162 } | |
163 }); | |
155 break; | 164 break; |
156 } | 165 } |
157 | 166 |
158 case TransformDrivenDTWAlignment: | 167 case TransformDrivenDTWAlignment: |
159 throw std::logic_error("Not yet implemented"); //!!! | 168 throw std::logic_error("Not yet implemented"); //!!! |