| 
							- # data file for the Fltk User Interface Designer (fluid)
 - version 1.0110 
 - header_name {.h} 
 - code_name {.cc}
 - decl {\#include "../Params/PADnoteParameters.h"} {public
 - } 
 - 
 - decl {\#include "../Misc/Util.h"} {public
 - } 
 - 
 - decl {\#include "../Misc/Master.h"} {public
 - } 
 - 
 - decl {\#include "ResonanceUI.h"} {public
 - } 
 - 
 - decl {\#include <FL/Fl_Box.H>} {public
 - } 
 - 
 - decl {\#include <FL/Fl_Group.H>} {public
 - } 
 - 
 - decl {\#include <FL/Fl_File_Chooser.H>} {public
 - } 
 - 
 - decl {\#include <math.h>} {} 
 - 
 - decl {\#include <stdio.h>} {} 
 - 
 - decl {\#include <stdlib.h>} {} 
 - 
 - decl {\#include <string.h>} {} 
 - 
 - decl {\#include "WidgetPDial.h"} {public
 - } 
 - 
 - decl {\#include "EnvelopeUI.h"} {public
 - } 
 - 
 - decl {\#include "LFOUI.h"} {public
 - } 
 - 
 - decl {\#include "FilterUI.h"} {public
 - } 
 - 
 - decl {\#include "OscilGenUI.h"} {public
 - } 
 - 
 - decl {\#include "PresetsUI.h"} {public
 - } 
 - 
 - class PADnoteHarmonicProfile {: {public Fl_Box}
 - } {
 -   Function {PADnoteHarmonicProfile(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
 -     code {pars=NULL;} {}
 -   }
 -   Function {init(PADnoteParameters *pars,Master *master_)} {} {
 -     code {master=master_;
 - this->pars=pars;} {}
 -   }
 -   Function {draw()} {} {
 -     code {int ox=x(),oy=y(),lx=w(),ly=h();
 - if (!visible()) return;
 - float smps[lx];
 - 
 - float realbw=pars->getprofile(smps,lx);
 - bool active=active_r();
 - 
 - //draw the equivalent bandwidth
 - if (active) fl_color(220,220,220);
 -  else fl_color(160,165,165);
 - fl_line_style(FL_DASH);
 - int rbw=(int)(realbw*(lx-1.0)/2.0);
 - fl_begin_line();
 - for (int i=lx/2-rbw;i<(lx/2+rbw);i++) { fl_vertex(ox+i,oy); }
 - fl_end_line();
 - 
 - fl_line_style(FL_DASH);
 - if (active) fl_color(200,200,200);
 -  else  fl_color(160,160,160);
 - for (int i=1;i<10;i++){
 - 	int kx=(int)(lx/10.0*i);
 - 	fl_line( ox + kx, oy, ox + kx, oy + ly - 1 );
 - };
 - for (int i=1;i<5;i++){
 - 	int ky=(int)(ly/5.0*i);
 - 	fl_line(ox,oy+ly-ky,ox+lx,oy+ly-ky-1);
 - };
 - 
 - 
 - fl_color(120,120,120);
 - fl_line_style(FL_DASH);
 - fl_line(ox+lx/2,oy,ox+lx/2,oy+ly);
 - 
 - //draw the graph
 - fl_line_style(FL_SOLID);
 -    if (active) fl_color(180,210,240);
 -       else fl_color(150,150,155);
 - 
 - fl_color( fl_color_add_alpha( fl_color(), 127 ) );
 - 
 - fl_begin_polygon();
 - fl_vertex( ox, oy + h() );
 - for (int i=0;i<lx;i++){
 -    int val=(int) ((ly-2)*smps[i]);
 -  
 - //   fl_vertex(ox+i,oy+ly-1);
 -    fl_vertex(ox+i,oy+ly-1-val);
 - 
 -   // if (active) fl_color(0,0,100);
 -   //     else fl_color(150,150,150);
 - 
 - //   if (i>0)
 - //	{
 - //	 fl_vertex(ox+i-1,oy+ly-2-old);
 - //	fl_vertex(ox+i,oy+ly-2-val);
 - //	}
 - };
 - fl_vertex( ox + w(), oy + h() );
 - fl_end_polygon();
 - 
 - 
 - fl_line_style(FL_DASH);
 - if (active) fl_color(0,100,220);
 -     else fl_color(150,160,170);
 - fl_line(ox+lx/2-rbw,oy,ox+lx/2-rbw,oy+ly-1);
 - fl_line(ox+lx/2+rbw,oy,ox+lx/2+rbw,oy+ly-1);
 - 
 - fl_line_style(0);} {}
 -   }
 -   decl {Master *master;} {}
 -   decl {PADnoteParameters *pars;} {public
 -   }
 - } 
 - 
 - class PADnoteOvertonePosition {: {public Fl_Box}
 - } {
 -   Function {PADnoteOvertonePosition(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
 -     code {pars=NULL;} {}
 -   }
 -   Function {init(PADnoteParameters *pars,Master *master_)} {} {
 -     code {master=master_;
 - this->pars=pars;} {}
 -   }
 -   Function {draw()} {} {
 -     code {if (!visible()) return;
 - const int maxdb=60;
 - 
 - int ox=x(),oy=y(),lx=w(),ly=h();
 - const int maxharmonic=64;
 - 
 - 
 - for (int i=1;i<maxharmonic;i++){
 - 	fl_color(100,100,100);
 - 	fl_line_style(FL_DOT);
 - 	if (i%5==0) fl_line_style(0);
 - 	if (i%10==0) fl_color(120,120,120);
 - 	int kx=(int)(lx/(float)maxharmonic*i);
 - 	fl_line(ox+kx,oy,ox+kx,oy+ly);
 - };
 - 
 - 
 - 
 - int n=synth->oscilsize/2;
 - float spc[n];
 - for (int i=0;i<n;i++) spc[i]=0.0;
 - 
 - pthread_mutex_lock(&master->mutex);
 - pars->oscilgen->getspectrum(n,spc,0);
 - pthread_mutex_unlock(&master->mutex);
 - 
 - 
 - //normalize
 - float max=0;
 - for (int i=0;i<n;i++){
 -    float x=fabs(spc[i]);
 -    if (max<x) max=x;
 - }
 - if (max<0.000001) max=1.0;
 - max=max*1.05;
 - 
 - float spectrum[lx];
 - for (int i=0;i<lx;i++) spectrum[i]=0;
 - 
 - 
 - for (int i=1;i<n;i++){
 - 	float nhr=pars->getNhr(i);
 - 	int kx=(int)(lx/(float)maxharmonic*nhr);
 - 	if ((kx<0)||(kx>lx)) continue;
 - 
 -         spectrum[kx]=spc[i-1]/max+1e-9;
 - 
 - };
 - 
 - fl_color(180,0,0);
 - fl_line_style(0);
 - 
 - if (pars->Pmode==2){
 -    int old=0;
 -    for (int i=1;i<lx;i++){
 - 	if ((spectrum[i]>1e-10)||(i==(lx-1))){
 - 		int delta=i-old;
 - 		float val1=spectrum[old];
 - 		float val2=spectrum[i];
 - 
 - 		float idelta=1.0/delta;
 - 		for (int j=0;j<delta;j++){
 - 			float x=idelta*j;
 - 			spectrum[old+j]=val1*(1.0-x)+val2*x;
 - 		};
 - 		old=i;
 - 	};
 -       
 -    };
 - };
 - 
 - for (int i=0;i<lx;i++){
 - 	float x=spectrum[i];
 -         if (x>dB2rap(-maxdb)) x=rap2dB(x)/maxdb+1;
 -              else continue;
 -        	int yy=(int)(x*ly);
 - 	fl_line(ox+i,oy+ly-1-yy,ox+i,oy+ly-1);
 -       
 - };} {}
 -   }
 -   decl {Master *master;} {}
 -   decl {PADnoteParameters *pars;} {public
 -   }
 - } 
 - 
 - class PADnoteUI {open : {public PresetsUI_}
 - } {
 -   Function {PADnoteUI(PADnoteParameters *parameters,Master *master_)} {open
 -   } {
 -     code {pars=parameters;
 - master=master_;
 - oscui=NULL;
 - resui=new ResonanceUI(pars->resonance);
 - make_window();} {}
 -   }
 -   Function {make_window()} {open
 -   } {
 -     Fl_Window padnotewindow {
 -       label {PAD synth Parameters} open
 -       xywh {294 392 535 435} type Double visible
 -     } {
 -       Fl_Tabs {} {
 -         callback {if (o->value()!=harmonicstructuregroup) applybutton->hide();
 - 	else applybutton->show();} open
 -         xywh {0 0 535 395} box UP_FRAME
 -       } {
 -         Fl_Group harmonicstructuregroup {
 -           label {Harmonic Structure} open selected
 -           xywh {0 20 535 375} box UP_FRAME
 -         } {
 -           Fl_Group bwprofilegroup {
 -             xywh {5 30 90 260} box UP_FRAME
 -             code0 {if (pars->Pmode!=0) o->deactivate();}
 -           } {
 -             Fl_Dial hpbasepar1 {
 -               label Width
 -               callback {pars->Php.base.par1=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {20 75 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->Php.base.par1);}
 -               class WidgetPDial
 -             }
 -             Fl_Choice hpbasetype {
 -               label {Base Type}
 -               callback {pars->Php.base.type=o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {15 45 75 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
 -               code0 {o->value(pars->Php.base.type);}
 -             } {
 -               MenuItem {} {
 -                 label Gauss
 -                 xywh {15 15 100 20} labelfont 1 labelsize 10
 -               }
 -               MenuItem {} {
 -                 label Square
 -                 xywh {25 25 100 20} labelfont 1 labelsize 10
 -               }
 -               MenuItem {} {
 -                 label DoubleExp
 -                 xywh {35 35 100 20} labelfont 1 labelsize 10
 -               }
 -             }
 -             Fl_Dial hpfreqmult {
 -               label FreqMlt
 -               callback {pars->Php.freqmult=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {55 75 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->Php.freqmult);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial hpmpar1 {
 -               label Str
 -               callback {pars->Php.modulator.par1=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {15 115 20 20} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->Php.modulator.par1);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial hpmfreq {
 -               label SFreq
 -               callback {pars->Php.modulator.freq=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {40 115 20 20} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->Php.modulator.freq);}
 -               class WidgetPDial
 -             }
 -             Fl_Group {} {
 -               xywh {10 160 80 105} box BORDER_BOX
 -             } {
 -               Fl_Choice hpamptype {
 -                 label AmpMultiplier
 -                 callback {pars->Php.amp.type=o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -                 xywh {15 175 70 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
 -                 code0 {o->value(pars->Php.amp.type);}
 -               } {
 -                 MenuItem {} {
 -                   label OFF
 -                   xywh {45 45 100 20} labelfont 1 labelsize 10
 -                 }
 -                 MenuItem {} {
 -                   label Gauss
 -                   xywh {55 55 100 20} labelfont 1 labelsize 10
 -                 }
 -                 MenuItem {} {
 -                   label Sine
 -                   xywh {65 65 100 20} labelfont 1 labelsize 10
 -                 }
 -                 MenuItem {} {
 -                   label Flat
 -                   xywh {75 75 100 20} labelfont 1 labelsize 10
 -                 }
 -               }
 -               Fl_Choice hpampmode {
 -                 label AmpMode
 -                 callback {pars->Php.amp.mode=o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -                 xywh {15 205 70 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
 -                 code0 {o->value(pars->Php.amp.mode);}
 -               } {
 -                 MenuItem {} {
 -                   label Sum
 -                   xywh {60 60 100 20} labelfont 1 labelsize 10
 -                 }
 -                 MenuItem {} {
 -                   label Mult
 -                   xywh {70 70 100 20} labelfont 1 labelsize 10
 -                 }
 -                 MenuItem {} {
 -                   label Div1
 -                   xywh {80 80 100 20} labelfont 1 labelsize 10
 -                 }
 -                 MenuItem {} {
 -                   label Div2
 -                   xywh {90 90 100 20} labelfont 1 labelsize 10
 -                 }
 -               }
 -               Fl_Dial hpamppar1 {
 -                 label Par1
 -                 callback {pars->Php.amp.par1=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -                 xywh {15 235 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -                 code0 {o->value(pars->Php.amp.par1);}
 -                 class WidgetPDial
 -               }
 -               Fl_Dial hpamppar2 {
 -                 label Par2
 -                 callback {pars->Php.amp.par2=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -                 xywh {55 235 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -                 code0 {o->value(pars->Php.amp.par2);}
 -                 class WidgetPDial
 -               }
 -             }
 -             Fl_Check_Button hpautoscale {
 -               label autoscale
 -               callback {pars->Php.autoscale=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {10 270 60 15} down_box DOWN_BOX labelsize 10
 -               code0 {o->value(pars->Php.autoscale);}
 -             }
 -             Fl_Choice hponehalf {
 -               callback {pars->Php.onehalf=o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {10 143 80 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10
 -               code0 {o->value(pars->Php.onehalf);}
 -             } {
 -               MenuItem {} {
 -                 label Full
 -                 xywh {25 25 100 20} labelfont 1 labelsize 10
 -               }
 -               MenuItem {} {
 -                 label {Upper Half}
 -                 xywh {45 45 100 20} labelfont 1 labelsize 10
 -               }
 -               MenuItem {} {
 -                 label {Lower Half}
 -                 xywh {35 35 100 20} labelfont 1 labelsize 10
 -               }
 -             }
 -             Fl_Dial hpwidth {
 -               label Size
 -               callback {pars->Php.width=(int) o->value();
 - hprofile->redraw();
 - cbwidget->do_callback();}
 -               xywh {65 115 20 20} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->Php.width);}
 -               class WidgetPDial
 -             }
 -           }
 -           Fl_Group {} {
 -             xywh {100 155 270 135} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179 align 6
 -             code0 {osc=new Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");}
 -             code1 {osc->init(pars->oscilgen,master);}
 -           } {}
 -           Fl_Button {} {
 -             label Change
 -             callback {if (oscui!=NULL) delete (oscui);
 - oscui=new OscilEditor(pars->oscilgen,osc,cbwidget,applybutton,master);}
 -             xywh {375 270 60 20} box THIN_UP_BOX labelfont 1 labelsize 11
 -           }
 -           Fl_Box cbwidget {
 -             label {Harmonic Content}
 -             callback {overtonepos->redraw();
 - applybutton->color(FL_RED);
 - applybutton->redraw();}
 -             xywh {125 135 205 20} align 16
 -           }
 -           Fl_Button {} {
 -             label Resonance
 -             callback {resui->resonancewindow->redraw();
 - resui->resonancewindow->show();
 - resui->setcbwidget(cbwidget,applybutton);}
 -             xywh {375 225 80 20} box THIN_UP_BOX
 -           }
 -           Fl_Dial bwdial {
 -             label BandWidth
 -             callback {bwcents->value(pars->setPbandwidth((int) o->value()));
 - cbwidget->do_callback();}
 -             xywh {15 295 35 35} box ROUND_UP_BOX labelsize 10 maximum 1000 step 1
 -             code0 {o->value(pars->Pbandwidth);}
 -             code1 {if (pars->Pmode!=0) o->deactivate();}
 -             class WidgetPDial
 -           }
 -           Fl_Value_Output bwcents {
 -             label cents
 -             xywh {55 305 55 15} labelsize 10 align 6 maximum 10000 step 0.1
 -             code0 {o->value(pars->setPbandwidth(pars->Pbandwidth));}
 -             code1 {if (pars->Pmode!=0) o->deactivate();}
 -           }
 -           Fl_Group {} {
 -             xywh {315 295 215 45} box UP_FRAME
 -           } {
 -             Fl_Choice hrpostype {
 -               label OvertonesPosition
 -               callback {pars->Phrpos.type=o->value();
 - overtonepos->redraw();
 - cbwidget->do_callback();}
 -               xywh {325 310 80 20} down_box BORDER_BOX labelsize 10 align 5 textsize 11
 -               code0 {o->value(pars->Phrpos.type);}
 -             } {
 -               MenuItem {} {
 -                 label Harmonic
 -                 xywh {70 70 100 20} labelfont 1 labelsize 11
 -               }
 -               MenuItem {} {
 -                 label ShiftU
 -                 xywh {80 80 100 20} labelfont 1 labelsize 11
 -               }
 -               MenuItem {} {
 -                 label ShiftL
 -                 xywh {90 90 100 20} labelfont 1 labelsize 11
 -               }
 -               MenuItem {} {
 -                 label PowerU
 -                 xywh {90 90 100 20} labelfont 1 labelsize 11
 -               }
 -               MenuItem {} {
 -                 label PowerL
 -                 xywh {100 100 100 20} labelfont 1 labelsize 11
 -               }
 -               MenuItem {} {
 -                 label Sine
 -                 xywh {110 110 100 20} labelfont 1 labelsize 11
 -               }
 -               MenuItem {} {
 -                 label Power
 -                 xywh {120 120 100 20} labelfont 1 labelsize 11
 -               }
 -             }
 -             Fl_Dial hrpospar1 {
 -               label Par1
 -               callback {pars->Phrpos.par1=(int) o->value();
 - overtonepos->redraw();
 - cbwidget->do_callback();}
 -               xywh {425 310 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 255 step 1
 -               code0 {o->value(pars->Phrpos.par1);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial hrpospar2 {
 -               label Par2
 -               callback {pars->Phrpos.par2=(int) o->value();
 - overtonepos->redraw();
 - cbwidget->do_callback();}
 -               xywh {460 310 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 255 step 1
 -               code0 {o->value(pars->Phrpos.par2);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial hrpospar3 {
 -               label ForceH
 -               callback {pars->Phrpos.par3=(int) o->value();
 - overtonepos->redraw();
 - cbwidget->do_callback();}
 -               xywh {495 310 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 255 step 1
 -               code0 {o->value(pars->Phrpos.par3);}
 -               class WidgetPDial
 -             }
 -           }
 -           Fl_Choice bwscale {
 -             label {Bandwidth Scale}
 -             callback {pars->Pbwscale=(int) o->value();
 - cbwidget->do_callback();}
 -             xywh {120 305 80 20} down_box BORDER_BOX labelsize 10 align 5 textsize 11
 -             code0 {o->value(pars->Pbwscale);}
 -             code1 {if (pars->Pmode!=0) o->deactivate();}
 -           } {
 -             MenuItem {} {
 -               label Normal
 -               xywh {95 95 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label EqualHz
 -               xywh {105 105 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label Quater
 -               xywh {115 115 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label Half
 -               xywh {125 125 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label {75%}
 -               xywh {135 135 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label {150%}
 -               xywh {145 145 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label Double
 -               xywh {145 145 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label {Inv.Half}
 -               xywh {155 155 100 20} labelfont 1 labelsize 11
 -             }
 -           }
 -           Fl_Group overtonepos {
 -             xywh {5 345 525 45} box FLAT_BOX color 51 selection_color 218 labelcolor 63
 -             code0 {PADnoteOvertonePosition *opui=new PADnoteOvertonePosition(o->x(),o->y(),o->w(),o->h(),"");}
 -             code1 {opui->init(pars,master);}
 -           } {}
 -           Fl_Choice qsamplesize {
 -             label {Sample Size}
 -             callback {pars->Pquality.samplesize=(int) o->value();
 - cbwidget->do_callback();}
 -             xywh {375 190 115 20} down_box BORDER_BOX labelsize 10 align 5 textsize 11
 -             code0 {o->value(pars->Pquality.samplesize);}
 -           } {
 -             MenuItem {} {
 -               label {16k (Tiny)}
 -               xywh {155 155 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 32k
 -               xywh {165 165 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label {64k (Small)}
 -               xywh {175 175 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 128k
 -               xywh {185 185 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label {256k (Normal)}
 -               xywh {205 205 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 512k
 -               xywh {200 200 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label {1M (Big)}
 -               xywh {205 205 100 20} labelfont 1 labelsize 11
 -             }
 -           }
 -           Fl_Choice qsmpoct {
 -             label {smp/oct}
 -             callback {pars->Pquality.smpoct=(int) o->value();
 - cbwidget->do_callback();}
 -             xywh {430 155 45 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11
 -             code0 {o->value(pars->Pquality.smpoct);}
 -           } {
 -             MenuItem {} {
 -               label {0.5}
 -               xywh {10 10 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 1
 -               xywh {0 0 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 2
 -               xywh {10 10 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 3
 -               xywh {20 20 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 4
 -               xywh {30 30 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 6
 -               xywh {40 40 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 12
 -               xywh {50 50 100 20} labelfont 1 labelsize 11
 -             }
 -           }
 -           Fl_Choice qoct {
 -             label {no.oct}
 -             callback {pars->Pquality.oct=(int) o->value();
 - cbwidget->do_callback();}
 -             xywh {480 155 45 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11
 -             code0 {o->value(pars->Pquality.oct);}
 -           } {
 -             MenuItem {} {
 -               label 1
 -               xywh {10 10 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 2
 -               xywh {20 20 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 3
 -               xywh {30 30 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 4
 -               xywh {40 40 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 5
 -               xywh {50 50 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 6
 -               xywh {60 60 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 7
 -               xywh {70 70 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label 8
 -               xywh {80 80 100 20} labelfont 1 labelsize 11
 -             }
 -           }
 -           Fl_Choice qbasenote {
 -             label base
 -             callback {pars->Pquality.basenote=(int) o->value();
 - cbwidget->do_callback();}
 -             xywh {375 155 50 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11
 -             code0 {o->value(pars->Pquality.basenote);}
 -           } {
 -             MenuItem {} {
 -               label {C-2}
 -               xywh {10 10 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {G-2}
 -               xywh {20 20 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {C-3}
 -               xywh {20 20 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {G-3}
 -               xywh {30 30 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {C-4}
 -               xywh {30 30 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {G-4}
 -               xywh {40 40 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {C-5}
 -               xywh {40 40 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {G-5}
 -               xywh {50 50 100 20} labelfont 1
 -             }
 -             MenuItem {} {
 -               label {G-6}
 -               xywh {60 60 100 20} labelfont 1
 -             }
 -           }
 -           Fl_Group hprofile {
 -             xywh {100 45 430 90} box FLAT_BOX color 51 selection_color 218 labelcolor 63
 -             code0 {PADnoteHarmonicProfile *hpui=new PADnoteHarmonicProfile(o->x(),o->y(),o->w(),o->h(),"");}
 -             code1 {hpui->init(pars,master);}
 -             code2 {if (pars->Pmode!=0) { o->deactivate(); o->color(48);};}
 -           } {}
 -           Fl_Box {} {
 -             label {Profile of One Harmonic (Frequency Distribution)}
 -             xywh {160 25 315 20}
 -           }
 -           Fl_Choice spectrummode {
 -             label {Spectrum Mode}
 -             callback {pars->Pmode=(int) o->value();
 - 
 - if (pars->Pmode==0){
 -    bwprofilegroup->activate();
 -    bwdial->activate();
 -    bwcents->activate();
 -    hprofile->activate();
 -    hprofile->color(54);
 -    bwscale->activate();
 - } else {
 -    bwprofilegroup->deactivate();
 -    bwdial->deactivate();
 -    bwcents->deactivate();
 -    hprofile->deactivate();
 -    hprofile->color(48);
 -    bwscale->deactivate();
 - };
 - 
 - cbwidget->do_callback();}
 -             xywh {220 305 90 20} down_box BORDER_BOX labelfont 1 labelsize 10 align 5 textsize 11
 -             code0 {o->value(pars->Pmode);}
 -           } {
 -             MenuItem {} {
 -               label Bandwidth
 -               xywh {105 105 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label Discrete
 -               xywh {125 125 100 20} labelfont 1 labelsize 11
 -             }
 -             MenuItem {} {
 -               label Continous
 -               xywh {115 115 100 20} labelfont 1 labelsize 11
 -             }
 -           }
 -         }
 -         Fl_Group {} {
 -           label {Envelopes&LFOs} open
 -           xywh {0 20 535 375} box UP_FRAME hide
 -         } {
 -           Fl_Group {} {
 -             label FREQUENCY
 -             xywh {5 275 525 115} box UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 17
 -           } {
 -             Fl_Group freqenv {
 -               label {PADSynth - Frequency Envelope} open
 -               xywh {10 315 205 70} box FLAT_BOX color 51 align 144
 -               code0 {o->init(pars->FreqEnvelope);}
 -               class EnvelopeUI
 -             } {}
 -             Fl_Counter octave {
 -               label Octave
 -               callback {int k=(int) o->value();
 - if (k<0) k+=16;
 - pars->PCoarseDetune = k*1024+
 -    pars->PCoarseDetune%1024;}
 -               tooltip Octave xywh {470 295 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 11
 -               code0 {int k=pars->PCoarseDetune/1024;}
 -               code1 {if (k>=8) k-=16;}
 -               code2 {o->value(k);}
 -             }
 -             Fl_Counter coarsedet {
 -               label {Coarse det.}
 -               callback {int k=(int) o->value();
 - if (k<0) k+=1024;
 - pars->PCoarseDetune = k+
 -    (pars->PCoarseDetune/1024)*1024;}
 -               tooltip {Coarse Detune} xywh {455 365 70 20} type Simple labelsize 10 align 5 minimum -64 maximum 63 step 1 textfont 1 textsize 11
 -               code0 {int k=pars->PCoarseDetune%1024;}
 -               code1 {if (k>=512) k-=1024;}
 -               code2 {o->value(k);}
 -               code3 {o->lstep(10);}
 -             }
 -             Fl_Group freqlfo {
 -               label {Frequency LFO     } open
 -               xywh {215 315 230 70} box FLAT_BOX color 47 align 144
 -               code0 {o->init(pars->FreqLfo);}
 -               class LFOUI
 -             } {}
 -             Fl_Slider detune {
 -               callback {pars->PDetune=(int)o->value()+8192;
 - detunevalueoutput->do_callback();}
 -               tooltip {Fine Detune (cents)} xywh {60 295 295 15} type {Horz Knob} box NO_BOX minimum -8192 maximum 8191 step 1
 -               code0 {o->value(pars->PDetune-8192);}
 -             }
 -             Fl_Value_Output detunevalueoutput {
 -               label Detune
 -               callback {o->value(getdetune(pars->PDetuneType,0,pars->PDetune));}
 -               xywh {12 295 45 15} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10
 -               code0 {o->value(getdetune(pars->PDetuneType,0,pars->PDetune));}
 -             }
 -             Fl_Choice detunetype {
 -               label {Detune Type}
 -               callback {pars->PDetuneType=(int) o->value()+1;
 - detunevalueoutput->do_callback();} open
 -               xywh {450 330 75 20} down_box BORDER_BOX labelsize 10 align 5 textfont 1 textsize 10
 -               code0 {o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");}
 -               code1 {o->value(pars->PDetuneType-1);}
 -             } {}
 -             Fl_Check_Button hz440 {
 -               label 440Hz
 -               callback {int x=(int) o->value();
 - pars->Pfixedfreq=x;
 - if (x==0) fixedfreqetdial->deactivate();
 -    else fixedfreqetdial->activate();}
 -               tooltip {set the base frequency to 440Hz} xywh {365 295 50 15} down_box DOWN_BOX labelfont 1 labelsize 10
 -               code0 {o->value(pars->Pfixedfreq);}
 -             }
 -             Fl_Dial fixedfreqetdial {
 -               label {Eq.T.}
 -               callback {pars->PfixedfreqET=(int) o->value();}
 -               tooltip {How the frequency varies acording to the keyboard (leftmost for fixed frequency)} xywh {420 295 15 15} box ROUND_UP_BOX labelsize 10 align 8 maximum 127 step 1
 -               code0 {o->value(pars->PfixedfreqET);}
 -               code1 {if (pars->Pfixedfreq==0) o->deactivate();}
 -               class WidgetPDial
 -             }
 -           }
 -           Fl_Group {} {
 -             label AMPLITUDE
 -             xywh {5 25 240 250} box UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 17
 -           } {
 -             Fl_Value_Slider volume {
 -               label Vol
 -               callback {pars->PVolume=(int)o->value();}
 -               tooltip Volume xywh {10 50 160 15} type {Horz Knob} box NO_BOX labelsize 11 align 8 maximum 127 step 1
 -               code0 {o->value(pars->PVolume);}
 -             }
 -             Fl_Value_Slider vsns {
 -               label {V.Sns}
 -               callback {pars->PAmpVelocityScaleFunction=(int) o->value();}
 -               tooltip {Velocity Sensing Function (rightmost to disable)} xywh {10 70 160 15} type {Horz Knob} box NO_BOX labelsize 11 align 8 maximum 127 step 1
 -               code0 {o->value(pars->PAmpVelocityScaleFunction);}
 -             }
 -             Fl_Dial pan {
 -               label Pan
 -               callback {pars->PPanning=(int) o->value();}
 -               tooltip {Panning (leftmost is Random)} xywh {210 45 30 30} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
 -               code0 {o->value(pars->PPanning);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial pstr {
 -               label {P.Str.}
 -               callback {pars->PPunchStrength=(int) o->value();}
 -               tooltip {Punch Strength} xywh {125 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->PPunchStrength);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial pt {
 -               label {P.t.}
 -               callback {pars->PPunchTime=(int) o->value();}
 -               tooltip {Punch Time (duration)} xywh {155 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->PPunchTime);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial pstc {
 -               label {P.Stc.}
 -               callback {pars->PPunchStretch=(int) o->value();}
 -               tooltip {Punch Stretch} xywh {185 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->PPunchStretch);}
 -               class WidgetPDial
 -             }
 -             Fl_Dial pvel {
 -               label {P.Vel.}
 -               callback {pars->PPunchVelocitySensing=(int) o->value();}
 -               tooltip {Punch Velocity Sensing} xywh {215 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1
 -               code0 {o->value(pars->PPunchVelocitySensing);}
 -               class WidgetPDial
 -             }
 -             Fl_Group ampenv {
 -               label {PADSynth - Amplitude Envelope} open
 -               xywh {10 95 205 70} box FLAT_BOX color 51 align 144
 -               code0 {o->init(pars->AmpEnvelope);}
 -               class EnvelopeUI
 -             } {}
 -             Fl_Group amplfo {
 -               label {Amplitude LFO     } open
 -               xywh {10 165 230 70} box FLAT_BOX color 47 align 144
 -               code0 {o->init(pars->AmpLfo);}
 -               class LFOUI
 -             } {}
 -             Fl_Check_Button stereo {
 -               label Stereo
 -               callback {pars->PStereo=(int) o->value();
 - hprofile->redraw();}
 -               xywh {15 245 70 25} down_box DOWN_BOX
 -               code0 {o->value(pars->PStereo);}
 -             }
 -           }
 -           Fl_Group {} {
 -             label FILTER
 -             xywh {245 25 285 250} box UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 17
 -           } {
 -             Fl_Group filterenv {
 -               label {PADSynth - Filter Envelope} open
 -               xywh {250 130 275 70} box FLAT_BOX color 51 align 144
 -               code0 {o->init(pars->FilterEnvelope);}
 -               class EnvelopeUI
 -             } {}
 -             Fl_Group filterlfo {
 -               label {Filter LFO     } open
 -               xywh {250 200 230 70} box FLAT_BOX color 47 align 144
 -               code0 {o->init(pars->FilterLfo);}
 -               class LFOUI
 -             } {}
 -             Fl_Group filterui {
 -               label {PADsynth - Filter} open
 -               xywh {250 55 275 75} box FLAT_BOX color 50 align 144
 -               code0 {o->init(pars->GlobalFilter,&pars->PFilterVelocityScale,&pars->PFilterVelocityScaleFunction);}
 -               class FilterUI
 -             } {}
 -           }
 -         }
 -       }
 -       Fl_Button applybutton {
 -         label {Apply Changes}
 -         callback {pars->applyparameters(true);
 - o->color(FL_GRAY);
 - if (oscui!=NULL) {
 - 	oscui->applybutton->color(FL_GRAY);
 - 	oscui->applybutton->redraw();
 - };
 - if (resui!=NULL) {
 - 	resui->applybutton->color(FL_GRAY);
 - 	resui->applybutton->redraw();
 - };}
 -         xywh {300 400 135 30} box THIN_UP_BOX
 -         code0 {o->color(FL_RED);}
 -       }
 -       Fl_Button {} {
 -         label Close
 -         callback {padnotewindow->hide();}
 -         xywh {440 400 90 30} box THIN_UP_BOX
 -       }
 -       Fl_Button {} {
 -         label C
 -         callback {presetsui->copy(pars);}
 -         xywh {65 400 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 11 labelcolor 7
 -       }
 -       Fl_Button {} {
 -         label P
 -         callback {presetsui->paste(pars,this);}
 -         xywh {95 400 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 11 labelcolor 7
 -       }
 -       Fl_Button {} {
 -         label export
 -         callback {char *filename;
 - filename=fl_file_chooser("Export samples:","(*.wav)",NULL,0);
 - if (filename==NULL) return;
 - fl_filename_setext(filename,"");
 - 
 - 
 - 
 - pars->export2wav(filename);}
 -         tooltip {export samples as wav file} xywh {5 400 55 30} box THIN_UP_BOX color 51 labelsize 11 align 128
 -       }
 -     }
 -   }
 -   Function {refresh()} {} {
 -     code {volume->value(pars->PVolume);
 - vsns->value(pars->PAmpVelocityScaleFunction);
 - pan->value(pars->PPanning);
 - 
 - stereo->value(pars->PStereo);
 - 
 - 
 - pstr->value(pars->PPunchStrength);
 - pt->value(pars->PPunchTime);
 - pstc->value(pars->PPunchStretch);
 - pvel->value(pars->PPunchVelocitySensing);
 - 
 - detunevalueoutput->value(getdetune(pars->PDetuneType,0,pars->PDetune));
 - detune->value(pars->PDetune-8192);
 - 
 - int k=pars->PCoarseDetune/1024;if (k>=8) k-=16;
 - octave->value(k);
 - 
 - detunetype->value(pars->PDetuneType-1);
 - k=pars->PCoarseDetune%1024;if (k>=512) k-=1024;
 - coarsedet->value(k);
 - 
 - hz440->value(pars->Pfixedfreq);
 - fixedfreqetdial->value(pars->PfixedfreqET);
 - 
 - amplfo->refresh();
 - freqlfo->refresh();
 - filterlfo->refresh();
 - 
 - ampenv->refresh();
 - freqenv->refresh();
 - filterenv->refresh();
 - filterui->refresh();
 - 
 - 
 - /* harmonic structure parametrs */
 - 
 - resui->refresh();
 - if (oscui!=NULL) oscui->refresh();
 - 
 - hpbasetype->value(pars->Php.base.type);
 - hpbasepar1->value(pars->Php.base.par1);
 - hpfreqmult->value(pars->Php.freqmult);
 - 
 - hpmpar1->value(pars->Php.modulator.par1);
 - hpmfreq->value(pars->Php.modulator.freq);
 - hpwidth->value(pars->Php.width);
 - 
 - hponehalf->value(pars->Php.onehalf);
 - hpamptype->value(pars->Php.amp.type);
 - hpampmode->value(pars->Php.amp.mode);
 - hpamppar1->value(pars->Php.amp.par1);
 - hpamppar2->value(pars->Php.amp.par2);
 - hpautoscale->value(pars->Php.autoscale);
 - 
 - bwdial->value(pars->Pbandwidth);
 - if (pars->Pmode==0){
 -    bwprofilegroup->activate();
 -    bwdial->activate();
 -    bwcents->activate();
 -    hprofile->activate();
 -    hprofile->color(54);
 -    bwscale->activate();
 - } else {
 -    bwprofilegroup->deactivate();
 -    bwdial->deactivate();
 -    bwcents->deactivate();
 -    hprofile->deactivate();
 -    hprofile->color(48);
 -    bwscale->activate();
 - };
 - 
 - spectrummode->value(pars->Pmode);
 - 
 - qbasenote->value(pars->Pquality.basenote);
 - qsmpoct->value(pars->Pquality.smpoct);
 - qoct->value(pars->Pquality.oct);
 - qsamplesize->value(pars->Pquality.samplesize);
 - 
 - hrpostype->value(pars->Phrpos.type);
 - hrpospar1->value(pars->Phrpos.par1);
 - hrpospar2->value(pars->Phrpos.par2);
 - hrpospar3->value(pars->Phrpos.par3);
 - 
 - hprofile->redraw();
 - overtonepos->redraw();
 - 
 - osc->redraw();
 - pars->applyparameters(true);
 - applybutton->color(FL_GRAY);
 - applybutton->parent()->redraw();} {}
 -   }
 -   Function {~PADnoteUI()} {} {
 -     code {delete(oscui);
 - delete(resui);
 - 
 - padnotewindow->hide();
 - delete(padnotewindow);} {}
 -   }
 -   decl {PADnoteParameters *pars;} {public
 -   }
 -   decl {Master *master;} {public
 -   }
 -   decl {OscilEditor *oscui;} {public
 -   }
 -   decl {Oscilloscope *osc;} {public
 -   }
 -   decl {ResonanceUI *resui;} {public
 -   }
 - } 
 
 
  |