diff --git a/src/engine/controls/loopingcontrol.cpp b/src/engine/controls/loopingcontrol.cpp index 3213f58de3fd..9b98ffe65af2 100644 --- a/src/engine/controls/loopingcontrol.cpp +++ b/src/engine/controls/loopingcontrol.cpp @@ -703,8 +703,14 @@ void LoopingControl::setLoop(mixxx::audio::FramePos startPosition, } // Don't allow loop size widget setting to trigger creation of another loop. + double loaded_loop_size = findBeatloopSizeForLoop(startPosition, endPosition); + if (loaded_loop_size == -1) { + // Loop size doesn't match any of the pre-defined sizes, + // keep the current size + return; + } m_pCOBeatLoopSize->blockSignals(true); - m_pCOBeatLoopSize->setAndConfirm(findBeatloopSizeForLoop(startPosition, endPosition)); + m_pCOBeatLoopSize->setAndConfirm(loaded_loop_size); m_pCOBeatLoopSize->blockSignals(false); }