Merge pull request #1635 from diizy/master

Fix monstro slopes properly
This commit is contained in:
Vesa V
2015-01-15 17:15:06 +02:00
2 changed files with 5 additions and 22 deletions

View File

@@ -819,25 +819,9 @@ inline void MonstroSynth::updateModulators( float * env1, float * env2, float *
inline sample_t MonstroSynth::calcSlope( int slope, sample_t s )
{
if(slope==0)
{
if( m_parent->m_slope1 == 1.0f ) return s;
if( s == 0.0f ) return s;
return fastPow( s, m_parent->m_slope1 );
}
else if(slope==1)
{
if( m_parent->m_slope2 == 1.0f ) return s;
if( s == 0.0f ) return s;
return fastPow( s, m_parent->m_slope2 );
}
}
inline sample_t MonstroSynth::calcSlope2( sample_t s )
{
if( m_parent->m_slope2 == 1.0f ) return s;
if( m_parent->m_slope[slope] == 1.0f ) return s;
if( s == 0.0f ) return s;
return fastPow( s, m_parent->m_slope2 );
return fastPow( s, m_parent->m_slope[slope] );
}
@@ -1449,14 +1433,14 @@ void MonstroInstrument::updateSamplerate()
void MonstroInstrument::updateSlope1()
{
const float slope = m_env1Slope.value();
m_slope1 = exp10f( slope * -1.0f );
m_slope[0] = exp10f( slope * -1.0f );
}
void MonstroInstrument::updateSlope2()
{
const float slope = m_env2Slope.value();
m_slope2 = exp10f( slope * -1.0f );
m_slope[1] = exp10f( slope * -1.0f );
}

View File

@@ -409,8 +409,7 @@ protected:
f_cnt_t m_env1_relF;
f_cnt_t m_env2_relF;
float m_slope1;
float m_slope2;
float m_slope [2];
f_cnt_t m_lfo1_att;
f_cnt_t m_lfo2_att;