From 6b11f1dd1a42ca4de8eccfe3b96d2c6afd18608f Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 11 Aug 2020 07:05:26 +0000 Subject: [PATCH] - call funcSyncOnFreqUpdate if omega has changed git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@720 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- Source/synth/lfo.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/synth/lfo.c b/Source/synth/lfo.c index c99ddbd..2c3a25f 100644 --- a/Source/synth/lfo.c +++ b/Source/synth/lfo.c @@ -130,13 +130,16 @@ int Sync_process(sync_t *pObj) perr = phase_det(phase, pObj->phase_ref); SynthDebug("phase_ref=%f, phase_lo=%f, perr=%f\n", pObj->phase_ref, pObj->phase, perr); } + } + synth_float_t omega = -(pObj->klag*pObj->accu + pObj->klead*perr); + if (omega != pObj->omega) + { if (pObj->funcSyncOnFreqUpdate) { - (*pObj->funcSyncOnFreqUpdate)(pObj->pFuncObj, pObj->omega); + (*pObj->funcSyncOnFreqUpdate)(pObj->pFuncObj, omega); } } pObj->accu += perr; - pObj->omega = -(pObj->klag*pObj->accu + pObj->klead*perr); return do_lfo_update; } @@ -158,6 +161,7 @@ synth_float_t syncOnGetPhase(void *pFuncObj) void syncOnFreqUpdate(void *pFuncObj, synth_float_t omega) { lfo_t *pObj = (lfo_t*)pFuncObj; + pObj->sync.omega = omega; SynthDebug("syncOnFreqUpdate(): BPM=%f\n", omega*pObj->fs*60); } @@ -325,7 +329,7 @@ synth_float_t* LFO_ProcessDataV(lfo_t *pObj, UINT32 len) { if (Sync_process(&pObj->sync)) { - LFO_set_omega(pObj, pObj->sync.omega); +// LFO_set_omega(pObj, pObj->sync.omega); } pObj->x = pObj->sync.phase;