Merge branch 'master' of ssh://zynaddsubfx.git.sourceforge.net/gitroot/zynaddsubfx/zynaddsubfx
Conflicts: ChangeLog (cherry picked from commit 93bb99e57561c5b72d2074a233c513e9da6bf9d4) Conflicts: src/Synth/OscilGen.cpp src/Synth/OscilGen.h src/main.cpp
This commit is contained in:
@@ -13,4 +13,6 @@ Contributors:
|
||||
Achim Settelmeier (QUERTZ keyboard layout for virtual keyboard)
|
||||
J<>r<EFBFBD>mie Andr<64>i (AZERTY keyboard layout, Array index fix)
|
||||
Alexis Ballier (const char* <-> string mismatch, NULLMidi prototype fix)
|
||||
Tobias Doerffel (static vs instance variables alteration)
|
||||
James Morris (Memory leaks in FLTK GUI)
|
||||
|
||||
|
||||
@@ -899,6 +899,11 @@
|
||||
22 Sep 2009 (Paul Nasca)
|
||||
- Added vibratto and other features to Unison effect
|
||||
|
||||
22 Sep 2009 (Mark McCurry)
|
||||
- Changed temporary data for Oscilgen from static to instance
|
||||
recommended by Tobias Doerffel
|
||||
- Fixed Memory leaks in UI based upon James Morris' patch
|
||||
|
||||
23 Sep 2009 (Paul Nasca)
|
||||
- Added unison invert phase
|
||||
- Made unison frequency spread to depend on Bandwidth controllers and parameters
|
||||
@@ -908,4 +913,4 @@
|
||||
24 Sep 2009 (Paul Nasca)
|
||||
- Small enhancements and bugfixes to Unison
|
||||
- Started to implement Bandwidth to the Reverb effect
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ OscilGen::OscilGen(FFTwrapper *fft_,Resonance *res_):Presets()
|
||||
setpresettype("Poscilgen");
|
||||
fft=fft_;
|
||||
res=res_;
|
||||
|
||||
tmpsmps = new REALTYPE[OSCIL_SIZE];
|
||||
newFFTFREQS(&outoscilFFTfreqs, OSCIL_SIZE/2);
|
||||
newFFTFREQS(&oscilFFTfreqs,OSCIL_SIZE/2);
|
||||
|
||||
@@ -110,8 +110,8 @@ public:
|
||||
bool ADvsPAD;//if it is used by ADsynth or by PADsynth
|
||||
|
||||
private:
|
||||
|
||||
REALTYPE *tmpsmps;//this array stores some termporary data and it has SOUND_BUFFER_SIZE elements
|
||||
//This array stores some termporary data and it has OSCIL_SIZE elements
|
||||
REALTYPE *tmpsmps;
|
||||
FFTFREQS outoscilFFTfreqs;
|
||||
|
||||
REALTYPE hmag[MAX_AD_HARMONICS],hphase[MAX_AD_HARMONICS];//the magnituides and the phases of the sine/nonsine harmonics
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0109
|
||||
version 1.0107
|
||||
header_name {.h}
|
||||
code_name {.cc}
|
||||
decl {//Copyright (c) 2002-2009 Nasca Octavian Paul} {selected
|
||||
}
|
||||
decl {//Copyright (c) 2002-2009 Nasca Octavian Paul} {}
|
||||
|
||||
decl {//License: GNU GPL version 2 or later} {}
|
||||
|
||||
@@ -275,7 +274,8 @@ labelsize(10);
|
||||
align(FL_ALIGN_TOP);
|
||||
|
||||
value(master->Psysefxsend[neff1][neff2]);
|
||||
char tmp[20];snprintf(tmp,20,"%d->%d",neff1+1,neff2+1);this->label(strdup(tmp));} {}
|
||||
char tmp[20];snprintf(tmp,20,"%d->%d",neff1+1,neff2+1);
|
||||
this->copy_label(tmp);} {}
|
||||
}
|
||||
Function {~SysEffSend()} {} {
|
||||
code {hide();} {}
|
||||
@@ -344,7 +344,7 @@ bankui->show();}
|
||||
xywh {15 235 40 20} box PLASTIC_UP_BOX labelsize 10
|
||||
}
|
||||
Fl_Choice partrcv {
|
||||
callback {master->part[npart]->Prcvchn=(int) o->value();} open
|
||||
callback {master->part[npart]->Prcvchn=(int) o->value();}
|
||||
tooltip {receive from Midi channel} xywh {10 213 50 15} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
|
||||
code0 {char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Ch%d",i+1);if (i!=9) o->add(nrstr); else o->add("Dr10");};}
|
||||
code1 {o->value(master->part[npart]->Prcvchn);}
|
||||
@@ -367,7 +367,7 @@ if ((int) o->value()==0) panellistitemgroup->deactivate();
|
||||
|
||||
o->redraw();}
|
||||
private xywh {5 0 45 20} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 24
|
||||
code0 {char tmp[10];snprintf(tmp,10,"%d",npart+1);o->label(strdup(tmp));}
|
||||
code0 {char tmp[10];snprintf(tmp,10,"%d",npart+1);o->copy_label(tmp);}
|
||||
code1 {o->value(master->part[npart]->Penabled);}
|
||||
}
|
||||
}
|
||||
@@ -386,8 +386,7 @@ make_window();
|
||||
panellistitem->show();
|
||||
end();} {}
|
||||
}
|
||||
Function {refresh()} {open
|
||||
} {
|
||||
Function {refresh()} {} {
|
||||
code {partenabled->value(master->part[npart]->Penabled);
|
||||
if (master->part[npart]->Penabled!=0) panellistitemgroup->activate();
|
||||
else panellistitemgroup->deactivate();
|
||||
@@ -415,7 +414,8 @@ panellistitemgroup->redraw();} {}
|
||||
}
|
||||
|
||||
class MasterUI {} {
|
||||
Function {make_window()} {} {
|
||||
Function {make_window()} {selected
|
||||
} {
|
||||
Fl_Window masterwindow {
|
||||
label zynaddsubfx
|
||||
callback {\#ifdef VSTAUDIOOUT
|
||||
@@ -426,7 +426,7 @@ if (fl_choice("Exit and leave the unsaved data?","No","Yes",NULL)) {
|
||||
*exitprogram=1;
|
||||
};
|
||||
\#endif}
|
||||
xywh {31 206 390 465} type Double xclass zynaddsubfx visible
|
||||
xywh {31 206 390 465} type Double hide xclass zynaddsubfx
|
||||
} {
|
||||
Fl_Menu_Bar mastermenu {
|
||||
xywh {-5 0 690 25}
|
||||
@@ -1043,18 +1043,18 @@ GNU General Public License for details.}
|
||||
label {ZynAddSubFX Panel}
|
||||
xywh {89 59 630 635} type Double hide
|
||||
} {
|
||||
Fl_Scroll {} {open
|
||||
Fl_Scroll {} {
|
||||
xywh {0 5 570 310} type HORIZONTAL box THIN_UP_BOX
|
||||
} {
|
||||
Fl_Pack {} {open
|
||||
Fl_Pack {} {
|
||||
xywh {5 10 560 285} type HORIZONTAL
|
||||
code0 {for (int i=0;i<NUM_MIDI_PARTS/2;i++){panellistitem[i]=new Panellistitem(0,0,70,260,"");panellistitem[i]->init(master,i,bankui);}}
|
||||
} {}
|
||||
}
|
||||
Fl_Scroll {} {open
|
||||
Fl_Scroll {} {
|
||||
xywh {0 320 570 310} type HORIZONTAL box THIN_UP_BOX
|
||||
} {
|
||||
Fl_Pack {} {open
|
||||
Fl_Pack {} {
|
||||
xywh {5 325 560 285} type HORIZONTAL
|
||||
code0 {for (int i=NUM_MIDI_PARTS/2;i<NUM_MIDI_PARTS;i++){panellistitem[i]=new Panellistitem(0,0,70,260,"");panellistitem[i]->init(master,i,bankui);}}
|
||||
} {}
|
||||
@@ -1288,7 +1288,7 @@ if ((int) o->value()==0) simplelistitemgroup->deactivate();
|
||||
|
||||
o->redraw();}
|
||||
private xywh {250 40 85 20} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 24
|
||||
code0 {//char tmp[10];snprintf(tmp,10,"%d",npart+1);o->label(strdup(tmp));}
|
||||
code0 {//char tmp[10];snprintf(tmp,10,"%d",npart+1);o->copy_label(tmp);}
|
||||
code1 {o->value(master->part[npart]->Penabled);}
|
||||
}
|
||||
Fl_Box virkeys {
|
||||
@@ -1643,19 +1643,23 @@ simplerefresh();} {}
|
||||
}
|
||||
Function {~MasterUI()} {} {
|
||||
code {masterwindow->hide();
|
||||
delete (masterwindow);
|
||||
delete masterwindow;
|
||||
simplemasterwindow->hide();
|
||||
delete simplemasterwindow;
|
||||
aboutwindow->hide();
|
||||
delete (aboutwindow);
|
||||
delete aboutwindow;
|
||||
syseffsendwindow->hide();
|
||||
delete(syseffsendwindow);
|
||||
delete syseffsendwindow;
|
||||
|
||||
delete (virkeyboard);
|
||||
delete (microtonalui);
|
||||
delete (bankui);
|
||||
delete (configui);
|
||||
delete (sequi);
|
||||
delete virkeyboard;
|
||||
delete microtonalui;
|
||||
delete bankui;
|
||||
delete configui;
|
||||
delete sequi;
|
||||
|
||||
delete(presetsui);} {}
|
||||
delete presetsui;
|
||||
delete panelwindow;
|
||||
delete selectuiwindow;} {}
|
||||
}
|
||||
Function {showUI()} {} {
|
||||
code {switch (config.cfg.UserInterfaceMode){
|
||||
|
||||
@@ -56,7 +56,7 @@ class PartSysEffSend {: {public Fl_Group}
|
||||
xywh {0 0 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 align 130 maximum 127 step 1
|
||||
code0 {o->size(25,25);}
|
||||
code1 {o->value(master->Psysefxvol[neff][npart]);}
|
||||
code2 {char tmp[10];snprintf(tmp,10,"%d",neff+1);o->label(strdup(tmp));}
|
||||
code2 {char tmp[10];snprintf(tmp,10,"%d",neff+1);o->copy_label(tmp);}
|
||||
class WidgetPDial
|
||||
}
|
||||
}
|
||||
@@ -212,7 +212,7 @@ o->redraw();
|
||||
partui->showparameters(n,-1);//use to delete the ui, if it is not to item 0
|
||||
} else o->value(1);}
|
||||
private xywh {30 0 20 15} down_box DOWN_BOX labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 4
|
||||
code0 {snprintf(label,10,"%d",n+1);o->label(strdup(label));}
|
||||
code0 {snprintf(label,10,"%d",n+1);o->label(label);}
|
||||
code1 {o->value(part->kit[n].Penabled);}
|
||||
code2 {if (n==0) o->deactivate();}
|
||||
}
|
||||
@@ -590,7 +590,7 @@ part->ctl.portamento.updowntimestretch=x;}
|
||||
}
|
||||
Fl_Dial proptb {
|
||||
label {Prp.Dpth}
|
||||
callback {part->ctl.portamento.propDepth=(int) o->value();} selected
|
||||
callback {part->ctl.portamento.propDepth=(int) o->value();}
|
||||
tooltip {The difference from nonproportinal portamento} xywh {405 60 25 25} labelsize 9 maximum 127 step 1
|
||||
code0 {o->value(part->ctl.portamento.propDepth);}
|
||||
class WidgetPDial
|
||||
@@ -841,7 +841,7 @@ if (part->Pkitmode==0) {
|
||||
}
|
||||
}
|
||||
Fl_Window instrumenteditwindow {
|
||||
label {Instrument Edit}
|
||||
label {Instrument Edit} selected
|
||||
xywh {182 214 395 360} type Double hide
|
||||
} {
|
||||
Fl_Group {} {
|
||||
|
||||
@@ -41,9 +41,9 @@ decl {const int keysoct1qwertz[]={'q','2','w','3','e','r','5','t','6','z','7','u
|
||||
|
||||
decl {const int keysoct2qwertz[]={'y','s','x','d','c','v','g','b','h','n','j','m',',','l','.',246,'-',0};} {}
|
||||
|
||||
decl {const int keysoct1az[]={'a',233,'z','\\"','e','r','(','t','-','y',232,'u','i',231,'o',224,'p',65106,'=','$',0};} {}
|
||||
decl {const int keysoct1az[]={'a',233,'z','\\"','e','r','(','t','-','y',232,'u','i',231,'o',224,'p',65106,'=','$',0};} {}
|
||||
|
||||
decl {const int keysoct2az[]={'w','s','x','d','c','v','g','b','h','n','j',',',';','l',':','m','!',0};} {}
|
||||
decl {const int keysoct2az[]={'w','s','x','d','c','v','g','b','h','n','j',',',';','l',':','m','!',0};} {}
|
||||
|
||||
class VirKeys {: {public Fl_Box}
|
||||
} {
|
||||
@@ -184,8 +184,7 @@ if ((event==FL_KEYDOWN)||(event==FL_KEYUP)){
|
||||
|
||||
return(1);} {}
|
||||
}
|
||||
Function {presskey(int nk,int exclusive,int type)} {selected
|
||||
} {
|
||||
Function {presskey(int nk,int exclusive,int type)} {} {
|
||||
code {//Exclusive means that multiple keys can be pressed at once
|
||||
//when the user uses the shift key
|
||||
if (nk>=N_OCT*12) return;
|
||||
@@ -410,6 +409,10 @@ virkeys->take_focus();} open
|
||||
midictl=75;
|
||||
make_window();} {}
|
||||
}
|
||||
Function {~VirKeyboard()} {} {
|
||||
code {delete virkeyboardwindow;} {selected
|
||||
}
|
||||
}
|
||||
Function {show()} {} {
|
||||
code {virkeyboardwindow->show();} {}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0109
|
||||
version 1.0107
|
||||
header_name {.h}
|
||||
code_name {.cc}
|
||||
decl {//Copyright (c) 2003-2005 Nasca Octavian Paul} {}
|
||||
@@ -61,7 +61,8 @@ textmode=false;
|
||||
}
|
||||
Function {setText(const char * c)} {return_type void
|
||||
} {
|
||||
code {strcpy(text,c);
|
||||
code {strncpy(text, c, max_tooltip_len-1);
|
||||
text[max_tooltip_len-1] = 0;
|
||||
textmode=true;
|
||||
// Recalc size of window
|
||||
fl_font(labelfont(), labelsize());
|
||||
@@ -84,7 +85,9 @@ textmode=true;
|
||||
}
|
||||
decl {char tip[40];} {}
|
||||
decl {bool textmode;} {}
|
||||
decl {char text[400];//bad stuff will happen if too much is put in this (perhaps dynamically allocate?)} {}
|
||||
decl {enum { max_tooltip_len = 400 };} {selected
|
||||
}
|
||||
decl {char text[max_tooltip_len];} {}
|
||||
}
|
||||
|
||||
class WidgetPDial {: {public Fl_Dial}
|
||||
@@ -153,8 +156,7 @@ case FL_RELEASE:
|
||||
return(1);
|
||||
break;
|
||||
};
|
||||
return(0);} {selected
|
||||
}
|
||||
return(0);} {}
|
||||
}
|
||||
Function {drawgradient(int cx,int cy,int sx,double m1,double m2)} {return_type void
|
||||
} {
|
||||
|
||||
Reference in New Issue
Block a user