- call funcSyncOnFreqUpdate if omega has changed

git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@720 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2020-08-11 07:05:26 +00:00
parent a3f8bb1e4e
commit 6b11f1dd1a
+7 -3
View File
@@ -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;