Entropy Piano Tuner  1.1.3 (documentation not yet complete)
An open-source experimental software for piano tuning by entropy minimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
pitchraise.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright 2015 Haye Hinrichsen, Christoph Wick
3  *
4  * This file is part of Entropy Piano Tuner.
5  *
6  * Entropy Piano Tuner is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by the
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * Entropy Piano Tuner is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * Entropy Piano Tuner. If not, see http://www.gnu.org/licenses/.
18  *****************************************************************************/
19 
20 //=============================================================================
21 // Pitch raise algorithm
22 //=============================================================================
23 
24 #ifndef PITCHRAISE_H
25 #define PITCHRAISE_H
26 
28 
29 // each algorithm has to be in its own namespace to prevent naming conflits
30 namespace pitchraise
31 {
32 
38 
39 class PitchRaise : public Algorithm
40 {
41 public:
42  // constructor to copy the original piano
43  PitchRaise(const Piano &piano, const AlgorithmFactoryDescription &description);
44 
45 protected:
46  // the implementation of the worker function (sole required function)
47  virtual void algorithmWorkerFunction() override final;
48 
49 private:
50  void updateTuningcurve (int keynumber);
51  void updateTuningcurve ();
52  std::vector<double> mPitch;
53 };
54 
55 } // namespace pitchraise
56 
57 
58 #endif // PITCHRAISE_H
PitchRaise(const Piano &piano, const AlgorithmFactoryDescription &description)
Constructor of the pitch-raise algorithm.
Definition: pitchraise.cpp:53
void updateTuningcurve()
Update the entire tuning curve.
Definition: pitchraise.cpp:89
virtual void algorithmWorkerFunction() overridefinal
PitchRaise::algorithmWorkerFunction.
Definition: pitchraise.cpp:116
Definition: piano.h:40
std::vector< double > mPitch
Definition: pitchraise.h:52
Basic class to show how to implement own algorithms.
Definition: pitchraise.h:39
The Algorithm class is a basic abstract class for any algorithm.
Definition: algorithm.h:38