I've added a test in the Meson build, in a branch called
libatomic-check. I'd appreciate feedback - especially as I haven't actually seen this failure myself!
The test works (if it works) by using the C++ compiler to compile and link the same thing that the actual Rubber Band code uses, namely declaring variables of types
is_lock_freeon each - since that is the symbol that both bug reports had in common.
It turned out the tests failed in any build using resamplers other than the built-in one (see also https://github.com/breakfastquay/rubberband/issues/83 ). However there was a further failure specific to 32-bit builds as well!
Those are now fixed - I hope! - in today's 3.2.1 release.
This is a 32-bit build?
(A 32-bit build should work of course, but that would explain why there might be differences and why I might not have noticed them!)
This is in test in the
performancebranch now (in hg).
OptionWindowShortcuts out all the multi-window processing, using only the single window size already in use for the classification analysis work. So it does more sophisticated analysis than R2 but has comparable processing requirements.
The R3 code has a phase reset across bins happening gradually whenever the stretch factor returns to 1.0. Backport this to R2.