annotate align/Aligner.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 a316cb6fed81
children
rev   line source
Chris@753 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@753 2
Chris@753 3 /*
Chris@753 4 Sonic Visualiser
Chris@753 5 An audio file viewer and annotation editor.
Chris@753 6 Centre for Digital Music, Queen Mary, University of London.
Chris@753 7
Chris@753 8 This program is free software; you can redistribute it and/or
Chris@753 9 modify it under the terms of the GNU General Public License as
Chris@753 10 published by the Free Software Foundation; either version 2 of the
Chris@753 11 License, or (at your option) any later version. See the file
Chris@753 12 COPYING included with this distribution for more information.
Chris@753 13 */
Chris@753 14
Chris@753 15 #ifndef SV_ALIGNER_H
Chris@753 16 #define SV_ALIGNER_H
Chris@753 17
Chris@753 18 #include <QString>
Chris@753 19
Chris@753 20 #include "data/model/Model.h"
Chris@753 21
Chris@753 22 class Aligner : public QObject
Chris@753 23 {
Chris@753 24 Q_OBJECT
Chris@753 25
Chris@753 26 public:
Chris@753 27 virtual ~Aligner() { }
Chris@753 28
Chris@761 29 public slots:
Chris@761 30 virtual void begin() = 0;
Chris@753 31
Chris@753 32 signals:
Chris@753 33 /**
Chris@753 34 * Emitted when alignment is successfully completed. The reference
Chris@769 35 * and toAlign models can be queried from the alignment
Chris@769 36 * model. This should be emitted as the last thing the aligner
Chris@769 37 * does, as the recipient may delete the aligner during the call.
Chris@753 38 */
Chris@753 39 void complete(ModelId alignmentModel); // an AlignmentModel
Chris@761 40
Chris@761 41 /**
Chris@769 42 * Emitted when alignment fails. This should be emitted as the
Chris@769 43 * last thing the aligner does, as the recipient may delete the
Chris@769 44 * aligner during the call.
Chris@761 45 */
Chris@761 46 void failed(ModelId toAlign, QString errorText); // the toAlign model
Chris@753 47 };
Chris@753 48
Chris@753 49 #endif