|
- # 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
- }
- }
|