zynaddsubfx

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

commit b16cd05a5c1f3fa188c77b0ef419ec356e13bf1c
parent f35c87dceceacaa9a640024cfbe78877147be2e3
Author: paulnasca <paulnasca>
Date:   Tue, 17 Aug 2004 17:13:19 +0000

*** empty log message ***

Diffstat:
MChangeLog | 1+
Msrc/Params/EnvelopeParams.C | 7++++++-
Msrc/Params/EnvelopeParams.h | 3++-
Msrc/Params/FilterParams.C | 45+++++++++++++++++++++++++++------------------
Msrc/Params/FilterParams.h | 3+++
Msrc/Params/LFOParams.C | 10+++++++++-
Msrc/Params/LFOParams.h | 3++-
Msrc/UI/ADnoteUI.fl | 14+++++++-------
Msrc/UI/EnvelopeUI.fl | 2+-
Msrc/UI/FilterUI.fl | 5++---
Msrc/UI/LFOUI.fl | 22+++++++++++++++++-----
Msrc/UI/PADnoteUI.fl | 11+++++------
12 files changed, 82 insertions(+), 44 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -690,6 +690,7 @@ - Merge clipboardul la Oscil, Resonance, Filter si partial la ADsynth,SUBSynth si PADsynth 16 Aug 2004 - Corectata inca o eroare la pitch bend (aratata de Krzysztof Korpiela) - Adaugat refresh si la Filtru si paste la ADnote, SUBnote si PADsynth sunt complete +17 Aug 2004 - Adaugat clipboard la LFO \ No newline at end of file diff --git a/src/Params/EnvelopeParams.C b/src/Params/EnvelopeParams.C @@ -26,7 +26,7 @@ #include <stdlib.h> #include "EnvelopeParams.h" -EnvelopeParams::EnvelopeParams(unsigned char Penvstretch_,unsigned char Pforcedrelease_){ +EnvelopeParams::EnvelopeParams(unsigned char Penvstretch_,unsigned char Pforcedrelease_):Presets(){ int i; PA_dt=10;PD_dt=10;PR_dt=10;PA_val=64;PD_val=64;PS_val=64;PR_val=64; @@ -60,6 +60,7 @@ REALTYPE EnvelopeParams::getdt(char i){ * ADSR/ASR... initialisations */ void EnvelopeParams::ADSRinit(char A_dt,char D_dt,char S_val,char R_dt){ + setpresettype("envamplitude"); Envmode=1; PA_dt=A_dt;PD_dt=D_dt;PS_val=S_val;PR_dt=R_dt; Pfreemode=0; @@ -69,6 +70,7 @@ void EnvelopeParams::ADSRinit(char A_dt,char D_dt,char S_val,char R_dt){ }; void EnvelopeParams::ADSRinit_dB(char A_dt,char D_dt,char S_val,char R_dt){ + setpresettype("envamplitude"); Envmode=2; PA_dt=A_dt;PD_dt=D_dt;PS_val=S_val;PR_dt=R_dt; Pfreemode=0; @@ -78,6 +80,7 @@ void EnvelopeParams::ADSRinit_dB(char A_dt,char D_dt,char S_val,char R_dt){ }; void EnvelopeParams::ASRinit(char A_val,char A_dt,char R_val,char R_dt){ + setpresettype("envfrequency"); Envmode=3; PA_val=A_val;PA_dt=A_dt;PR_val=R_val;PR_dt=R_dt; Pfreemode=0; @@ -87,6 +90,7 @@ void EnvelopeParams::ASRinit(char A_val,char A_dt,char R_val,char R_dt){ }; void EnvelopeParams::ADSRinit_filter(char A_val,char A_dt,char D_val,char D_dt,char R_dt,char R_val){ + setpresettype("envfilter"); Envmode=4; PA_val=A_val;PA_dt=A_dt;PD_val=D_val;PD_dt=D_dt;PR_dt=R_dt;PR_val=R_val; Pfreemode=0; @@ -95,6 +99,7 @@ void EnvelopeParams::ADSRinit_filter(char A_val,char A_dt,char D_val,char D_dt,c }; void EnvelopeParams::ASRinit_bw(char A_val,char A_dt,char R_val,char R_dt){ + setpresettype("envbandwidth"); Envmode=5; PA_val=A_val;PA_dt=A_dt;PR_val=R_val;PR_dt=R_dt; Pfreemode=0; diff --git a/src/Params/EnvelopeParams.h b/src/Params/EnvelopeParams.h @@ -26,11 +26,12 @@ #include "../globals.h" #include "../Misc/Buffer.h" #include "../Misc/XMLwrapper.h" +#include "Presets.h" #define MAX_ENVELOPE_POINTS 40 #define MIN_ENVELOPE_DB -40 -class EnvelopeParams{ +class EnvelopeParams:public Presets{ public: EnvelopeParams(unsigned char Penvstretch_,unsigned char Pforcedrelease_); ~EnvelopeParams(); diff --git a/src/Params/FilterParams.C b/src/Params/FilterParams.C @@ -347,6 +347,19 @@ void FilterParams::saveloadbuf(Buffer *buf){ }; }; + +void FilterParams::add2XMLvowel(XMLwrapper *xml,int nvowel){ + xml->beginbranch("VOWEL",nvowel); + for (int nformant=0;nformant<FF_MAX_FORMANTS;nformant++){ + xml->beginbranch("FORMANT",nformant); + xml->addpar("freq",Pvowels[nvowel].formants[nformant].freq); + xml->addpar("amp",Pvowels[nvowel].formants[nformant].amp); + xml->addpar("q",Pvowels[nvowel].formants[nformant].q); + xml->endbranch(); + }; + xml->endbranch(); +}; + void FilterParams::add2XML(XMLwrapper *xml){ //filter parameters xml->addpar("category",Pcategory); @@ -366,15 +379,7 @@ void FilterParams::add2XML(XMLwrapper *xml){ xml->addpar("center_freq",Pcenterfreq); xml->addpar("octaves_freq",Poctavesfreq); for (int nvowel=0;nvowel<FF_MAX_VOWELS;nvowel++){ - xml->beginbranch("VOWEL",nvowel); - for (int nformant=0;nformant<FF_MAX_FORMANTS;nformant++){ - xml->beginbranch("FORMANT",nformant); - xml->addpar("freq",Pvowels[nvowel].formants[nformant].freq); - xml->addpar("amp",Pvowels[nvowel].formants[nformant].amp); - xml->addpar("q",Pvowels[nvowel].formants[nformant].q); - xml->endbranch(); - }; - xml->endbranch(); + add2XMLvowel(xml,nvowel); }; xml->addpar("sequence_size",Psequencesize); xml->addpar("sequence_stretch",Psequencestretch); @@ -389,6 +394,18 @@ void FilterParams::add2XML(XMLwrapper *xml){ }; +void FilterParams::getfromXMLvowel(XMLwrapper *xml,int nvowel){ + if (xml->enterbranch("VOWEL",nvowel)==0) return; + for (int nformant=0;nformant<FF_MAX_FORMANTS;nformant++){ + if (xml->enterbranch("FORMANT",nformant)==0) continue; + Pvowels[nvowel].formants[nformant].freq=xml->getpar127("freq",Pvowels[nvowel].formants[nformant].freq); + Pvowels[nvowel].formants[nformant].amp=xml->getpar127("amp",Pvowels[nvowel].formants[nformant].amp); + Pvowels[nvowel].formants[nformant].q=xml->getpar127("q",Pvowels[nvowel].formants[nformant].q); + xml->exitbranch(); + }; + xml->exitbranch(); +}; + void FilterParams::getfromXML(XMLwrapper *xml){ //filter parameters Pcategory=xml->getpar127("category",Pcategory); @@ -408,15 +425,7 @@ void FilterParams::getfromXML(XMLwrapper *xml){ Poctavesfreq=xml->getpar127("octaves_freq",Poctavesfreq); for (int nvowel=0;nvowel<FF_MAX_VOWELS;nvowel++){ - if (xml->enterbranch("VOWEL",nvowel)==0) continue; - for (int nformant=0;nformant<FF_MAX_FORMANTS;nformant++){ - if (xml->enterbranch("FORMANT",nformant)==0) continue; - Pvowels[nvowel].formants[nformant].freq=xml->getpar127("freq",Pvowels[nvowel].formants[nformant].freq); - Pvowels[nvowel].formants[nformant].amp=xml->getpar127("amp",Pvowels[nvowel].formants[nformant].amp); - Pvowels[nvowel].formants[nformant].q=xml->getpar127("q",Pvowels[nvowel].formants[nformant].q); - xml->exitbranch(); - }; - xml->exitbranch(); + getfromXMLvowel(xml,nvowel); }; Psequencesize=xml->getpar127("sequence_size",Psequencesize); Psequencestretch=xml->getpar127("sequence_stretch",Psequencestretch); diff --git a/src/Params/FilterParams.h b/src/Params/FilterParams.h @@ -35,8 +35,11 @@ class FilterParams:public Presets{ void saveloadbuf(Buffer *buf); void add2XML(XMLwrapper *xml); + void add2XMLvowel(XMLwrapper *xml,int nvowel); void defaults(); void getfromXML(XMLwrapper *xml); + void getfromXMLvowel(XMLwrapper *xml,int nvowel); + void getfromFilterParams(FilterParams *pars); diff --git a/src/Params/LFOParams.C b/src/Params/LFOParams.C @@ -27,7 +27,15 @@ int LFOParams::time; -LFOParams::LFOParams(char Pfreq_,char Pintensity_,char Pstartphase_, char PLFOtype_,char Prandomness_, char Pdelay_,char Pcontinous_,char fel_){ +LFOParams::LFOParams(char Pfreq_,char Pintensity_,char Pstartphase_, char PLFOtype_,char Prandomness_, char Pdelay_,char Pcontinous_,char fel_):Presets(){ + switch(fel_) { + case 0:setpresettype("Plfofrequency"); + break; + case 1:setpresettype("Plfoamplitude"); + break; + case 2:setpresettype("Plfofilter"); + break; + }; Dfreq=Pfreq_; Dintensity=Pintensity_; Dstartphase=Pstartphase_; diff --git a/src/Params/LFOParams.h b/src/Params/LFOParams.h @@ -25,8 +25,9 @@ #include "../Misc/Buffer.h" #include "../Misc/XMLwrapper.h" +#include "Presets.h" -class LFOParams{ +class LFOParams:public Presets{ public: LFOParams(char Pfreq_,char Pintensity_,char Pstartphase_, char PLFOtype_,char Prandomness_, char Pdelay_,char Pcontinous,char fel_); ~LFOParams(); diff --git a/src/UI/ADnoteUI.fl b/src/UI/ADnoteUI.fl @@ -177,7 +177,7 @@ class ADvoiceUI {: {public Fl_Group} Function {make_window()} {} { Fl_Window ADnoteVoiceParameters { label Voice - xywh {67 162 765 525} type Double hide + xywh {231 132 765 525} type Double hide class Fl_Group } { Fl_Group voiceparametersgroup { @@ -417,7 +417,7 @@ o->redraw();} code0 {o->value(pars->VoicePar[nvoice].PFreqEnvelopeEnabled);} } Fl_Group voicefreqlfogroup { - label {Frequency LFO} open + label {Frequency LFO } open xywh {215 290 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->VoicePar[nvoice].FreqLfo);} code1 {if (pars->VoicePar[nvoice].PFreqLfoEnabled==0) o->deactivate();} @@ -587,7 +587,7 @@ o->redraw();} code0 {o->value(pars->VoicePar[nvoice].PAmpEnvelopeEnabled);} } Fl_Group voiceamplfogroup { - label {Amplitude LFO} open + label {Amplitude LFO } open xywh {10 175 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->VoicePar[nvoice].AmpLfo);} code1 {if (pars->VoicePar[nvoice].PAmpLfoEnabled==0) o->deactivate();} @@ -637,7 +637,7 @@ o->redraw();} code0 {o->value(pars->VoicePar[nvoice].PFilterEnvelopeEnabled);} } Fl_Group voicefilterlfogroup { - label {Filter LFO} open + label {Filter LFO } open selected xywh {250 175 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->VoicePar[nvoice].FilterLfo);} code1 {if (pars->VoicePar[nvoice].PFilterLfoEnabled==0) o->deactivate();} @@ -790,7 +790,7 @@ pars->GlobalPar.PCoarseDetune = k+ code3 {o->lstep(10);} } Fl_Group freqlfo { - label {Frequency LFO} open + label {Frequency LFO } open xywh {215 295 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->GlobalPar.FreqLfo);} class LFOUI @@ -868,13 +868,13 @@ detunevalueoutput->do_callback();} open class WidgetPDial } Fl_Group ampenv { - label {ADSynth Global - Amplitude Envelope} open selected + label {ADSynth Global - Amplitude Envelope} open xywh {10 75 205 70} box FLAT_BOX color 51 align 144 code0 {o->init(pars->GlobalPar.AmpEnvelope);} class EnvelopeUI } {} Fl_Group amplfo { - label {Amplitude LFO} open + label {Amplitude LFO } open xywh {10 145 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->GlobalPar.AmpLfo);} class LFOUI diff --git a/src/UI/EnvelopeUI.fl b/src/UI/EnvelopeUI.fl @@ -192,7 +192,7 @@ return(1);} {} } } -class EnvelopeUI {: {public Fl_Group} +class EnvelopeUI {open : {public Fl_Group} } { Function {EnvelopeUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} { code {env=NULL; diff --git a/src/UI/FilterUI.fl b/src/UI/FilterUI.fl @@ -149,7 +149,7 @@ for (i=1;i<lx;i++){ decl {REALTYPE *graphpoints;} {} } -class FilterUI {open : {public Fl_Group,PresetsUI_} +class FilterUI {: {public Fl_Group,PresetsUI_} } { Function {FilterUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} { code {pars=NULL; @@ -508,8 +508,7 @@ if (nseqpos<pars->Psequencesize) vowel_counter->activate(); vowel_counter->value(pars->Psequence[nseqpos].nvowel);} {} } - Function {refresh()} {open - } { + Function {refresh()} {} { code {update_formant_window(); formantfiltergraph->redraw(); diff --git a/src/UI/LFOUI.fl b/src/UI/LFOUI.fl @@ -33,7 +33,10 @@ decl {\#include <FL/fl_draw.H>} {public decl {\#include <FL/fl_ask.H>} {public } -class LFOUI {: {public Fl_Group} +decl {\#include "PresetsUI.h"} {public +} + +class LFOUI {: {public Fl_Group, PresetsUI_} } { Function {LFOUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} { code {pars=NULL;} {} @@ -119,7 +122,7 @@ hide(); Fl_Check_Button continous { label {C.} callback {pars->Pcontinous=(int)o->value();} - tooltip {Continous LFO} xywh {150 13 25 15} down_box DOWN_BOX labelsize 11 + tooltip {Continous LFO} xywh {165 35 15 15} down_box DOWN_BOX labelsize 11 align 2 } Fl_Dial freqrand { label {F.R.} @@ -130,9 +133,19 @@ hide(); Fl_Dial stretch { label {Str.} callback {pars->Pstretch=(int)o->value();} - tooltip {LFO stretch} xywh {150 30 20 20} box ROUND_UP_BOX labelsize 10 maximum 127 step 1 + tooltip {LFO stretch} xywh {144 30 20 20} box ROUND_UP_BOX labelsize 10 maximum 127 step 1 class WidgetPDial } + Fl_Button {} { + label C + callback {presetsui->copy(pars);} + xywh {145 10 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(pars,this);} selected + xywh {162 10 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } } } } @@ -157,8 +170,7 @@ refresh(); lfoui->resize(this->x(),this->y(),this->w(),this->h()); -lfoparamswindow->label(this->label());} {selected - } +lfoparamswindow->label(this->label());} {} } decl {LFOParams *pars;} {} } diff --git a/src/UI/PADnoteUI.fl b/src/UI/PADnoteUI.fl @@ -223,7 +223,7 @@ class PADnoteUI {: {public PresetsUI_} xywh {0 0 535 395} } { Fl_Group harmonicstructuregroup { - label {Harmonic Structure} + label {Harmonic Structure} selected xywh {0 20 535 375} box ENGRAVED_BOX } { Fl_Group bwprofilegroup { @@ -781,7 +781,7 @@ pars->PCoarseDetune = k+ code3 {o->lstep(10);} } Fl_Group freqlfo { - label {Frequency LFO} open + label {Frequency LFO } open xywh {215 315 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->FreqLfo);} class LFOUI @@ -882,7 +882,7 @@ if (x==0) fixedfreqetdial->deactivate(); class EnvelopeUI } {} Fl_Group amplfo { - label {Amplitude LFO} open + label {Amplitude LFO } open xywh {10 165 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->AmpLfo);} class LFOUI @@ -906,7 +906,7 @@ hprofile->redraw();} class EnvelopeUI } {} Fl_Group filterlfo { - label {Filter LFO} open + label {Filter LFO } open xywh {250 200 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(pars->FilterLfo);} class LFOUI @@ -1042,8 +1042,7 @@ overtonepos->redraw(); osc->redraw(); pars->applyparameters(true); applybutton->color(FL_GRAY); -applybutton->parent()->redraw();} {selected - } +applybutton->parent()->redraw();} {} } Function {~PADnoteUI()} {} { code {delete(oscui);