commit 37a6c99a15b468d315d9cebc9d20695b02dbc2a5
parent 9d1fd07a0c8e74071a9ae3bdd022dd82ed6e6727
Author: paulnasca <paulnasca>
Date: Thu, 14 Sep 2006 18:35:36 +0000
*** empty log message ***
Diffstat:
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -804,5 +804,6 @@
16 Apr 2006 - Corectata o eroare care facea ca sa nu se foloseasca insertion effect la master
20 Aug 2006 - Adaugat 88200 ca rata de esantionare
+14 Sep 2006 - Se afiseaza spectrul la nota cu frecventa de 440 Hz la Oscil si pentru parametru Adaptive Harmonics
diff --git a/src/Synth/OscilGen.C b/src/Synth/OscilGen.C
@@ -719,7 +719,8 @@ void OscilGen::prepare(){
};
void OscilGen::adaptiveharmonic(FFTFREQS f,REALTYPE freq){
- if ((Padaptiveharmonics==0)||(freq<1.0)) return;
+ if ((Padaptiveharmonics==0)/*||(freq<1.0)*/) return;
+ if (freq<1.0) freq=440.0;
FFTFREQS inf;
newFFTFREQS(&inf,OSCIL_SIZE/2);
@@ -974,6 +975,7 @@ short int OscilGen::get(REALTYPE *smps,REALTYPE freqHz,int resonance){
*/
void OscilGen::getspectrum(int n, REALTYPE *spc,int what){
if (n>OSCIL_SIZE/2) n=OSCIL_SIZE/2;
+
for (int i=1;i<n;i++){
if (what==0){
spc[i-1]=sqrt(oscilFFTfreqs.c[i]*oscilFFTfreqs.c[i]
@@ -984,7 +986,14 @@ void OscilGen::getspectrum(int n, REALTYPE *spc,int what){
basefuncFFTfreqs.s[i]*basefuncFFTfreqs.s[i]);
};
};
- if (what==0) adaptiveharmonicpostprocess(spc,n-1);
+
+ if (what==0) {
+ for (int i=0;i<n;i++) outoscilFFTfreqs.s[i]=outoscilFFTfreqs.c[i]=spc[i+1];
+ for (int i=n;i<OSCIL_SIZE/2;i++) outoscilFFTfreqs.s[i]=outoscilFFTfreqs.c[i]=0.0;
+ adaptiveharmonic(outoscilFFTfreqs,0.0);
+ for (int i=1;i<n;i++) spc[i-1]=outoscilFFTfreqs.s[i];
+ adaptiveharmonicpostprocess(spc,n-1);
+ };
};