From 5f7078db4206d0f6455154b86d7056f8d028eac3 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 25 Mar 2022 03:41:43 -0500 Subject: [PATCH] bang bang bang --- src/engine/engine.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index ed21aed07..e9de013af 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -832,17 +832,15 @@ double DivEngine::calcBaseFreq(double clock, double divider, int note, bool peri int DivEngine::calcFreq(int base, int pitch, bool period, int octave) { if (song.linearPitch) { + // global pitch multiplier + int whatTheFuck=(1024+(globalPitch<<6)-(globalPitch<0?globalPitch-6:0)); + if (whatTheFuck<1) whatTheFuck=1; // avoids division by zero but please kill me pitch+=2048; if (pitch<0) pitch=0; if (pitch>4095) pitch=4095; return period? - ((base*(reversePitchTable[pitch]))>>10): - (((base*(pitchTable[pitch]))>>10)*(16+globalPitch))/16; - /* - return period? - base*pow(2,-(double)pitch/(12.0*128.0))/(98.0+globalPitch*6.0)*98.0: - (base*pow(2,(double)pitch/(12.0*128.0))*(98+globalPitch*6))/98; - */ + ((base*(reversePitchTable[pitch]))/whatTheFuck): + (((base*(pitchTable[pitch]))>>10)*whatTheFuck)/1024; } return period? base-pitch: