Rubberband-related party-stop when touching jogwheel
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
High
|
Owen Williams |
Bug Description
I played a mix for about 45 minutes and toward the end, put my hand on the jog wheel to initiate scratch mode. I didn't move it much At that point sound output of the other, currently-playing deck ceased and the waveform zoomed ahead (usually happens when the scaler dies) and the current deck didn't work at all. Exiting Mixxx failed. The following lines were in the console output:
WARNING: reconfigure(): window allocation (size 8192) required in RT mode
WARNING: RubberBandStret
WARNING: RubberBandStret
WARNING: reconfigure(): window allocation (size 16777216) required in RT mode
This is odd because I didn't think I was using keylock or key adjustment at all. There is a chance that I touched the key adjustment knob, however. The comments surrounding these warnings indicate unusual behavior:
"// There are various allocations in this function, but they should
// never happen in normal use -- they just recover from the case
// where not all of the things we need were correctly created when
// we first configured (for whatever reason). This is intended to
// be "effectively" realtime safe. The same goes for
// ChannelData:
"// This shouldn't normally happen -- the buffer is
// supposed to be initialised with enough space in the
// first place. But we retain this check in case the
// pitch scale has changed since then, or the stretch
// calculator has gone mad, or something."
I have briefly tried to reproduce the failure without success. I'm starting to think we shouldn't turn on RubberBand by default, I've had a lot of problems with it taking tons of CPU and causing dropouts, and now this party-stopper.
I have a couple theories for this:
* perhaps readToCrossfade
* possible race conditions when rapidly enabling / disabling scratch2? the sensor on my jogwheel is very finicky.
otherwise, it is a mystery.
summary: |
- party-stop when touching jogwheel + Rubberband-related party-stop when touching jogwheel |
phew, I'm able to reproduce. This seems to be caused by rubberband being asked to play at an extremely slow speed, and it doesn't like that at all.