Skip to content

Commit

Permalink
Merge pull request LMMS#1802 from curlymorphic/saBassBoost
Browse files Browse the repository at this point in the history
Enable sample exact controls for BassBoost plugin
  • Loading branch information
diizy committed Mar 19, 2015
2 parents 5018199 + c747c7a commit fe77fa4
Showing 1 changed file with 35 additions and 8 deletions.
43 changes: 35 additions & 8 deletions plugins/BassBooster/BassBooster.cpp
Expand Up @@ -83,18 +83,45 @@ bool BassBoosterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames
if( m_bbControls.m_gainModel.isValueChanged() ) { changeGain(); }
if( m_bbControls.m_ratioModel.isValueChanged() ) { changeRatio(); }

float gain = m_bbControls.m_gainModel.value();
ValueBuffer *gainBuffer = m_bbControls.m_gainModel.valueBuffer();
int gainInc = gainBuffer ? 1 : 0;
float *gainPtr = gainBuffer ? &( gainBuffer->values()[ 0 ] ) : &gain;

double outSum = 0.0;
const float d = dryLevel();
const float w = wetLevel();
for( fpp_t f = 0; f < frames; ++f )
if( gainBuffer )
{
outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1];

sample_t s[2] = { buf[f][0], buf[f][1] };
m_bbFX.nextSample( s[0], s[1] );

buf[f][0] = d * buf[f][0] + w * s[0];
buf[f][1] = d * buf[f][1] + w * s[1];
//process period using sample exact data
for( fpp_t f = 0; f < frames; ++f )
{
m_bbFX.leftFX().setGain( *gainPtr );
m_bbFX.rightFX().setGain( *gainPtr );
outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1];

sample_t s[2] = { buf[f][0], buf[f][1] };
m_bbFX.nextSample( s[0], s[1] );

buf[f][0] = d * buf[f][0] + w * s[0];
buf[f][1] = d * buf[f][1] + w * s[1];
gainPtr += gainInc;
}
} else
{
//process period without sample exact data
m_bbFX.leftFX().setGain( *gainPtr );
m_bbFX.rightFX().setGain( *gainPtr );
for( fpp_t f = 0; f < frames; ++f )
{
outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1];

sample_t s[2] = { buf[f][0], buf[f][1] };
m_bbFX.nextSample( s[0], s[1] );

buf[f][0] = d * buf[f][0] + w * s[0];
buf[f][1] = d * buf[f][1] + w * s[1];
}
}

checkGate( outSum / frames );
Expand Down

0 comments on commit fe77fa4

Please sign in to comment.