- 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:
+7
-3
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user