- BPM display use BPM calculation from LFO

- LFO: fixed S&H waveforms

git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@737 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2020-08-24 11:46:40 +00:00
parent ef6d5fdb7e
commit 62a2d47cb3
6 changed files with 25 additions and 28 deletions
+12 -2
View File
@@ -178,7 +178,9 @@ void Sync_processV(lfo_t* pObj, int len)
for (int i=0; i < len; i++)
{
pObj->pPhase[i].phase = pSync->phase;
synth_float_t phase = pSync->phase;
pSync->phase = Sync_mod(pSync->phase + omega_base);
pObj->pPhase[i].is_cycle_start = (phase > pSync->phase);
}
}
break;
@@ -188,7 +190,9 @@ void Sync_processV(lfo_t* pObj, int len)
for (int i=0; i < len; i++)
{
pObj->pPhase[i].phase = pSync->phase;
synth_float_t phase = pSync->phase;
pSync->phase = Sync_mod(pSync->phase + pSync->omega);
pObj->pPhase[i].is_cycle_start = (phase > pSync->phase);
}
}
break;
@@ -197,7 +201,10 @@ void Sync_processV(lfo_t* pObj, int len)
{
for (int i=0; i < len; i++)
{
pObj->pPhase[i].phase = pObj->pPhase[i].phase_int;
synth_float_t phase = pSync->phase;
pSync->phase = pObj->pPhase[i].phase_int;
pObj->pPhase[i].is_cycle_start = (phase > pSync->phase);
pObj->pPhase[i].phase = pSync->phase;
}
}
break;
@@ -292,11 +299,14 @@ void LFO_Reset(lfo_t *pObj, synth_float_t initial_phase)
}
void LFO_sync(lfo_t *pObj, synth_float_t phase_ref)
synth_float_t LFO_sync(lfo_t *pObj, synth_float_t phase_ref)
{
synth_float_t note_1_x = pObj->param[LFO_PARAM2_MIDISYNC_BEATDIV];
phase_ref = Sync_mod(note_1_x*phase_ref);
Sync_phase_update(&pObj->sync, phase_ref);
// Return BPM
return 4*60*pObj->fs*pObj->sync.omega/note_1_x;
}
void LFO_Param2Set(lfo_t *pObj, UINT32 type, synth_float_t value)
+1 -1
View File
@@ -123,7 +123,7 @@ void LFO_Free(lfo_t *pObj);
void LFO_SetFS(lfo_t *pObj, synth_float_t fs);
void LFO_SetBufsize(lfo_t *pObj, UINT32 bufsize);
void LFO_Reset(lfo_t *pObj, synth_float_t initial_phase);
void LFO_sync(lfo_t *pObj, synth_float_t phase);
synth_float_t LFO_sync(lfo_t *pObj, synth_float_t phase);
void LFO_Param2Set(lfo_t *pObj, UINT32 type, synth_float_t value);
synth_float_t* LFO_ProcessDataV(lfo_t *pObj, UINT32 len);
void Sync_processV(lfo_t *pObj, int len);