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"); //!!!