From a10d5cb96bfc0d105ebadcc1018a39827bba0cde Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 16 Apr 2023 14:41:12 -0500 Subject: [PATCH] blip_buf clock>=rateMul; + count>>=rateMul; + + if (offset!=0 && offset!=lastCount) { + logW("Shit!"); + } + + lastCount=offset+count; + + logV("got: from %d to %d",offset,offset+count-1); + } for (int i=0; i=outs) { @@ -189,7 +206,7 @@ void DivDispatchContainer::fillBuf(size_t runtotal, size_t offset, size_t size) if (bbIn[i]==NULL) continue; if (bb[i]==NULL) continue; int s=0; - for (size_t j=0; jgetDCOffRequired()) { dcOffCompensation=true; } diff --git a/src/engine/engine.h b/src/engine/engine.h index 098090890..077daf5dc 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -184,13 +184,13 @@ struct DivNoteEvent { struct DivDispatchContainer { DivDispatch* dispatch; blip_buffer_t* bb[DIV_MAX_OUTPUTS]; - size_t bbInLen, runtotal, runLeft, runPos, lastAvail; + size_t bbInLen, runtotal, runLeft, runPos, lastAvail, lastCount; int temp[DIV_MAX_OUTPUTS], prevSample[DIV_MAX_OUTPUTS]; short* bbInMapped[DIV_MAX_OUTPUTS]; short* bbIn[DIV_MAX_OUTPUTS]; short* bbOut[DIV_MAX_OUTPUTS]; bool lowQuality, dcOffCompensation; - unsigned char rateMul, runPosSub; + unsigned char rateMul, runPosSub, fillSub; double rateMemory; void setRates(double gotRate); @@ -209,10 +209,12 @@ struct DivDispatchContainer { runLeft(0), runPos(0), lastAvail(0), + lastCount(0), lowQuality(false), dcOffCompensation(false), rateMul(0), runPosSub(0), + fillSub(0), rateMemory(0.0) { memset(bb,0,DIV_MAX_OUTPUTS*sizeof(blip_buffer_t*)); memset(temp,0,DIV_MAX_OUTPUTS*sizeof(int));