diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 7e7237e6e..bb1218e79 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3985,7 +3985,13 @@ bool FurnaceGUI::loop() { if (introMonOpen) { int totalTicks=e->getTotalTicks(); int totalSeconds=e->getTotalSeconds(); - drawIntro(totalSeconds+((double)totalTicks/1000000.0),true); + double newMonitorPos=totalSeconds+((double)totalTicks/1000000.0); + + if (fabs(newMonitorPos-monitorPos)>0.08) monitorPos=newMonitorPos; + + drawIntro(monitorPos,true); + + if (e->isPlaying()) monitorPos+=ImGui::GetIO().DeltaTime; } drawSampleList(); drawSampleEdit(); @@ -6268,6 +6274,7 @@ FurnaceGUI::FurnaceGUI(): waveGenFM(false), introPos(0.0), introSkip(0.0), + monitorPos(0.0), mustClear(2), initialScreenWipe(1.0f), introSkipDo(false), diff --git a/src/gui/gui.h b/src/gui/gui.h index 04120330f..9d5364456 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1838,6 +1838,7 @@ class FurnaceGUI { // intro double introPos; double introSkip; + double monitorPos; int mustClear; float initialScreenWipe; bool introSkipDo, teWarn;