* Set mean_responsiveness to 0.
* Decrease default edge strength from 2.0 to 1.0. 2.0 seems to cause
waves to lose track too often (but the optimum value varies by song).
* Increase default slope width to 0.25 period. It seems to work better
in general. You can adjust it on a case-by-case basis though.
The default value when loading older files missing the key has also
changed to 0.25, since slope width is now necessary for triggering
instead of being added to edge triggering in special cases.
* Set default "Reset Below Match" to 0.3. This level is harmless but not
very useful (besides clearing the buffer upon silence, like all
nonzero values). The optimal value varies wildly by song and "Buffer
Responsiveness".
Previously we got triggering errors where instead of edge triggering
scores being decided by the waveform around the trigger point, it was
influenced by distant parts of the waveform moving across the wide
sloped portion of the edge detector kernel.
This commit replaces the edge kernel with a running sum, which acts like
an infinitely wide step kernel that the input data slides *within*. As a
result, the difference between the edge scores of two trigger points is
solely determined by the data between those points. (The step kernel and
history buffer are unaffected and still slide within the data.)
This makes triggering less likely to fail. However the global scoring
system sometimes prioritizes bad edges in good regions of the document.
This will be reexamined later.
This makes triggering faster, and 60 ms is hopefully unnecessary with
deterministic triggering. You'll still need to increase trigger_ms or
the per-channel trigger width multiplier for low bass below 50 Hz.
This fixes triggering errors where the edge of the allowed range has
higher correlation than edges in-bounds, but isn't a rising edge itself
(a local maximum of alignment).
The data read from the input _wave (length A+B+_trigger_diameter) is
longer than the correlation buffer (length A+B), to ensure that when
sliding the buffer across the wave, no edge effects are encountered.
This is inspired by overlap-save convolution, but adapted to
cross-correlation.