replay keyOn in active channels during forceIns

fixes an issue when playing orders
This commit is contained in:
tildearrow 2022-02-20 21:39:14 -05:00
parent 197d3ab39d
commit e697c055b6
7 changed files with 54 additions and 0 deletions

View file

@ -258,11 +258,13 @@ int DivPlatformC64::dispatch(DivCommand c) {
case DIV_CMD_NOTE_OFF:
chan[c.chan].active=false;
chan[c.chan].keyOff=true;
chan[c.chan].keyOn=false;
//chan[c.chan].std.init(NULL);
break;
case DIV_CMD_NOTE_OFF_ENV:
chan[c.chan].active=false;
chan[c.chan].keyOff=true;
chan[c.chan].keyOn=false;
chan[c.chan].std.release();
break;
case DIV_CMD_ENV_RELEASE:
@ -439,6 +441,10 @@ void DivPlatformC64::forceIns() {
for (int i=0; i<3; i++) {
chan[i].insChanged=true;
chan[i].testWhen=0;
if (chan[i].active) {
chan[i].keyOn=true;
chan[i].freqChanged=true;
}
}
updateFilter();
}