Fix monstro slopes

This commit is contained in:
Vesa
2015-01-15 17:17:33 +02:00
parent 24f869c379
commit e33645f9ab
2 changed files with 7 additions and 18 deletions

View File

@@ -817,18 +817,11 @@ inline void MonstroSynth::updateModulators( float * env1, float * env2, float *
}
inline sample_t MonstroSynth::calcSlope1( sample_t s )
inline sample_t MonstroSynth::calcSlope( int slope, sample_t s )
{
if( m_parent->m_slope1 == 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_slope1 );
}
inline sample_t MonstroSynth::calcSlope2( sample_t s )
{
if( m_parent->m_slope2 == 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] );
}
@@ -1439,14 +1432,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 );
}