Don't update the delay after the phase has passed
This commit is contained in:
parent
d2ae2a0fe0
commit
788a4301a1
1 changed files with 4 additions and 2 deletions
|
|
@ -43,6 +43,7 @@ void ADSREnvelope::reset(const EGDescription& desc, const Region& region, int de
|
||||||
this->sampleRate = sampleRate;
|
this->sampleRate = sampleRate;
|
||||||
desc_ = &desc;
|
desc_ = &desc;
|
||||||
triggerVelocity_ = velocity;
|
triggerVelocity_ = velocity;
|
||||||
|
currentState = State::Delay; // Has to be before the update
|
||||||
updateValues(delay);
|
updateValues(delay);
|
||||||
releaseDelay = 0;
|
releaseDelay = 0;
|
||||||
shouldRelease = false;
|
shouldRelease = false;
|
||||||
|
|
@ -51,12 +52,13 @@ void ADSREnvelope::reset(const EGDescription& desc, const Region& region, int de
|
||||||
|| (region.loopMode == LoopMode::one_shot && region.isOscillator())
|
|| (region.loopMode == LoopMode::one_shot && region.isOscillator())
|
||||||
);
|
);
|
||||||
currentValue = this->start;
|
currentValue = this->start;
|
||||||
currentState = State::Delay;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ADSREnvelope::updateValues(int delay) noexcept
|
void ADSREnvelope::updateValues(int delay) noexcept
|
||||||
{
|
{
|
||||||
this->delay = delay + secondsToSamples(desc_->getDelay(midiState_, triggerVelocity_, delay));
|
if (currentState == State::Delay)
|
||||||
|
this->delay = delay + secondsToSamples(desc_->getDelay(midiState_, triggerVelocity_, delay));
|
||||||
|
|
||||||
this->attackStep = secondsToLinRate(desc_->getAttack(midiState_, triggerVelocity_, delay));
|
this->attackStep = secondsToLinRate(desc_->getAttack(midiState_, triggerVelocity_, delay));
|
||||||
this->decayRate = secondsToExpRate(desc_->getDecay(midiState_, triggerVelocity_, delay));
|
this->decayRate = secondsToExpRate(desc_->getDecay(midiState_, triggerVelocity_, delay));
|
||||||
this->releaseRate = secondsToExpRate(desc_->getRelease(midiState_, triggerVelocity_, delay));
|
this->releaseRate = secondsToExpRate(desc_->getRelease(midiState_, triggerVelocity_, delay));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue