GA20: yaaaay I fixed chan osc
This commit is contained in:
parent
8f54445625
commit
6d55c8088c
|
|
@ -84,7 +84,7 @@ void DivPlatformGA20::acquireDirect(blip_buffer_t** bb, size_t off, size_t len)
|
||||||
oscBuf[i]->begin(len);
|
oscBuf[i]->begin(len);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t h=off; h<off+len; h++) {
|
for (size_t h=0; h<len; h++) {
|
||||||
size_t advance=0;
|
size_t advance=0;
|
||||||
if (!writes.empty()) {
|
if (!writes.empty()) {
|
||||||
QueuedWrite& w=writes.front();
|
QueuedWrite& w=writes.front();
|
||||||
|
|
@ -93,7 +93,7 @@ void DivPlatformGA20::acquireDirect(blip_buffer_t** bb, size_t off, size_t len)
|
||||||
writes.pop();
|
writes.pop();
|
||||||
} else {
|
} else {
|
||||||
// heuristic
|
// heuristic
|
||||||
advance=off+len-h-1;
|
advance=len-h-1;
|
||||||
|
|
||||||
for (int i=0; i<4; i++) {
|
for (int i=0; i<4; i++) {
|
||||||
if (!ga20.m_channel[i].play) continue;
|
if (!ga20.m_channel[i].play) continue;
|
||||||
|
|
@ -109,7 +109,7 @@ void DivPlatformGA20::acquireDirect(blip_buffer_t** bb, size_t off, size_t len)
|
||||||
h+=advance;
|
h+=advance;
|
||||||
const int out=(signed int)(ga20Buf[0]+ga20Buf[1]+ga20Buf[2]+ga20Buf[3])>>2;
|
const int out=(signed int)(ga20Buf[0]+ga20Buf[1]+ga20Buf[2]+ga20Buf[3])>>2;
|
||||||
if (out!=oldOut) {
|
if (out!=oldOut) {
|
||||||
blip_add_delta(bb[0],h,out-oldOut);
|
blip_add_delta(bb[0],off+h,out-oldOut);
|
||||||
oldOut=out;
|
oldOut=out;
|
||||||
}
|
}
|
||||||
for (int i=0; i<4; i++) {
|
for (int i=0; i<4; i++) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue