Skip to content

Commit a091483

Browse files
committed
Added fading between wavetable to avoid noisy artefacts
Signed-off-by: Edge <mayatito51@hotmail.com>
1 parent 17cbb24 commit a091483

2 files changed

Lines changed: 26 additions & 0 deletions

File tree

src/K_Rush.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct Diode{
2828
short temp_buf[256]={0};
2929
bool tab_loaded = false;
3030
float out = 0.0f;
31+
float faded_type = 0.0f;
3132

3233

3334

@@ -56,6 +57,13 @@ struct Diode{
5657
LoadWaves();
5758
}
5859

60+
float dif_type = type - faded_type;
61+
if(dif_type>0){
62+
type += min(dif_type,0.01f);
63+
}
64+
if(dif_type<0){
65+
type += max(dif_type,-0.01f);
66+
}
5967

6068

6169
in=(in-(feedback*(gain/8.0f)));

src/WCO_Osc.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ struct VoltageControlledOscillator {
3131
float ar_window = 0.5f;
3232
float bl_window = 0.5f;
3333
float br_window = 0.5f;
34+
float faded_wavfr,faded_wavre = 0.0f;
3435
//
3536
bool syncEnabled = false;
3637
bool syncDirection = false;
@@ -119,6 +120,23 @@ struct VoltageControlledOscillator {
119120

120121
_wavefront*=63;
121122
_waverear*=63;
123+
124+
float dif_fr = _wavefront - faded_wavfr;
125+
if(dif_fr>0){
126+
_wavefront += min(dif_fr,0.01f);
127+
}
128+
if(dif_fr<0){
129+
_wavefront += max(dif_fr,-0.01f);
130+
}
131+
float dif_re = _waverear - faded_wavre;
132+
if(dif_re>0){
133+
_waverear += min(dif_re,0.01f);
134+
}
135+
if(dif_fr<0){
136+
_waverear += max(dif_re,-0.01f);
137+
}
138+
139+
122140
if(_wavefront>63.0f){_wavefront=63.0f;}
123141
if(_waverear>63.0f){_waverear=63.0f;}
124142
if(_wavefront<=0.0f){_wavefront=0.00f;}

0 commit comments

Comments
 (0)