annotate align/TransformAligner.h @ 771:1d6cca5a5621 pitch-align

Allow use of proper sparse models (i.e. retaining event time info) in alignment; use this to switch to note alignment, which is what we have most recently been doing in the external program. Not currently producing correct results, though
author Chris Cannam
date Fri, 29 May 2020 17:39:02 +0100
parents 1b1960009be6
children
rev   line source
Chris@752 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@752 2
Chris@752 3 /*
Chris@752 4 Sonic Visualiser
Chris@752 5 An audio file viewer and annotation editor.
Chris@752 6 Centre for Digital Music, Queen Mary, University of London.
Chris@752 7
Chris@752 8 This program is free software; you can redistribute it and/or
Chris@752 9 modify it under the terms of the GNU General Public License as
Chris@752 10 published by the Free Software Foundation; either version 2 of the
Chris@752 11 License, or (at your option) any later version. See the file
Chris@752 12 COPYING included with this distribution for more information.
Chris@752 13 */
Chris@752 14
Chris@752 15 #ifndef SV_TRANSFORM_ALIGNER_H
Chris@752 16 #define SV_TRANSFORM_ALIGNER_H
Chris@752 17
Chris@753 18 #include "Aligner.h"
Chris@752 19
Chris@752 20 class AlignmentModel;
Chris@752 21 class Document;
Chris@752 22
Chris@753 23 class TransformAligner : public Aligner
Chris@752 24 {
Chris@752 25 Q_OBJECT
Chris@752 26
Chris@752 27 public:
Chris@752 28 TransformAligner(Document *doc,
Chris@752 29 ModelId reference,
Chris@767 30 ModelId toAlign,
Chris@767 31 bool withTuningDifference);
Chris@767 32
Chris@767 33 //!!! pass in transform id
Chris@752 34
Chris@752 35 // Destroy the aligner, cleanly cancelling any ongoing alignment
Chris@752 36 ~TransformAligner();
Chris@752 37
Chris@761 38 void begin() override;
Chris@752 39
Chris@752 40 static bool isAvailable();
Chris@752 41
Chris@752 42 private slots:
Chris@752 43 void alignmentCompletionChanged(ModelId);
Chris@752 44 void tuningDifferenceCompletionChanged(ModelId);
Chris@752 45
Chris@752 46 private:
Chris@752 47 static QString getAlignmentTransformName();
Chris@752 48 static QString getTuningDifferenceTransformName();
Chris@752 49
Chris@752 50 bool beginAlignmentPhase();
Chris@752 51
Chris@752 52 Document *m_document;
Chris@752 53 ModelId m_reference;
Chris@752 54 ModelId m_toAlign;
Chris@752 55 ModelId m_aggregateModel; // an AggregateWaveModel
Chris@752 56 ModelId m_alignmentModel; // an AlignmentModel
Chris@752 57 ModelId m_tuningDiffOutputModel; // SparseTimeValueModel, unreg'd with doc
Chris@752 58 ModelId m_pathOutputModel; // SparseTimeValueModel, unreg'd with doc
Chris@767 59 bool m_withTuningDifference;
Chris@752 60 float m_tuningFrequency;
Chris@752 61 bool m_incomplete;
Chris@752 62 };
Chris@752 63
Chris@752 64 #endif