diff --git a/plugins/Disintegrator/Disintegrator.cpp b/plugins/Disintegrator/Disintegrator.cpp index a8a1e9a8d..0eb3d1ae4 100644 --- a/plugins/Disintegrator/Disintegrator.cpp +++ b/plugins/Disintegrator/Disintegrator.cpp @@ -61,6 +61,7 @@ DisintegratorEffect::DisintegratorEffect(Model* parent, const Descriptor::SubPlu void DisintegratorEffect::sampleRateChanged() { m_sampleRate = Engine::mixer()->processingSampleRate(); + m_2PiOverSR = F_2PI / m_sampleRate; m_lp = new BasicFilters<2>(Engine::mixer()->processingSampleRate()); m_hp = new BasicFilters<2>(Engine::mixer()->processingSampleRate()); m_lp->setFilterType(0); @@ -144,7 +145,7 @@ bool DisintegratorEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frame } case 2://Sine Wave { - m_sineLoc = fmod(m_sineLoc + (freq / m_sampleRate * F_2PI), F_2PI); + m_sineLoc = fmod(m_sineLoc + (freq * m_2PiOverSR), F_2PI); delayModInput[0] = sin(m_sineLoc); delayModInput[1] = delayModInput[0]; break; diff --git a/plugins/Disintegrator/Disintegrator.h b/plugins/Disintegrator/Disintegrator.h index 356f46b89..5a79420b9 100644 --- a/plugins/Disintegrator/Disintegrator.h +++ b/plugins/Disintegrator/Disintegrator.h @@ -63,6 +63,7 @@ private: bool m_needsUpdate; float m_sampleRate; + float m_2PiOverSR; float m_sampleRateMult; int m_bufferSize = 500;