zynaddsubfx

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

commit 14541d6f612979ad713756b8bd93e142de7e8f4c
parent 69da34cca193e20f693a75aefc08cd01598bc97a
Author: paulnasca <paulnasca>
Date:   Sat,  7 Feb 2004 18:33:30 +0000

small bugfix

Diffstat:
MChangeLog | 4+++-
Msrc/Misc/Buffer.C | 5++++-
Msrc/Misc/Part.C | 13+++++++++----
Msrc/Synth/OscilGen.C | 1+
4 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -526,4 +526,5 @@ 06 Feb 2004 - Adaugat salvarea de instrument in XML - Adaugat export la bank intr-un director XML si decis ca bank-ul sa fie un director cu mai multe fisiere xml de forma XXXX-nume.xml sau XXXX-nume.xml.gz 07 Feb 2004 - adaugat functii de initializare si renuntat la masterdefaultbuf si instrumentdefaultbuf (adica salvarea la inceput si incarcarea bufferelor cu instrumentele prestabilite) - + - corectata o mica eroare care facea ca sa se incarce subnotepars la adnotepars (eroarea a aparut azi) + +\ No newline at end of file diff --git a/src/Misc/Buffer.C b/src/Misc/Buffer.C @@ -58,7 +58,10 @@ void Buffer::rwbyte(unsigned char *b){ if (datak>=BUFFER_CHUNK_SIZE) { if (mode==0) {//read from the buffer if (data->next!=NULL) data=data->next; - else *b=0xff; + else { + *b=0xff; + for (int i=0;i<BUFFER_CHUNK_SIZE;i++) data->d[i]=0xff; + }; } else {//write to the buffer list *tmp=new list; tmp->next=NULL; diff --git a/src/Misc/Part.C b/src/Misc/Part.C @@ -114,12 +114,13 @@ void Part::defaultsinstrument(){ kit[n].Padenabled=0;kit[n].Psubenabled=0; memset(kit[n].Pname,0,PART_MAX_NAME_LEN); kit[n].Psendtoparteffect=0; - setkititemstatus(n,0); + if (n!=0) setkititemstatus(n,0); }; kit[0].Penabled=1; kit[0].Padenabled=1; - setkititemstatus(0,1); - + kit[0].adpars->defaults(); + kit[0].subpars->defaults(); + for (int nefx=0;nefx<NUM_PART_EFX;nefx++) { partefx[nefx]->defaults(); Pefxroute[nefx]=0;//route to next effect @@ -566,6 +567,7 @@ void Part::setPpanning(char Ppanning_){ void Part::setkititemstatus(int kititem,int Penabled_){ if ((kititem==0)&&(kititem>=NUM_KIT_ITEMS)) return;//nonexistent kit item and the first kit item is always enabled kit[kititem].Penabled=Penabled_; + if (Penabled_==0){ if (kit[kititem].adpars!=NULL) delete (kit[kititem].adpars); if (kit[kititem].subpars!=NULL) delete (kit[kititem].subpars); @@ -675,6 +677,7 @@ void Part::saveloadbufkititem(Buffer *buf,unsigned char item,int saveitem0){ if (kit[item].subpars==NULL) break; buf->rwbyte(&npar); }; + kit[item].subpars->saveloadbuf(buf); break; case 0xB0: if (buf->getmode()!=0) { @@ -720,6 +723,8 @@ void Part::saveloadbuf(Buffer *buf,int instrumentonly){ tmp=0xfe; buf->rwbyte(&tmp);//if tmp!=0xfe error + + if ((buf->getmode()==0)&&(disablekitloading==0)){//clears all kit items for (int item=0;item<NUM_KIT_ITEMS;item++) { if (item>0) setkititemstatus(item,0); @@ -843,7 +848,7 @@ void Part::saveloadbuf(Buffer *buf,int instrumentonly){ case 0xC1: if ((buf->getminimal()!=0) && (buf->getmode()!=0) && (PSUBnoteenabled==0)) break; if (buf->getmode()!=0) buf->rwbyte(&npar); - kit[0].adpars->saveloadbuf(buf); + kit[0].subpars->saveloadbuf(buf); break; case 0xD0: if (buf->getmode()!=0) { if (instrumentonly!=2){ diff --git a/src/Synth/OscilGen.C b/src/Synth/OscilGen.C @@ -380,6 +380,7 @@ void OscilGen::spectrumadjust(){ void OscilGen::prepare(){ int i,j,k; REALTYPE a,b,c,d,hmagnew; + if ((oldbasepar!=Pbasefuncpar)||(oldbasefunc!=Pcurrentbasefunc)) changebasefunction(); for (i=0;i<MAX_AD_HARMONICS;i++) hphase[i]=(Phphase[i]-64.0)/64.0*PI/(i+1);