MSM5232: per-chan osc

This commit is contained in:
tildearrow 2022-10-04 02:35:32 -05:00
parent c2b75d26d7
commit 8ab0d28ace
3 changed files with 18 additions and 7 deletions

View file

@ -54,9 +54,15 @@ void DivPlatformMSM5232::acquire(short* bufL, short* bufR, size_t start, size_t
}
memset(temp,0,16*sizeof(short));
/*for (int i=0; i<8; i++) {
oscBuf[i]->data[oscBuf[i]->needle++]=CLAMP((pce->channel[i].blip_prev_samp[0]+pce->channel[i].blip_prev_samp[1])<<1,-32768,32767);
}*/
for (int i=0; i<8; i++) {
int o=(
((regPool[12+(i>>4)]&1)?((msm->vo16[i]*partVolume[3+(i&4)])>>8):0)+
((regPool[12+(i>>4)]&2)?((msm->vo8[i]*partVolume[2+(i&4)])>>8):0)+
((regPool[12+(i>>4)]&4)?((msm->vo4[i]*partVolume[1+(i&4)])>>8):0)+
((regPool[12+(i>>4)]&8)?((msm->vo2[i]*partVolume[i&4])>>8):0)
)<<3;
oscBuf[i]->data[oscBuf[i]->needle++]=CLAMP(o,-32768,32767);
}
msm->sound_stream_update(temp);