MSM5232: fix chan osc again

issue #1435
This commit is contained in:
tildearrow 2023-08-29 02:14:55 -05:00
parent 8d887058ec
commit 87ae995ff9

View file

@ -49,13 +49,15 @@ void DivPlatformMSM5232::acquire(short** buf, size_t len) {
for (size_t h=0; h<len; h++) { for (size_t h=0; h<len; h++) {
while (!writes.empty()) { while (!writes.empty()) {
QueuedWrite w=writes.front(); QueuedWrite w=writes.front();
logV("%.2x = %.2x\n",w.addr,w.val);
msm->write(w.addr,w.val); msm->write(w.addr,w.val);
regPool[w.addr&0x0f]=w.val; regPool[w.addr&0x0f]=w.val;
writes.pop(); writes.pop();
} }
for (int i=0; i<8; i++) { for (int i=0; i<8; i++) {
if (isMuted[i]) {
oscBuf[i]->data[oscBuf[i]->needle++]=0;
} else {
int o=( int o=(
((regPool[12+(i>>2)]&1)?((msm->vo16[i]*partVolume[3+(i&4)])>>8):0)+ ((regPool[12+(i>>2)]&1)?((msm->vo16[i]*partVolume[3+(i&4)])>>8):0)+
((regPool[12+(i>>2)]&2)?((msm->vo8[i]*partVolume[2+(i&4)])>>8):0)+ ((regPool[12+(i>>2)]&2)?((msm->vo8[i]*partVolume[2+(i&4)])>>8):0)+
@ -64,6 +66,7 @@ void DivPlatformMSM5232::acquire(short** buf, size_t len) {
)<<2; )<<2;
oscBuf[i]->data[oscBuf[i]->needle++]=CLAMP(o,-32768,32767); oscBuf[i]->data[oscBuf[i]->needle++]=CLAMP(o,-32768,32767);
} }
}
clockDriftLFOPos+=clockDriftLFOSpeed; clockDriftLFOPos+=clockDriftLFOSpeed;
clockDriftLFOPos&=(1U<<21)-1; clockDriftLFOPos&=(1U<<21)-1;