new chan osc, part 4
adapt dispatch code to it
This commit is contained in:
parent
c0e4552c52
commit
a16d20e190
18 changed files with 218 additions and 88 deletions
|
|
@ -41,6 +41,9 @@ const char** DivPlatformBubSysWSG::getRegisterSheet() {
|
|||
|
||||
void DivPlatformBubSysWSG::acquire(short** buf, size_t len) {
|
||||
int chanOut=0;
|
||||
for (int i=0; i<2; i++) {
|
||||
oscBuf[i]->begin(len);
|
||||
}
|
||||
for (size_t h=0; h<len; h++) {
|
||||
signed int out=0;
|
||||
// K005289 part
|
||||
|
|
@ -49,13 +52,13 @@ void DivPlatformBubSysWSG::acquire(short** buf, size_t len) {
|
|||
// Wavetable part
|
||||
for (int i=0; i<2; i++) {
|
||||
if (isMuted[i]) {
|
||||
oscBuf[i]->data[oscBuf[i]->needle++]=0;
|
||||
oscBuf[i]->putSample(h,0);
|
||||
continue;
|
||||
} else {
|
||||
chanOut=chan[i].waveROM[k005289.addr(i)]*(regPool[2+i]&0xf);
|
||||
out+=chanOut;
|
||||
if (writeOscBuf==0) {
|
||||
oscBuf[i]->data[oscBuf[i]->needle++]=chanOut<<7;
|
||||
oscBuf[i]->putSample(h,chanOut<<7);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -70,6 +73,9 @@ void DivPlatformBubSysWSG::acquire(short** buf, size_t len) {
|
|||
//printf("out: %d\n",out);
|
||||
buf[0][h]=out;
|
||||
}
|
||||
for (int i=0; i<2; i++) {
|
||||
oscBuf[i]->end(len);
|
||||
}
|
||||
}
|
||||
|
||||
void DivPlatformBubSysWSG::updateWave(int ch) {
|
||||
|
|
@ -334,7 +340,7 @@ void DivPlatformBubSysWSG::setFlags(const DivConfig& flags) {
|
|||
CHECK_CUSTOM_CLOCK;
|
||||
rate=chipClock/coreQuality;
|
||||
for (int i=0; i<2; i++) {
|
||||
oscBuf[i]->rate=rate/8;
|
||||
oscBuf[i]->setRate(rate);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue