diff --git a/Source/synth/lfo.c b/Source/synth/lfo.c index d61a16c..5ca82cc 100644 --- a/Source/synth/lfo.c +++ b/Source/synth/lfo.c @@ -97,6 +97,7 @@ sync_result_t Sync_process(sync_t *pObj, synth_float_t omega_base) sync_result_t result; pObj->phase_int = Sync_mod(pObj->phase_int + pObj->omega, 1.0); + result.phase = pObj->phase; switch (sync_mode) { @@ -120,9 +121,8 @@ sync_result_t Sync_process(sync_t *pObj, synth_float_t omega_base) } break; } - result.phase = Sync_mod(pObj->phase, 1.0); - result.is_cycle_start = (pObj->phase > result.phase); - pObj->phase = result.phase; + result.is_cycle_start = (pObj->phase < result.phase); + result.phase = pObj->phase; synth_float_t perr = 0; if (pObj->phase_update)