fix absorb instrument bug: octave set to -1 when most recent 'note' was OFF/REL/===

This commit is contained in:
Adam Lederer 2024-08-29 23:28:22 -07:00 committed by tildearrow
parent 08143a54ae
commit aeee6260ae

View file

@ -1846,8 +1846,11 @@ void FurnaceGUI::doAbsorbInstrument() {
} }
// absorb most recent octave (i.e. set curOctave such that the "main row" (QWERTY) of // absorb most recent octave (i.e. set curOctave such that the "main row" (QWERTY) of
// notes will result in an octave number equal to the previous note). // notes will result in an octave number equal to the previous note). make sure to
if (!foundOctave && pat->data[i][0] != 0) { // skip "special note values" like OFF/REL/=== and "none", since there won't be valid
// octave values
unsigned char note=pat->data[i][0];
if (!foundOctave && note!=0 && note!=100 && note!=101 && note!=102) {
foundOctave=true; foundOctave=true;
// decode octave data (was signed cast to unsigned char) // decode octave data (was signed cast to unsigned char)