# data file for the Fltk User Interface Designer (fluid) version 1.0302 header_name {.h} code_name {.cc} decl {\#include "../Params/PADnoteParameters.h"} {public local } decl {\#include "ResonanceUI.h"} {public local } decl {\#include } {public local } decl {\#include } {public local } decl {\#include } {public local } decl {\#include } {private local } decl {\#include } {private local } decl {\#include } {private local } decl {\#include } {private local } decl {\#include } {public local } decl {\#include "Osc_IntModel.h"} {private local } decl {\#include "Fl_Osc_TSlider.H"} {public local } decl {\#include "Fl_Osc_VSlider.H"} {public local } decl {\#include "EnvelopeUI.h"} {public local } decl {\#include "LFOUI.h"} {public local } decl {\#include "FilterUI.h"} {public local } decl {\#include "OscilGenUI.h"} {public local } decl {\#include "Fl_PADnoteOvertonePosition.h"} {public local } decl {\#include "Fl_PADnoteHarmonicProfile.h"} {public local } decl {\#include "PresetsUI.h"} {public local } class PADnoteUI {open : {public PresetsUI_} } { Function {PADnoteUI(std::string location_, Fl_Osc_Interface *osc_)} {open } { code {assert(osc_); assert(!location_.empty()); location=location_; oscui=NULL; osc_i = osc_; resui=new ResonanceUI(osc_i, location+"resonance/"); initialized = false; applybutton = NULL; make_window(); apply_watcher = new Osc_IntModel(osc_i); apply_watcher->callback=[this](int needsPrepare) { if(needsPrepare) { applybutton->color(FL_RED); applybutton->redraw(); if(oscui) { oscui->applybutton->color(FL_RED); oscui->applybutton->redraw(); } if(resui) { resui->applybutton->color(FL_RED); resui->applybutton->redraw(); } } else { applybutton->color(FL_GRAY); applybutton->redraw(); if(oscui) { oscui->applybutton->color(FL_GRAY); oscui->applybutton->redraw(); } if(resui) { resui->applybutton->color(FL_GRAY); resui->applybutton->redraw(); } } }; apply_watcher->doUpdate(location+"needPrepare"); initialized = true;} {} } Function {make_window()} {open } { Fl_Window padnotewindow { label {PAD synth Parameters} open xywh {52 324 535 430} type Double hide class Fl_Osc_Window } { Fl_Box dummy { xywh {25 25 25 25} code0 {padnotewindow->init(osc_i, location);} } 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 xywh {0 20 535 375} box UP_FRAME class Fl_Osc_Group } { Fl_Group bwprofilegroup {open xywh {5 30 90 260} box UP_FRAME class Fl_Osc_Group } { Fl_Dial hpbasepar1 { label Width callback {if(hpui) hpui->update(); cbwidget->do_callback();} xywh {20 75 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code2 {o->init("Php.base.par1");o->reset_value=80;} class Fl_Osc_Dial } Fl_Choice hpbasetype { label {Base Type} callback {if(initialized) {hprofile->redraw(); hpui->update(); cbwidget->do_callback();}} xywh {15 45 75 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10 code0 {o->init("Php.base.type");} class Fl_Osc_Choice } { 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 {hpui->update(); cbwidget->do_callback();} xywh {55 75 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("Php.freqmult");} class Fl_Osc_Dial } Fl_Dial hpmpar1 { label Str callback {hpui->update(); cbwidget->do_callback();} xywh {15 115 20 20} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("Php.modulator.par1");} class Fl_Osc_Dial } Fl_Dial hpmfreq { label SFreq callback {hpui->update(); cbwidget->do_callback();} xywh {40 115 20 20} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("Php.modulator.freq");o->reset_value=30;} class Fl_Osc_Dial } Fl_Group {} { xywh {10 160 80 105} box BORDER_BOX } { Fl_Choice hpamptype { label AmpMultiplier callback {if(initialized) {hprofile->redraw(); hpui->update(); cbwidget->do_callback();}} xywh {15 175 70 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10 code0 {o->init("Php.amp.type");} class Fl_Osc_Choice } { 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 {if(initialized) {hpui->update(); cbwidget->do_callback();}} xywh {15 205 70 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10 code0 {o->init("Php.amp.mode");} class Fl_Osc_Choice } { 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 {hpui->update(); cbwidget->do_callback();} xywh {15 235 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("Php.amp.par1");o->reset_value=80;} class Fl_Osc_Dial } Fl_Dial hpamppar2 { label Par2 callback {hpui->update(); cbwidget->do_callback();} xywh {55 235 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("Php.amp.par2");o->reset_value=64;} class Fl_Osc_Dial } } Fl_Check_Button hpautoscale { label autoscale callback { if(initialized) { hpui->update(); hprofile->redraw(); cbwidget->do_callback();}} xywh {10 270 60 15} down_box DOWN_BOX labelsize 10 code0 {o->init("Php.autoscale");} class Fl_Osc_Check } Fl_Choice hponehalf { callback {if(initialized) {hprofile->redraw(); hpui->update(); cbwidget->do_callback();}} xywh {10 143 80 15} down_box BORDER_BOX labelsize 10 align 5 textsize 10 code0 {o->init("Php.onehalf");} class Fl_Osc_Choice } { 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 {hpui->update(); cbwidget->do_callback();} xywh {65 115 20 20} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("Php.width");o->reset_value=127;} class Fl_Osc_Dial } } Fl_Group oscilgroup {open xywh {100 155 270 135} box THIN_DOWN_BOX color 32 selection_color 71 labelcolor 179 align 6 code0 {oscilgroup->base = location; oscilgroup->ext="oscilgen/"; oscilgroup->osc = osc_i;} code1 {osc=new Fl_Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");osc->init(false);} class Fl_Osc_Group } {} Fl_Button {} { label Change callback {if (oscui!=NULL) delete (oscui); oscui=new OscilEditor(false, location+"oscilgen/",osc_i);} xywh {375 270 60 20} box THIN_UP_BOX labelfont 1 labelsize 11 } Fl_Box cbwidget { label {Harmonic Content} callback {opui->update(); if(applybutton) { 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 {o->oscWrite("bandwidthvalue");cbwidget->do_callback();} xywh {15 295 35 35} box ROUND_UP_BOX labelsize 10 maximum 1000 step 1 code0 {o->init("Pbandwidth");o->reset_value=500;} class Fl_Osc_Dial } Fl_Value_Output bwcents { label cents xywh {55 305 55 15} labelsize 10 align 6 maximum 10000 step 0.1 code0 {o->init("bandwidthvalue");} class Fl_Osc_Output } Fl_Group {} {open xywh {315 295 215 45} box UP_FRAME } { Fl_Choice hrpostype { label OvertonesPosition callback {if(initialized) {opui->update(); cbwidget->do_callback();}} xywh {325 310 80 20} down_box BORDER_BOX labelsize 10 align 5 textsize 11 code0 {o->init("Phrpos.type");} class Fl_Osc_Choice } { 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 } MenuItem {} { label Shift selected xywh {130 130 100 20} labelfont 1 labelsize 11 } } Fl_Dial hrpospar1 { label Par1 callback {opui->update(); hpui->update(); cbwidget->do_callback();} xywh {425 310 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 255 step 1 code0 {o->init("Phrpos.par1");o->reset_value=64;} class Fl_Osc_Dial } Fl_Dial hrpospar2 { label Par2 callback {opui->update(); cbwidget->do_callback();} xywh {460 310 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 255 step 1 code0 {o->init("Phrpos.par2");o->reset_value=64;} class Fl_Osc_Dial } Fl_Dial hrpospar3 { label ForceH callback {opui->update(); cbwidget->do_callback();} xywh {495 310 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 255 step 1 code0 {o->init("Phrpos.par3");} class Fl_Osc_Dial } } Fl_Choice bwscale { label {Bandwidth Scale} callback {if(initialized) {cbwidget->do_callback();}} xywh {120 305 80 20} down_box BORDER_BOX labelsize 10 align 5 textsize 11 code0 {o->init("Pbwscale");} class Fl_Osc_Choice } { 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 {opui=new PADnoteOvertonePosition(o->x(),o->y(),o->w(),o->h(),"");} code1 {opui->init();} } {} Fl_Choice qsamplesize { label {Sample Size} callback {if(initialized) {cbwidget->do_callback();}} xywh {375 190 115 20} down_box BORDER_BOX labelsize 10 align 5 textsize 11 code0 {o->init("Pquality.samplesize");} class Fl_Osc_Choice } { 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 {if(initialized) cbwidget->do_callback();} xywh {430 155 45 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11 code0 {o->init("Pquality.smpoct");} class Fl_Osc_Choice } { 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 {if(initialized) cbwidget->do_callback();} xywh {480 155 45 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11 code0 {o->init("Pquality.oct");} class Fl_Osc_Choice } { 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 {if(initialized) cbwidget->do_callback();} xywh {375 155 50 20} down_box BORDER_BOX labelsize 11 align 5 textsize 11 code0 {o->init("Pquality.basenote");} class Fl_Osc_Choice } { 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 {hpui=new PADnoteHarmonicProfile(o->x(),o->y(),o->w(),o->h(),"");} code1 {hpui->init();} } {} Fl_Box {} { label {Profile of One Harmonic (Frequency Distribution)} xywh {160 25 315 20} } Fl_Choice spectrummode { label {Spectrum Mode} callback { if (o->value()==0){ bwprofilegroup->activate(); bwdial->activate(); bwcents->activate(); hprofile->activate(); hprofile->color(51); bwscale->activate(); } else { bwprofilegroup->deactivate(); bwdial->deactivate(); bwcents->deactivate(); hprofile->deactivate(); hprofile->color(48); bwscale->deactivate(); }; hpui->update(); cbwidget->do_callback();} xywh {220 305 90 20} down_box BORDER_BOX labelfont 1 labelsize 10 align 5 textsize 11 code0 {o->init("Pmode");} class Fl_Osc_Choice } { 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 Continuous 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 open 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(ENV_ASR, osc_i, location, "FreqEnvelope/");} class EnvelopeUI } {} Fl_Counter octave { label Octave tooltip Octave xywh {470 295 45 15} type Simple labelsize 10 align 1 minimum -8 maximum 7 step 1 textfont 1 textsize 11 code0 {o->init("octave");} class Fl_Osc_Counter } Fl_Counter coarsedet { label {Coarse det.} 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 {o->init("coarsedetune");} code3 {o->lstep(10);} class Fl_Osc_Counter } Fl_Group freqlfo { label {Frequency LFO } open xywh {215 315 230 70} box FLAT_BOX color 47 align 144 code0 {o->init(osc_i, location, "FreqLfo/");} class LFOUI } {} Fl_Slider detune { callback {o->oscWrite("detunevalue");} tooltip {Fine Detune (cents)} xywh {60 296 295 15} type {Horz Knob} box NO_BOX minimum -8192 maximum 8191 step 1 code0 {o->init("PDetune", 'i');} class Fl_Osc_Slider } Fl_Value_Output detunevalueoutput { label Detune xywh {12 296 45 15} labelsize 10 align 5 minimum -5000 maximum 5000 step 0.01 textfont 1 textsize 10 code0 {o->init("detunevalue");} class Fl_Osc_Output } Fl_Choice detunetype { label {Detune Type} callback {o->oscWrite("detunevalue");} 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->init("PDetuneType",1);} class Fl_Osc_Choice } {} Fl_Dial bendadjustdial { label Bend tooltip {How the frequency varies according to the pitch wheel} xywh {60 278 15 15} box ROUND_UP_BOX labelsize 10 align 8 minimum -64 maximum 63 step 1 code0 {o->init("PBendAdjust");o->reset_value=24;o->set_transform([](float x){return x/24.0f;});o->set_rounding(2);} class Fl_Osc_Dial } Fl_Dial offsethzdial { label Offset tooltip {Offset of frequency in Hz} xywh {110 278 15 15} box ROUND_UP_BOX labelsize 10 align 8 minimum -64 maximum 63 step 1 code0 {o->init("POffsetHz"); o->set_rounding(2); o->set_transform([](float x){x/=64; return 15*(x*sqrtf(fabsf(x)));});} class Fl_Osc_Dial } Fl_Check_Button hz440 { label 440Hz callback {if (o->value()==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->init("Pfixedfreq");} class Fl_Osc_Check } Fl_Dial fixedfreqetdial { label {Eq.T.} tooltip {How the frequency varies according 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->init("PfixedfreqET");} class Fl_Osc_Dial } } Fl_Group {} { label AMPLITUDE open xywh {5 25 240 250} box UP_FRAME labeltype EMBOSSED_LABEL labelfont 1 labelsize 13 align 17 } { Fl_Value_Slider volume { label Vol tooltip Volume xywh {10 50 160 15} type {Horz Knob} box NO_BOX labelsize 11 align 8 maximum 127 step 1 code0 {o->init("PVolume", 'i');o->reset_value=90;} class Fl_Osc_VSlider } Fl_Value_Slider vsns { label {V.Sns} 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->init("PAmpVelocityScaleFunction");o->reset_value=64;} class Fl_Osc_VSlider } Fl_Dial pan { label Pan tooltip {Panning (leftmost is Random)} xywh {210 45 30 30} box ROUND_UP_BOX labelsize 10 maximum 127 step 1 code0 {o->init("PPanning");o->reset_value=64;} class Fl_Osc_Dial } Fl_Dial {} { label De-pop selected tooltip {Pop suppression} xywh {208 238 20 20} type Float labelsize 10 maximum 127 step 1 textfont 1 textsize 11 code0 {o->init("Fadein_adjustment");o->reset_value=20;} class Fl_Osc_Dial } Fl_Dial pstr { label {P.Str.} tooltip {Punch Strength} xywh {78 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("PPunchStrength");} class Fl_Osc_Dial } Fl_Dial pt { label {P.t.} tooltip {Punch Time (duration)} xywh {108 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("PPunchTime");o->reset_value=60;} class Fl_Osc_Dial } Fl_Dial pstc { label {P.Stc.} tooltip {Punch Stretch} xywh {138 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("PPunchStretch");o->reset_value=64;} class Fl_Osc_Dial } Fl_Dial pvel { label {P.Vel.} tooltip {Punch Velocity Sensing} xywh {168 247 25 25} box ROUND_UP_BOX labelsize 10 align 1 maximum 127 step 1 code0 {o->init("PPunchVelocitySensing");o->reset_value=72;} class Fl_Osc_Dial } Fl_Group ampenv { label {PADSynth - Amplitude Envelope} open xywh {10 95 205 70} box FLAT_BOX color 51 align 144 code0 {o->init(ENV_ADSR, osc_i, location, "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(osc_i, location, "AmpLfo/");} class LFOUI } {} Fl_Check_Button stereo { label Stereo callback {hprofile->redraw();} xywh {10 245 70 25} down_box DOWN_BOX labelsize 12 code0 {o->init("PStereo");} class Fl_Osc_Check } } Fl_Group {} { label FILTER open 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(ENV_ADSR_FILTER, osc_i, location, "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(osc_i, location, "FilterLfo/");} class LFOUI } {} Fl_Group filterui { label {PADsynth - Filter} open xywh {250 50 275 75} box FLAT_BOX color 50 align 144 code0 {o->init(location + "PFilter", osc_i, location, "GlobalFilter/");} class FilterUI } {} } } } Fl_Button applybutton { label {Apply Changes} callback {osc_i->requestValue(location+"prepare"); //MiddleWare::preparePadSynth(location.c_str(), pars); 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 {200 400 135 25} box THIN_UP_BOX code0 {o->color(FL_RED);} } Fl_Button {} { label Close callback {padnotewindow->hide();} xywh {470 400 60 25} box THIN_UP_BOX } Fl_Button {} { label C callback {presetsui->copy(padnotewindow->loc());} xywh {400 405 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 11 labelcolor 55 } Fl_Button {} { label P callback {presetsui->paste(padnotewindow->loc(),this);} xywh {430 405 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 11 labelcolor 55 } Fl_Button {} { label export callback {char *filename; filename=fl_file_chooser("Export samples:","(*.wav)",NULL,0); if (filename==NULL) return; fl_filename_setext(filename,""); o->oscWrite("export2wav", "s", filename);} tooltip {export samples as wav file} xywh {5 400 55 25} box THIN_UP_BOX color 51 labelsize 11 align 128 class Fl_Osc_Button } } } Function {refresh()} {open } { code {amplfo->refresh(); freqlfo->refresh(); filterlfo->refresh(); ampenv->refresh(); freqenv->refresh(); filterenv->refresh(); filterui->refresh(); /* harmonic structure parametrs */ resui->refresh(); if (oscui) oscui->refresh(); if (spectrummode->value()==0){ bwprofilegroup->activate(); bwdial->activate(); bwcents->activate(); hprofile->activate(); hprofile->color(51); bwscale->activate(); } else { bwprofilegroup->deactivate(); bwdial->deactivate(); bwcents->deactivate(); hprofile->deactivate(); hprofile->color(48); bwscale->activate(); }; hprofile->redraw(); opui->update(); osc->redraw(); //MiddleWare::preparePadSynth(location.c_str(), pars); applybutton->color(FL_GRAY); applybutton->parent()->redraw();} {} } Function {~PADnoteUI()} {} { code { delete apply_watcher; delete(oscui); delete(resui); padnotewindow->hide(); delete padnotewindow;} {} } decl {OscilEditor *oscui;} {public local } decl {bool initialized;}{private local } decl {Fl_Oscilloscope *osc;} {public local } decl {ResonanceUI *resui;} {public local } decl {std::string location;} {private local } decl {Fl_Osc_Interface *osc_i;} {private local } decl {PADnoteHarmonicProfile *hpui;} {private local } decl {PADnoteOvertonePosition *opui;} {private local } decl {class Osc_IntModel *apply_watcher;} {private local } }