Envelope command fixes, 20ms default envelope

This commit is contained in:
Jack Andersen
2016-05-31 00:16:52 -10:00
parent d5b50e3633
commit 0c8d8f571c
6 changed files with 182 additions and 143 deletions

View File

@@ -33,6 +33,7 @@ void Envelope::keyOff()
float Envelope::advance(double dt)
{
double thisTime = m_curTime;
m_curTime += dt;
switch (m_phase)
@@ -46,7 +47,7 @@ float Envelope::advance(double dt)
m_releaseStartFactor = 1.f;
return 1.f;
}
double attackFac = m_curTime / m_attackTime;
double attackFac = thisTime / m_attackTime;
if (attackFac >= 1.0)
{
m_phase = State::Decay;
@@ -66,7 +67,7 @@ float Envelope::advance(double dt)
m_releaseStartFactor = m_sustainFactor;
return m_sustainFactor;
}
double decayFac = m_curTime / m_decayTime;
double decayFac = thisTime / m_decayTime;
if (decayFac >= 1.0)
{
m_phase = State::Sustain;
@@ -88,7 +89,7 @@ float Envelope::advance(double dt)
m_phase = State::Complete;
return 0.f;
}
double releaseFac = m_curTime / m_releaseTime;
double releaseFac = thisTime / m_releaseTime;
if (releaseFac >= 1.0)
{
m_phase = State::Complete;