diff --git a/include/EnvelopeAndLfoView.h b/include/EnvelopeAndLfoView.h index 8df71b0ed..2c054d71a 100644 --- a/include/EnvelopeAndLfoView.h +++ b/include/EnvelopeAndLfoView.h @@ -90,7 +90,9 @@ private: ledCheckBox * m_x100Cb; ledCheckBox * m_controlEnvAmountCb; - + + float m_randomGraph; + void updateRandomGraph(); } ; #endif diff --git a/src/core/EnvelopeAndLfoParameters.cpp b/src/core/EnvelopeAndLfoParameters.cpp index a709d0aea..4c16f2ecc 100644 --- a/src/core/EnvelopeAndLfoParameters.cpp +++ b/src/core/EnvelopeAndLfoParameters.cpp @@ -68,6 +68,7 @@ void EnvelopeAndLfoParameters::LfoInstances::reset() + void EnvelopeAndLfoParameters::LfoInstances::add( EnvelopeAndLfoParameters * lfo ) { QMutexLocker m( &m_lfoListMutex ); @@ -86,7 +87,6 @@ void EnvelopeAndLfoParameters::LfoInstances::remove( EnvelopeAndLfoParameters * - EnvelopeAndLfoParameters::EnvelopeAndLfoParameters( float _value_for_zero_amount, Model * _parent ) : @@ -219,12 +219,11 @@ inline sample_t EnvelopeAndLfoParameters::lfoShapeSample( fpp_t _frame_offset ) shape_sample = m_userWave.userWaveSample( phase ); break; case RandomWave: - shape_sample = m_random; if( frame == 0 ) { updateRandomWave(); - shape_sample = m_random; } + shape_sample = m_random; break; case SineWave: default: diff --git a/src/gui/widgets/EnvelopeAndLfoView.cpp b/src/gui/widgets/EnvelopeAndLfoView.cpp index dc5de9698..2cf8bdd43 100644 --- a/src/gui/widgets/EnvelopeAndLfoView.cpp +++ b/src/gui/widgets/EnvelopeAndLfoView.cpp @@ -535,16 +535,11 @@ void EnvelopeAndLfoView::paintEvent( QPaintEvent * ) val = Oscillator::squareSample( phase ); break; case EnvelopeAndLfoParameters::RandomWave: - val = Oscillator::sawSample( phase ); - // val = Oscillator::noiseSample( phase ); -// shape_sample = m_random; -// if( frame == 0 ) -// { -// updateRandomWave(); -// shape_sample = m_random; -// } -// break; -// val = Oscillator::squareSample( phase );// <- dummy! + if( x % (int)( 900 * m_lfoSpeedKnob->value() + 1 ) == 0 ) + { + updateRandomGraph(); + } + val = m_randomGraph; break; case EnvelopeAndLfoParameters::UserDefinedWave: val = m_params->m_userWave. @@ -577,6 +572,13 @@ void EnvelopeAndLfoView::paintEvent( QPaintEvent * ) +void EnvelopeAndLfoView::updateRandomGraph() +{ + m_randomGraph = Oscillator::noiseSample( 0.0f ); +} + + + void EnvelopeAndLfoView::lfoUserWaveChanged() {