From 1ff0650a0df2234c04831b4284a126bb4e0ca55d Mon Sep 17 00:00:00 2001 From: Michael Gregorius Date: Sun, 7 Feb 2016 21:43:47 +0100 Subject: [PATCH] Removes the project lb303 which seems to have been inactive since 2008 According to the blame the project lb303 has been commented out from CMakeLists.txt on 22.07.2008. Therefore it does not seem to be actively maintained and is very likely to not even compile anymore. --- plugins/CMakeLists.txt | 1 - plugins/lb303/CMakeLists.txt | 3 - plugins/lb303/README | 87 ---- plugins/lb303/artwork.png | Bin 114428 -> 0 bytes plugins/lb303/lb303.cpp | 843 ----------------------------------- plugins/lb303/lb303.h | 271 ----------- plugins/lb303/logo.png | Bin 3468 -> 0 bytes 7 files changed, 1205 deletions(-) delete mode 100644 plugins/lb303/CMakeLists.txt delete mode 100644 plugins/lb303/README delete mode 100644 plugins/lb303/artwork.png delete mode 100644 plugins/lb303/lb303.cpp delete mode 100644 plugins/lb303/lb303.h delete mode 100644 plugins/lb303/logo.png diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 86e53b01b..55b27b344 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -25,7 +25,6 @@ ADD_SUBDIRECTORY(kicker) ADD_SUBDIRECTORY(ladspa_browser) ADD_SUBDIRECTORY(LadspaEffect) ADD_SUBDIRECTORY(lb302) -#ADD_SUBDIRECTORY(lb303) ADD_SUBDIRECTORY(MidiImport) ADD_SUBDIRECTORY(MidiExport) ADD_SUBDIRECTORY(MultitapEcho) diff --git a/plugins/lb303/CMakeLists.txt b/plugins/lb303/CMakeLists.txt deleted file mode 100644 index c5dd672e3..000000000 --- a/plugins/lb303/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDE(BuildPlugin) - -BUILD_PLUGIN(lb303 lb303.cpp lb303.h MOCFILES lb303.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/lb303/README b/plugins/lb303/README deleted file mode 100644 index 2a8058e56..000000000 --- a/plugins/lb303/README +++ /dev/null @@ -1,87 +0,0 @@ -LB303 Bass Synth - Known bugs, issues, and missing features ------------------------------------------------------------ - -2007.02.03 - First release --------------------------- - -Important note, in the current incarnation there are many behaviors, -constants, and other items that will be changed. This will result -in a change of the instrument's timbre and functionality. Therefore, -it would be wise to not make any masterpieces with the synth at -this point in time. - -BUG: - Fix the awful clicking cause by adjacent notes. This problem seems - to be caused by 'unexhausted buffers' That is, the problem manifests - itself to a greater degree when the user "buffer size" configuration - is increased to over 1024 frames or so. The problem is much less - noticable when the buffer size is set to 64 frames. - -BUG: - The synth does not make accomodations for sampling rates other than - 44100. This should be easy to fix, but I haven't gotten around to - it; nor do I have the means to test it. - -BUG: - I get segfaults now and then. Granted, I've rarely used LMMS - without also using LB302, so I do not know if the problem is actually - in the Bass Synth. I have gotten the backtraces a few times: - ... - mixer::renderNextBuffer() - mixer::nextAudioBuffer() - QOBject::activate_signal() - ??() - - and - - ... - instrumentTrack::play() - notePlayHandle() - instrumentTrack::processOutEvent() - fadeButton::activate() - QSingleShotTimer::start() - qStartTimer() - qKillTimer() - QGList::insertAt() - -TODO: - Add accent feature. This isn't as bad as it sounds, but will require - some tweaking to get right. - -TODO: - LB302 contains code for a short fixed-length default decay. If a - released note is using a user-defined VCA from the instrument - panel, then LB302 should not do anything special. However, if no - envelope is specified, then LB302 should request enough release-frames - in order to apply the built-in exponential decay. - -TODO: - The original TB303's square wave is not 50% duty cycle. The peaks are - supposed to slope down slightly. It would be nice to be able to - configure this. In fact, each waveform could have a parameter knob to - change some aspect of the wave. See lb302.cpp:643 for more info. - -TODO: - Must decide on proper action to take when a slide note is interrupted - by another slide note. Right now, the slide-from frequency is always - replaced with the prior note. However, we may wish to maintain the - current frequency in order to make the sound more continuous. - -TODO: - The default filter's distortion could use some work. - effectLib::distortion<> gets the job done, but the coefficients need - to more closely match that of lb302Filter3Pole's tanh distortion. - -TODO: - Slide decay needs a better knob mapping. sqrt()? lb302.cpp:588 - -TODO: - Consider making the slide trigger set the note to slide TO as opposed - to the note to slide FROM. I originally did FROM in order to match - the real 303. However, TO may be more intuitive. - -TODO: - Various code refactoring, as well as precomputing some values. - -TODO: - Remove one of the sawtooth waveforms in favor of the other? diff --git a/plugins/lb303/artwork.png b/plugins/lb303/artwork.png deleted file mode 100644 index 061e327358ab6d0d6b8515e8fef64a63eeb60bbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114428 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

y)q{OVVV8q}t|ruybZ5tLg*b5bCB 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

L}8z34Iy?oJZPw%8*5B+S5tb(Xsyjc6UNR_ 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 - * - * This file is part of LMMS - http://lmms.io - * - * lb303FilterIIR2 is based on the gsyn filter code by Andy Sloane. - * - * lb303Filter3Pole is based on the TB303 instrument written by - * Josep M Comajuncosas for the CSounds library - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#include - -#include "lb303.h" -#include "engine.h" -#include "InstrumentPlayHandle.h" -#include "InstrumentTrack.h" -#include "Knob.h" -#include "NotePlayHandle.h" -#include "templates.h" -#include "audio_port.h" - -#include "embed.cpp" - - - -// Envelope Recalculation period -#define ENVINC 64 - -// -// New config -// -#define LB_24_IGNORE_ENVELOPE -#define LB_FILTERED -//#define LB_DECAY -//#define LB_24_RES_TRICK - -#define LB_DIST_RATIO 4.0 -#define LB_24_VOL_ADJUST 3.0 -//#define LB_DECAY_NOTES - -#define LB_DEBUG - -#ifdef LB_DEBUG -#include -#endif - -// -// Old config -// - - -//#define engine::mixer()->processingSampleRate() 44100.0f - - -extern "C" -{ - -Plugin::Descriptor PLUGIN_EXPORT lb303_plugin_descriptor = -{ - STRINGIFY( PLUGIN_NAME ), - "LB303", - QT_TRANSLATE_NOOP( "pluginBrowser", - "Incomplete monophonic imitation tb303" ), - "Paul Giblock ", - 0x0100, - Plugin::Instrument, - new PluginPixmapLoader( "logo" ), - NULL -}; - -} - -// -// lb303Filter -// - -lb303Filter::lb303Filter(lb303FilterKnobState* p_fs) : - fs(p_fs), - vcf_c0(0), - vcf_e0(0), - vcf_e1(0) -{ -}; - - -void lb303Filter::recalc() -{ - vcf_e1 = exp(6.109 + 1.5876*(fs->envmod) + 2.1553*(fs->cutoff) - 1.2*(1.0-(fs->reso))); - vcf_e0 = exp(5.613 - 0.8*(fs->envmod) + 2.1553*(fs->cutoff) - 0.7696*(1.0-(fs->reso))); - vcf_e0*=M_PI/engine::mixer()->processingSampleRate(); - vcf_e1*=M_PI/engine::mixer()->processingSampleRate(); - vcf_e1 -= vcf_e0; - - vcf_rescoeff = exp(-1.20 + 3.455*(fs->reso)); -}; - - -void lb303Filter::envRecalc() -{ - vcf_c0 *= fs->envdecay; // Filter Decay. vcf_decay is adjusted for Hz and ENVINC - // vcf_rescoeff = exp(-1.20 + 3.455*(fs->reso)); moved above -}; - - -void lb303Filter::playNote() -{ - vcf_c0 = vcf_e1; -} - - -// -// lb303FilterIIR2 -// - -lb303FilterIIR2::lb303FilterIIR2(lb303FilterKnobState* p_fs) : - lb303Filter(p_fs), - vcf_d1(0), - vcf_d2(0), - vcf_a(0), - vcf_b(0), - vcf_c(1) -{ - - m_dist = new effectLib::distortion<>( 1.0, 1.0f); - -}; - - -lb303FilterIIR2::~lb303FilterIIR2() -{ - delete m_dist; -} - - -void lb303FilterIIR2::recalc() -{ - lb303Filter::recalc(); - //m_dist->setThreshold(0.5+(fs->dist*2.0)); - m_dist->setThreshold(fs->dist*75.0); -}; - - -void lb303FilterIIR2::envRecalc() -{ - float k, w; - - lb303Filter::envRecalc(); - - w = vcf_e0 + vcf_c0; // e0 is adjusted for Hz and doesn't need ENVINC - k = exp(-w/vcf_rescoeff); // Does this mean c0 is inheritantly? - - vcf_a = 2.0*cos(2.0*w) * k; - vcf_b = -k*k; - vcf_c = 1.0 - vcf_a - vcf_b; -} - - -float lb303FilterIIR2::process(const float& samp) -{ - float ret = vcf_a*vcf_d1 + vcf_b*vcf_d2 + vcf_c*samp; - // Delayed samples for filter - vcf_d2 = vcf_d1; - vcf_d1 = ret; - - if(fs->dist > 0) - ret=m_dist->nextSample(ret); - - // output = IIR2 + dry - return ret; -} - - -// -// lb303Filter3Pole -// - -lb303Filter3Pole::lb303Filter3Pole(lb303FilterKnobState *p_fs) : - lb303Filter(p_fs), - ay1(0), - ay2(0), - aout(0), - lastin(0) -{ -}; - - -void lb303Filter3Pole::recalc() -{ - // DO NOT CALL BASE CLASS - vcf_e0 = 0.000001; - vcf_e1 = 1.0; -} - - -// TODO: Try using k instead of vcf_reso -void lb303Filter3Pole::envRecalc() -{ - float w,k; - float kfco; - - lb303Filter::envRecalc(); - - // e0 is adjusted for Hz and doesn't need ENVINC - w = vcf_e0 + vcf_c0; - k = (fs->cutoff > 0.975)?0.975:fs->cutoff; - kfco = 50.f + (k)*((2300.f-1600.f*(fs->envmod))+(w) * - (700.f+1500.f*(k)+(1500.f+(k)*(engine::mixer()->processingSampleRate()/2.f-6000.f)) * - (fs->envmod)) ); - //+iacc*(.3+.7*kfco*kenvmod)*kaccent*kaccurve*2000 - - -#ifdef LB_24_IGNORE_ENVELOPE - // kfcn = fs->cutoff; - kfcn = 2.0 * kfco / engine::mixer()->processingSampleRate(); -#else - kfcn = w; -#endif - kp = ((-2.7528*kfcn + 3.0429)*kfcn + 1.718)*kfcn - 0.9984; - kp1 = kp+1.0; - kp1h = 0.5*kp1; -#ifdef LB_24_RES_TRICK - k = exp(-w/vcf_rescoeff); - kres = (((k))) * (((-2.7079*kp1 + 10.963)*kp1 - 14.934)*kp1 + 8.4974); -#else - kres = (((fs->reso))) * (((-2.7079*kp1 + 10.963)*kp1 - 14.934)*kp1 + 8.4974); -#endif - value = 1.0+( (fs->dist) *(1.5 + 2.0*kres*(1.0-kfcn))); // ENVMOD was DIST -} - - -float lb303Filter3Pole::process(const float& samp) -{ - float ax1 = lastin; - float ay11 = ay1; - float ay31 = ay2; - lastin = (samp) - tanh(kres*aout); - ay1 = kp1h * (lastin+ax1) - kp*ay1; - ay2 = kp1h * (ay1 + ay11) - kp*ay2; - aout = kp1h * (ay2 + ay31) - kp*aout; - - return tanh(aout*value)*LB_24_VOL_ADJUST/(1.0+fs->dist); -} - - -// -// LBSynth -// - -lb303Synth::lb303Synth( InstrumentTrack * _InstrumentTrack ) : - instrument( _InstrumentTrack, &lb303_plugin_descriptor ), - vcf_cut_knob( 0.75f, 0.0f, 1.5f, 0.005f, this, tr( "VCF Cutoff Frequency" ) ), - vcf_res_knob( 0.75f, 0.0f, 1.25f, 0.005f, this, tr( "VCF Resonance" ) ), - vcf_mod_knob( 0.1f, 0.0f, 1.0f, 0.005f, this, tr( "VCF Envelope Mod" ) ), - vcf_dec_knob( 0.1f, 0.0f, 1.0f, 0.005f, this, tr( "VCF Envelope Decay" ) ), - dist_knob( 0.0f, 0.0f, 1.0f, 0.01f, this, tr( "Distortion" ) ), - wave_knob( 0.0f, 0.0f, 5.0f, 1.0f, this, tr( "Waveform" ) ), - slide_dec_knob( 0.6f, 0.0f, 1.0f, 0.005f, this, tr( "Slide Decay" ) ), - slideToggle( false, this, tr( "Slide" ) ), - accentToggle( false, this, tr( "Accent" ) ), - deadToggle( false, this, tr( "Dead" ) ), - db24Toggle( false, this, tr( "24dB/oct Filter" ) ) - -{ - - connect( engine::mixer(), SIGNAL( sampleRateChanged( ) ), - this, SLOT ( filterChanged( ) ) ); - - connect( &vcf_cut_knob, SIGNAL( dataChanged( ) ), - this, SLOT ( filterChanged( ) ) ); - - connect( &vcf_res_knob, SIGNAL( dataChanged( ) ), - this, SLOT ( filterChanged( ) ) ); - - connect( &vcf_mod_knob, SIGNAL( dataChanged( ) ), - this, SLOT ( filterChanged( ) ) ); - - connect( &vcf_dec_knob, SIGNAL( dataChanged( ) ), - this, SLOT ( filterChanged( ) ) ); - - connect( &db24Toggle, SIGNAL( dataChanged( ) ), - this, SLOT ( db24Toggled( ) ) ); - - connect( &dist_knob, SIGNAL( dataChanged( ) ), - this, SLOT ( filterChanged( ))); - - - // SYNTH - - vco_inc = 0.0; - vco_c = 0; - vco_k = 0; - - vco_slide = 0; vco_slideinc = 0; - vco_slidebase = 0; - - fs.cutoff = 0; - fs.envmod = 0; - fs.reso = 0; - fs.envdecay = 0; - fs.dist = 0; - - vcf_envpos = ENVINC; - - // Start VCA on an attack. - vca_mode = 3; - vca_a = 0; - - //vca_attack = 1.0 - 0.94406088; - vca_attack = 1.0 - 0.96406088; - vca_decay = 0.99897516; - - vco_shape = SAWTOOTH; - - // Experimenting with a0 between original (0.5) and 1.0 - vca_a0 = 0.5; - vca_a = 9; - vca_mode = 3; - - vcf = new lb303FilterIIR2(&fs); - - sample_cnt = 0; - release_frame = 1<<24; - catch_frame = 0; - catch_decay = 0; - - recalcFilter(); - - last_offset = 0; - - new_freq = -1; - current_freq = -1; - delete_freq = -1; - - instrumentPlayHandle * iph = new instrumentPlayHandle( this ); - engine::mixer()->addPlayHandle( iph ); - - filterChanged(); -} - - -lb303Synth::~lb303Synth() -{ - delete vcf; -} - - -void lb303Synth::saveSettings( QDomDocument & _doc, - QDomElement & _this ) -{ - vcf_cut_knob.saveSettings( _doc, _this, "vcf_cut" ); - vcf_res_knob.saveSettings( _doc, _this, "vcf_res" ); - vcf_mod_knob.saveSettings( _doc, _this, "vcf_mod" ); - vcf_dec_knob.saveSettings( _doc, _this, "vcf_dec" ); - - wave_knob.saveSettings( _doc, _this, "shape"); - dist_knob.saveSettings( _doc, _this, "dist"); - slide_dec_knob.saveSettings( _doc, _this, "slide_dec"); - - slideToggle.saveSettings( _doc, _this, "slide"); - deadToggle.saveSettings( _doc, _this, "dead"); - db24Toggle.saveSettings( _doc, _this, "db24"); -} - - -void lb303Synth::loadSettings( const QDomElement & _this ) -{ - vcf_cut_knob.loadSettings( _this, "vcf_cut" ); - vcf_res_knob.loadSettings( _this, "vcf_res" ); - vcf_mod_knob.loadSettings( _this, "vcf_mod" ); - vcf_dec_knob.loadSettings( _this, "vcf_dec" ); - - dist_knob.loadSettings( _this, "dist"); - wave_knob.loadSettings( _this, "shape"); - slide_dec_knob.loadSettings( _this, "slide_dec"); - - slideToggle.loadSettings( _this, "slide"); - deadToggle.loadSettings( _this, "dead"); - db24Toggle.loadSettings( _this, "db24"); - - filterChanged(); -} - -// TODO: Split into one function per knob. envdecay doesn't require -// recalcFilter. -void lb303Synth::filterChanged() -{ - fs.cutoff = vcf_cut_knob.value(); - fs.reso = vcf_res_knob.value(); - fs.envmod = vcf_mod_knob.value(); - fs.dist = LB_DIST_RATIO*dist_knob.value(); - - float d = 0.2 + (2.3*vcf_dec_knob.value()); - - d *= engine::mixer()->processingSampleRate(); // d *= smpl rate - fs.envdecay = pow(0.1, 1.0/d * ENVINC); // decay is 0.1 to the 1/d * ENVINC - // vcf_envdecay is now adjusted for both - // sampling rate and ENVINC - recalcFilter(); -} - - -void lb303Synth::db24Toggled() -{ - delete vcf; - if(db24Toggle.value()) { - vcf = new lb303Filter3Pole(&fs); - } - else { - vcf = new lb303FilterIIR2(&fs); - } - recalcFilter(); -} - - - -QString lb303Synth::nodeName() const -{ - return( lb303_plugin_descriptor.name ); -} - - -void lb303Synth::recalcFilter() -{ - vcf->recalc(); - - vcf_envpos = ENVINC; // Trigger filter update in process() -} - -inline int MIN(int a, int b) { - return (aprocessingSampleRate(); // TODO: Use actual sampling rate. -} - -int lb303Synth::process(sampleFrame *outbuf, const Uint32 size) -{ - unsigned int i; - float w; - float samp; - - if( delete_freq == current_freq ) { - // Normal release - delete_freq = -1; - vca_mode = 1; - } - - if( new_freq > 0.0f ) { - lb303Note note; - note.vco_inc = GET_INC( true_freq ); - note.dead = deadToggle.value(); - initNote(¬e); - - current_freq = new_freq; - - new_freq = -1.0f; - } - - - - // TODO: NORMAL RELEASE - // vca_mode = 1; - - for(i=0;i= ENVINC) { - vcf->envRecalc(); - - vcf_envpos = 0; - - if (vco_slide) { - vco_inc=vco_slidebase-vco_slide; - // Calculate coeff from dec_knob on knob change. - vco_slide*= 0.9+(slide_dec_knob.value()*0.0999); // TODO: Adjust for Hz and ENVINC - - } - } - - - sample_cnt++; - vcf_envpos++; - - int decay_frames = 128; - - // update vco - vco_c += vco_inc; - - if(vco_c > 0.5) - vco_c -= 1.0; - - /*LB303 - if (catch_decay > 0) { - if (catch_decay < decay_frames) { - catch_decay++; - } - }*/ - - switch(int(rint(wave_knob.value()))) { - case 0: vco_shape = SAWTOOTH; break; - case 1: vco_shape = INVERTED_SAWTOOTH; break; - case 2: vco_shape = TRIANGLE; break; - case 3: vco_shape = SQUARE; break; - case 4: vco_shape = ROUND_SQUARE; break; - case 5: vco_shape = MOOG; break; - default: vco_shape = SAWTOOTH; break; - } - - // add vco_shape_param the changes the shape of each curve. - // merge sawtooths with triangle and square with round square? - switch (vco_shape) { - case SAWTOOTH: // p0: curviness of line - vco_k = vco_c; // Is this sawtooth backwards? - break; - - case INVERTED_SAWTOOTH: // p0: curviness of line - vco_k = -vco_c; // Is this sawtooth backwards? - break; - - case TRIANGLE: // p0: duty rev.saw<->triangle<->saw p1: curviness - vco_k = (vco_c*2.0)+0.5; - if (vco_k>0.5) - vco_k = 1.0- vco_k; - break; - - case SQUARE: // p0: slope of top - vco_k = (vco_c<0)?0.5:-0.5; - break; - - case ROUND_SQUARE: // p0: width of round - vco_k = (vco_c<0)?(sqrtf(1-(vco_c*vco_c*4))-0.5):-0.5; - break; - - case MOOG: // Maybe the fall should be exponential/sinsoidal instead of quadric. - // [-0.5, 0]: Rise, [0,0.25]: Slope down, [0.25,0.5]: Low - vco_k = (vco_c*2.0)+0.5; - if (vco_k>1.0) { - vco_k = -0.5 ; - } - else if (vco_k>0.5) { - w = 2.0*(vco_k-0.5)-1.0; - vco_k = 0.5 - sqrtf(1.0-(w*w)); - } - vco_k *= 2.0; // MOOG wave gets filtered away - break; - } - - // Write out samples. - samp = vcf->process(vco_k) * vca_a; - - /* - float releaseFrames = desiredReleaseFrames(); - samp *= (releaseFrames - catch_decay)/releaseFrames; - */ - //LB303 samp *= (float)(decay_frames - catch_decay)/(float)decay_frames; - - for(int c=0; c=release_frame) { - vca_mode=1; - } - */ - - // Handle Envelope - if(vca_mode==0) { - vca_a+=(vca_a0-vca_a)*vca_attack; - if(sample_cnt>=0.5*engine::mixer()->processingSampleRate()) - vca_mode = 2; - } - else if(vca_mode == 1) { - vca_a *= vca_decay; - - // the following line actually speeds up processing - if(vca_a < (1/65536.0)) { - vca_a = 0; - vca_mode = 3; - } - } - - } - return 1; -} - - -/* Prepares the active LB303 note. I separated this into a function because it - * needs to be called onplayNote() when a new note is started. It also needs - * to be called from process() when a prior edge-to-edge note is done releasing. - */ - -void lb303Synth::initNote( lb303Note *n) -{ - catch_decay = 0; - - vco_inc = n->vco_inc; - - // Always reset vca on non-dead notes, and - // Only reset vca on decaying(decayed) and never-played - if(n->dead == 0 || (vca_mode==1 || vca_mode==3)) { - //printf(" good\n"); - sample_cnt = 0; - vca_mode = 0; - // LB303: - //vca_a = 0; - } - else { - vca_mode = 2; - } - - // Initiate Slide - // TODO: Break out into function, should be called again on detuneChanged - if (vco_slideinc) { - vco_slide = vco_inc-vco_slideinc; // Slide amount - vco_slidebase = vco_inc; // The REAL frequency - vco_slideinc = 0; // reset from-note - } - else { - vco_slide = 0; - } - // End break-out - - // Slide-from note, save inc for next note - if (slideToggle.value()) { - vco_slideinc = vco_inc; // May need to equal vco_slidebase+vco_slide if last note slid - } - - - recalcFilter(); - - if(n->dead ==0){ - // Swap next two blocks?? - vcf->playNote(); - // Ensure envelope is recalculated - vcf_envpos = ENVINC; - - // Double Check - //vca_mode = 0; - //vca_a = 0.0; - } -} - - -void lb303Synth::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) -{ - if( _n->arpBaseNote() ) - { - //return; - } - - // Currently have release/decay disabled - // Start the release decay if this is the first release period. - //if (_n->released() && catch_decay == 0) - // catch_decay = 1; - - bool decay_note = false; - - release_frame = _n->framesLeft() - desiredReleaseFrames(); - - - if(deadToggle.value() == 0 && decay_note) { - } - /// Start a new note. - else if( _n->totalFramesPlayed() == 0 ) { - new_freq = _n->unpitchedFrequency(); - true_freq = _n->frequency(); - _n->m_pluginData = this; - } - - // Check for slide - if( _n->unpitchedFrequency() == current_freq ) { - true_freq = _n->frequency(); - - if( slideToggle.value() ) { - vco_slidebase = GET_INC( true_freq ); // The REAL frequency - } - else { - vco_inc = GET_INC( true_freq ); - } - } -} - - - -void lb303Synth::play( sampleFrame * _working_buffer ) -{ - //printf("."); - const fpp_t frames = engine::mixer()->framesPerPeriod(); - - process( _working_buffer, frames); - instrumentTrack()->processAudioBuffer( _working_buffer, frames, - NULL ); -} - - - -void lb303Synth::deleteNotePluginData( NotePlayHandle * _n ) -{ - //printf("GONE\n"); - if( _n->unpitchedFrequency() == current_freq ) - { - delete_freq = current_freq; - } -} - - -PluginView * lb303Synth::instantiateView( QWidget * _parent ) -{ - return( new lb303SynthView( this, _parent ) ); -} - - -lb303SynthView::lb303SynthView( Instrument * _instrument, QWidget * _parent ) : - InstrumentView( _instrument, _parent ) -{ - // GUI - m_vcfCutKnob = new Knob( knobBright_26, this ); - m_vcfCutKnob->move( 75, 130 ); - m_vcfCutKnob->setHintText( tr( "Cutoff Freq:" ) + " ", "" ); - m_vcfCutKnob->setLabel( tr("CUT") ); - - m_vcfResKnob = new Knob( knobBright_26, this ); - m_vcfResKnob->move( 120, 130 ); - m_vcfResKnob->setHintText( tr( "Resonance:" ) + " ", "" ); - m_vcfResKnob->setLabel( tr("RES") ); - - m_vcfModKnob = new Knob( knobBright_26, this ); - m_vcfModKnob->move( 165, 130 ); - m_vcfModKnob->setHintText( tr( "Env Mod:" ) + " ", "" ); - m_vcfModKnob->setLabel( tr("ENV MOD") ); - - m_vcfDecKnob = new Knob( knobBright_26, this ); - m_vcfDecKnob->move( 210, 130 ); - m_vcfDecKnob->setHintText( tr( "Decay:" ) + " ", "" ); - m_vcfDecKnob->setLabel( tr("DEC") ); - - m_slideToggle = new LedCheckBox( "Slide", this ); - m_slideToggle->move( 10, 180 ); - - m_accentToggle = new LedCheckBox( "Accent", this ); - m_accentToggle->move( 10, 200 ); - m_accentToggle->setDisabled(true); - - m_deadToggle = new LedCheckBox( "Dead", this ); - m_deadToggle->move( 10, 220 ); - - m_db24Toggle = new LedCheckBox( "24dB/oct", this ); - m_db24Toggle->setWhatsThis( - tr( "303-es-que, 24dB/octave, 3 pole filter" ) ); - m_db24Toggle->move( 10, 150); - - - m_slideDecKnob = new Knob( knobBright_26, this ); - m_slideDecKnob->move( 210, 75 ); - m_slideDecKnob->setHintText( tr( "Slide Decay:" ) + " ", "" ); - m_slideDecKnob->setLabel( tr( "SLIDE")); - - m_distKnob = new Knob( knobBright_26, this ); - m_distKnob->move( 210, 190 ); - m_distKnob->setHintText( tr( "DIST:" ) + " ", "" ); - m_distKnob->setLabel( tr( "DIST")); - - - m_waveKnob = new Knob( knobBright_26, this ); - m_waveKnob->move( 120, 75 ); - m_waveKnob->setHintText( tr( "WAVE:" ) + " ", "" ); - m_waveKnob->setLabel( tr( "WAVE")); - - - setAutoFillBackground( true ); - QPalette pal; - pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( - "artwork" ) ); - setPalette( pal ); -} - - -lb303SynthView::~lb303SynthView() -{ -} - - -void lb303SynthView::modelChanged() -{ - lb303Synth * syn = castModel(); - - m_vcfCutKnob->setModel( &syn->vcf_cut_knob ); - m_vcfResKnob->setModel( &syn->vcf_res_knob ); - m_vcfDecKnob->setModel( &syn->vcf_dec_knob ); - m_vcfModKnob->setModel( &syn->vcf_mod_knob ); - m_slideDecKnob->setModel( &syn->slide_dec_knob ); - - m_distKnob->setModel( &syn->dist_knob ); - m_waveKnob->setModel( &syn->wave_knob ); - - m_slideToggle->setModel( &syn->slideToggle ); - m_accentToggle->setModel( &syn->accentToggle ); - m_deadToggle->setModel( &syn->deadToggle ); - m_db24Toggle->setModel( &syn->db24Toggle ); -} - - - -extern "C" -{ - -// necessary for getting instance out of shared lib -Plugin * PLUGIN_EXPORT lmms_plugin_main( Model *, void * _data ) -{ - - return( new lb303Synth( - static_cast( _data ) ) ); -} - - -} - - diff --git a/plugins/lb303/lb303.h b/plugins/lb303/lb303.h deleted file mode 100644 index 893cd0acd..000000000 --- a/plugins/lb303/lb303.h +++ /dev/null @@ -1,271 +0,0 @@ -/* - * lb303.h - declaration of class lb303 which is a bass synth attempting to - * emulate the Roland TB303 bass synth - * - * Copyright (c) 2006-2008 Paul Giblock - * - * This file is part of LMMS - http://lmms.io - * - * lb303FilterIIR2 is based on the gsyn filter code by Andy Sloane. - * - * lb303Filter3Pole is based on the TB303 instrument written by - * Josep M Comajuncosas for the CSounds library - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#ifndef _LB303_H_ -#define _LB303_H_ - -#include "effect_lib.h" -#include "Instrument.h" -#include "InstrumentView.h" -#include "LedCheckbox.h" -#include "Knob.h" -#include "Mixer.h" - -class lb303SynthView; -class NotePlayHandle; - -class lb303FilterKnobState -{ - public: - float cutoff; - float reso; - float envmod; - float envdecay; - float dist; -}; - - -class lb303Filter -{ - public: - lb303Filter(lb303FilterKnobState* p_fs); - virtual ~lb303Filter() {}; - - virtual void recalc(); - virtual void envRecalc(); - virtual float process(const float& samp)=0; - virtual void playNote(); - - protected: - lb303FilterKnobState *fs; - - // Filter Decay - float vcf_c0; // c0=e1 on retrigger; c0*=ed every sample; cutoff=e0+c0 - float vcf_e0, // e0 and e1 for interpolation - vcf_e1; - float vcf_rescoeff; // Resonance coefficient [0.30,9.54] -}; - -class lb303FilterIIR2 : public lb303Filter -{ - public: - lb303FilterIIR2(lb303FilterKnobState* p_fs); - virtual ~lb303FilterIIR2(); - - virtual void recalc(); - virtual void envRecalc(); - virtual float process(const float& samp); - - protected: - float vcf_d1, // d1 and d2 are added back into the sample with - vcf_d2; // vcf_a and b as coefficients. IIR2 resonance - // loop. - - // IIR2 Coefficients for mixing dry and delay. - float vcf_a, // Mixing coefficients for the final sound. - vcf_b, // - vcf_c; - - effectLib::monoToStereoAdaptor > * m_dist_fx; - effectLib::distortion<> * m_dist; -}; - - -class lb303Filter3Pole : public lb303Filter -{ - public: - lb303Filter3Pole(lb303FilterKnobState* p_fs); - - //virtual void recalc(); - virtual void envRecalc(); - virtual void recalc(); - virtual float process(const float& samp); - - protected: - float kfcn, - kp, - kp1, - kp1h, - kres; - float ay1, - ay2, - aout, - lastin, - value; -}; - - - -class lb303Note -{ -public: - float vco_inc; - bool dead; -}; - - -class lb303Synth : public Instrument -{ - Q_OBJECT -public: - lb303Synth( InstrumentTrack * _instrument_track ); - virtual ~lb303Synth(); - - virtual void play( sampleFrame * _working_buffer ); - virtual void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ); - virtual void deleteNotePluginData( NotePlayHandle * _n ); - - - virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); - virtual void loadSettings( const QDomElement & _this ); - - virtual QString nodeName() const; - - virtual f_cnt_t desiredReleaseFrames() const - { - return 0; //4048; - } - - virtual PluginView * instantiateView( QWidget * _parent ); - -private: - - void initNote(lb303Note *note); - - -private: - FloatModel vcf_cut_knob; - FloatModel vcf_res_knob; - FloatModel vcf_mod_knob; - FloatModel vcf_dec_knob; - - FloatModel vco_fine_detune_knob; - - FloatModel dist_knob; - FloatModel wave_knob; - FloatModel slide_dec_knob; - - BoolModel slideToggle; - BoolModel accentToggle; - BoolModel deadToggle; - BoolModel db24Toggle; - - -public slots: - void filterChanged(); - void db24Toggled(); - -private: - // Oscillator - float vco_inc, // Sample increment for the frequency. Creates Sawtooth. - vco_k, // Raw oscillator sample [-0.5,0.5] - vco_c; // Raw oscillator sample [-0.5,0.5] - - float vco_slide, //* Current value of slide exponential curve. Nonzero=sliding - vco_slideinc, //* Slide base to use in next node. Nonzero=slide next note - vco_slidebase; //* The base vco_inc while sliding. - - float vco_detune; - - enum vco_shape_t { SAWTOOTH, INVERTED_SAWTOOTH, SQUARE, TRIANGLE, MOOG, ROUND_SQUARE }; - vco_shape_t vco_shape; - - // User settings - lb303FilterKnobState fs; - lb303Filter *vcf; - - int release_frame; - - - // More States - int vcf_envpos; // Update counter. Updates when >= ENVINC - - float vca_attack, // Amp attack - vca_decay, // Amp decay - vca_a0, // Initial amplifier coefficient - vca_a; // Amplifier coefficient. - - // Envelope State - int vca_mode; // 0: attack, 1: decay, 2: idle, 3: never played - - // My hacks - int sample_cnt; - - int last_offset; - - int catch_frame; - int catch_decay; - - float new_freq; - float current_freq; - float delete_freq; - float true_freq; - - void recalcFilter(); - - int process(sampleFrame *outbuf, const Uint32 size); - - friend class lb303SynthView; - -} ; - - -class lb303SynthView : public InstrumentView -{ - Q_OBJECT -public: - lb303SynthView( Instrument * _instrument, - QWidget * _parent ); - virtual ~lb303SynthView(); - -private: - virtual void modelChanged(); - - Knob * m_vcfCutKnob; - Knob * m_vcfResKnob; - Knob * m_vcfDecKnob; - Knob * m_vcfModKnob; - - Knob * m_vcoFineDetuneKnob; - - Knob * m_distKnob; - Knob * m_waveKnob; - Knob * m_slideDecKnob; - - LedCheckBox * m_slideToggle; - LedCheckBox * m_accentToggle; - LedCheckBox * m_deadToggle; - LedCheckBox * m_db24Toggle; - -} ; - -#endif diff --git a/plugins/lb303/logo.png b/plugins/lb303/logo.png deleted file mode 100644 index 22c99d1e46e1c58aa1642a6283a27aa00ae57fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3468 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 us?~zl