fix retrigger implementation

no longer broken
This commit is contained in:
tildearrow 2022-01-19 00:01:34 -05:00
parent 1642f29df8
commit e87239f8ce
19 changed files with 105 additions and 54 deletions

View file

@ -223,9 +223,11 @@ int DivPlatformYM2610::dispatch(DivCommand c) {
DivInstrument* ins=parent->getIns(chan[c.chan].ins);
if (c.chan>3) { // PSG
chan[c.chan].baseFreq=round(PSG_FREQ_BASE/pow(2.0f,((float)c.value/12.0f)));
chan[c.chan].freqChanged=true;
chan[c.chan].note=c.value;
if (c.value!=DIV_NOTE_NULL) {
chan[c.chan].baseFreq=round(PSG_FREQ_BASE/pow(2.0f,((float)c.value/12.0f)));
chan[c.chan].freqChanged=true;
chan[c.chan].note=c.value;
}
chan[c.chan].active=true;
chan[c.chan].keyOn=true;
chan[c.chan].std.init(ins);
@ -264,8 +266,10 @@ int DivPlatformYM2610::dispatch(DivCommand c) {
}
chan[c.chan].insChanged=false;
chan[c.chan].baseFreq=FM_FREQ_BASE*pow(2.0f,((float)c.value/12.0f));
chan[c.chan].freqChanged=true;
if (c.value!=DIV_NOTE_NULL) {
chan[c.chan].baseFreq=FM_FREQ_BASE*pow(2.0f,((float)c.value/12.0f));
chan[c.chan].freqChanged=true;
}
chan[c.chan].keyOn=true;
chan[c.chan].active=true;
break;