From 5fe661e9a34e4aa3069abfa11f12ec5e9a34beda Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 15 Aug 2022 22:40:04 -0500 Subject: [PATCH] allow rates down to 1Hz --- src/engine/playback.cpp | 6 +++--- src/gui/songInfo.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 3ba4f1417..3dbc6b5fb 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -604,7 +604,7 @@ void DivEngine::processRow(int i, bool afterDelay) { break; case 0xc0: case 0xc1: case 0xc2: case 0xc3: // set Hz divider=(double)(((effect&0x3)<<8)|effectVal); - if (divider<10) divider=10; + if (divider<1) divider=1; cycles=got.rate*pow(2,MASTER_CLOCK_PREC)/divider; clockDrift=0; subticks=0; @@ -695,7 +695,7 @@ void DivEngine::processRow(int i, bool afterDelay) { break; case 0xf0: // set Hz by tempo divider=(double)effectVal*2.0/5.0; - if (divider<10) divider=10; + if (divider<1) divider=1; cycles=got.rate*pow(2,MASTER_CLOCK_PREC)/divider; clockDrift=0; subticks=0; @@ -959,7 +959,7 @@ void DivEngine::nextRow() { bool DivEngine::nextTick(bool noAccum, bool inhibitLowLat) { bool ret=false; - if (divider<10) divider=10; + if (divider<1) divider=1; if (lowLatency && !skipping && !inhibitLowLat) { tickMult=1000/divider; diff --git a/src/gui/songInfo.cpp b/src/gui/songInfo.cpp index 7f7e026ed..44982abaf 100644 --- a/src/gui/songInfo.cpp +++ b/src/gui/songInfo.cpp @@ -195,7 +195,7 @@ void FurnaceGUI::drawSongInfo() { float setHz=tempoView?e->curSubSong->hz*2.5:e->curSubSong->hz; if (ImGui::InputFloat("##Rate",&setHz,1.0f,1.0f,"%g")) { MARK_MODIFIED if (tempoView) setHz/=2.5; - if (setHz<10) setHz=10; + if (setHz<1) setHz=1; if (setHz>999) setHz=999; e->setSongRate(setHz,setHz<52); }