Best version of lb302 yet
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1288 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
* plugins/lb302/lb302.cpp:
|
||||
* plugins/lb302/lb302.h:
|
||||
First version (and probably last) of new IPH-based lb302
|
||||
New version (and probably last) of new IPH-based lb302
|
||||
|
||||
2008-07-06 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
|
||||
@@ -361,6 +361,8 @@ lb302Synth::lb302Synth( instrumentTrack * _instrumentTrack ) :
|
||||
previous_freq = -1;
|
||||
previous_vco_inc = 0;
|
||||
previous_sample = 0;
|
||||
previous_sample_hold = 0;
|
||||
previous_sample_vca = 0;
|
||||
delete_freq = -1;
|
||||
|
||||
|
||||
@@ -563,6 +565,11 @@ int lb302Synth::process(sampleFrame *outbuf, const Uint32 size)
|
||||
}
|
||||
}
|
||||
|
||||
if( sample_cnt <= 0 ) {
|
||||
previous_sample_hold = previous_sample;
|
||||
previous_sample_vca = 0.01f;
|
||||
}
|
||||
|
||||
sample_cnt++;
|
||||
vcf_envpos++;
|
||||
|
||||
@@ -640,12 +647,27 @@ int lb302Synth::process(sampleFrame *outbuf, const Uint32 size)
|
||||
//samp = vcf->process(vco_k)*2.0*vca_a;
|
||||
//samp = vcf->process(vco_k)*2.0;
|
||||
samp = vcf->process(vco_k) * vca_a;
|
||||
//printf("%f %d\n", vco_c, sample_cnt);
|
||||
//printf("%f %d\n", vco_c, sample_cnt);
|
||||
|
||||
|
||||
//samp = vco_k * vca_a;
|
||||
|
||||
if( sample_cnt <= 4 )
|
||||
{
|
||||
// vca_a = 0;
|
||||
}
|
||||
/*
|
||||
if( previous_sample_vca <= 1.0f )
|
||||
samp += (1.0f- previous_sample_vca) * previous_sample_hold;
|
||||
previous_sample_vca *= 1.2f;
|
||||
*/
|
||||
|
||||
|
||||
previous_sample = samp;
|
||||
|
||||
//if( sample_cnt < 32 && previous_freq > 0.0f )
|
||||
//{
|
||||
previous_sample *= 0.96406088;
|
||||
//previous_sample *= 0.96406088;
|
||||
//float oldamt = (32.0f-(float)sample_cnt)*previous_sample/32.0f;
|
||||
//printf("%d old %f\n", sample_cnt, oldamt);
|
||||
//samp += previous_sample;
|
||||
@@ -708,7 +730,7 @@ void lb302Synth::initNote( lb302Note *n)
|
||||
sample_cnt = 0;
|
||||
vca_mode = 0;
|
||||
// LB303:
|
||||
vca_a = 0;
|
||||
//vca_a = 0;
|
||||
}
|
||||
else {
|
||||
vca_mode = 2;
|
||||
@@ -834,7 +856,7 @@ void lb302Synth::deleteNotePluginData( notePlayHandle * _n )
|
||||
{
|
||||
delete_freq = current_freq;
|
||||
//previous_freq = current_freq;
|
||||
previous_sample = vco_k * vca_a;
|
||||
//previous_sample = vco_k * vca_a;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -242,6 +242,8 @@ private:
|
||||
float previous_freq;
|
||||
float previous_vco_inc;
|
||||
float previous_sample;
|
||||
float previous_sample_hold;
|
||||
float previous_sample_vca;
|
||||
float previous_count;
|
||||
float delete_freq;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user