Rubberband-related party-stop when touching jogwheel

Bug #1435340 reported by Owen Williams
6
This bug affects 1 person
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: RubberBandStretcher::Impl::writeChunk: resizing resampler buffer from 8192 to 34363
WARNING: RubberBandStretcher::Impl::writeChunk: resizing resampler buffer from 8192 to 34363
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::setOutbufSize and setSizes."

"// 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 readToCrossfadeBuffer was called and rubberband was in some sort of bad state (extremely low rate?)?
* possible race conditions when rapidly enabling / disabling scratch2? the sensor on my jogwheel is very finicky.

otherwise, it is a mystery.

Owen Williams (ywwg)
summary: - party-stop when touching jogwheel
+ Rubberband-related party-stop when touching jogwheel
Revision history for this message
Owen Williams (ywwg) wrote :

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.

Revision history for this message
Owen Williams (ywwg) wrote :
Changed in mixxx:
status: New → In Progress
assignee: nobody → Owen Williams (ywwg)
milestone: none → 1.12.0
Revision history for this message
Owen Williams (ywwg) wrote :

This can still be triggered if the pitch slider is set to a range of 90% -- I'm not sure we should support that range :/

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I can't reproduce the pitch-slider-90% RB issue, and we haven't heard any users reports of this to my knowledge so I'll just leave it as fixed in 2.0.

Changed in mixxx:
status: In Progress → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/7920

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.