diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index 08174b0b6..89b89801b 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -63,7 +63,7 @@ float FurnaceGUI::computeGradPos(int type, int chan) { return chanOscBright[chan]; break; case GUI_OSCREF_NOTE_TRIGGER: - return keyHit[chan]*5.0f; + return keyHit1[chan]; break; } return 0.0f; diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index d42ec0f88..a2eb9c920 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3548,12 +3548,6 @@ bool FurnaceGUI::loop() { drawEffectList(); } - for (int i=0; igetTotalChannelCount(); i++) { - if (e->keyHit[i]) { - e->keyHit[i]=false; - } - } - if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen); if (firstFrame) { @@ -5462,6 +5456,9 @@ FurnaceGUI::FurnaceGUI(): waveGenFMCon2[0]=true; waveGenFMCon3[0]=true; + memset(keyHit,0,sizeof(float)*DIV_MAX_CHANS); + memset(keyHit1,0,sizeof(float)*DIV_MAX_CHANS); + memset(pianoKeyHit,0,sizeof(float)*180); memset(pianoKeyPressed,0,sizeof(bool)*180); diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index f35f828c0..add285f64 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -477,6 +477,7 @@ void FurnaceGUI::drawPattern() { ImVec4 chanHeadBase=chanHead; if (e->keyHit[i]) { + keyHit1[i]=1.0f; if (settings.channelFeedbackStyle==1) { keyHit[i]=0.2; if (!muted) { @@ -486,6 +487,7 @@ void FurnaceGUI::drawPattern() { } } } + e->keyHit[i]=false; } if (settings.channelFeedbackStyle==2 && e->isRunning()) { float amount=((float)(e->getChanState(i)->volume>>8)/(float)e->getMaxVolumeChan(i)); @@ -699,6 +701,7 @@ void FurnaceGUI::drawPattern() { if (e->keyHit[i]) { keyHit1[i]=1.0f; + e->keyHit[i]=false; } if (e->isRunning()) {