diff options
author | John Glover <j@johnglover.net> | 2012-07-08 18:46:12 +0200 |
---|---|---|
committer | John Glover <j@johnglover.net> | 2012-07-08 18:46:12 +0200 |
commit | 5111f05b930f5d9a0d306bfaaa31a3b1c392d21a (patch) | |
tree | bdc83f1b679302d719654eb51df3704b490d9701 | |
parent | b0fe7d4b4a97fae1ed557e838f0f1634414eb6e9 (diff) | |
download | simpl-5111f05b930f5d9a0d306bfaaa31a3b1c392d21a.tar.gz simpl-5111f05b930f5d9a0d306bfaaa31a3b1c392d21a.tar.bz2 simpl-5111f05b930f5d9a0d306bfaaa31a3b1c392d21a.zip |
[partial_tracking] Bug fix: set SMSAnalysisParams.maxPeaks in constructor, initialise peak arrays to NULL.
-rw-r--r-- | src/simpl/partial_tracking.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/simpl/partial_tracking.cpp b/src/simpl/partial_tracking.cpp index 4c4938c..7932872 100644 --- a/src/simpl/partial_tracking.cpp +++ b/src/simpl/partial_tracking.cpp @@ -93,6 +93,7 @@ SMSPartialTracking::SMSPartialTracking() { _analysis_params.iCleanTracks = 0; _analysis_params.iFormat = SMS_FORMAT_HP; _analysis_params.nTracks = _max_partials; + _analysis_params.maxPeaks = _max_partials; _analysis_params.nGuides = _max_partials; _analysis_params.preEmphasis = 0; sms_initAnalysis(&_analysis_params); @@ -100,6 +101,9 @@ SMSPartialTracking::SMSPartialTracking() { sms_fillHeader(&_header, &_analysis_params); sms_allocFrameH(&_header, &_data); + _peak_amplitude = NULL; + _peak_frequency = NULL;; + _peak_phase = NULL; init_peaks(); } @@ -111,6 +115,10 @@ SMSPartialTracking::~SMSPartialTracking() { delete [] _peak_amplitude; delete [] _peak_frequency; delete [] _peak_phase; + + _peak_amplitude = NULL; + _peak_frequency = NULL;; + _peak_phase = NULL; } void SMSPartialTracking::init_peaks() { @@ -146,6 +154,8 @@ void SMSPartialTracking::max_partials(int new_max_partials) { sms_initAnalysis(&_analysis_params); sms_fillHeader(&_header, &_analysis_params); sms_allocFrameH(&_header, &_data); + + init_peaks(); } Peaks SMSPartialTracking::update_partials(Frame* frame) { @@ -161,7 +171,8 @@ Peaks SMSPartialTracking::update_partials(Frame* frame) { _peak_phase[i] = frame->peak(i)->phase; } - sms_setPeaks(&_analysis_params, _max_partials, _peak_amplitude, + sms_setPeaks(&_analysis_params, + _max_partials, _peak_amplitude, _max_partials, _peak_frequency, _max_partials, _peak_phase); |