Merge branch 'stable-1.1'
Conflicts: plugins/delay/delaycontrolsdialog.cpp plugins/delay/delayeffect.cpp
This commit is contained in:
@@ -35,7 +35,7 @@ DelayControls::DelayControls( DelayEffect* effect ):
|
||||
m_delayTimeModel( 2.0, 0.01, 20.0, 0.0001, 20000.0, this, tr( "Delay Samples" )) ,
|
||||
m_feedbackModel(0.0f,0.0f,1.0f,0.01f,this,tr( "Feedback" ) ),
|
||||
m_lfoTimeModel(2.0, 0.01, 20.0, 0.0001, 20000.0, this, tr( "Lfo Frequency" ) ),
|
||||
m_lfoAmountModel(0.0f,0.0f,0.1f,0.0001f, this, tr ( "Lfo Amount" ) )
|
||||
m_lfoAmountModel(0.0, 0.0, 2.0, 0.0001, 2000.0, this, tr ( "Lfo Amount" ) )
|
||||
{
|
||||
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( changeSampleRate() ) );
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ private:
|
||||
TempoSyncKnobModel m_delayTimeModel;
|
||||
FloatModel m_feedbackModel;
|
||||
TempoSyncKnobModel m_lfoTimeModel;
|
||||
FloatModel m_lfoAmountModel;
|
||||
TempoSyncKnobModel m_lfoAmountModel;
|
||||
|
||||
friend class DelayControlsDialog;
|
||||
friend class DelayEffect;
|
||||
|
||||
@@ -60,9 +60,9 @@ DelayControlsDialog::DelayControlsDialog( DelayControls *controls ) :
|
||||
lfoFreqKnob->setLabel( tr( "Rate" ) );
|
||||
lfoFreqKnob->setHintText( tr ( "Lfo Seconds:" ) + " ", "" );
|
||||
|
||||
Knob * lfoAmtKnob = new Knob( knobBright_26, this );
|
||||
TempoSyncKnob * lfoAmtKnob = new TempoSyncKnob( knobBright_26, this );
|
||||
lfoAmtKnob->move( 150,10 );
|
||||
lfoAmtKnob->setVolumeKnob( true );
|
||||
lfoAmtKnob->setVolumeKnob( false );
|
||||
lfoAmtKnob->setModel( &controls->m_lfoAmountModel );
|
||||
lfoAmtKnob->setLabel( tr( "Lfo" ) );
|
||||
lfoAmtKnob->setHintText( tr ( "Lfo Amt:" ) + " ", "" );
|
||||
|
||||
@@ -83,7 +83,7 @@ bool DelayEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames )
|
||||
const float d = dryLevel();
|
||||
const float w = wetLevel();
|
||||
const float length = m_delayControls.m_delayTimeModel.value() * Engine::mixer()->processingSampleRate();
|
||||
m_lfo->setAmplitude( m_delayControls.m_lfoAmountModel.value() );
|
||||
const float amplitude = m_delayControls.m_lfoAmountModel.value() * Engine::mixer()->processingSampleRate();
|
||||
m_lfo->setFrequency( 1.0 / m_delayControls.m_lfoTimeModel.value() );
|
||||
m_delay->setFeedback( m_delayControls.m_feedbackModel.value() );
|
||||
sample_t dryS[2];
|
||||
@@ -91,7 +91,7 @@ bool DelayEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames )
|
||||
{
|
||||
dryS[0] = buf[f][0];
|
||||
dryS[1] = buf[f][1];
|
||||
m_delay->setLength( ( float )length * ( float )m_lfo->tick() );
|
||||
m_delay->setLength( ( float )length + ( amplitude * ( float )m_lfo->tick() ) );
|
||||
m_delay->tick( buf[f] );
|
||||
|
||||
buf[f][0] = ( d * dryS[0] ) + ( w * buf[f][0] );
|
||||
|
||||
@@ -42,11 +42,5 @@ float Lfo::tick()
|
||||
float output = sinf( m_phase );
|
||||
m_phase += m_increment;
|
||||
|
||||
if( m_amplitude > 0.0001 )
|
||||
{
|
||||
return ( ( output * m_amplitude + 1.0 ) * 0.5 ) ;
|
||||
} else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
@@ -56,18 +56,6 @@ public:
|
||||
|
||||
|
||||
|
||||
inline void setAmplitude( float amplitude )
|
||||
{
|
||||
if( amplitude < 0.0 || amplitude > 1.0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_amplitude = amplitude;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
inline void setSampleRate ( int samplerate )
|
||||
{
|
||||
m_samplerate = samplerate;
|
||||
@@ -84,7 +72,6 @@ private:
|
||||
double m_frequency;
|
||||
double m_phase;
|
||||
double m_increment;
|
||||
double m_amplitude;
|
||||
double m_twoPiOverSr;
|
||||
int m_samplerate;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user