zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 0cddf52a846e480df6b8d13f40ecce80d16783c0
parent 079edbea230702a0d92c0c4ec672553eaed99048
Author: paulnasca <paulnasca>
Date:   Fri, 25 Mar 2005 18:22:29 +0000

*** empty log message ***

Diffstat:
MChangeLog | 3+++
Msrc/Synth/OscilGen.C | 9++++++---
Msrc/Synth/PADnote.C | 2+-
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++){