242 |
|
|
243 |
float sustain = pRegion->ampeg_sustain + pRegion->ampeg_vel2sustain * velrelease; |
float sustain = pRegion->ampeg_sustain + pRegion->ampeg_vel2sustain * velrelease; |
244 |
sustain = 10 * (sustain + GetInfluence(pRegion->ampeg_sustaincc)); |
sustain = 10 * (sustain + GetInfluence(pRegion->ampeg_sustaincc)); |
245 |
|
if (pVoice->pNote) { |
246 |
|
pVoice->pNote->Override.Sustain.applyTo(sustain); |
247 |
|
} |
248 |
|
|
249 |
float release = pRegion->ampeg_release + pRegion->ampeg_vel2release * velrelease; |
float release = pRegion->ampeg_release + pRegion->ampeg_vel2release * velrelease; |
250 |
release = std::max(0.0f, release + GetInfluence(pRegion->ampeg_releasecc)); |
release = std::max(0.0f, release + GetInfluence(pRegion->ampeg_releasecc)); |
251 |
|
|
309 |
start_level_mid, |
start_level_mid, |
310 |
1, 0, false, GetSampleRate() |
1, 0, false, GetSampleRate() |
311 |
); |
); |
312 |
lfo.update(0); |
lfo.updateByMIDICtrlValue(0); |
313 |
} |
} |
314 |
|
|
315 |
|
|
491 |
|
|
492 |
} |
} |
493 |
|
|
494 |
float EndpointUnit::GetInfluence(::sfz::Array< ::sfz::optional<float> >& cc) { |
float EndpointUnit::GetInfluence(::sfz::Array< optional<float> >& cc) { |
495 |
float f = 0; |
float f = 0; |
496 |
for (int i = 0; i < 128; i++) { |
for (int i = 0; i < 128; i++) { |
497 |
if (cc[i]) { |
if (cc[i]) { |
501 |
return f; |
return f; |
502 |
} |
} |
503 |
|
|
504 |
float EndpointUnit::GetInfluence(::sfz::Array< ::sfz::optional<int> >& cc) { |
float EndpointUnit::GetInfluence(::sfz::Array< optional<int> >& cc) { |
505 |
float f = 0; |
float f = 0; |
506 |
for (int i = 0; i < 128; i++) { |
for (int i = 0; i < 128; i++) { |
507 |
if (cc[i]) { |
if (cc[i]) { |