Mercurial > hg > qm-dsp
diff dsp/onsets/PeakPicking.cpp @ 505:930b5b0f707d
Merge branch 'codestyle-and-tidy'
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Wed, 05 Jun 2019 12:55:15 +0100 |
parents | af5b7ef02aa7 |
children |
line wrap: on
line diff
--- a/dsp/onsets/PeakPicking.cpp Thu May 30 16:18:13 2019 +0100 +++ b/dsp/onsets/PeakPicking.cpp Wed Jun 05 12:55:15 2019 +0100 @@ -49,7 +49,7 @@ Qfilta = Config.QuadThresh.a ; Qfiltb = Config.QuadThresh.b ; Qfiltc = Config.QuadThresh.c ; - + m_DFProcessingParams.length = m_DFLength; m_DFProcessingParams.LPOrd = Config.LPOrd; m_DFProcessingParams.LPACoeffs = Config.LPACoeffs; @@ -73,35 +73,33 @@ m_workBuffer = NULL; } -void PeakPicking::process( double* src, unsigned int len, vector<int> &onsets ) +void PeakPicking::process( double* src, int len, vector<int> &onsets ) { if (len < 4) return; - vector <double> m_maxima; + vector <double> m_maxima; // Signal conditioning m_DFSmoothing->process( src, m_workBuffer ); - - for( unsigned int u = 0; u < len; u++) - { - m_maxima.push_back( m_workBuffer[ u ] ); + + for (int i = 0; i < len; i++) { + m_maxima.push_back( m_workBuffer[ i ] ); } - + quadEval( m_maxima, onsets ); - for( int b = 0; b < (int)m_maxima.size(); b++) - { - src[ b ] = m_maxima[ b ]; + for( int b = 0; b < (int)m_maxima.size(); b++) { + src[ b ] = m_maxima[ b ]; } } int PeakPicking::quadEval( vector<double> &src, vector<int> &idx ) { - unsigned int maxLength; + int maxLength; vector <int> m_maxIndex; vector <int> m_onsetPosition; - + vector <double> m_maxFit; vector <double> m_poly; vector <double> m_err; @@ -110,42 +108,36 @@ m_poly.push_back(0); m_poly.push_back(0); - for( int t = -2; t < 3; t++) - { - m_err.push_back( (double)t ); - } - for( unsigned int i = 2; i < src.size() - 2; i++) - { - if( (src[i] > src[i-1]) && (src[i] > src[i+1]) && (src[i] > 0) ) - { -// m_maxIndex.push_back( i + 1 ); - m_maxIndex.push_back(i); - } + for (int t = -2; t < 3; t++) { + m_err.push_back( (double)t ); } - maxLength = m_maxIndex.size(); + for (int i = 2; i < int(src.size()) - 2; i++) { + if ((src[i] > src[i-1]) && (src[i] > src[i+1]) && (src[i] > 0) ) { + m_maxIndex.push_back(i); + } + } + + maxLength = int(m_maxIndex.size()); double selMax = 0; - for( unsigned int j = 0; j < maxLength ; j++) - { - for (int k = -2; k <= 2; ++k) - { - selMax = src[ m_maxIndex[j] + k ] ; - m_maxFit.push_back(selMax); - } + for (int j = 0; j < maxLength ; j++) { + for (int k = -2; k <= 2; ++k) { + selMax = src[ m_maxIndex[j] + k ] ; + m_maxFit.push_back(selMax); + } - TPolyFit::PolyFit2(m_err, m_maxFit, m_poly); + TPolyFit::PolyFit2(m_err, m_maxFit, m_poly); - double f = m_poly[0]; - double h = m_poly[2]; + double f = m_poly[0]; + double h = m_poly[2]; - if (h < -Qfilta || f > Qfiltc) - { - idx.push_back(m_maxIndex[j]); - } - - m_maxFit.clear(); + if (h < -Qfilta || f > Qfiltc) { + idx.push_back(m_maxIndex[j]); + } + + m_maxFit.clear(); } return 1;