// generated by Fast Light User Interface Designer (fluid) version 1.0300 #include "external/zynaddsubfx/UI/PADnoteUI.h" #include #include #include #include #include "Osc_IntModel.h" void PADnoteUI::cb__i(Fl_Tabs* o, void*) { if (o->value()!=harmonicstructuregroup) applybutton->hide(); else applybutton->show(); } void PADnoteUI::cb_(Fl_Tabs* o, void* v) { ((PADnoteUI*)(o->parent()->user_data()))->cb__i(o,v); } void PADnoteUI::cb_hpbasepar1_i(Fl_Osc_Dial*, void*) { if(hpui) hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpbasepar1(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpbasepar1_i(o,v); } void PADnoteUI::cb_hpbasetype_i(Fl_Osc_Choice*, void*) { if(initialized) {hprofile->redraw(); hpui->update(); cbwidget->do_callback();}; } void PADnoteUI::cb_hpbasetype(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpbasetype_i(o,v); } Fl_Menu_Item PADnoteUI::menu_hpbasetype[] = { {"Gauss", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Square", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"DoubleExp", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_hpfreqmult_i(Fl_Osc_Dial*, void*) { hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpfreqmult(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpfreqmult_i(o,v); } void PADnoteUI::cb_hpmpar1_i(Fl_Osc_Dial*, void*) { hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpmpar1(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpmpar1_i(o,v); } void PADnoteUI::cb_hpmfreq_i(Fl_Osc_Dial*, void*) { hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpmfreq(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpmfreq_i(o,v); } void PADnoteUI::cb_hpamptype_i(Fl_Osc_Choice*, void*) { if(initialized) {hprofile->redraw(); hpui->update(); cbwidget->do_callback();}; } void PADnoteUI::cb_hpamptype(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_hpamptype_i(o,v); } Fl_Menu_Item PADnoteUI::menu_hpamptype[] = { {"OFF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Gauss", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Sine", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Flat", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_hpampmode_i(Fl_Osc_Choice*, void*) { if(initialized) {hpui->update(); cbwidget->do_callback();}; } void PADnoteUI::cb_hpampmode(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_hpampmode_i(o,v); } Fl_Menu_Item PADnoteUI::menu_hpampmode[] = { {"Sum", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Mult", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Div1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Div2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_hpamppar1_i(Fl_Osc_Dial*, void*) { hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpamppar1(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_hpamppar1_i(o,v); } void PADnoteUI::cb_hpamppar2_i(Fl_Osc_Dial*, void*) { hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpamppar2(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_hpamppar2_i(o,v); } void PADnoteUI::cb_hpautoscale_i(Fl_Osc_Check*, void*) { if(initialized) { hpui->update(); hprofile->redraw(); cbwidget->do_callback();}; } void PADnoteUI::cb_hpautoscale(Fl_Osc_Check* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpautoscale_i(o,v); } void PADnoteUI::cb_hponehalf_i(Fl_Osc_Choice*, void*) { if(initialized) {hprofile->redraw(); hpui->update(); cbwidget->do_callback();}; } void PADnoteUI::cb_hponehalf(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hponehalf_i(o,v); } Fl_Menu_Item PADnoteUI::menu_hponehalf[] = { {"Full", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Upper Half", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Lower Half", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_hpwidth_i(Fl_Osc_Dial*, void*) { hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hpwidth(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hpwidth_i(o,v); } void PADnoteUI::cb_Change_i(Fl_Button*, void*) { if (oscui!=NULL) delete (oscui); oscui=new OscilEditor(false, location+"oscilgen/",osc_i); } void PADnoteUI::cb_Change(Fl_Button* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_Change_i(o,v); } void PADnoteUI::cb_cbwidget_i(Fl_Box*, void*) { opui->update(); if(applybutton) { applybutton->color(FL_RED); applybutton->redraw();}; } void PADnoteUI::cb_cbwidget(Fl_Box* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_cbwidget_i(o,v); } void PADnoteUI::cb_Resonance_i(Fl_Button*, void*) { resui->resonancewindow->redraw(); resui->resonancewindow->show(); resui->setcbwidget(cbwidget,applybutton); } void PADnoteUI::cb_Resonance(Fl_Button* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_Resonance_i(o,v); } void PADnoteUI::cb_bwdial_i(Fl_Osc_Dial* o, void*) { o->oscWrite("bandwidthvalue");cbwidget->do_callback(); } void PADnoteUI::cb_bwdial(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_bwdial_i(o,v); } void PADnoteUI::cb_hrpostype_i(Fl_Osc_Choice*, void*) { if(initialized) {opui->update(); cbwidget->do_callback();}; } void PADnoteUI::cb_hrpostype(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hrpostype_i(o,v); } Fl_Menu_Item PADnoteUI::menu_hrpostype[] = { {"Harmonic", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"ShiftU", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"ShiftL", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"PowerU", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"PowerL", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Sine", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Power", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Shift", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_hrpospar1_i(Fl_Osc_Dial*, void*) { opui->update(); hpui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hrpospar1(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hrpospar1_i(o,v); } void PADnoteUI::cb_hrpospar2_i(Fl_Osc_Dial*, void*) { opui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hrpospar2(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hrpospar2_i(o,v); } void PADnoteUI::cb_hrpospar3_i(Fl_Osc_Dial*, void*) { opui->update(); cbwidget->do_callback(); } void PADnoteUI::cb_hrpospar3(Fl_Osc_Dial* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hrpospar3_i(o,v); } void PADnoteUI::cb_bwscale_i(Fl_Osc_Choice*, void*) { if(initialized) {cbwidget->do_callback();}; } void PADnoteUI::cb_bwscale(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_bwscale_i(o,v); } Fl_Menu_Item PADnoteUI::menu_bwscale[] = { {"Normal", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"EqualHz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Quater", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Half", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"75%", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"150%", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Double", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Inv.Half", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_qsamplesize_i(Fl_Osc_Choice*, void*) { if(initialized) {cbwidget->do_callback();}; } void PADnoteUI::cb_qsamplesize(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_qsamplesize_i(o,v); } Fl_Menu_Item PADnoteUI::menu_qsamplesize[] = { {"16k (Tiny)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"32k", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"64k (Small)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"128k", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"256k (Normal)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"512k", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"1M (Big)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_qsmpoct_i(Fl_Osc_Choice*, void*) { if(initialized) cbwidget->do_callback(); } void PADnoteUI::cb_qsmpoct(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_qsmpoct_i(o,v); } Fl_Menu_Item PADnoteUI::menu_qsmpoct[] = { {"0.5", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"3", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"4", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"6", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"12", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_qoct_i(Fl_Osc_Choice*, void*) { if(initialized) cbwidget->do_callback(); } void PADnoteUI::cb_qoct(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_qoct_i(o,v); } Fl_Menu_Item PADnoteUI::menu_qoct[] = { {"1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"3", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"4", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"5", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"6", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"7", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"8", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_qbasenote_i(Fl_Osc_Choice*, void*) { if(initialized) cbwidget->do_callback(); } void PADnoteUI::cb_qbasenote(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_qbasenote_i(o,v); } Fl_Menu_Item PADnoteUI::menu_qbasenote[] = { {"C-2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"G-2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"C-3", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"G-3", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"C-4", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"G-4", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"C-5", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"G-5", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"G-6", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_spectrummode_i(Fl_Osc_Choice* o, void*) { 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(); } void PADnoteUI::cb_spectrummode(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->user_data()))->cb_spectrummode_i(o,v); } Fl_Menu_Item PADnoteUI::menu_spectrummode[] = { {"Bandwidth", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Discrete", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Continuous", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PADnoteUI::cb_detune_i(Fl_Osc_Slider* o, void*) { o->oscWrite("detunevalue"); } void PADnoteUI::cb_detune(Fl_Osc_Slider* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_detune_i(o,v); } void PADnoteUI::cb_detunetype_i(Fl_Osc_Choice* o, void*) { o->oscWrite("detunevalue"); } void PADnoteUI::cb_detunetype(Fl_Osc_Choice* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_detunetype_i(o,v); } void PADnoteUI::cb_hz440_i(Fl_Osc_Check* o, void*) { if (o->value()==0) fixedfreqetdial->deactivate(); else fixedfreqetdial->activate(); } void PADnoteUI::cb_hz440(Fl_Osc_Check* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_hz440_i(o,v); } void PADnoteUI::cb_stereo_i(Fl_Osc_Check*, void*) { hprofile->redraw(); } void PADnoteUI::cb_stereo(Fl_Osc_Check* o, void* v) { ((PADnoteUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_stereo_i(o,v); } void PADnoteUI::cb_applybutton_i(Fl_Button* o, void*) { 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(); }; } void PADnoteUI::cb_applybutton(Fl_Button* o, void* v) { ((PADnoteUI*)(o->parent()->user_data()))->cb_applybutton_i(o,v); } void PADnoteUI::cb_Close_i(Fl_Button*, void*) { padnotewindow->hide(); } void PADnoteUI::cb_Close(Fl_Button* o, void* v) { ((PADnoteUI*)(o->parent()->user_data()))->cb_Close_i(o,v); } void PADnoteUI::cb_C_i(Fl_Button*, void*) { presetsui->copy(padnotewindow->loc()); } void PADnoteUI::cb_C(Fl_Button* o, void* v) { ((PADnoteUI*)(o->parent()->user_data()))->cb_C_i(o,v); } void PADnoteUI::cb_P_i(Fl_Button*, void*) { presetsui->paste(padnotewindow->loc(),this); } void PADnoteUI::cb_P(Fl_Button* o, void* v) { ((PADnoteUI*)(o->parent()->user_data()))->cb_P_i(o,v); } void PADnoteUI::cb_export_i(Fl_Osc_Button* o, void*) { char *filename; filename=fl_file_chooser("Export samples:","(*.wav)",NULL,0); if (filename==NULL) return; fl_filename_setext(filename,""); o->oscWrite("export2wav", "s", filename); } void PADnoteUI::cb_export(Fl_Osc_Button* o, void* v) { ((PADnoteUI*)(o->parent()->user_data()))->cb_export_i(o,v); } PADnoteUI::PADnoteUI(std::string location_, Fl_Osc_Interface *osc_) { 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; } Fl_Osc_Window* PADnoteUI::make_window() { { padnotewindow = new Fl_Osc_Window(535, 430, "PAD synth Parameters"); padnotewindow->box(FL_FLAT_BOX); padnotewindow->color(FL_BACKGROUND_COLOR); padnotewindow->selection_color(FL_BACKGROUND_COLOR); padnotewindow->labeltype(FL_NO_LABEL); padnotewindow->labelfont(0); padnotewindow->labelsize(14); padnotewindow->labelcolor(FL_FOREGROUND_COLOR); padnotewindow->user_data((void*)(this)); padnotewindow->align(Fl_Align(FL_ALIGN_TOP)); padnotewindow->when(FL_WHEN_RELEASE); { dummy = new Fl_Box(25, 25, 25, 25); padnotewindow->init(osc_i, location); } // Fl_Box* dummy { Fl_Tabs* o = new Fl_Tabs(0, 0, 535, 395); o->box(FL_UP_FRAME); o->callback((Fl_Callback*)cb_); { harmonicstructuregroup = new Fl_Osc_Group(0, 20, 535, 375, "Harmonic Structure"); harmonicstructuregroup->box(FL_UP_FRAME); harmonicstructuregroup->color(FL_BACKGROUND_COLOR); harmonicstructuregroup->selection_color(FL_BACKGROUND_COLOR); harmonicstructuregroup->labeltype(FL_NORMAL_LABEL); harmonicstructuregroup->labelfont(0); harmonicstructuregroup->labelsize(14); harmonicstructuregroup->labelcolor(FL_FOREGROUND_COLOR); harmonicstructuregroup->align(Fl_Align(FL_ALIGN_TOP)); harmonicstructuregroup->when(FL_WHEN_RELEASE); { bwprofilegroup = new Fl_Osc_Group(5, 30, 90, 260); bwprofilegroup->box(FL_UP_FRAME); bwprofilegroup->color(FL_BACKGROUND_COLOR); bwprofilegroup->selection_color(FL_BACKGROUND_COLOR); bwprofilegroup->labeltype(FL_NORMAL_LABEL); bwprofilegroup->labelfont(0); bwprofilegroup->labelsize(14); bwprofilegroup->labelcolor(FL_FOREGROUND_COLOR); bwprofilegroup->align(Fl_Align(FL_ALIGN_TOP)); bwprofilegroup->when(FL_WHEN_RELEASE); { Fl_Osc_Dial* o = hpbasepar1 = new Fl_Osc_Dial(20, 75, 25, 25, "Width"); hpbasepar1->box(FL_ROUND_UP_BOX); hpbasepar1->color(FL_BACKGROUND_COLOR); hpbasepar1->selection_color(FL_INACTIVE_COLOR); hpbasepar1->labeltype(FL_NORMAL_LABEL); hpbasepar1->labelfont(0); hpbasepar1->labelsize(10); hpbasepar1->labelcolor(FL_FOREGROUND_COLOR); hpbasepar1->maximum(127); hpbasepar1->step(1); hpbasepar1->callback((Fl_Callback*)cb_hpbasepar1); hpbasepar1->align(Fl_Align(FL_ALIGN_TOP)); hpbasepar1->when(FL_WHEN_CHANGED); o->init("Php.base.par1");o->reset_value=80; } // Fl_Osc_Dial* hpbasepar1 { Fl_Osc_Choice* o = hpbasetype = new Fl_Osc_Choice(15, 45, 75, 15, "Base Type"); hpbasetype->box(FL_UP_BOX); hpbasetype->down_box(FL_BORDER_BOX); hpbasetype->color(FL_BACKGROUND_COLOR); hpbasetype->selection_color(FL_SELECTION_COLOR); hpbasetype->labeltype(FL_NORMAL_LABEL); hpbasetype->labelfont(0); hpbasetype->labelsize(10); hpbasetype->labelcolor(FL_FOREGROUND_COLOR); hpbasetype->textsize(10); hpbasetype->callback((Fl_Callback*)cb_hpbasetype); hpbasetype->align(Fl_Align(FL_ALIGN_TOP_LEFT)); hpbasetype->when(FL_WHEN_RELEASE); hpbasetype->menu(menu_hpbasetype); o->init("Php.base.type"); } // Fl_Osc_Choice* hpbasetype { Fl_Osc_Dial* o = hpfreqmult = new Fl_Osc_Dial(55, 75, 25, 25, "FreqMlt"); hpfreqmult->box(FL_ROUND_UP_BOX); hpfreqmult->color(FL_BACKGROUND_COLOR); hpfreqmult->selection_color(FL_INACTIVE_COLOR); hpfreqmult->labeltype(FL_NORMAL_LABEL); hpfreqmult->labelfont(0); hpfreqmult->labelsize(10); hpfreqmult->labelcolor(FL_FOREGROUND_COLOR); hpfreqmult->maximum(127); hpfreqmult->step(1); hpfreqmult->callback((Fl_Callback*)cb_hpfreqmult); hpfreqmult->align(Fl_Align(FL_ALIGN_TOP)); hpfreqmult->when(FL_WHEN_CHANGED); o->init("Php.freqmult"); } // Fl_Osc_Dial* hpfreqmult { Fl_Osc_Dial* o = hpmpar1 = new Fl_Osc_Dial(15, 115, 20, 20, "Str"); hpmpar1->box(FL_ROUND_UP_BOX); hpmpar1->color(FL_BACKGROUND_COLOR); hpmpar1->selection_color(FL_INACTIVE_COLOR); hpmpar1->labeltype(FL_NORMAL_LABEL); hpmpar1->labelfont(0); hpmpar1->labelsize(10); hpmpar1->labelcolor(FL_FOREGROUND_COLOR); hpmpar1->maximum(127); hpmpar1->step(1); hpmpar1->callback((Fl_Callback*)cb_hpmpar1); hpmpar1->align(Fl_Align(FL_ALIGN_TOP)); hpmpar1->when(FL_WHEN_CHANGED); o->init("Php.modulator.par1"); } // Fl_Osc_Dial* hpmpar1 { Fl_Osc_Dial* o = hpmfreq = new Fl_Osc_Dial(40, 115, 20, 20, "SFreq"); hpmfreq->box(FL_ROUND_UP_BOX); hpmfreq->color(FL_BACKGROUND_COLOR); hpmfreq->selection_color(FL_INACTIVE_COLOR); hpmfreq->labeltype(FL_NORMAL_LABEL); hpmfreq->labelfont(0); hpmfreq->labelsize(10); hpmfreq->labelcolor(FL_FOREGROUND_COLOR); hpmfreq->maximum(127); hpmfreq->step(1); hpmfreq->callback((Fl_Callback*)cb_hpmfreq); hpmfreq->align(Fl_Align(FL_ALIGN_TOP)); hpmfreq->when(FL_WHEN_CHANGED); o->init("Php.modulator.freq");o->reset_value=30; } // Fl_Osc_Dial* hpmfreq { Fl_Group* o = new Fl_Group(10, 160, 80, 105); o->box(FL_BORDER_BOX); { Fl_Osc_Choice* o = hpamptype = new Fl_Osc_Choice(15, 175, 70, 15, "AmpMultiplier"); hpamptype->box(FL_UP_BOX); hpamptype->down_box(FL_BORDER_BOX); hpamptype->color(FL_BACKGROUND_COLOR); hpamptype->selection_color(FL_SELECTION_COLOR); hpamptype->labeltype(FL_NORMAL_LABEL); hpamptype->labelfont(0); hpamptype->labelsize(10); hpamptype->labelcolor(FL_FOREGROUND_COLOR); hpamptype->textsize(10); hpamptype->callback((Fl_Callback*)cb_hpamptype); hpamptype->align(Fl_Align(FL_ALIGN_TOP_LEFT)); hpamptype->when(FL_WHEN_RELEASE); hpamptype->menu(menu_hpamptype); o->init("Php.amp.type"); } // Fl_Osc_Choice* hpamptype { Fl_Osc_Choice* o = hpampmode = new Fl_Osc_Choice(15, 205, 70, 15, "AmpMode"); hpampmode->box(FL_UP_BOX); hpampmode->down_box(FL_BORDER_BOX); hpampmode->color(FL_BACKGROUND_COLOR); hpampmode->selection_color(FL_SELECTION_COLOR); hpampmode->labeltype(FL_NORMAL_LABEL); hpampmode->labelfont(0); hpampmode->labelsize(10); hpampmode->labelcolor(FL_FOREGROUND_COLOR); hpampmode->textsize(10); hpampmode->callback((Fl_Callback*)cb_hpampmode); hpampmode->align(Fl_Align(FL_ALIGN_TOP_LEFT)); hpampmode->when(FL_WHEN_RELEASE); hpampmode->menu(menu_hpampmode); o->init("Php.amp.mode"); } // Fl_Osc_Choice* hpampmode { Fl_Osc_Dial* o = hpamppar1 = new Fl_Osc_Dial(15, 235, 25, 25, "Par1"); hpamppar1->box(FL_ROUND_UP_BOX); hpamppar1->color(FL_BACKGROUND_COLOR); hpamppar1->selection_color(FL_INACTIVE_COLOR); hpamppar1->labeltype(FL_NORMAL_LABEL); hpamppar1->labelfont(0); hpamppar1->labelsize(10); hpamppar1->labelcolor(FL_FOREGROUND_COLOR); hpamppar1->maximum(127); hpamppar1->step(1); hpamppar1->callback((Fl_Callback*)cb_hpamppar1); hpamppar1->align(Fl_Align(FL_ALIGN_TOP)); hpamppar1->when(FL_WHEN_CHANGED); o->init("Php.amp.par1");o->reset_value=80; } // Fl_Osc_Dial* hpamppar1 { Fl_Osc_Dial* o = hpamppar2 = new Fl_Osc_Dial(55, 235, 25, 25, "Par2"); hpamppar2->box(FL_ROUND_UP_BOX); hpamppar2->color(FL_BACKGROUND_COLOR); hpamppar2->selection_color(FL_INACTIVE_COLOR); hpamppar2->labeltype(FL_NORMAL_LABEL); hpamppar2->labelfont(0); hpamppar2->labelsize(10); hpamppar2->labelcolor(FL_FOREGROUND_COLOR); hpamppar2->maximum(127); hpamppar2->step(1); hpamppar2->callback((Fl_Callback*)cb_hpamppar2); hpamppar2->align(Fl_Align(FL_ALIGN_TOP)); hpamppar2->when(FL_WHEN_CHANGED); o->init("Php.amp.par2");o->reset_value=64; } // Fl_Osc_Dial* hpamppar2 o->end(); } // Fl_Group* o { Fl_Osc_Check* o = hpautoscale = new Fl_Osc_Check(10, 270, 60, 15, "autoscale"); hpautoscale->box(FL_NO_BOX); hpautoscale->down_box(FL_DOWN_BOX); hpautoscale->color(FL_BACKGROUND_COLOR); hpautoscale->selection_color(FL_FOREGROUND_COLOR); hpautoscale->labeltype(FL_NORMAL_LABEL); hpautoscale->labelfont(0); hpautoscale->labelsize(10); hpautoscale->labelcolor(FL_FOREGROUND_COLOR); hpautoscale->callback((Fl_Callback*)cb_hpautoscale); hpautoscale->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); hpautoscale->when(FL_WHEN_RELEASE); o->init("Php.autoscale"); } // Fl_Osc_Check* hpautoscale { Fl_Osc_Choice* o = hponehalf = new Fl_Osc_Choice(10, 143, 80, 15); hponehalf->box(FL_UP_BOX); hponehalf->down_box(FL_BORDER_BOX); hponehalf->color(FL_BACKGROUND_COLOR); hponehalf->selection_color(FL_SELECTION_COLOR); hponehalf->labeltype(FL_NORMAL_LABEL); hponehalf->labelfont(0); hponehalf->labelsize(10); hponehalf->labelcolor(FL_FOREGROUND_COLOR); hponehalf->textsize(10); hponehalf->callback((Fl_Callback*)cb_hponehalf); hponehalf->align(Fl_Align(FL_ALIGN_TOP_LEFT)); hponehalf->when(FL_WHEN_RELEASE); hponehalf->menu(menu_hponehalf); o->init("Php.onehalf"); } // Fl_Osc_Choice* hponehalf { Fl_Osc_Dial* o = hpwidth = new Fl_Osc_Dial(65, 115, 20, 20, "Size"); hpwidth->box(FL_ROUND_UP_BOX); hpwidth->color(FL_BACKGROUND_COLOR); hpwidth->selection_color(FL_INACTIVE_COLOR); hpwidth->labeltype(FL_NORMAL_LABEL); hpwidth->labelfont(0); hpwidth->labelsize(10); hpwidth->labelcolor(FL_FOREGROUND_COLOR); hpwidth->maximum(127); hpwidth->step(1); hpwidth->callback((Fl_Callback*)cb_hpwidth); hpwidth->align(Fl_Align(FL_ALIGN_TOP)); hpwidth->when(FL_WHEN_CHANGED); o->init("Php.width");o->reset_value=127; } // Fl_Osc_Dial* hpwidth bwprofilegroup->end(); } // Fl_Osc_Group* bwprofilegroup { Fl_Osc_Group* o = oscilgroup = new Fl_Osc_Group(100, 155, 270, 135); oscilgroup->box(FL_THIN_DOWN_BOX); oscilgroup->color(FL_GRAY0); oscilgroup->selection_color((Fl_Color)71); oscilgroup->labeltype(FL_NORMAL_LABEL); oscilgroup->labelfont(0); oscilgroup->labelsize(14); oscilgroup->labelcolor((Fl_Color)179); oscilgroup->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); oscilgroup->when(FL_WHEN_RELEASE); oscilgroup->base = location; oscilgroup->ext="oscilgen/"; oscilgroup->osc = osc_i; osc=new Fl_Oscilloscope(o->x(),o->y(),o->w(),o->h(),"");osc->init(false); oscilgroup->end(); } // Fl_Osc_Group* oscilgroup { Fl_Button* o = new Fl_Button(375, 270, 60, 20, "Change"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(11); o->callback((Fl_Callback*)cb_Change); } // Fl_Button* o { cbwidget = new Fl_Box(125, 135, 205, 20, "Harmonic Content"); cbwidget->callback((Fl_Callback*)cb_cbwidget); cbwidget->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE)); } // Fl_Box* cbwidget { Fl_Button* o = new Fl_Button(375, 225, 80, 20, "Resonance"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Resonance); } // Fl_Button* o { Fl_Osc_Dial* o = bwdial = new Fl_Osc_Dial(15, 295, 35, 35, "BandWidth"); bwdial->box(FL_ROUND_UP_BOX); bwdial->color(FL_BACKGROUND_COLOR); bwdial->selection_color(FL_INACTIVE_COLOR); bwdial->labeltype(FL_NORMAL_LABEL); bwdial->labelfont(0); bwdial->labelsize(10); bwdial->labelcolor(FL_FOREGROUND_COLOR); bwdial->maximum(1000); bwdial->step(1); bwdial->callback((Fl_Callback*)cb_bwdial); bwdial->align(Fl_Align(FL_ALIGN_BOTTOM)); bwdial->when(FL_WHEN_CHANGED); o->init("Pbandwidth");o->reset_value=500; } // Fl_Osc_Dial* bwdial { Fl_Osc_Output* o = bwcents = new Fl_Osc_Output(55, 305, 55, 15, "cents"); bwcents->box(FL_NO_BOX); bwcents->color(FL_BACKGROUND_COLOR); bwcents->selection_color(FL_BACKGROUND_COLOR); bwcents->labeltype(FL_NORMAL_LABEL); bwcents->labelfont(0); bwcents->labelsize(10); bwcents->labelcolor(FL_FOREGROUND_COLOR); bwcents->maximum(10000); bwcents->step(0.1); bwcents->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); bwcents->when(FL_WHEN_CHANGED); o->init("bandwidthvalue"); } // Fl_Osc_Output* bwcents { Fl_Group* o = new Fl_Group(315, 295, 215, 45); o->box(FL_UP_FRAME); { Fl_Osc_Choice* o = hrpostype = new Fl_Osc_Choice(325, 310, 80, 20, "OvertonesPosition"); hrpostype->box(FL_UP_BOX); hrpostype->down_box(FL_BORDER_BOX); hrpostype->color(FL_BACKGROUND_COLOR); hrpostype->selection_color(FL_SELECTION_COLOR); hrpostype->labeltype(FL_NORMAL_LABEL); hrpostype->labelfont(0); hrpostype->labelsize(10); hrpostype->labelcolor(FL_FOREGROUND_COLOR); hrpostype->textsize(11); hrpostype->callback((Fl_Callback*)cb_hrpostype); hrpostype->align(Fl_Align(FL_ALIGN_TOP_LEFT)); hrpostype->when(FL_WHEN_RELEASE); hrpostype->menu(menu_hrpostype); o->init("Phrpos.type"); } // Fl_Osc_Choice* hrpostype { Fl_Osc_Dial* o = hrpospar1 = new Fl_Osc_Dial(425, 310, 25, 25, "Par1"); hrpospar1->box(FL_ROUND_UP_BOX); hrpospar1->color(FL_BACKGROUND_COLOR); hrpospar1->selection_color(FL_INACTIVE_COLOR); hrpospar1->labeltype(FL_NORMAL_LABEL); hrpospar1->labelfont(0); hrpospar1->labelsize(10); hrpospar1->labelcolor(FL_FOREGROUND_COLOR); hrpospar1->maximum(255); hrpospar1->step(1); hrpospar1->callback((Fl_Callback*)cb_hrpospar1); hrpospar1->align(Fl_Align(FL_ALIGN_TOP)); hrpospar1->when(FL_WHEN_CHANGED); o->init("Phrpos.par1");o->reset_value=64; } // Fl_Osc_Dial* hrpospar1 { Fl_Osc_Dial* o = hrpospar2 = new Fl_Osc_Dial(460, 310, 25, 25, "Par2"); hrpospar2->box(FL_ROUND_UP_BOX); hrpospar2->color(FL_BACKGROUND_COLOR); hrpospar2->selection_color(FL_INACTIVE_COLOR); hrpospar2->labeltype(FL_NORMAL_LABEL); hrpospar2->labelfont(0); hrpospar2->labelsize(10); hrpospar2->labelcolor(FL_FOREGROUND_COLOR); hrpospar2->maximum(255); hrpospar2->step(1); hrpospar2->callback((Fl_Callback*)cb_hrpospar2); hrpospar2->align(Fl_Align(FL_ALIGN_TOP)); hrpospar2->when(FL_WHEN_CHANGED); o->init("Phrpos.par2");o->reset_value=64; } // Fl_Osc_Dial* hrpospar2 { Fl_Osc_Dial* o = hrpospar3 = new Fl_Osc_Dial(495, 310, 25, 25, "ForceH"); hrpospar3->box(FL_ROUND_UP_BOX); hrpospar3->color(FL_BACKGROUND_COLOR); hrpospar3->selection_color(FL_INACTIVE_COLOR); hrpospar3->labeltype(FL_NORMAL_LABEL); hrpospar3->labelfont(0); hrpospar3->labelsize(10); hrpospar3->labelcolor(FL_FOREGROUND_COLOR); hrpospar3->maximum(255); hrpospar3->step(1); hrpospar3->callback((Fl_Callback*)cb_hrpospar3); hrpospar3->align(Fl_Align(FL_ALIGN_TOP)); hrpospar3->when(FL_WHEN_CHANGED); o->init("Phrpos.par3"); } // Fl_Osc_Dial* hrpospar3 o->end(); } // Fl_Group* o { Fl_Osc_Choice* o = bwscale = new Fl_Osc_Choice(120, 305, 80, 20, "Bandwidth Scale"); bwscale->box(FL_UP_BOX); bwscale->down_box(FL_BORDER_BOX); bwscale->color(FL_BACKGROUND_COLOR); bwscale->selection_color(FL_SELECTION_COLOR); bwscale->labeltype(FL_NORMAL_LABEL); bwscale->labelfont(0); bwscale->labelsize(10); bwscale->labelcolor(FL_FOREGROUND_COLOR); bwscale->textsize(11); bwscale->callback((Fl_Callback*)cb_bwscale); bwscale->align(Fl_Align(FL_ALIGN_TOP_LEFT)); bwscale->when(FL_WHEN_RELEASE); bwscale->menu(menu_bwscale); o->init("Pbwscale"); } // Fl_Osc_Choice* bwscale { Fl_Group* o = overtonepos = new Fl_Group(5, 345, 525, 45); overtonepos->box(FL_FLAT_BOX); overtonepos->color((Fl_Color)51); overtonepos->selection_color((Fl_Color)218); overtonepos->labelcolor(FL_GREEN); opui=new PADnoteOvertonePosition(o->x(),o->y(),o->w(),o->h(),""); opui->init(); overtonepos->end(); } // Fl_Group* overtonepos { Fl_Osc_Choice* o = qsamplesize = new Fl_Osc_Choice(375, 190, 115, 20, "Sample Size"); qsamplesize->box(FL_UP_BOX); qsamplesize->down_box(FL_BORDER_BOX); qsamplesize->color(FL_BACKGROUND_COLOR); qsamplesize->selection_color(FL_SELECTION_COLOR); qsamplesize->labeltype(FL_NORMAL_LABEL); qsamplesize->labelfont(0); qsamplesize->labelsize(10); qsamplesize->labelcolor(FL_FOREGROUND_COLOR); qsamplesize->textsize(11); qsamplesize->callback((Fl_Callback*)cb_qsamplesize); qsamplesize->align(Fl_Align(FL_ALIGN_TOP_LEFT)); qsamplesize->when(FL_WHEN_RELEASE); qsamplesize->menu(menu_qsamplesize); o->init("Pquality.samplesize"); } // Fl_Osc_Choice* qsamplesize { Fl_Osc_Choice* o = qsmpoct = new Fl_Osc_Choice(430, 155, 45, 20, "smp/oct"); qsmpoct->box(FL_UP_BOX); qsmpoct->down_box(FL_BORDER_BOX); qsmpoct->color(FL_BACKGROUND_COLOR); qsmpoct->selection_color(FL_SELECTION_COLOR); qsmpoct->labeltype(FL_NORMAL_LABEL); qsmpoct->labelfont(0); qsmpoct->labelsize(11); qsmpoct->labelcolor(FL_FOREGROUND_COLOR); qsmpoct->textsize(11); qsmpoct->callback((Fl_Callback*)cb_qsmpoct); qsmpoct->align(Fl_Align(FL_ALIGN_TOP_LEFT)); qsmpoct->when(FL_WHEN_RELEASE); qsmpoct->menu(menu_qsmpoct); o->init("Pquality.smpoct"); } // Fl_Osc_Choice* qsmpoct { Fl_Osc_Choice* o = qoct = new Fl_Osc_Choice(480, 155, 45, 20, "no.oct"); qoct->box(FL_UP_BOX); qoct->down_box(FL_BORDER_BOX); qoct->color(FL_BACKGROUND_COLOR); qoct->selection_color(FL_SELECTION_COLOR); qoct->labeltype(FL_NORMAL_LABEL); qoct->labelfont(0); qoct->labelsize(11); qoct->labelcolor(FL_FOREGROUND_COLOR); qoct->textsize(11); qoct->callback((Fl_Callback*)cb_qoct); qoct->align(Fl_Align(FL_ALIGN_TOP_LEFT)); qoct->when(FL_WHEN_RELEASE); qoct->menu(menu_qoct); o->init("Pquality.oct"); } // Fl_Osc_Choice* qoct { Fl_Osc_Choice* o = qbasenote = new Fl_Osc_Choice(375, 155, 50, 20, "base"); qbasenote->box(FL_UP_BOX); qbasenote->down_box(FL_BORDER_BOX); qbasenote->color(FL_BACKGROUND_COLOR); qbasenote->selection_color(FL_SELECTION_COLOR); qbasenote->labeltype(FL_NORMAL_LABEL); qbasenote->labelfont(0); qbasenote->labelsize(11); qbasenote->labelcolor(FL_FOREGROUND_COLOR); qbasenote->textsize(11); qbasenote->callback((Fl_Callback*)cb_qbasenote); qbasenote->align(Fl_Align(FL_ALIGN_TOP_LEFT)); qbasenote->when(FL_WHEN_RELEASE); qbasenote->menu(menu_qbasenote); o->init("Pquality.basenote"); } // Fl_Osc_Choice* qbasenote { Fl_Group* o = hprofile = new Fl_Group(100, 45, 430, 90); hprofile->box(FL_FLAT_BOX); hprofile->color((Fl_Color)51); hprofile->selection_color((Fl_Color)218); hprofile->labelcolor(FL_GREEN); hpui=new PADnoteHarmonicProfile(o->x(),o->y(),o->w(),o->h(),""); hpui->init(); hprofile->end(); } // Fl_Group* hprofile { new Fl_Box(160, 25, 315, 20, "Profile of One Harmonic (Frequency Distribution)"); } // Fl_Box* o { Fl_Osc_Choice* o = spectrummode = new Fl_Osc_Choice(220, 305, 90, 20, "Spectrum Mode"); spectrummode->box(FL_UP_BOX); spectrummode->down_box(FL_BORDER_BOX); spectrummode->color(FL_BACKGROUND_COLOR); spectrummode->selection_color(FL_SELECTION_COLOR); spectrummode->labeltype(FL_NORMAL_LABEL); spectrummode->labelfont(1); spectrummode->labelsize(10); spectrummode->labelcolor(FL_FOREGROUND_COLOR); spectrummode->textsize(11); spectrummode->callback((Fl_Callback*)cb_spectrummode); spectrummode->align(Fl_Align(FL_ALIGN_TOP_LEFT)); spectrummode->when(FL_WHEN_RELEASE); spectrummode->menu(menu_spectrummode); o->init("Pmode"); } // Fl_Osc_Choice* spectrummode harmonicstructuregroup->end(); } // Fl_Osc_Group* harmonicstructuregroup { Fl_Group* o = new Fl_Group(0, 20, 535, 375, "Envelopes&LFOs"); o->box(FL_UP_FRAME); o->hide(); { Fl_Group* o = new Fl_Group(5, 275, 525, 115, "FREQUENCY"); o->box(FL_UP_FRAME); o->labeltype(FL_EMBOSSED_LABEL); o->labelfont(1); o->labelsize(13); o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); { EnvelopeUI* o = freqenv = new EnvelopeUI(10, 315, 205, 70, "PADSynth - Frequency Envelope"); freqenv->box(FL_FLAT_BOX); freqenv->color((Fl_Color)51); freqenv->selection_color(FL_BACKGROUND_COLOR); freqenv->labeltype(FL_NORMAL_LABEL); freqenv->labelfont(0); freqenv->labelsize(14); freqenv->labelcolor(FL_FOREGROUND_COLOR); freqenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); freqenv->when(FL_WHEN_RELEASE); o->init(ENV_ASR, osc_i, location, "FreqEnvelope/"); freqenv->end(); } // EnvelopeUI* freqenv { Fl_Osc_Counter* o = octave = new Fl_Osc_Counter(470, 295, 45, 15, "Octave"); octave->tooltip("Octave"); octave->type(1); octave->box(FL_UP_BOX); octave->color(FL_BACKGROUND_COLOR); octave->selection_color(FL_INACTIVE_COLOR); octave->labeltype(FL_NORMAL_LABEL); octave->labelfont(0); octave->labelsize(10); octave->labelcolor(FL_FOREGROUND_COLOR); octave->minimum(-8); octave->maximum(7); octave->step(1); octave->textfont(1); octave->textsize(11); octave->align(Fl_Align(FL_ALIGN_TOP)); octave->when(FL_WHEN_CHANGED); o->init("octave"); } // Fl_Osc_Counter* octave { Fl_Osc_Counter* o = coarsedet = new Fl_Osc_Counter(455, 365, 70, 20, "Coarse det."); coarsedet->tooltip("Coarse Detune"); coarsedet->type(1); coarsedet->box(FL_UP_BOX); coarsedet->color(FL_BACKGROUND_COLOR); coarsedet->selection_color(FL_INACTIVE_COLOR); coarsedet->labeltype(FL_NORMAL_LABEL); coarsedet->labelfont(0); coarsedet->labelsize(10); coarsedet->labelcolor(FL_FOREGROUND_COLOR); coarsedet->minimum(-64); coarsedet->maximum(63); coarsedet->step(1); coarsedet->textfont(1); coarsedet->textsize(11); coarsedet->align(Fl_Align(FL_ALIGN_TOP_LEFT)); coarsedet->when(FL_WHEN_CHANGED); o->init("coarsedetune"); o->lstep(10); } // Fl_Osc_Counter* coarsedet { LFOUI* o = freqlfo = new LFOUI(215, 315, 230, 70, "Frequency LFO "); freqlfo->box(FL_FLAT_BOX); freqlfo->color(FL_DARK1); freqlfo->selection_color(FL_BACKGROUND_COLOR); freqlfo->labeltype(FL_NORMAL_LABEL); freqlfo->labelfont(0); freqlfo->labelsize(14); freqlfo->labelcolor(FL_FOREGROUND_COLOR); freqlfo->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); freqlfo->when(FL_WHEN_RELEASE); o->init(osc_i, location, "FreqLfo/"); freqlfo->end(); } // LFOUI* freqlfo { Fl_Osc_Slider* o = detune = new Fl_Osc_Slider(60, 296, 295, 15); detune->tooltip("Fine Detune (cents)"); detune->type(5); detune->box(FL_NO_BOX); detune->color(FL_BACKGROUND_COLOR); detune->selection_color(FL_BACKGROUND_COLOR); detune->labeltype(FL_NORMAL_LABEL); detune->labelfont(0); detune->labelsize(14); detune->labelcolor(FL_FOREGROUND_COLOR); detune->minimum(-8192); detune->maximum(8191); detune->step(1); detune->callback((Fl_Callback*)cb_detune); detune->align(Fl_Align(FL_ALIGN_BOTTOM)); detune->when(FL_WHEN_CHANGED); o->init("PDetune", 'i'); } // Fl_Osc_Slider* detune { Fl_Osc_Output* o = detunevalueoutput = new Fl_Osc_Output(12, 296, 45, 15, "Detune"); detunevalueoutput->box(FL_NO_BOX); detunevalueoutput->color(FL_BACKGROUND_COLOR); detunevalueoutput->selection_color(FL_BACKGROUND_COLOR); detunevalueoutput->labeltype(FL_NORMAL_LABEL); detunevalueoutput->labelfont(0); detunevalueoutput->labelsize(10); detunevalueoutput->labelcolor(FL_FOREGROUND_COLOR); detunevalueoutput->minimum(-5000); detunevalueoutput->maximum(5000); detunevalueoutput->step(0.01); detunevalueoutput->textfont(1); detunevalueoutput->textsize(10); detunevalueoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); detunevalueoutput->when(FL_WHEN_CHANGED); o->init("detunevalue"); } // Fl_Osc_Output* detunevalueoutput { Fl_Osc_Choice* o = detunetype = new Fl_Osc_Choice(450, 330, 75, 20, "Detune Type"); detunetype->box(FL_UP_BOX); detunetype->down_box(FL_BORDER_BOX); detunetype->color(FL_BACKGROUND_COLOR); detunetype->selection_color(FL_SELECTION_COLOR); detunetype->labeltype(FL_NORMAL_LABEL); detunetype->labelfont(0); detunetype->labelsize(10); detunetype->labelcolor(FL_FOREGROUND_COLOR); detunetype->textfont(1); detunetype->textsize(10); detunetype->callback((Fl_Callback*)cb_detunetype); detunetype->align(Fl_Align(FL_ALIGN_TOP_LEFT)); detunetype->when(FL_WHEN_RELEASE); o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents"); o->init("PDetuneType",1); } // Fl_Osc_Choice* detunetype { Fl_Osc_Dial* o = bendadjustdial = new Fl_Osc_Dial(60, 278, 15, 15, "Bend"); bendadjustdial->tooltip("How the frequency varies according to the pitch wheel"); bendadjustdial->box(FL_ROUND_UP_BOX); bendadjustdial->color(FL_BACKGROUND_COLOR); bendadjustdial->selection_color(FL_INACTIVE_COLOR); bendadjustdial->labeltype(FL_NORMAL_LABEL); bendadjustdial->labelfont(0); bendadjustdial->labelsize(10); bendadjustdial->labelcolor(FL_FOREGROUND_COLOR); bendadjustdial->minimum(-64); bendadjustdial->maximum(63); bendadjustdial->step(1); bendadjustdial->align(Fl_Align(FL_ALIGN_RIGHT)); bendadjustdial->when(FL_WHEN_CHANGED); o->init("PBendAdjust");o->reset_value=24;o->set_transform([](float x){return x/24.0f;});o->set_rounding(2); } // Fl_Osc_Dial* bendadjustdial { Fl_Osc_Dial* o = offsethzdial = new Fl_Osc_Dial(110, 278, 15, 15, "Offset"); offsethzdial->tooltip("Offset of frequency in Hz"); offsethzdial->box(FL_ROUND_UP_BOX); offsethzdial->color(FL_BACKGROUND_COLOR); offsethzdial->selection_color(FL_INACTIVE_COLOR); offsethzdial->labeltype(FL_NORMAL_LABEL); offsethzdial->labelfont(0); offsethzdial->labelsize(10); offsethzdial->labelcolor(FL_FOREGROUND_COLOR); offsethzdial->minimum(-64); offsethzdial->maximum(63); offsethzdial->step(1); offsethzdial->align(Fl_Align(FL_ALIGN_RIGHT)); offsethzdial->when(FL_WHEN_CHANGED); o->init("POffsetHz"); o->set_rounding(2); o->set_transform([](float x){x/=64; return 15*(x*sqrtf(fabsf(x)));}); } // Fl_Osc_Dial* offsethzdial { Fl_Osc_Check* o = hz440 = new Fl_Osc_Check(365, 295, 50, 15, "440Hz"); hz440->tooltip("set the base frequency to 440Hz"); hz440->box(FL_NO_BOX); hz440->down_box(FL_DOWN_BOX); hz440->color(FL_BACKGROUND_COLOR); hz440->selection_color(FL_FOREGROUND_COLOR); hz440->labeltype(FL_NORMAL_LABEL); hz440->labelfont(1); hz440->labelsize(10); hz440->labelcolor(FL_FOREGROUND_COLOR); hz440->callback((Fl_Callback*)cb_hz440); hz440->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); hz440->when(FL_WHEN_RELEASE); o->init("Pfixedfreq"); } // Fl_Osc_Check* hz440 { Fl_Osc_Dial* o = fixedfreqetdial = new Fl_Osc_Dial(420, 295, 15, 15, "Eq.T."); fixedfreqetdial->tooltip("How the frequency varies according to the keyboard (leftmost for fixed freque\ ncy)"); fixedfreqetdial->box(FL_ROUND_UP_BOX); fixedfreqetdial->color(FL_BACKGROUND_COLOR); fixedfreqetdial->selection_color(FL_INACTIVE_COLOR); fixedfreqetdial->labeltype(FL_NORMAL_LABEL); fixedfreqetdial->labelfont(0); fixedfreqetdial->labelsize(10); fixedfreqetdial->labelcolor(FL_FOREGROUND_COLOR); fixedfreqetdial->maximum(127); fixedfreqetdial->step(1); fixedfreqetdial->align(Fl_Align(FL_ALIGN_RIGHT)); fixedfreqetdial->when(FL_WHEN_CHANGED); o->init("PfixedfreqET"); } // Fl_Osc_Dial* fixedfreqetdial o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(5, 25, 240, 250, "AMPLITUDE"); o->box(FL_UP_FRAME); o->labeltype(FL_EMBOSSED_LABEL); o->labelfont(1); o->labelsize(13); o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); { Fl_Osc_VSlider* o = volume = new Fl_Osc_VSlider(10, 50, 160, 15, "Vol"); volume->tooltip("Volume"); volume->type(5); volume->box(FL_NO_BOX); volume->color(FL_BACKGROUND_COLOR); volume->selection_color(FL_BACKGROUND_COLOR); volume->labeltype(FL_NORMAL_LABEL); volume->labelfont(0); volume->labelsize(11); volume->labelcolor(FL_FOREGROUND_COLOR); volume->maximum(127); volume->step(1); volume->align(Fl_Align(FL_ALIGN_RIGHT)); volume->when(FL_WHEN_CHANGED); o->init("PVolume", 'i');o->reset_value=90; } // Fl_Osc_VSlider* volume { Fl_Osc_VSlider* o = vsns = new Fl_Osc_VSlider(10, 70, 160, 15, "V.Sns"); vsns->tooltip("Velocity Sensing Function (rightmost to disable)"); vsns->type(5); vsns->box(FL_NO_BOX); vsns->color(FL_BACKGROUND_COLOR); vsns->selection_color(FL_BACKGROUND_COLOR); vsns->labeltype(FL_NORMAL_LABEL); vsns->labelfont(0); vsns->labelsize(11); vsns->labelcolor(FL_FOREGROUND_COLOR); vsns->maximum(127); vsns->step(1); vsns->align(Fl_Align(FL_ALIGN_RIGHT)); vsns->when(FL_WHEN_CHANGED); o->init("PAmpVelocityScaleFunction");o->reset_value=64; } // Fl_Osc_VSlider* vsns { Fl_Osc_Dial* o = pan = new Fl_Osc_Dial(210, 45, 30, 30, "Pan"); pan->tooltip("Panning (leftmost is Random)"); pan->box(FL_ROUND_UP_BOX); pan->color(FL_BACKGROUND_COLOR); pan->selection_color(FL_INACTIVE_COLOR); pan->labeltype(FL_NORMAL_LABEL); pan->labelfont(0); pan->labelsize(10); pan->labelcolor(FL_FOREGROUND_COLOR); pan->maximum(127); pan->step(1); pan->align(Fl_Align(FL_ALIGN_BOTTOM)); pan->when(FL_WHEN_CHANGED); o->init("PPanning");o->reset_value=64; } // Fl_Osc_Dial* pan { Fl_Osc_Dial* o = new Fl_Osc_Dial(208, 238, 20, 20, "De-pop"); o->tooltip("Pop suppression"); o->box(FL_NO_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_INACTIVE_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->maximum(127); o->step(1); o->align(Fl_Align(FL_ALIGN_BOTTOM)); o->when(FL_WHEN_CHANGED); o->init("Fadein_adjustment");o->reset_value=20; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = pstr = new Fl_Osc_Dial(78, 247, 25, 25, "P.Str."); pstr->tooltip("Punch Strength"); pstr->box(FL_ROUND_UP_BOX); pstr->color(FL_BACKGROUND_COLOR); pstr->selection_color(FL_INACTIVE_COLOR); pstr->labeltype(FL_NORMAL_LABEL); pstr->labelfont(0); pstr->labelsize(10); pstr->labelcolor(FL_FOREGROUND_COLOR); pstr->maximum(127); pstr->step(1); pstr->align(Fl_Align(FL_ALIGN_TOP)); pstr->when(FL_WHEN_CHANGED); o->init("PPunchStrength"); } // Fl_Osc_Dial* pstr { Fl_Osc_Dial* o = pt = new Fl_Osc_Dial(108, 247, 25, 25, "P.t."); pt->tooltip("Punch Time (duration)"); pt->box(FL_ROUND_UP_BOX); pt->color(FL_BACKGROUND_COLOR); pt->selection_color(FL_INACTIVE_COLOR); pt->labeltype(FL_NORMAL_LABEL); pt->labelfont(0); pt->labelsize(10); pt->labelcolor(FL_FOREGROUND_COLOR); pt->maximum(127); pt->step(1); pt->align(Fl_Align(FL_ALIGN_TOP)); pt->when(FL_WHEN_CHANGED); o->init("PPunchTime");o->reset_value=60; } // Fl_Osc_Dial* pt { Fl_Osc_Dial* o = pstc = new Fl_Osc_Dial(138, 247, 25, 25, "P.Stc."); pstc->tooltip("Punch Stretch"); pstc->box(FL_ROUND_UP_BOX); pstc->color(FL_BACKGROUND_COLOR); pstc->selection_color(FL_INACTIVE_COLOR); pstc->labeltype(FL_NORMAL_LABEL); pstc->labelfont(0); pstc->labelsize(10); pstc->labelcolor(FL_FOREGROUND_COLOR); pstc->maximum(127); pstc->step(1); pstc->align(Fl_Align(FL_ALIGN_TOP)); pstc->when(FL_WHEN_CHANGED); o->init("PPunchStretch");o->reset_value=64; } // Fl_Osc_Dial* pstc { Fl_Osc_Dial* o = pvel = new Fl_Osc_Dial(168, 247, 25, 25, "P.Vel."); pvel->tooltip("Punch Velocity Sensing"); pvel->box(FL_ROUND_UP_BOX); pvel->color(FL_BACKGROUND_COLOR); pvel->selection_color(FL_INACTIVE_COLOR); pvel->labeltype(FL_NORMAL_LABEL); pvel->labelfont(0); pvel->labelsize(10); pvel->labelcolor(FL_FOREGROUND_COLOR); pvel->maximum(127); pvel->step(1); pvel->align(Fl_Align(FL_ALIGN_TOP)); pvel->when(FL_WHEN_CHANGED); o->init("PPunchVelocitySensing");o->reset_value=72; } // Fl_Osc_Dial* pvel { EnvelopeUI* o = ampenv = new EnvelopeUI(10, 95, 205, 70, "PADSynth - Amplitude Envelope"); ampenv->box(FL_FLAT_BOX); ampenv->color((Fl_Color)51); ampenv->selection_color(FL_BACKGROUND_COLOR); ampenv->labeltype(FL_NORMAL_LABEL); ampenv->labelfont(0); ampenv->labelsize(14); ampenv->labelcolor(FL_FOREGROUND_COLOR); ampenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); ampenv->when(FL_WHEN_RELEASE); o->init(ENV_ADSR, osc_i, location, "AmpEnvelope/"); ampenv->end(); } // EnvelopeUI* ampenv { LFOUI* o = amplfo = new LFOUI(10, 165, 230, 70, "Amplitude LFO "); amplfo->box(FL_FLAT_BOX); amplfo->color(FL_DARK1); amplfo->selection_color(FL_BACKGROUND_COLOR); amplfo->labeltype(FL_NORMAL_LABEL); amplfo->labelfont(0); amplfo->labelsize(14); amplfo->labelcolor(FL_FOREGROUND_COLOR); amplfo->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); amplfo->when(FL_WHEN_RELEASE); o->init(osc_i, location, "AmpLfo/"); amplfo->end(); } // LFOUI* amplfo { Fl_Osc_Check* o = stereo = new Fl_Osc_Check(10, 245, 70, 25, "Stereo"); stereo->box(FL_NO_BOX); stereo->down_box(FL_DOWN_BOX); stereo->color(FL_BACKGROUND_COLOR); stereo->selection_color(FL_FOREGROUND_COLOR); stereo->labeltype(FL_NORMAL_LABEL); stereo->labelfont(0); stereo->labelsize(12); stereo->labelcolor(FL_FOREGROUND_COLOR); stereo->callback((Fl_Callback*)cb_stereo); stereo->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); stereo->when(FL_WHEN_RELEASE); o->init("PStereo"); } // Fl_Osc_Check* stereo o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(245, 25, 285, 250, "FILTER"); o->box(FL_UP_FRAME); o->labeltype(FL_EMBOSSED_LABEL); o->labelfont(1); o->labelsize(13); o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); { EnvelopeUI* o = filterenv = new EnvelopeUI(250, 130, 275, 70, "PADSynth - Filter Envelope"); filterenv->box(FL_FLAT_BOX); filterenv->color((Fl_Color)51); filterenv->selection_color(FL_BACKGROUND_COLOR); filterenv->labeltype(FL_NORMAL_LABEL); filterenv->labelfont(0); filterenv->labelsize(14); filterenv->labelcolor(FL_FOREGROUND_COLOR); filterenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); filterenv->when(FL_WHEN_RELEASE); o->init(ENV_ADSR_FILTER, osc_i, location, "FilterEnvelope/"); filterenv->end(); } // EnvelopeUI* filterenv { LFOUI* o = filterlfo = new LFOUI(250, 200, 230, 70, "Filter LFO "); filterlfo->box(FL_FLAT_BOX); filterlfo->color(FL_DARK1); filterlfo->selection_color(FL_BACKGROUND_COLOR); filterlfo->labeltype(FL_NORMAL_LABEL); filterlfo->labelfont(0); filterlfo->labelsize(14); filterlfo->labelcolor(FL_FOREGROUND_COLOR); filterlfo->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); filterlfo->when(FL_WHEN_RELEASE); o->init(osc_i, location, "FilterLfo/"); filterlfo->end(); } // LFOUI* filterlfo { FilterUI* o = filterui = new FilterUI(250, 50, 275, 75, "PADsynth - Filter"); filterui->box(FL_FLAT_BOX); filterui->color(FL_LIGHT1); filterui->selection_color(FL_BACKGROUND_COLOR); filterui->labeltype(FL_NORMAL_LABEL); filterui->labelfont(0); filterui->labelsize(14); filterui->labelcolor(FL_FOREGROUND_COLOR); filterui->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); filterui->when(FL_WHEN_RELEASE); o->init(location + "PFilter", osc_i, location, "GlobalFilter/"); filterui->end(); } // FilterUI* filterui o->end(); } // Fl_Group* o o->end(); } // Fl_Group* o o->end(); } // Fl_Tabs* o { Fl_Button* o = applybutton = new Fl_Button(200, 400, 135, 25, "Apply Changes"); applybutton->box(FL_THIN_UP_BOX); applybutton->callback((Fl_Callback*)cb_applybutton); o->color(FL_RED); } // Fl_Button* applybutton { Fl_Button* o = new Fl_Button(470, 400, 60, 25, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close); } // Fl_Button* o { Fl_Button* o = new Fl_Button(400, 405, 25, 15, "C"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor((Fl_Color)55); o->callback((Fl_Callback*)cb_C); } // Fl_Button* o { Fl_Button* o = new Fl_Button(430, 405, 25, 15, "P"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor((Fl_Color)55); o->callback((Fl_Callback*)cb_P); } // Fl_Button* o { Fl_Osc_Button* o = new Fl_Osc_Button(5, 400, 55, 25, "export"); o->tooltip("export samples as wav file"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)51); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_export); o->align(Fl_Align(FL_ALIGN_WRAP)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o padnotewindow->end(); } // Fl_Osc_Window* padnotewindow return padnotewindow; } void PADnoteUI::refresh() { 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(); } PADnoteUI::~PADnoteUI() { delete apply_watcher; delete(oscui); delete(resui); padnotewindow->hide(); delete padnotewindow; }