OPLL: how am I going to do this
This commit is contained in:
parent
90264bb63e
commit
c702922144
|
@ -230,13 +230,16 @@ void DivPlatformOPLL::tick(bool sysTick) {
|
||||||
if (i>=6 && properDrums) {
|
if (i>=6 && properDrums) {
|
||||||
drumState&=~(0x10>>(i-6));
|
drumState&=~(0x10>>(i-6));
|
||||||
immWrite(0x0e,0x20|drumState);
|
immWrite(0x0e,0x20|drumState);
|
||||||
|
logV("properDrums %d",i);
|
||||||
} else if (i>=6 && drums) {
|
} else if (i>=6 && drums) {
|
||||||
drumState&=~(0x10>>(chan[i].note%12));
|
drumState&=~(0x10>>(chan[i].note%12));
|
||||||
immWrite(0x0e,0x20|drumState);
|
immWrite(0x0e,0x20|drumState);
|
||||||
|
logV("drums %d",i);
|
||||||
} else {
|
} else {
|
||||||
if (i<9) {
|
if (i<9) {
|
||||||
immWrite(0x20+i,(chan[i].freqH)|(chan[i].state.alg?0x20:0));
|
immWrite(0x20+i,(chan[i].freqH)|(chan[i].state.alg?0x20:0));
|
||||||
}
|
}
|
||||||
|
logV("normal %d",i);
|
||||||
}
|
}
|
||||||
//chan[i].keyOn=false;
|
//chan[i].keyOn=false;
|
||||||
chan[i].keyOff=false;
|
chan[i].keyOff=false;
|
||||||
|
@ -253,7 +256,7 @@ void DivPlatformOPLL::tick(bool sysTick) {
|
||||||
for (int i=0; i<11; i++) {
|
for (int i=0; i<11; i++) {
|
||||||
if (chan[i].freqChanged) {
|
if (chan[i].freqChanged) {
|
||||||
chan[i].freq=parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,octave(chan[i].baseFreq)*2,chan[i].pitch2,chipClock,CHIP_FREQBASE);
|
chan[i].freq=parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,octave(chan[i].baseFreq)*2,chan[i].pitch2,chipClock,CHIP_FREQBASE);
|
||||||
if (chan[i].fixedFreq>0) chan[i].freq=chan[i].fixedFreq;
|
if (chan[i].fixedFreq>0 && properDrums) chan[i].freq=chan[i].fixedFreq;
|
||||||
if (chan[i].freq<0) chan[i].freq=0;
|
if (chan[i].freq<0) chan[i].freq=0;
|
||||||
if (chan[i].freq>65535) chan[i].freq=65535;
|
if (chan[i].freq>65535) chan[i].freq=65535;
|
||||||
int freqt=toFreq(chan[i].freq);
|
int freqt=toFreq(chan[i].freq);
|
||||||
|
@ -771,11 +774,17 @@ int DivPlatformOPLL::dispatch(DivCommand c) {
|
||||||
if (c.value) {
|
if (c.value) {
|
||||||
properDrums=true;
|
properDrums=true;
|
||||||
immWrite(0x0e,0x20);
|
immWrite(0x0e,0x20);
|
||||||
|
drumState=0;
|
||||||
} else {
|
} else {
|
||||||
properDrums=false;
|
properDrums=false;
|
||||||
immWrite(0x0e,0x00);
|
immWrite(0x0e,0x00);
|
||||||
drumState=0;
|
drumState=0;
|
||||||
}
|
}
|
||||||
|
chan[6].freqChanged=true;
|
||||||
|
chan[7].freqChanged=true;
|
||||||
|
chan[8].freqChanged=true;
|
||||||
|
chan[9].freqChanged=true;
|
||||||
|
chan[10].freqChanged=true;
|
||||||
break;
|
break;
|
||||||
case DIV_CMD_MACRO_OFF:
|
case DIV_CMD_MACRO_OFF:
|
||||||
chan[c.chan].std.mask(c.value,true);
|
chan[c.chan].std.mask(c.value,true);
|
||||||
|
|
Loading…
Reference in a new issue