293 |
} |
} |
294 |
|
|
295 |
void LFOUnit::ValueChanged(CCSignalUnit* pUnit) { |
void LFOUnit::ValueChanged(CCSignalUnit* pUnit) { |
296 |
|
if (pLFO == NULL) return; |
297 |
pLFO->SetFrequency(std::max(0.0f, suFreqOnCC.GetLevel() + pLfoInfo->freq), GetSampleRate()); |
pLFO->SetFrequency(std::max(0.0f, suFreqOnCC.GetLevel() + pLfoInfo->freq), GetSampleRate()); |
298 |
} |
} |
299 |
|
|
343 |
} |
} |
344 |
|
|
345 |
void AmpLFOUnit::Trigger() { |
void AmpLFOUnit::Trigger() { |
346 |
|
bActive = true; |
347 |
::sfz::Region* const pRegion = pVoice->pRegion; |
::sfz::Region* const pRegion = pVoice->pRegion; |
348 |
pLfoInfo->delay = pRegion->amplfo_delay + GetInfluence(pRegion->amplfo_delay_oncc); |
pLfoInfo->delay = pRegion->amplfo_delay + GetInfluence(pRegion->amplfo_delay_oncc); |
349 |
pLfoInfo->freq = pRegion->amplfo_freq; |
pLfoInfo->freq = pRegion->amplfo_freq; |
350 |
pLfoInfo->fade = pRegion->amplfo_fade + GetInfluence(pRegion->amplfo_fade_oncc); |
pLfoInfo->fade = pRegion->amplfo_fade + GetInfluence(pRegion->amplfo_fade_oncc); |
351 |
pLfoInfo->volume = pRegion->amplfo_depth; |
pLfoInfo->volume = pRegion->amplfo_depth; |
352 |
|
|
353 |
|
if (pLfoInfo->freq <= 0) { |
354 |
|
if (!pRegion->amplfo_freqcc.empty()) pLfoInfo->freq = 0; |
355 |
|
else bActive = false; |
356 |
|
} |
357 |
|
|
358 |
LFOv1Unit::Trigger(); |
LFOv1Unit::Trigger(); |
359 |
} |
} |
360 |
|
|
361 |
void PitchLFOUnit::Trigger() { |
void PitchLFOUnit::Trigger() { |
362 |
|
bActive = true; |
363 |
::sfz::Region* const pRegion = pVoice->pRegion; |
::sfz::Region* const pRegion = pVoice->pRegion; |
364 |
pLfoInfo->delay = pRegion->pitchlfo_delay + GetInfluence(pRegion->pitchlfo_delay_oncc); |
pLfoInfo->delay = pRegion->pitchlfo_delay + GetInfluence(pRegion->pitchlfo_delay_oncc); |
365 |
pLfoInfo->freq = pRegion->pitchlfo_freq; |
pLfoInfo->freq = pRegion->pitchlfo_freq; |
366 |
pLfoInfo->fade = pRegion->pitchlfo_fade + GetInfluence(pRegion->pitchlfo_fade_oncc); |
pLfoInfo->fade = pRegion->pitchlfo_fade + GetInfluence(pRegion->pitchlfo_fade_oncc); |
367 |
pLfoInfo->pitch = pRegion->pitchlfo_depth; |
pLfoInfo->pitch = pRegion->pitchlfo_depth; |
368 |
|
|
369 |
|
if (pLfoInfo->freq <= 0) { |
370 |
|
if (!pRegion->pitchlfo_freqcc.empty()) pLfoInfo->freq = 0; |
371 |
|
else bActive = false; |
372 |
|
} |
373 |
|
|
374 |
LFOv1Unit::Trigger(); |
LFOv1Unit::Trigger(); |
375 |
} |
} |
376 |
|
|
377 |
void FilLFOUnit::Trigger() { |
void FilLFOUnit::Trigger() { |
378 |
|
bActive = true; |
379 |
::sfz::Region* const pRegion = pVoice->pRegion; |
::sfz::Region* const pRegion = pVoice->pRegion; |
380 |
pLfoInfo->delay = pRegion->fillfo_delay + GetInfluence(pRegion->fillfo_delay_oncc); |
pLfoInfo->delay = pRegion->fillfo_delay + GetInfluence(pRegion->fillfo_delay_oncc); |
381 |
pLfoInfo->freq = pRegion->fillfo_freq; |
pLfoInfo->freq = pRegion->fillfo_freq; |
382 |
pLfoInfo->fade = pRegion->fillfo_fade + GetInfluence(pRegion->fillfo_fade_oncc); |
pLfoInfo->fade = pRegion->fillfo_fade + GetInfluence(pRegion->fillfo_fade_oncc); |
383 |
pLfoInfo->cutoff = pRegion->fillfo_depth; |
pLfoInfo->cutoff = pRegion->fillfo_depth; |
384 |
|
|
385 |
|
if (pLfoInfo->freq <= 0) { |
386 |
|
if (!pRegion->fillfo_freqcc.empty()) pLfoInfo->freq = 0; |
387 |
|
else bActive = false; |
388 |
|
} |
389 |
|
|
390 |
LFOv1Unit::Trigger(); |
LFOv1Unit::Trigger(); |
391 |
} |
} |
392 |
|
|
879 |
|
|
880 |
// LFO |
// LFO |
881 |
for (int i = 0; i < pRegion->lfos.size(); i++) { |
for (int i = 0; i < pRegion->lfos.size(); i++) { |
882 |
if (pRegion->lfos[i].freq == -1) continue; // Not initialized |
if (pRegion->lfos[i].freq <= 0) { |
883 |
|
if (pRegion->lfos[i].freq_oncc.empty()) continue; // Not initialized |
884 |
|
else pRegion->lfos[i].freq = 0; |
885 |
|
} |
886 |
|
|
887 |
if(LFOs.size() < LFOs.capacity()) { |
if(LFOs.size() < LFOs.capacity()) { |
888 |
LFOv2Unit lfo(this); |
LFOv2Unit lfo(this); |