kicker: noise option + artwork
This commit is contained in:
@@ -36,10 +36,11 @@ template<class FX = DspEffectLibrary::StereoBypass>
|
||||
class KickerOsc
|
||||
{
|
||||
public:
|
||||
KickerOsc( const FX & fx, const float start, const float end, const float offset, const float slope, const float env, const float length ) :
|
||||
KickerOsc( const FX & fx, const float start, const float end, const float noise, const float offset, const float slope, const float env, const float length ) :
|
||||
m_phase( offset ),
|
||||
m_startFreq( start ),
|
||||
m_endFreq( end ),
|
||||
m_noise( noise ),
|
||||
m_slope( slope ),
|
||||
m_env( env ),
|
||||
m_length( length ),
|
||||
@@ -59,7 +60,7 @@ public:
|
||||
{
|
||||
const double gain = ( 1 - fastPow( ( m_counter < m_length ) ? m_counter / m_length : 1, m_env ) );
|
||||
//~ qDebug( "%f", gain );
|
||||
const sample_t s = Oscillator::sinSample( m_phase );
|
||||
const sample_t s = Oscillator::sinSample( m_phase ) + ( Oscillator::noiseSample( 0 ) * gain * gain * m_noise );
|
||||
buf[frame][0] = s * gain;
|
||||
buf[frame][1] = s * gain;
|
||||
m_FX.nextSample( buf[frame][0], buf[frame][1] );
|
||||
@@ -77,6 +78,7 @@ private:
|
||||
float m_phase;
|
||||
const float m_startFreq;
|
||||
const float m_endFreq;
|
||||
const float m_noise;
|
||||
const float m_slope;
|
||||
const float m_env;
|
||||
const float m_length;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 8.6 KiB |
@@ -64,6 +64,7 @@ kickerInstrument::kickerInstrument( InstrumentTrack * _instrument_track ) :
|
||||
m_distModel( 0.8f, 0.0f, 100.0f, 0.1f, this, tr( "Distortion" ) ),
|
||||
m_gainModel( 1.0f, 0.1f, 5.0f, 0.05f, this, tr( "Gain" ) ),
|
||||
m_envModel( 0.163f, 0.01f, 1.0f, 0.001f, this, tr( "Env" ) ),
|
||||
m_noiseModel( 0.0f, 0.0f, 1.0f, 0.01f, this, tr( "Noise" ) ),
|
||||
m_clickModel( 0.4f, 0.0f, 1.0f, 0.05f, this, tr( "Click" ) ),
|
||||
m_slopeModel( 0.06f, 0.001f, 1.0f, 0.001f, this, tr( "Slope" ) )
|
||||
{
|
||||
@@ -88,6 +89,7 @@ void kickerInstrument::saveSettings( QDomDocument & _doc,
|
||||
m_distModel.saveSettings( _doc, _this, "dist" );
|
||||
m_gainModel.saveSettings( _doc, _this, "gain" );
|
||||
m_envModel.saveSettings( _doc, _this, "env" );
|
||||
m_noiseModel.saveSettings( _doc, _this, "noise" );
|
||||
m_clickModel.saveSettings( _doc, _this, "click" );
|
||||
m_slopeModel.saveSettings( _doc, _this, "slope" );
|
||||
}
|
||||
@@ -103,6 +105,7 @@ void kickerInstrument::loadSettings( const QDomElement & _this )
|
||||
m_distModel.loadSettings( _this, "dist" );
|
||||
m_gainModel.loadSettings( _this, "gain" );
|
||||
m_envModel.loadSettings( _this, "env" );
|
||||
m_noiseModel.loadSettings( _this, "noise" );
|
||||
m_clickModel.loadSettings( _this, "click" );
|
||||
m_slopeModel.loadSettings( _this, "slope" );
|
||||
}
|
||||
@@ -136,6 +139,7 @@ void kickerInstrument::playNote( NotePlayHandle * _n,
|
||||
m_gainModel.value() ),
|
||||
m_startFreqModel.value(),
|
||||
m_endFreqModel.value(),
|
||||
m_noiseModel.value(),
|
||||
m_clickModel.value() * 0.25f,
|
||||
m_slopeModel.value(),
|
||||
m_envModel.value(),
|
||||
@@ -206,7 +210,7 @@ public:
|
||||
kickerKnob( QWidget * _parent ) :
|
||||
knob( knobStyled, _parent )
|
||||
{
|
||||
setFixedSize( 37, 47 );
|
||||
setFixedSize( 35, 45 );
|
||||
}
|
||||
};
|
||||
|
||||
@@ -219,35 +223,40 @@ kickerInstrumentView::kickerInstrumentView( Instrument * _instrument,
|
||||
{
|
||||
m_startFreqKnob = new kickerKnob( this );
|
||||
m_startFreqKnob->setHintText( tr( "Start frequency:" ) + " ", "Hz" );
|
||||
m_startFreqKnob->move( 12, 124 );
|
||||
m_startFreqKnob->move( 15, 100 );
|
||||
|
||||
m_endFreqKnob = new kickerKnob( this );
|
||||
m_endFreqKnob->setHintText( tr( "End frequency:" ) + " ", "Hz" );
|
||||
m_endFreqKnob->move( 59, 124 );
|
||||
|
||||
m_decayKnob = new kickerKnob( this );
|
||||
m_decayKnob->setHintText( tr( "Decay:" ) + " ", "ms" );
|
||||
m_decayKnob->move( 107, 124 );
|
||||
|
||||
m_distKnob = new kickerKnob( this );
|
||||
m_distKnob->setHintText( tr( "Distortion:" ) + " ", "" );
|
||||
m_distKnob->move( 155, 124 );
|
||||
|
||||
m_gainKnob = new kickerKnob( this );
|
||||
m_gainKnob->setHintText( tr( "Gain:" ) + " ", "" );
|
||||
m_gainKnob->move( 203, 124 );
|
||||
|
||||
m_envKnob = new kickerKnob( this );
|
||||
m_envKnob->setHintText( tr( "Env:" ) + " ", "" );
|
||||
m_envKnob->move( 203, 204 );
|
||||
|
||||
m_clickKnob = new kickerKnob( this );
|
||||
m_clickKnob->setHintText( tr( "Click:" ) + " ", "" );
|
||||
m_clickKnob->move( 12, 204 );
|
||||
m_endFreqKnob->move( 60, 100 );
|
||||
|
||||
m_slopeKnob = new kickerKnob( this );
|
||||
m_slopeKnob->setHintText( tr( "Slope:" ) + " ", "" );
|
||||
m_slopeKnob->move( 59, 204 );
|
||||
m_slopeKnob->move( 105, 100 );
|
||||
|
||||
m_gainKnob = new kickerKnob( this );
|
||||
m_gainKnob->setHintText( tr( "Gain:" ) + " ", "" );
|
||||
m_gainKnob->move( 15, 155 );
|
||||
|
||||
m_decayKnob = new kickerKnob( this );
|
||||
m_decayKnob->setHintText( tr( "Length:" ) + " ", "ms" );
|
||||
m_decayKnob->move( 60, 155 );
|
||||
|
||||
m_envKnob = new kickerKnob( this );
|
||||
m_envKnob->setHintText( tr( "Env:" ) + " ", "" );
|
||||
m_envKnob->move( 105, 155 );
|
||||
|
||||
m_noiseKnob = new kickerKnob( this );
|
||||
m_noiseKnob->setHintText( tr( "Noise:" ) + " ", "" );
|
||||
m_noiseKnob->move( 200, 45 );
|
||||
|
||||
m_distKnob = new kickerKnob( this );
|
||||
m_distKnob->setHintText( tr( "Distortion:" ) + " ", "" );
|
||||
m_distKnob->move( 200, 100 );
|
||||
|
||||
m_clickKnob = new kickerKnob( this );
|
||||
m_clickKnob->setHintText( tr( "Click:" ) + " ", "" );
|
||||
m_clickKnob->move( 200, 155 );
|
||||
|
||||
|
||||
setAutoFillBackground( true );
|
||||
QPalette pal;
|
||||
@@ -275,6 +284,7 @@ void kickerInstrumentView::modelChanged()
|
||||
m_distKnob->setModel( &k->m_distModel );
|
||||
m_gainKnob->setModel( &k->m_gainModel );
|
||||
m_envKnob->setModel( &k->m_envModel );
|
||||
m_noiseKnob->setModel( &k->m_noiseModel );
|
||||
m_clickKnob->setModel( &k->m_clickModel );
|
||||
m_slopeKnob->setModel( &k->m_slopeModel );
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ private:
|
||||
FloatModel m_distModel;
|
||||
FloatModel m_gainModel;
|
||||
FloatModel m_envModel;
|
||||
FloatModel m_noiseModel;
|
||||
FloatModel m_clickModel;
|
||||
FloatModel m_slopeModel;
|
||||
|
||||
@@ -92,6 +93,7 @@ private:
|
||||
knob * m_distKnob;
|
||||
knob * m_gainKnob;
|
||||
knob * m_envKnob;
|
||||
knob * m_noiseKnob;
|
||||
knob * m_clickKnob;
|
||||
knob * m_slopeKnob;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user