commit c01009ab4686b658e5eb55eee3bd8d84a3687a5a
parent 95863fcc127a481a8cae6a5f1503cc81256353a1
Author: paulnasca <paulnasca>
Date: Sun, 28 Nov 2004 21:47:27 +0000
*** empty log message ***
Diffstat:
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/Synth/OscilGen.C b/src/Synth/OscilGen.C
@@ -720,8 +720,8 @@ void OscilGen::adaptiveharmonic(FFTFREQS f,REALTYPE freq){
FFTFREQS inf;
newFFTFREQS(&inf,OSCIL_SIZE/2);
for (int i=0;i<OSCIL_SIZE/2;i++) {
- inf.s[i]=f.s[i];
- inf.c[i]=f.c[i];
+ inf.s[i]=pow(fabs(f.s[i]),0.5)*(f.s[i]<0?-1.0:1.0);
+ inf.c[i]=pow(fabs(f.c[i]),0.5)*(f.c[i]<0?-1.0:1.0);
f.s[i]=0.0;
f.c[i]=0.0;
};
@@ -743,6 +743,7 @@ void OscilGen::adaptiveharmonic(FFTFREQS f,REALTYPE freq){
};
// printf("%d\n",down);
+
for (int i=0;i<OSCIL_SIZE/2-2;i++){
REALTYPE h=i*rap;
int high=(int)(i*rap);
@@ -774,7 +775,13 @@ void OscilGen::adaptiveharmonic(FFTFREQS f,REALTYPE freq){
};
};
+ f.c[0]=0.0;f.s[0]=0.0;
deleteFFTFREQS(&inf);
+
+ for (int i=1;i<OSCIL_SIZE/2;i++) {
+ f.s[i]=f.s[i]*f.s[i]*(f.s[i]<0?-1.0:1.0);
+ f.c[i]=f.c[i]*f.c[i]*(f.c[i]<0?-1.0:1.0);
+ };
};