fix: RunningQuality must add ssf, not add beat
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "pd_signal.h"
|
||||
#include <limits>
|
||||
#include <cassert>
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
|
||||
static std::vector<double> make_ones(size_t sw) {
|
||||
@@ -138,19 +139,19 @@ void RunningQuality::append(std::vector<double> &rawBeat, std::vector<double> &r
|
||||
if (beatTemplates.size() == 0) {
|
||||
// cannot correlate the first beat, no template yet
|
||||
std::cerr << "(0) first beat -> addTemplate()" << std::endl;
|
||||
addTemplate(beat);
|
||||
addTemplate(ssf);
|
||||
justLocked = false;
|
||||
} else if (beatTemplates.size() <= 2) {
|
||||
// restart if there is no clear correlation between beats
|
||||
if (goodBeat) {
|
||||
std::cerr << "(2) good initial beat -> addTemplate()" << std::endl;
|
||||
addTemplate(beat);
|
||||
addTemplate(ssf);
|
||||
if (beatTemplates.size() > 2)
|
||||
justLocked = true; // TODO why not set? wrong compiler optimization? (is it unaware of member change?)
|
||||
//std::cerr << " (2) beatTemplates.size()=" << beatTemplates.size() << " justLocked=" << ((int) justLocked) << std::endl;
|
||||
} else {
|
||||
std::cerr << "(2) bad initial beat -> replaceTemplate()" << std::endl;
|
||||
replaceTemplate(beat);
|
||||
std::cerr << "(2) bad initial beat idx=" << idx << " -> replaceTemplate() corr=" << std::fixed << std::setw(7) << std::setprecision(4) << corr << " checkedSsf=" << checkedSsf << std::endl;
|
||||
replaceTemplate(ssf);
|
||||
//badBeatRanges.clear();
|
||||
justLocked = false;
|
||||
}
|
||||
@@ -159,7 +160,7 @@ void RunningQuality::append(std::vector<double> &rawBeat, std::vector<double> &r
|
||||
|
||||
std::cerr << "(3) running mode, good=" << ((int) goodBeat) << " justLocked=" << ((int) justLocked) << std::endl;
|
||||
if (goodBeat) {
|
||||
addTemplate(beat);
|
||||
addTemplate(ssf);
|
||||
} else {
|
||||
// badBeatRanges.add(s, e)
|
||||
// numNoisy++
|
||||
|
||||
Reference in New Issue
Block a user