Arcade: fix arpeggio macro
This commit is contained in:
parent
3cf71c4ccb
commit
3ed738dd6a
|
@ -202,15 +202,15 @@ void DivPlatformArcade::tick() {
|
||||||
if (chan[i].std.hadArp) {
|
if (chan[i].std.hadArp) {
|
||||||
if (!chan[i].inPorta) {
|
if (!chan[i].inPorta) {
|
||||||
if (chan[i].std.arpMode) {
|
if (chan[i].std.arpMode) {
|
||||||
chan[i].baseFreq=644.0f*pow(2.0f,((float)chan[i].std.arp/12.0f));
|
chan[i].baseFreq=chan[i].std.arp<<6;
|
||||||
} else {
|
} else {
|
||||||
chan[i].baseFreq=644.0f*pow(2.0f,((float)(chan[i].note+(signed char)chan[i].std.arp)/12.0f));
|
chan[i].baseFreq=(chan[i].note+(signed char)chan[i].std.arp)<<6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
chan[i].freqChanged=true;
|
chan[i].freqChanged=true;
|
||||||
} else {
|
} else {
|
||||||
if (chan[i].std.arpMode && chan[i].std.finishedArp) {
|
if (chan[i].std.arpMode && chan[i].std.finishedArp) {
|
||||||
chan[i].baseFreq=644.0f*pow(2.0f,((float)chan[i].note/12.0f));
|
chan[i].baseFreq=chan[i].note<<6;
|
||||||
chan[i].freqChanged=true;
|
chan[i].freqChanged=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -451,6 +451,7 @@ int DivPlatformArcade::dispatch(DivCommand c) {
|
||||||
|
|
||||||
if (c.value!=DIV_NOTE_NULL) {
|
if (c.value!=DIV_NOTE_NULL) {
|
||||||
chan[c.chan].baseFreq=c.value<<6;
|
chan[c.chan].baseFreq=c.value<<6;
|
||||||
|
chan[c.chan].note=c.value;
|
||||||
chan[c.chan].freqChanged=true;
|
chan[c.chan].freqChanged=true;
|
||||||
}
|
}
|
||||||
chan[c.chan].keyOn=true;
|
chan[c.chan].keyOn=true;
|
||||||
|
|
Loading…
Reference in New Issue