From 94bc7ae34373ac828a10d75c06d2d652a28aab5c Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Sat, 15 Jun 2024 11:49:40 -0400 Subject: Mono Synth mode: Don't switch notes when you release unheld note --- HexBoard.ino | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/HexBoard.ino b/HexBoard.ino index ee7a6b9..5ba3893 100644 --- a/HexBoard.ino +++ b/HexBoard.ino @@ -1812,6 +1812,7 @@ return n; } void replaceMonoSynthWith(byte x) { + if (arpeggiatingNow == x) return; h[arpeggiatingNow].synthCh = 0; arpeggiatingNow = x; if (arpeggiatingNow != UNUSED_NOTE) { @@ -1879,7 +1880,9 @@ void trySynthNoteOff(byte x) { if (playbackMode && (playbackMode != SYNTH_POLY)) { - replaceMonoSynthWith(findNextHeldNote()); + if (arpeggiatingNow == x) { + replaceMonoSynthWith(findNextHeldNote()); + } } if (playbackMode == SYNTH_POLY) { if (h[x].synthCh) { @@ -1909,10 +1912,7 @@ if (playbackMode == SYNTH_ARPEGGIO) { if (runTime - arpeggiateTime > arpeggiateLength) { arpeggiateTime = runTime; - byte x = findNextHeldNote(); - if (x != arpeggiatingNow) { - replaceMonoSynthWith(x); - } + replaceMonoSynthWith(findNextHeldNote()); } } } -- cgit 1.4.1