f-num/block range fix
This commit is contained in:
parent
9e47468b53
commit
47be21df4d
|
@ -2104,6 +2104,10 @@ double DivEngine::calcBaseFreq(double clock, double divider, int note, bool peri
|
|||
if (tuning>500.0) tuning=500.0; \
|
||||
int boundaryBottom=tuning*pow(2.0,0.25)*(divider/clock); \
|
||||
int boundaryTop=2.0*tuning*pow(2.0,0.25)*(divider/clock); \
|
||||
while (boundaryTop>((1<<bits)-1)) { \
|
||||
boundaryTop>>=1; \
|
||||
boundaryBottom>>=1; \
|
||||
} \
|
||||
int block=(note)/12; \
|
||||
if (block<0) block=0; \
|
||||
if (block>7) block=7; \
|
||||
|
|
|
@ -449,7 +449,7 @@ void DivPlatformYM2203::tick(bool sysTick) {
|
|||
if (parent->song.linearPitch==2) {
|
||||
chan[i].freq=parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,4,chan[i].pitch2,chipClock,CHIP_FREQBASE,11);
|
||||
} else {
|
||||
int fNum=parent->calcFreq(chan[i].baseFreq&0x7ff,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,4,chan[i].pitch2);
|
||||
int fNum=parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,4,chan[i].pitch2);
|
||||
int block=(chan[i].baseFreq&0xf800)>>11;
|
||||
if (fNum<0) fNum=0;
|
||||
if (fNum>2047) {
|
||||
|
|
Loading…
Reference in New Issue