More reporting

This commit is contained in:
Chris Cannam
2024-07-05 15:39:01 +01:00
parent 22c606db6f
commit 666b5e43b5

View File

@@ -201,6 +201,37 @@ static void check_sinusoid_shifted(int n, int rate, float freq, float shift,
int reportedDelay = shifter.getStartDelay(); int reportedDelay = shifter.getStartDelay();
int lastCrossing = -1;
int nCrossings = 0;
int accWavelength = 0;
int minWavelength = 0;
int maxWavelength = 0;
for (int i = reportedDelay; i < endpoint; ++i) {
if (out[i-1] < 0.f && out[i] >= 0.f) {
if (lastCrossing >= 0) {
int wavelength = i - lastCrossing;
accWavelength += wavelength;
if (minWavelength == 0 || wavelength < minWavelength) {
minWavelength = wavelength;
}
if (maxWavelength == 0 || wavelength > maxWavelength) {
maxWavelength = wavelength;
}
cerr << wavelength << " ";
nCrossings ++;
}
lastCrossing = i;
}
}
cerr << endl;
int avgWavelength = 1;
if (nCrossings > 0) {
avgWavelength = accWavelength / nCrossings;
}
double detectedFreq = double(rate) / double(avgWavelength);
cerr << "nCrossings = " << nCrossings << ", minWavelength = " << minWavelength << ", maxWavelength = " << maxWavelength << ", avgWavelength = " << avgWavelength << ", detectedFreq = " << detectedFreq << " (expected " << freq * shift << ")" << endl;
int slackpart = 2048; int slackpart = 2048;
int delay = reportedDelay + slackpart; int delay = reportedDelay + slackpart;
@@ -208,6 +239,7 @@ static void check_sinusoid_shifted(int n, int rate, float freq, float shift,
for (int i = delay; i < endpoint; ++i) { for (int i = delay; i < endpoint; ++i) {
if (out[i] < 0.f && out[i+1] >= 0.f) { if (out[i] < 0.f && out[i+1] >= 0.f) {
cerr << "zc: at " << i << " we have " << out[i] << ", " << out[i+1] << endl;
delay = i+1; delay = i+1;
break; break;
} }