80 vector <double> m_maxima;
85 for(
unsigned int u = 0; u < len; u++)
92 for(
int b = 0; b < (int)m_maxima.size(); b++)
94 src[ b ] = m_maxima[ b ];
100 unsigned int maxLength;
102 vector <int> m_maxIndex;
103 vector <int> m_onsetPosition;
105 vector <double> m_maxFit;
106 vector <double> m_poly;
107 vector <double> m_err;
113 for(
int t = -2; t < 3; t++)
115 m_err.push_back( (
double)t );
117 for(
unsigned int i = 2; i < src.size() - 2; i++)
119 if( (src[i] > src[i-1]) && (src[i] > src[i+1]) && (src[i] > 0) )
122 m_maxIndex.push_back(i);
126 maxLength = m_maxIndex.size();
130 for(
unsigned int j = 0; j < maxLength ; j++)
132 for (
int k = -2; k <= 2; ++k)
134 selMax = src[ m_maxIndex[j] + k ] ;
135 m_maxFit.push_back(selMax);
140 double f = m_poly[0];
141 double h = m_poly[2];
143 if (h < -Qfilta || f >
Qfiltc)
145 idx.push_back(m_maxIndex[j]);
int quadEval(vector< double > &src, vector< int > &idx)
DFProcConfig m_DFProcessingParams
void process(double *src, unsigned int len, vector< int > &onsets)
static double PolyFit2(const vector< double > &x, const vector< double > &y, vector< double > &coef)
PeakPicking(PPickParams Config)
void initialise(PPickParams Config)
void process(double *src, double *dst)
DFProcess * m_DFSmoothing