Entropy Piano Tuner
1.1.3 (documentation not yet complete)
An opensource experimental software for piano tuning by entropy minimization

Class for estimating the overpull needed in a pitch raise. More...
#include <overpull.h>
Public Member Functions  
OverpullEstimator ()  
Constructor, resetting the member variables. More...  
~OverpullEstimator ()  
void  init (const Piano *piano) 
Initialize. More...  
double  getOverpull (int keynumber, const Piano *piano) 
Compute the required overpull on the basis of the interaction matrix. More...  
Private Member Functions  
void  computeInteractionMatrix (double averagePull=0.22) 
Compute the interaction matrix between the string. More...  
Private Attributes  
piano::PianoType  mPianoType 
Piano type (upright/grand) More...  
int  mNumberOfKeys 
Total number of keys. More...  
int  mNumberOfBassKeys 
Keys on the bass bridge. More...  
double  mConcertPitch 
Concert pitch (A4) More...  
std::vector< std::vector< float > >  R 
Response matrix. More...  
Class for estimating the overpull needed in a pitch raise.
If a piano is heavily out of tune, one has to perform a pitch raise. The rising string tension increases the load on the soundboard, leading to an elastic deformation of the soundboard. This deformation in turn lowers the pitches. Overpulling means to tune the strings a little bit sharper than intended so that the expected loss during the tuning process is compensated.
The overpull algorithm is implemented in a fully automatic manner. If in the recording mode enough keys are measured (all with a distance less or equal than a fifth), and if the piano is flat (or sharp) by more than 5%, the overpull curve is automatically displayed in magenta color in the tuning window.
The overpull curve decreases during tuning and finally becomes flat and vanishes entirely. That is, for each key the overpull of all other keys is newly calculated.
The instance of the overpull estimator is held by the SignalAnalyzer.
Definition at line 52 of file overpull.h.
OverpullEstimator::OverpullEstimator  (  ) 
Constructor, resetting the member variables.
Definition at line 40 of file overpull.cpp.

inline 
Definition at line 56 of file overpull.h.

private 
Compute the interaction matrix between the string.
The essential data structure that is needed to operate the overpull system is a response matrix R which tells us how many cents the string number k will fall if we increase string number j by one cent. On average the response is proprtional to the parameter averagePull and should be of the order of 22%.
This function contains the full overpull theory
averagePull  : average pull, of the order of 0.22 
Definition at line 90 of file overpull.cpp.
double OverpullEstimator::getOverpull  (  int  keynumber, 
const Piano *  piano  
) 
Compute the required overpull on the basis of the interaction matrix.
This function first checks whether enough red markers have been set. Then it computed the overpull according to these markers.
keynumber  : Number of the key to be tuned 
piano  : Pointer to the piano structure 
Definition at line 245 of file overpull.cpp.
void OverpullEstimator::init  (  const Piano *  piano  ) 
Initialize.
This function initializes the member variables and calls the function computeInteractionMatrix.
piano  : Pointer to the piano structure 
Definition at line 61 of file overpull.cpp.

private 
Concert pitch (A4)
Definition at line 65 of file overpull.h.

private 
Keys on the bass bridge.
Definition at line 64 of file overpull.h.

private 
Total number of keys.
Definition at line 63 of file overpull.h.

private 
Piano type (upright/grand)
Definition at line 62 of file overpull.h.

private 
Response matrix.
Definition at line 66 of file overpull.h.