SFXR: Avoid NaNs by making envelope length minimum 1 sample
(this time in the stable-1.1 branch)
This commit is contained in:
@@ -133,10 +133,18 @@ void SfxrSynth::resetSample( bool restart )
|
||||
env_vol=0.0f;
|
||||
env_stage=0;
|
||||
env_time=0;
|
||||
|
||||
env_length[0]=(int)(s->m_attModel.value()*s->m_attModel.value()*100000.0f);
|
||||
env_length[1]=(int)(s->m_holdModel.value()*s->m_holdModel.value()*100000.0f);
|
||||
env_length[2]=(int)(s->m_decModel.value()*s->m_decModel.value()*100000.0f);
|
||||
|
||||
// These will be used as divisors later, let's avoid division by 0
|
||||
for(int i = 0; i < 3; ++i)
|
||||
{
|
||||
env_length[i] = (env_length[i] == 0) ? 1 : env_length[i];
|
||||
}
|
||||
|
||||
|
||||
fphase=pow(s->m_phaserOffsetModel.value(), 2.0f)*1020.0f;
|
||||
if(s->m_phaserOffsetModel.value()<0.0f) fphase=-fphase;
|
||||
fdphase=pow(s->m_phaserSweepModel.value(), 2.0f)*1.0f;
|
||||
|
||||
Reference in New Issue
Block a user