double filter(double x)
{
static double l = 0.0;
- l = 0.01 * x + 0.99 * l;
+ l = 0.001 * x + 0.999 * l;
return l;
}
short prev_sample, sample = 0;
int in_pos = -1;
- double p = -1.0;
- double speed = 1.0;
+ double p = 0.0;
+ double speed = 1.001;
while (!feof(in1) && !feof(in2)) {
short refs;
// subtract the two samples and pull it through a filter. we assume
// the sines are normalized for now (and that there's no dc skew)
double offset = filter(intp_sample - refs);
- speed -= 0.00000001 * offset;
+ speed += 1e-8 * offset;
fwrite(&speed, sizeof(double), 1, skew);
- printf("%f (offset=%f)\n", speed, intp_sample - sample);
+ printf("%f (offset=%f / filt=%f)\n", speed, intp_sample - refs, offset);
}
}