use a note tracker to resolve notes cut off during render by the end of the region
[ardour.git] / libs / vamp-pyin / MonoNoteHMM.h
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
2
3 /*
4     pYIN - A fundamental frequency estimator for monophonic audio
5     Centre for Digital Music, Queen Mary, University of London.
6
7     This program is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License as
9     published by the Free Software Foundation; either version 2 of the
10     License, or (at your option) any later version.  See the file
11     COPYING included with this distribution for more information.
12 */
13
14 #ifndef _MONONOTEHMM_H_
15 #define _MONONOTEHMM_H_
16
17 #include "MonoNoteParameters.h"
18 #include "SparseHMM.h"
19
20 #include <boost/math/distributions.hpp>
21
22 #include <vector>
23 #include <cstdio>
24
25 using std::vector;
26
27 class MonoNoteHMM : public SparseHMM
28 {
29 public:
30     MonoNoteHMM();
31     const std::vector<double> calculateObsProb(const vector<pair<double, double> >);
32     double getMidiPitch(size_t index);
33     double getFrequency(size_t index);
34     void build();
35     MonoNoteParameters par;
36     vector<boost::math::normal> pitchDistr;
37 };
38
39 #endif