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
tuningindicatordrawer.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 // Tuning indicator
22 //=============================================================================
23 
24 #ifndef TUNINGINDICATORDRAWER_H
25 #define TUNINGINDICATORDRAWER_H
26 
27 #include "drawerbase.h"
28 #include "../messages/messagelistener.h"
29 #include "../analyzers/signalanalyzer.h"
30 
43 
45 {
46 public:
49 
51 
52 protected:
53  virtual void draw() override final;
54  virtual void clear() override final;
55  virtual void handleMessage(MessagePtr m) override;
56 
57 private:
58  const Piano *mPiano;
63 
66 
67  using ComplexVector = std::vector<std::complex<double>>;
69 };
70 
71 #endif // TUNINGINDICATORDRAWER_H
virtual void clear() overridefinal
Clear the shared pointer to the FFT.
std::shared_ptr< Message > MessagePtr
Global type of a shared message pointer.
Definition: message.h:98
OperationMode
Operation mode of the tuner.
Definition: prerequisites.h:66
void toggleSpectralAndStroboscopeMode()
Toggle between spectral and stroboscopic operation mode.
Drawer for the tuning indicator.
virtual void draw() overridefinal
Main drawing function.
const Piano * mPiano
Pointer to the piano.
Definition: piano.h:40
int mRecognizedKey
Number of recognized key, -1 if none.
int mSelectedKey
Number of selected key, -1 if none.
FrequencyDetectionResult mFrequencyDetectionResult
Copy of frequency detection result.
ComplexVector mDataVector
Data vector holding complex phases for stroboscope.
Abstract base class for implementations rendering graphics.
TuningIndicatorDrawer(GraphicsViewAdapter *graphics)
virtual void handleMessage(MessagePtr m) override
Message listener.
std::vector< std::complex< double >> ComplexVector
FFTDataPointer mFFTData
Pointer to the Fourier transform data.
std::shared_ptr< FFTData > FFTDataPointer
Shared pointer of FFTData.
Definition: fftadapter.h:86
std::shared_ptr< FrequencyDetectionResultStruct > FrequencyDetectionResult
Abstract base class for drawing 2d graphics.
Definition: drawerbase.h:40
OperationMode mOperationMode
Current operation mode of the EPT.
int mNumberOfKeys
Total number of keys.