This makes the test more robust by:
1. Decreasing the '1' threshold during calibration - the RMS value for
the sine wave will be 0.5, so the previous code was making us take
the ALSA mixer past 0dB.
2. Using the difference rather than absolute value for 0->1 transitions,
so that we're somewhat independent noise in our calculations.
* straddle the 0->1 transition, raising the average power. We keep the
* definition of 1 tight in this case and detect the transition in the
* next round. */
- if (last < 0.5f && cur > 0.8f) {
+ if (cur - last > 0.4f) {
pa_gettimeofday(&tv_in);
fprintf(stderr, "Latency %llu\n", (unsigned long long) pa_timeval_diff(&tv_in, &tv_out));
}
switch (cal_state) {
case CALIBRATION_ONE:
- /* Try to detect the sine wave */
- if (rms(in, nsamp) < 0.8f) {
+ /* Try to detect the sine wave. RMS is 0.5, */
+ if (rms(in, nsamp) < 0.40f) {
confirm = 0;
v += 0.02f;