several important bug fixes to advanced arp macro

This commit is contained in:
tildearrow 2022-08-22 19:09:08 -05:00
parent c009cb3536
commit 226f43fea3
7 changed files with 46 additions and 24 deletions

View file

@ -1713,7 +1713,11 @@ int DivEngine::calcFreq(int base, int pitch, bool period, int octave, int pitch2
}
int DivEngine::calcArp(int note, int arp, int offset) {
if (arp&0x40000000) return (arp&(~0x40000000))+offset;
if (arp<0) {
if (!(arp&0x40000000)) return (arp|0x40000000)+offset;
} else {
if (arp&0x40000000) return (arp&(~0x40000000))+offset;
}
return note+arp;
}