commit 69fae97bdfef12359ff52c607caefbc87d140166
parent 51af878912521020c7d9175132228f8257271b53
Author: paulnasca <paulnasca>
Date: Sun, 13 Jun 2004 14:50:14 +0000
*** empty log message ***
Diffstat:
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -571,5 +571,7 @@
13 Iun 2004 - Adaugat filtrul "sinus" la OscilGen
- Managementul bancilor de instrumente este (aproape) complet
- Se cauta bancile si in '/usr/share/zynaddsubfx/banks' si '/usr/local/share/zynaddsubfx/banks'
+ - Corectata o eroare la filter la OscilGen care filtra diferit componentele sin si cos
+
diff --git a/src/Synth/OscilGen.C b/src/Synth/OscilGen.C
@@ -266,7 +266,7 @@ void OscilGen::oscilfilter(){
if (Pfiltertype==0) return;
REALTYPE par=1.0-Pfilterpar/128.0;
REALTYPE max=0.0;
- for (int i=0;i<OSCIL_SIZE/2-1;i++){
+ for (int i=1;i<OSCIL_SIZE/2-1;i++){
REALTYPE gain=1.0;
switch(Pfiltertype){
case 1: gain=pow(1.0-par*par*par,i);//lp
@@ -302,8 +302,8 @@ void OscilGen::oscilfilter(){
gain*=gain;
break;
};
- oscilFFTfreqs[OSCIL_SIZE-i-1]*=gain;
- oscilFFTfreqs[i+1]*=gain;
+ oscilFFTfreqs[OSCIL_SIZE-i]*=gain;
+ oscilFFTfreqs[i]*=gain;
REALTYPE tmp=oscilFFTfreqs[OSCIL_SIZE-i-1]*oscilFFTfreqs[OSCIL_SIZE-i-1]+
oscilFFTfreqs[i+1]*oscilFFTfreqs[i+1];
if (max<tmp) max=tmp;