commit 10f80847541ddab719a1c1e822672bff050c718e
parent 8e460d4b56293d194fa05d1b0f15d8b968885e82
Author: paulnasca <paulnasca>
Date: Sat, 14 Feb 2004 10:45:09 +0000
*** empty log message ***
Diffstat:
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}