zynaddsubfx

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

commit 10f80847541ddab719a1c1e822672bff050c718e
parent 8e460d4b56293d194fa05d1b0f15d8b968885e82
Author: paulnasca <paulnasca>
Date:   Sat, 14 Feb 2004 10:45:09 +0000

*** empty log message ***

Diffstat:
MChangeLog | 3++-
Msrc/Misc/Master.C | 2++
Msrc/Misc/Part.C | 36+++++++++---------------------------
Msrc/Misc/Part.h | 4++--
Msrc/Params/ADnoteParameters.C | 11++++++++---
Msrc/Params/SUBnoteParameters.C | 3++-
Msrc/Synth/OscilGen.C | 5+++--
Msrc/UI/PartUI.fl | 10++++------
8 files changed, 32 insertions(+), 42 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -534,4 +534,5 @@ 12 Feb 2004 - Continuat incarcarea parametrilor XML si la part (neterminat) 13 Feb 2004 - Terminat de adaugat parametrii la incarcarea XML 14 Feb 2004 - Se poate incarca si instrumente - + - Rezolvata o problema la coarse detune + - Corectate cateva erori la incarcarea XML-ului diff --git a/src/Misc/Master.C b/src/Misc/Master.C @@ -819,6 +819,7 @@ void Master::getfromXML(XMLwrapper *xml){ ctl.NRPN.receive=xml->getparbool("nrpn_receive",ctl.NRPN.receive); + part[0]->Penabled=0; for (int npart=0;npart<NUM_MIDI_PARTS;npart++){ if (xml->enterbranch("PART",npart)==0) continue; part[npart]->getfromXML(xml); @@ -830,6 +831,7 @@ void Master::getfromXML(XMLwrapper *xml){ xml->exitbranch(); }; + sysefx[0]->changeeffect(0); if (xml->enterbranch("SYSTEM_EFFECTS")){ for (int nefx=0;nefx<NUM_SYS_EFX;nefx++){ if (xml->enterbranch("SYSTEM_EFFECT",nefx)==0) continue; diff --git a/src/Misc/Part.C b/src/Misc/Part.C @@ -103,9 +103,6 @@ void Part::defaultsinstrument(){ memset(info.Pauthor,0,MAX_INFO_TEXT_SIZE+1); memset(info.Pcomments,0,MAX_INFO_TEXT_SIZE+1); - PADnoteenabled=1; - PSUBnoteenabled=0; - Pkitmode=0; Pdrummode=0; @@ -237,9 +234,10 @@ void Part::NoteOn(unsigned char note,unsigned char velocity,int masterkeyshift){ partnote[pos].itemsplaying=0; if (Pkitmode==0){//init the notes for the "normal mode" partnote[pos].kititem[0].sendtoparteffect=0; - if (PADnoteenabled!=0) partnote[pos].kititem[0].adnote=new ADnote(kit[0].adpars,&ctl,notebasefreq,vel,portamento,note); - if (PSUBnoteenabled!=0) partnote[pos].kititem[0].subnote=new SUBnote(kit[0].subpars,&ctl,notebasefreq,vel,portamento,note); - if ((PADnoteenabled!=0)||(PSUBnoteenabled!=0)) partnote[pos].itemsplaying++; + if (kit[0].Padenabled!=0) partnote[pos].kititem[0].adnote=new ADnote(kit[0].adpars,&ctl,notebasefreq,vel,portamento,note); + if (kit[0].Psubenabled!=0) partnote[pos].kititem[0].subnote=new SUBnote(kit[0].subpars,&ctl,notebasefreq,vel,portamento,note); + if ((kit[0].Padenabled!=0)||(kit[0].Psubenabled!=0)) partnote[pos].itemsplaying++; + } else {//init the notes for the "kit mode" for (int item=0;item<NUM_KIT_ITEMS;item++){ if (kit[item].Pmuted!=0) continue; @@ -592,10 +590,6 @@ void Part::swapcopyitem(int item1, int item2, int mode){ int e2=kit[item2].Penabled; if ((e1==0) && (e2==0)) return;//both items are disabled - - kit[0].Padenabled=PADnoteenabled; - kit[0].Psubenabled=PSUBnoteenabled; - if ((e1==0)&&(mode==0)) {//copy a null item to a existent item setkititemstatus (item2,0);//delete item 2 }; @@ -621,9 +615,6 @@ void Part::swapcopyitem(int item1, int item2, int mode){ tmpbuf.changemode(0); saveloadbufkititem(&tmpbuf,item1,1); }; - - PADnoteenabled=kit[0].Padenabled; - PSUBnoteenabled=kit[0].Psubenabled; }; @@ -786,9 +777,9 @@ void Part::saveloadbuf(Buffer *buf,int instrumentonly){ buf->rwbytepar(n,&Pkeylimit); break; //Instrument data - case 0xB0: buf->rwbytepar(n,&PADnoteenabled); + case 0xB0: buf->rwbytepar(n,&kit[0].Padenabled); break; - case 0xB1: buf->rwbytepar(n,&PSUBnoteenabled); + case 0xB1: buf->rwbytepar(n,&kit[0].Psubenabled); break; case 0xB2: tmp=0; if ((disablekitloading!=0)&&(buf->getmode()==0)) @@ -842,12 +833,12 @@ void Part::saveloadbuf(Buffer *buf,int instrumentonly){ }; break; case 0xC0: if ((buf->getminimal()!=0) && (buf->getmode()!=0) - && (PADnoteenabled==0)) break; + && (kit[0].Padenabled==0)) break; if (buf->getmode()!=0) buf->rwbyte(&npar); kit[0].adpars->saveloadbuf(buf); break; case 0xC1: if ((buf->getminimal()!=0) && (buf->getmode()!=0) - && (PSUBnoteenabled==0)) break; + && (kit[0].Psubenabled==0)) break; if (buf->getmode()!=0) buf->rwbyte(&npar); kit[0].subpars->saveloadbuf(buf); break; @@ -934,16 +925,8 @@ void Part::saveloadbuf(Buffer *buf,int instrumentonly){ buf->rwbyte(&tmp); }; - kit[0].Padenabled=PADnoteenabled; - kit[0].Psubenabled=PSUBnoteenabled; - }; -/* - unsigned char Pkitmode;//if the kitmode is enabled - unsigned char Pdrummode;//if all keys are mapped and the system is 12tET (used for drums) - -*/ void Part::add2XMLinstrument(XMLwrapper *xml){ xml->beginbranch("INFO"); @@ -1080,6 +1063,7 @@ void Part::getfromXMLinstrument(XMLwrapper *xml){ Pkitmode=xml->getpar127("kit_mode",Pkitmode); Pdrummode=xml->getparbool("drum_mode",Pdrummode); + setkititemstatus(0,0); for (int i=0;i<NUM_KIT_ITEMS;i++){ if (xml->enterbranch("INSTRUMENT_KIT_ITEM",i)==0) continue; setkititemstatus(i,xml->getparbool("enabled",kit[i].Penabled)); @@ -1097,8 +1081,6 @@ void Part::getfromXMLinstrument(XMLwrapper *xml){ kit[i].Psendtoparteffect=xml->getpar127("send_to_instrument_effect",kit[i].Psendtoparteffect); kit[i].Padenabled=xml->getparbool("add_enabled",kit[i].Padenabled); - - if (xml->enterbranch("ADD_SYNTH_PARAMETERS")){ kit[i].adpars->getfromXML(xml); xml->exitbranch(); diff --git a/src/Misc/Part.h b/src/Misc/Part.h @@ -106,8 +106,8 @@ class Part{ void setPpanning(char Ppanning); unsigned char Pvelsns;//velocity sensing (amplitude velocity scale) unsigned char Pveloffs;//velocity offset - unsigned char PADnoteenabled;//if ADnote is enabled - unsigned char PSUBnoteenabled;//if SUBnote is enabled +// zzzz unsigned char PADnoteenabled;//if ADnote is enabled +//zzz unsigned char PSUBnoteenabled;//if SUBnote is enabled unsigned char Pnoteon;//if the part receives NoteOn messages unsigned char Pkitmode;//if the kitmode is enabled unsigned char Pdrummode;//if all keys are mapped and the system is 12tET (used for drums) diff --git a/src/Params/ADnoteParameters.C b/src/Params/ADnoteParameters.C @@ -391,6 +391,8 @@ void ADnoteParameters::saveloadbufvoice(Buffer *buf,unsigned char nvoice){ unsigned char tmp=0xff; buf->rwbyte(&tmp); }; + + }; @@ -669,6 +671,8 @@ void ADnoteParameters::add2XML(XMLwrapper *xml){ xml->beginbranch("FREQUENCY_PARAMETERS"); xml->addpar("detune",GlobalPar.PDetune); +// printf("%d\n",GlobalPar.PCoarseDetune); + xml->addpar("coarse_detune",GlobalPar.PCoarseDetune); xml->addpar("detune_type",GlobalPar.PDetuneType); @@ -739,7 +743,7 @@ void ADnoteParameters::getfromXML(XMLwrapper *xml){ if (xml->enterbranch("FREQUENCY_PARAMETERS")){ GlobalPar.PDetune=xml->getpar("detune",GlobalPar.PDetune,0,16383); - GlobalPar.PCoarseDetune=xml->getpar127("coarse_detune",GlobalPar.PCoarseDetune); + GlobalPar.PCoarseDetune=xml->getpar("coarse_detune",GlobalPar.PCoarseDetune,0,16383); GlobalPar.PDetuneType=xml->getpar127("detune_type",GlobalPar.PDetuneType); xml->enterbranch("FREQUENCY_ENVELOPE"); @@ -778,6 +782,7 @@ void ADnoteParameters::getfromXML(XMLwrapper *xml){ }; for (int nvoice=0;nvoice<NUM_VOICES;nvoice++){ + VoicePar[nvoice].Enabled=0; if (xml->enterbranch("VOICE",nvoice)==0) continue; getfromXMLvoice(xml,nvoice); xml->exitbranch(); @@ -789,7 +794,7 @@ void ADnoteParameters::getfromXML(XMLwrapper *xml){ void ADnoteParameters::getfromXMLvoice(XMLwrapper *xml,int nvoice){ if (nvoice>=NUM_VOICES) return; - VoicePar[nvoice].Enabled=xml->getparbool("enabled",VoicePar[nvoice].Enabled); + VoicePar[nvoice].Enabled=xml->getparbool("enabled",0); VoicePar[nvoice].Type=xml->getpar127("type",VoicePar[nvoice].Type); VoicePar[nvoice].PDelay=xml->getpar127("delay",VoicePar[nvoice].PDelay); @@ -839,7 +844,7 @@ void ADnoteParameters::getfromXMLvoice(XMLwrapper *xml,int nvoice){ VoicePar[nvoice].PDetune=xml->getpar("detune",VoicePar[nvoice].PDetune,0,16383); - VoicePar[nvoice].PCoarseDetune=xml->getpar127("coarse_detune",VoicePar[nvoice].PCoarseDetune); + VoicePar[nvoice].PCoarseDetune=xml->getpar("coarse_detune",VoicePar[nvoice].PCoarseDetune,0,16383); VoicePar[nvoice].PDetuneType=xml->getpar127("detune_type",VoicePar[nvoice].PDetuneType); VoicePar[nvoice].PFreqEnvelopeEnabled=xml->getparbool("freq_envelope_enabled",VoicePar[nvoice].PFreqEnvelopeEnabled); diff --git a/src/Params/SUBnoteParameters.C b/src/Params/SUBnoteParameters.C @@ -282,6 +282,7 @@ void SUBnoteParameters::getfromXML(XMLwrapper *xml){ Pstart=xml->getpar127("start",Pstart); if (xml->enterbranch("HARMONICS")){ + Phmag[0]=0; for (int i=0;i<MAX_SUB_HARMONICS;i++){ if (xml->enterbranch("HARMONIC",i)==0) continue; Phmag[i]=xml->getpar127("mag",Phmag[i]); @@ -308,7 +309,7 @@ void SUBnoteParameters::getfromXML(XMLwrapper *xml){ PfixedfreqET=xml->getpar127("fixed_freq_et",PfixedfreqET); PDetune=xml->getpar("detune",PDetune,0,16383); - PCoarseDetune=xml->getpar127("coarse_detune",PCoarseDetune); + PCoarseDetune=xml->getpar("coarse_detune",PCoarseDetune,0,16383); PDetuneType=xml->getpar127("detune_type",PDetuneType); Pbandwidth=xml->getpar127("bandwidth",Pbandwidth); diff --git a/src/Synth/OscilGen.C b/src/Synth/OscilGen.C @@ -896,10 +896,11 @@ void OscilGen::getfromXML(XMLwrapper *xml){ Pamprandpower=xml->getpar127("amp_rand_power",Pamprandpower); if (xml->enterbranch("HARMONICS")){ + Phmag[0]=64;Phphase[0]=64; for (int n=0;n<MAX_AD_HARMONICS;n++){ if (xml->enterbranch("HARMONIC",n+1)==0) continue; - Phmag[n]=xml->getpar127("mag",Phmag[n]); - Phphase[n]=xml->getpar127("phase",Phphase[n]); + Phmag[n]=xml->getpar127("mag",64); + Phphase[n]=xml->getpar127("phase",64); xml->exitbranch(); }; xml->exitbranch(); diff --git a/src/UI/PartUI.fl b/src/UI/PartUI.fl @@ -298,10 +298,9 @@ class PartUI {: {public Fl_Group,PartUI_} } { Fl_Check_Button adsynenabledcheck { label ADsyn - callback {part->PADnoteenabled=(int) o->value(); -part->kit[0].Padenabled=part->PADnoteenabled;} + callback {part->kit[0].Padenabled=(int) o->value();} tooltip {enable/disable ADsynth} xywh {6 86 70 20} box PLASTIC_UP_BOX down_box DOWN_BOX color 222 selection_color 218 labelfont 1 labelsize 12 - code1 {o->value(part->PADnoteenabled);} + code1 {o->value(part->kit[0].Padenabled);} } Fl_Button {} { label {ADs edit} @@ -310,10 +309,9 @@ part->kit[0].Padenabled=part->PADnoteenabled;} } Fl_Check_Button subsynenabledcheck { label SUBsyn - callback {part->PSUBnoteenabled=(int) o->value(); -part->kit[0].Psubenabled=part->PSUBnoteenabled;} + callback {part->kit[0].Psubenabled=(int) o->value();} tooltip {enable/disable SUBsynth} xywh {81 86 80 20} box PLASTIC_UP_BOX down_box DOWN_BOX color 222 selection_color 218 labelfont 1 labelsize 12 - code1 {o->value(part->PSUBnoteenabled);} + code1 {o->value(part->kit[0].Psubenabled);} } Fl_Button {} { label {SUBs edit}