GUI: fix when using groove

This commit is contained in:
tildearrow 2025-03-11 04:15:14 -05:00
parent ad8d1b5060
commit 1642646899
3 changed files with 5 additions and 2 deletions

View file

@ -1740,6 +1740,7 @@ void DivEngine::playSub(bool preserveDrift, int goalRow) {
subticks=1;
prevOrder=curOrder;
prevRow=curRow;
prevSpeed=nextSpeed;
tempoAccum=0;
}
skipping=false;
@ -2398,7 +2399,7 @@ void DivEngine::getPlayPosTick(int& order, int& row, int& tick, int& speed) {
order=prevOrder;
row=prevRow;
tick=ticks;
speed=nextSpeed;
speed=prevSpeed;
playPosLock.unlock();
}

View file

@ -475,7 +475,7 @@ class DivEngine {
int midiOutTimeRate;
float midiVolExp;
int softLockCount;
int subticks, ticks, curRow, curOrder, prevRow, prevOrder, remainingLoops, totalLoops, lastLoopPos, exportLoopCount, curExportChan, nextSpeed, elapsedBars, elapsedBeats, curSpeed;
int subticks, ticks, curRow, curOrder, prevRow, prevOrder, remainingLoops, totalLoops, lastLoopPos, exportLoopCount, curExportChan, nextSpeed, prevSpeed, elapsedBars, elapsedBeats, curSpeed;
size_t curSubSongIndex;
size_t bufferPos;
double divider;
@ -1439,6 +1439,7 @@ class DivEngine {
exportLoopCount(0),
curExportChan(0),
nextSpeed(3),
prevSpeed(6),
elapsedBars(0),
elapsedBeats(0),
curSpeed(0),

View file

@ -1438,6 +1438,7 @@ void DivEngine::nextRow() {
memset(walked,0,8192);
}
prevSpeed=nextSpeed;
if (song.brokenSpeedSel) {
unsigned char speed2=(speeds.len>=2)?speeds.val[1]:speeds.val[0];
unsigned char speed1=speeds.val[0];