comparison align/MATCHAligner.h @ 778:83a7b10b7415

Merge from branch pitch-align
author Chris Cannam
date Fri, 26 Jun 2020 13:48:52 +0100
parents 87d33e79855b
children b651dc5ff555
comparison
equal deleted inserted replaced
774:7bded7599874 778:83a7b10b7415
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3 /*
4 Sonic Visualiser
5 An audio file viewer and annotation editor.
6 Centre for Digital Music, Queen Mary, University of London.
7
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2 of the
11 License, or (at your option) any later version. See the file
12 COPYING included with this distribution for more information.
13 */
14
15 #ifndef SV_MATCH_ALIGNER_H
16 #define SV_MATCH_ALIGNER_H
17
18 #include "Aligner.h"
19
20 class AlignmentModel;
21 class Document;
22
23 class MATCHAligner : public Aligner
24 {
25 Q_OBJECT
26
27 public:
28 MATCHAligner(Document *doc,
29 ModelId reference,
30 ModelId toAlign,
31 bool withTuningDifference);
32
33 // Destroy the aligner, cleanly cancelling any ongoing alignment
34 ~MATCHAligner();
35
36 void begin() override;
37
38 static bool isAvailable();
39
40 private slots:
41 void alignmentCompletionChanged(ModelId);
42 void tuningDifferenceCompletionChanged(ModelId);
43
44 private:
45 static QString getAlignmentTransformName();
46 static QString getTuningDifferenceTransformName();
47
48 bool beginAlignmentPhase();
49
50 Document *m_document;
51 ModelId m_reference;
52 ModelId m_toAlign;
53 ModelId m_aggregateModel; // an AggregateWaveModel
54 ModelId m_alignmentModel; // an AlignmentModel
55 ModelId m_tuningDiffOutputModel; // SparseTimeValueModel, unreg'd with doc
56 ModelId m_pathOutputModel; // SparseTimeValueModel, unreg'd with doc
57 bool m_withTuningDifference;
58 float m_tuningFrequency;
59 bool m_incomplete;
60 };
61
62 #endif