The modulated gain is added to the base one
This commit is contained in:
parent
d353ec1463
commit
3a9fd31a0f
1 changed files with 2 additions and 2 deletions
|
|
@ -56,7 +56,7 @@ void sfz::Voice::startVoice(Region* region, int delay, int number, uint8_t value
|
||||||
|
|
||||||
float gain { baseGain };
|
float gain { baseGain };
|
||||||
if (region->amplitudeCC)
|
if (region->amplitudeCC)
|
||||||
gain *= normalizeCC(resources.midiState.getCCValue(region->amplitudeCC->first)) * normalizePercents(region->amplitudeCC->second);
|
gain += normalizeCC(resources.midiState.getCCValue(region->amplitudeCC->first)) * normalizePercents(region->amplitudeCC->second);
|
||||||
amplitudeEnvelope.reset(Default::normalizedRange.clamp(gain));
|
amplitudeEnvelope.reset(Default::normalizedRange.clamp(gain));
|
||||||
|
|
||||||
float crossfadeGain { region->getCrossfadeGain(resources.midiState.getCCArray()) };
|
float crossfadeGain { region->getCrossfadeGain(resources.midiState.getCCArray()) };
|
||||||
|
|
@ -186,7 +186,7 @@ void sfz::Voice::registerCC(int delay, int ccNumber, uint8_t ccValue) noexcept
|
||||||
delay = max(delay, minEnvelopeDelay);
|
delay = max(delay, minEnvelopeDelay);
|
||||||
|
|
||||||
if (region->amplitudeCC && ccNumber == region->amplitudeCC->first) {
|
if (region->amplitudeCC && ccNumber == region->amplitudeCC->first) {
|
||||||
const float newGain { baseGain * normalizeCC(ccValue) * normalizePercents(region->amplitudeCC->second) };
|
const float newGain { baseGain + normalizeCC(ccValue) * normalizePercents(region->amplitudeCC->second) };
|
||||||
amplitudeEnvelope.registerEvent(delay, Default::normalizedRange.clamp(newGain));
|
amplitudeEnvelope.registerEvent(delay, Default::normalizedRange.clamp(newGain));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue