commit 0cddf52a846e480df6b8d13f40ecce80d16783c0
parent 079edbea230702a0d92c0c4ec672553eaed99048
Author: paulnasca <paulnasca>
Date: Fri, 25 Mar 2005 18:22:29 +0000
*** empty log message ***
Diffstat:
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -778,6 +778,9 @@
14 Mar 2005 - Mici modificari la afisarea RMS-ului
- Actualizat textul copyright-ului la anul 2005
22 Mar 2005 - Corectata o mica eroare care facea ca la schimbari foarte lente al parametrilor sa nu se actualizeze Format Filter
+25 Mar 2005 - Corectata o eroare care facea ca uneori, la anumite setari ale lui SepctrumAdjust din OscilGen sa rezulte semnal zero
+ Corectata o mica eroare care facea ca daca se foloseste setarea 440Hz la Padsynth sa se aleaga sample-ul incorect
+
\ No newline at end of file
diff --git a/src/Synth/OscilGen.C b/src/Synth/OscilGen.C
@@ -560,18 +560,21 @@ void OscilGen::spectrumadjust(){
if (par>=0.0) par=pow(5.0,par);
else par=pow(8.0,par);
break;
- case 2: par=pow(10.0,(1.0-par)*3.0)*0.00095;
+ case 2: par=pow(10.0,(1.0-par)*3.0)*0.25;
break;
- case 3: par=pow(10.0,(1.0-par)*3.0)*0.00095;
+ case 3: par=pow(10.0,(1.0-par)*3.0)*0.25;
break;
};
+
+
REALTYPE max=0.0;
for (int i=0;i<OSCIL_SIZE/2;i++){
REALTYPE tmp=pow(oscilFFTfreqs.c[i],2)+pow(oscilFFTfreqs.s[i],2.0);
if (max<tmp) max=tmp;
};
- max=sqrt(max);
+ max=sqrt(max)/OSCIL_SIZE*2.0;
if (max<1e-8) max=1.0;
+
for (int i=0;i<OSCIL_SIZE/2;i++){
REALTYPE mag=sqrt(pow(oscilFFTfreqs.s[i],2)+pow(oscilFFTfreqs.c[i],2.0))/max;
diff --git a/src/Synth/PADnote.C b/src/Synth/PADnote.C
@@ -51,7 +51,7 @@ PADnote::PADnote(PADnoteParameters *parameters, Controller *ctl_,REALTYPE freq,
//find out the closest note
- REALTYPE logfreq=log(freq*pow(2.0,NoteGlobalPar.Detune/1200.0));
+ REALTYPE logfreq=log(basefreq*pow(2.0,NoteGlobalPar.Detune/1200.0));
REALTYPE mindist=fabs(logfreq-log(pars->sample[0].basefreq+0.0001));
nsample=0;
for (int i=1;i<PAD_MAX_SAMPLES;i++){