From a46b9383a5c2c6737b41dec6b541c86162c43bd6 Mon Sep 17 00:00:00 2001 From: Vesa Date: Tue, 20 May 2014 21:24:54 +0300 Subject: [PATCH] LfoController updates - fix some remaining timing issues --- src/core/LfoController.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core/LfoController.cpp b/src/core/LfoController.cpp index 5ae601066..adf2b536a 100644 --- a/src/core/LfoController.cpp +++ b/src/core/LfoController.cpp @@ -95,10 +95,11 @@ void LfoController::updateValueBuffer() // roll phase up until we're in sync with period counter m_bufferLastUpdated++; - while( m_bufferLastUpdated != s_periods ) + if( m_bufferLastUpdated < s_periods ) { - phase += static_cast( engine::framesPerTick() ) / m_duration; - m_bufferLastUpdated++; + int diff = s_periods - m_bufferLastUpdated; + phase += static_cast( engine::framesPerTick() * diff ) / m_duration; + m_bufferLastUpdated += diff; }