// generated by Fast Light User Interface Designer (fluid) version 1.0300 #include "external/zynaddsubfx/UI/PartUI.h" //Copyright (c) 2002-2005 Nasca Octavian Paul //License: GNU GPL version 2 or later Fl_Group* PartSysEffSend::make_window() { { syseffsend = new Fl_Group(0, 0, 100, 100); syseffsend->box(FL_NO_BOX); syseffsend->color(FL_BACKGROUND_COLOR); syseffsend->selection_color(FL_BACKGROUND_COLOR); syseffsend->labeltype(FL_NO_LABEL); syseffsend->labelfont(0); syseffsend->labelsize(14); syseffsend->labelcolor(FL_FOREGROUND_COLOR); syseffsend->user_data((void*)(this)); syseffsend->align(Fl_Align(FL_ALIGN_TOP)); syseffsend->when(FL_WHEN_RELEASE); { Fl_Osc_Dial* o = widget = new Fl_Osc_Dial(0, 0, 25, 25, "01"); widget->box(FL_ROUND_UP_BOX); widget->color(FL_BACKGROUND_COLOR); widget->selection_color(FL_INACTIVE_COLOR); widget->labeltype(FL_NORMAL_LABEL); widget->labelfont(1); widget->labelsize(10); widget->labelcolor(FL_FOREGROUND_COLOR); widget->maximum(127); widget->step(1); widget->align(Fl_Align(130)); widget->when(FL_WHEN_CHANGED); o->size(25,25); o->alt_init("/","Psysefxvol"+to_s(neff)+"/part"+to_s(npart)); o->mark_dead(); char tmp[10];snprintf(tmp,10,"%d",neff+1);o->copy_label(tmp); } // Fl_Osc_Dial* widget syseffsend->end(); } // Fl_Group* syseffsend return syseffsend; } PartSysEffSend::PartSysEffSend(int x,int y, int w, int h, const char *label):Fl_Group(x,y,w,h,label) { neff=0; npart=0; } void PartSysEffSend::init(int npart_,int neff_) { npart=npart_; neff=neff_; make_window(); syseffsend->show(); end(); } void PartSysEffSend::rebase(int part) { auto *osc = widget->osc; std::string old = "Psysefxvol"+to_s(neff)+"/part"+to_s(npart); std::string next = "Psysefxvol"+to_s(neff)+"/part"+to_s(part); widget->ext = next; osc->renameLink("/"+old, "/"+next, widget); osc->requestValue("/"+next); npart = part; } PartSysEffSend::~PartSysEffSend() { syseffsend->hide(); //delete(syseffsend); } void PartKitItem::cb_m_i(Fl_Osc_Button* o, void*) { o->oscWrite("captureMin"); minkcounter->update(); maxkcounter->update(); } void PartKitItem::cb_m(Fl_Osc_Button* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_m_i(o,v); } void PartKitItem::cb_M_i(Fl_Osc_Button* o, void*) { o->oscWrite("captureMax"); minkcounter->update(); maxkcounter->update(); } void PartKitItem::cb_M(Fl_Osc_Button* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_M_i(o,v); } void PartKitItem::cb_R_i(Fl_Button*, void*) { minkcounter->value(0); minkcounter->do_callback(); maxkcounter->value(127); maxkcounter->do_callback(); } void PartKitItem::cb_R(Fl_Button* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_R_i(o,v); } void PartKitItem::cb_adeditbutton_i(Fl_Button*, void*) { if (Fl::event_shift()) partui->showvoiceparams(n, true); else if (Fl::event_ctrl()) partui->showvoiceparams(n, false); else partui->showparameters(n,0); } void PartKitItem::cb_adeditbutton(Fl_Button* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_adeditbutton_i(o,v); } void PartKitItem::cb_subeditbutton_i(Fl_Button*, void*) { partui->showparameters(n,1); } void PartKitItem::cb_subeditbutton(Fl_Button* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_subeditbutton_i(o,v); } void PartKitItem::cb_labelbutton_i(Fl_Osc_Input* o, void*) { o->oscWrite(o->ext, "s", o->value()); } void PartKitItem::cb_labelbutton(Fl_Osc_Input* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_labelbutton_i(o,v); } void PartKitItem::cb_adcheck_i(Fl_Osc_Check* o, void*) { if (o->value()!=0) adeditbutton->activate(); else adeditbutton->deactivate(); } void PartKitItem::cb_adcheck(Fl_Osc_Check* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_adcheck_i(o,v); } void PartKitItem::cb_subcheck_i(Fl_Osc_Check* o, void*) { if(o->value()!=0) subeditbutton->activate(); else subeditbutton->deactivate(); } void PartKitItem::cb_subcheck(Fl_Osc_Check* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_subcheck_i(o,v); } void PartKitItem::cb_padeditbutton_i(Fl_Button*, void*) { partui->showparameters(n,2); } void PartKitItem::cb_padeditbutton(Fl_Button* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_padeditbutton_i(o,v); } void PartKitItem::cb_padcheck_i(Fl_Osc_Check* o, void*) { if (o->value()!=0) padeditbutton->activate(); else padeditbutton->deactivate(); } void PartKitItem::cb_padcheck(Fl_Osc_Check* o, void* v) { ((PartKitItem*)(o->parent()->parent()->user_data()))->cb_padcheck_i(o,v); } void PartKitItem::cb_enabledcheck_i(Fl_Osc_Check* o, void*) { int answer=1; //TODO special case if (o->value()==0 && !o->is_osc) answer=fl_choice("Delete the item?","No","Yes",NULL); if(!answer) o->value(true); if (o->value()==0) partkititemgroup->deactivate(); else partkititemgroup->activate(); o->redraw(); partui->showparameters(n,-1);//use to delete the ui, if it is not to item 0; } void PartKitItem::cb_enabledcheck(Fl_Osc_Check* o, void* v) { ((PartKitItem*)(o->parent()->user_data()))->cb_enabledcheck_i(o,v); } Fl_Osc_Group* PartKitItem::make_window() { { partkititem = new Fl_Osc_Group(0, 0, 670, 100); partkititem->box(FL_NO_BOX); partkititem->color(FL_BACKGROUND_COLOR); partkititem->selection_color(FL_BACKGROUND_COLOR); partkititem->labeltype(FL_NO_LABEL); partkititem->labelfont(0); partkititem->labelsize(14); partkititem->labelcolor(FL_FOREGROUND_COLOR); partkititem->user_data((void*)(this)); partkititem->align(Fl_Align(FL_ALIGN_TOP)); partkititem->when(FL_WHEN_RELEASE); { partkititemgroup = new Fl_Osc_Group(55, 0, 605, 20); partkititemgroup->box(FL_NO_BOX); partkititemgroup->color(FL_BACKGROUND_COLOR); partkititemgroup->selection_color(FL_BACKGROUND_COLOR); partkititemgroup->labeltype(FL_NORMAL_LABEL); partkititemgroup->labelfont(0); partkititemgroup->labelsize(14); partkititemgroup->labelcolor(FL_FOREGROUND_COLOR); partkititemgroup->align(Fl_Align(FL_ALIGN_TOP)); partkititemgroup->when(FL_WHEN_RELEASE); { Fl_Osc_Counter* o = minkcounter = new Fl_Osc_Counter(225, 0, 55, 15); minkcounter->type(1); minkcounter->box(FL_UP_BOX); minkcounter->color(FL_BACKGROUND_COLOR); minkcounter->selection_color(FL_INACTIVE_COLOR); minkcounter->labeltype(FL_NORMAL_LABEL); minkcounter->labelfont(0); minkcounter->labelsize(14); minkcounter->labelcolor(FL_FOREGROUND_COLOR); minkcounter->minimum(0); minkcounter->maximum(128); minkcounter->step(1); minkcounter->align(Fl_Align(FL_ALIGN_BOTTOM)); minkcounter->when(FL_WHEN_CHANGED); o->init("Pminkey"); } // Fl_Osc_Counter* minkcounter { Fl_Osc_Button* o = new Fl_Osc_Button(285, 3, 15, 12, "m"); o->tooltip("set the minimum key to the last pressed key"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_m); o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o { Fl_Osc_Button* o = new Fl_Osc_Button(315, 3, 15, 12, "M"); o->tooltip("set the maximum key to the last pressed key"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_M); o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o { Fl_Button* o = new Fl_Button(300, 3, 15, 12, "R"); o->tooltip("reset the minimum key to 0 and maximum key to 127"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(10); o->callback((Fl_Callback*)cb_R); } // Fl_Button* o { adeditbutton = new Fl_Button(420, 0, 40, 15, "edit"); adeditbutton->box(FL_THIN_UP_BOX); adeditbutton->labelsize(11); adeditbutton->callback((Fl_Callback*)cb_adeditbutton); } // Fl_Button* adeditbutton { subeditbutton = new Fl_Button(490, 0, 40, 15, "edit"); subeditbutton->box(FL_THIN_UP_BOX); subeditbutton->labelsize(11); subeditbutton->callback((Fl_Callback*)cb_subeditbutton); } // Fl_Button* subeditbutton { Fl_Osc_Check* o = mutedcheck = new Fl_Osc_Check(60, 0, 20, 15); mutedcheck->box(FL_NO_BOX); mutedcheck->down_box(FL_DOWN_BOX); mutedcheck->color(FL_BACKGROUND_COLOR); mutedcheck->selection_color(FL_FOREGROUND_COLOR); mutedcheck->labeltype(FL_NORMAL_LABEL); mutedcheck->labelfont(1); mutedcheck->labelsize(11); mutedcheck->labelcolor(FL_FOREGROUND_COLOR); mutedcheck->align(Fl_Align(FL_ALIGN_LEFT)); mutedcheck->when(FL_WHEN_RELEASE); o->init("Pmuted"); } // Fl_Osc_Check* mutedcheck { Fl_Osc_Counter* o = maxkcounter = new Fl_Osc_Counter(335, 0, 55, 15); maxkcounter->type(1); maxkcounter->box(FL_UP_BOX); maxkcounter->color(FL_BACKGROUND_COLOR); maxkcounter->selection_color(FL_INACTIVE_COLOR); maxkcounter->labeltype(FL_NORMAL_LABEL); maxkcounter->labelfont(0); maxkcounter->labelsize(14); maxkcounter->labelcolor(FL_FOREGROUND_COLOR); maxkcounter->minimum(0); maxkcounter->maximum(128); maxkcounter->step(1); maxkcounter->align(Fl_Align(FL_ALIGN_BOTTOM)); maxkcounter->when(FL_WHEN_CHANGED); o->init("Pmaxkey"); } // Fl_Osc_Counter* maxkcounter { Fl_Osc_Input* o = labelbutton = new Fl_Osc_Input(90, 0, 130, 15, "Bass Drum"); labelbutton->box(FL_THIN_DOWN_BOX); labelbutton->color(FL_BACKGROUND2_COLOR); labelbutton->selection_color(FL_SELECTION_COLOR); labelbutton->labeltype(FL_NORMAL_LABEL); labelbutton->labelfont(1); labelbutton->labelsize(10); labelbutton->labelcolor(FL_FOREGROUND_COLOR); labelbutton->callback((Fl_Callback*)cb_labelbutton); labelbutton->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); labelbutton->when(FL_WHEN_RELEASE); o->init("Pname"); } // Fl_Osc_Input* labelbutton { Fl_Osc_Check* o = adcheck = new Fl_Osc_Check(400, 0, 20, 15); adcheck->box(FL_NO_BOX); adcheck->down_box(FL_DOWN_BOX); adcheck->color(FL_BACKGROUND_COLOR); adcheck->selection_color(FL_FOREGROUND_COLOR); adcheck->labeltype(FL_NORMAL_LABEL); adcheck->labelfont(1); adcheck->labelsize(11); adcheck->labelcolor(FL_FOREGROUND_COLOR); adcheck->callback((Fl_Callback*)cb_adcheck); adcheck->align(Fl_Align(FL_ALIGN_LEFT)); adcheck->when(FL_WHEN_RELEASE); o->init("Padenabled"); } // Fl_Osc_Check* adcheck { Fl_Osc_Check* o = subcheck = new Fl_Osc_Check(470, 0, 20, 15); subcheck->box(FL_NO_BOX); subcheck->down_box(FL_DOWN_BOX); subcheck->color(FL_BACKGROUND_COLOR); subcheck->selection_color(FL_FOREGROUND_COLOR); subcheck->labeltype(FL_NORMAL_LABEL); subcheck->labelfont(1); subcheck->labelsize(11); subcheck->labelcolor(FL_FOREGROUND_COLOR); subcheck->callback((Fl_Callback*)cb_subcheck); subcheck->align(Fl_Align(FL_ALIGN_LEFT)); subcheck->when(FL_WHEN_RELEASE); o->init("Psubenabled"); } // Fl_Osc_Check* subcheck { Fl_Osc_Choice* o = sendtoeffect = new Fl_Osc_Choice(615, 0, 45, 15); sendtoeffect->box(FL_UP_BOX); sendtoeffect->down_box(FL_BORDER_BOX); sendtoeffect->color(FL_BACKGROUND_COLOR); sendtoeffect->selection_color(FL_SELECTION_COLOR); sendtoeffect->labeltype(FL_NORMAL_LABEL); sendtoeffect->labelfont(0); sendtoeffect->labelsize(10); sendtoeffect->labelcolor(FL_FOREGROUND_COLOR); sendtoeffect->textfont(1); sendtoeffect->textsize(10); sendtoeffect->align(Fl_Align(FL_ALIGN_TOP_LEFT)); sendtoeffect->when(FL_WHEN_RELEASE); char nrstr[10]; for(int i=0;iadd(nrstr);};o->add("OFF"); o->init("Psendtoparteffect");//TODO check semantics } // Fl_Osc_Choice* sendtoeffect { padeditbutton = new Fl_Button(560, 0, 40, 15, "edit"); padeditbutton->box(FL_THIN_UP_BOX); padeditbutton->labelsize(11); padeditbutton->callback((Fl_Callback*)cb_padeditbutton); } // Fl_Button* padeditbutton { Fl_Osc_Check* o = padcheck = new Fl_Osc_Check(540, 0, 20, 15); padcheck->box(FL_NO_BOX); padcheck->down_box(FL_DOWN_BOX); padcheck->color(FL_BACKGROUND_COLOR); padcheck->selection_color(FL_FOREGROUND_COLOR); padcheck->labeltype(FL_NORMAL_LABEL); padcheck->labelfont(1); padcheck->labelsize(11); padcheck->labelcolor(FL_FOREGROUND_COLOR); padcheck->callback((Fl_Callback*)cb_padcheck); padcheck->align(Fl_Align(FL_ALIGN_LEFT)); padcheck->when(FL_WHEN_RELEASE); o->init("Ppadenabled"); } // Fl_Osc_Check* padcheck partkititemgroup->end(); } // Fl_Osc_Group* partkititemgroup { Fl_Osc_Check* o = enabledcheck = new Fl_Osc_Check(30, 0, 20, 15, "01"); enabledcheck->box(FL_NO_BOX); enabledcheck->down_box(FL_DOWN_BOX); enabledcheck->color(FL_BACKGROUND_COLOR); enabledcheck->selection_color(FL_FOREGROUND_COLOR); enabledcheck->labeltype(FL_EMBOSSED_LABEL); enabledcheck->labelfont(1); enabledcheck->labelsize(13); enabledcheck->labelcolor(FL_FOREGROUND_COLOR); enabledcheck->callback((Fl_Callback*)cb_enabledcheck); enabledcheck->align(Fl_Align(FL_ALIGN_LEFT)); enabledcheck->when(FL_WHEN_RELEASE); snprintf(label,10,"%d",n+1);o->label(label); o->init("Penabled"); if (n==0) o->deactivate(); } // Fl_Osc_Check* enabledcheck partkititem->end(); } // Fl_Osc_Group* partkititem return partkititem; } PartKitItem::PartKitItem(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h,label) { n=0; } void PartKitItem::refresh() { this->redraw(); } void PartKitItem::init(int n_,class PartUI *partui_) { n=n_; ext = "kit"+to_s(n)+"/"; partui=partui_; make_window(); if (n == 0) mutedcheck->deactivate(); else deactivate(); //partkititem->show(); end(); } PartKitItem::~PartKitItem() { } void PartUI::cb_Grand_i(PartNameButton* o, void*) { int event=Fl::event_button(); if (event==FL_RIGHT_MOUSE){ const char *tmp=fl_input("Instrument name:",o->label()); if (tmp!=NULL) o->oscWrite("Pname", "s", tmp); } else { if (event==FL_LEFT_MOUSE) bankui->show(); else instrumenteditwindow->show(); }; } void PartUI::cb_Grand(PartNameButton* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Grand_i(o,v); } void PartUI::cb_minkcounter_i(Fl_Osc_Counter* o, void*) { if (minkcounter->value() > maxkcounter->value()) o->textcolor(FL_RED); else o->textcolor(FL_BLACK); } void PartUI::cb_minkcounter(Fl_Osc_Counter* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_minkcounter_i(o,v); } void PartUI::cb_maxkcounter_i(Fl_Osc_Counter* o, void*) { if (minkcounter->value() > maxkcounter->value()) o->textcolor(FL_RED); else o->textcolor(FL_BLACK); } void PartUI::cb_maxkcounter(Fl_Osc_Counter* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_maxkcounter_i(o,v); } void PartUI::cb_Controllers_i(Fl_Button*, void*) { ctlwindow->show(); } void PartUI::cb_Controllers(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Controllers_i(o,v); } void PartUI::cb_Edit_i(Fl_Button*, void*) { if (Fl::event_shift() || Fl::event_ctrl()) instrumentkitlist->show(); else instrumenteditwindow->show(); } void PartUI::cb_Edit(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Edit_i(o,v); } void PartUI::cb_m1_i(Fl_Osc_Button* o, void*) { o->oscWrite("captureMin"); o->oscWrite("Pminkey"); o->oscWrite("Pmaxkey"); } void PartUI::cb_m1(Fl_Osc_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_m1_i(o,v); } void PartUI::cb_M1_i(Fl_Osc_Button* o, void*) { o->oscWrite("captureMax"); o->oscWrite("Pminkey"); o->oscWrite("Pmaxkey"); } void PartUI::cb_M1(Fl_Osc_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_M1_i(o,v); } void PartUI::cb_R1_i(Fl_Osc_Button* o, void*) { o->oscWrite("Pminkey", "i", 0); o->oscWrite("Pmaxkey", "i", 127); } void PartUI::cb_R1(Fl_Osc_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_R1_i(o,v); } void PartUI::cb_partenablebutton_i(Fl_Osc_Check* o, void*) { if (o->value()==0) partgroupui->deactivate(); else partgroupui->activate(); } void PartUI::cb_partenablebutton(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_partenablebutton_i(o,v); } void PartUI::cb_benddir_i(Fl_Check_Button* o, void*) { if (o->value()) {bendrng->oscMove("pitchwheel.bendrange_down");} else {bendrng->oscMove("pitchwheel.bendrange");}; } void PartUI::cb_benddir(Fl_Check_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_benddir_i(o,v); } void PartUI::cb_bendsplt_i(Fl_Osc_Check* o, void*) { if(o->value()) {benddir->activate();} else {benddir->deactivate(); benddir->value(0); benddir->do_callback();}; } void PartUI::cb_bendsplt(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_bendsplt_i(o,v); } void PartUI::cb_Sustain_i(Fl_Osc_Check*, void*) { //TODO /*if (ctl.sustain.receive==0) { ReleaseSustainedKeys(); ctl.setsustain(0); };*/; } void PartUI::cb_Sustain(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Sustain_i(o,v); } void PartUI::cb_Close_i(Fl_Button*, void*) { ctlwindow->hide(); } void PartUI::cb_Close(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Close_i(o,v); } void PartUI::cb_Reset_i(Fl_Osc_Button* o, void*) { o->oscWrite("defaults");//part->SetController(C_resetallcontrollers,0); ctlwindow->update(); } void PartUI::cb_Reset(Fl_Osc_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Reset_i(o,v); } void PartUI::cb_Proprt_i(Fl_Osc_Check* o, void*) { if(o->value()){propta->activate();proptb->activate();} else {propta->deactivate();proptb->deactivate();}; } void PartUI::cb_Proprt(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Proprt_i(o,v); } void PartUI::cb_inseffnocounter_i(Fl_Counter* o, void*) { ninseff=(int) o->value()-1; insefftype->oscMove("partefx"+to_s(ninseff)+"/efftype"); inseffectuigroup->reext("partefx"+to_s(ninseff)+"/"); bypasseff->oscMove("Pefxbypass"+to_s(ninseff)); sendtochoice->oscMove("Pefxroute"+to_s(ninseff)); /*insefftype->value(part->partefx[ninseff]->geteffect());*/ //insefftype->do_callback(); inseffectui->refresh(); int x=127;/*part->Pefxroute[ninseff];*/ if (x==127) x=1; sendtochoice->value(x); } void PartUI::cb_inseffnocounter(Fl_Counter* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_inseffnocounter_i(o,v); } void PartUI::cb_insefftype_i(Fl_Osc_Choice* o, void*) { inseffectui->efftype = o->value(); inseffectui->refresh(); } void PartUI::cb_insefftype(Fl_Osc_Choice* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_insefftype_i(o,v); } Fl_Menu_Item PartUI::menu_insefftype[] = { {"No Effect", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Reverb", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Echo", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Chorus", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Phaser", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"AlienWah", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Distortion", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"EQ", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"DynFilter", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; void PartUI::cb_Close1_i(Fl_Button*, void*) { partfx->hide(); } void PartUI::cb_Close1(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Close1_i(o,v); } void PartUI::cb_sendtochoice_i(Fl_Osc_Choice* o, void*) { (void)o;/*int x=(int) o->value(); part->Pefxroute[ninseff]=x; if (x==2) part->partefx[ninseff]->setdryonly(true); else part->partefx[ninseff]->setdryonly(false);*/; } void PartUI::cb_sendtochoice(Fl_Osc_Choice* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_sendtochoice_i(o,v); } Fl_Menu_Item PartUI::menu_sendtochoice[] = { {"Next Effect", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Part Out", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Dry Out", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; void PartUI::cb_C_i(Fl_Button*, void*) { presetsui->copy(partfx->loc()+"partefx"+to_s(ninseff)+"/"); } void PartUI::cb_C(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_C_i(o,v); } void PartUI::cb_P_i(Fl_Button*, void*) { presetsui->paste(partfx->loc()+"partefx"+to_s(ninseff)+"/",inseffectui); } void PartUI::cb_P(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_P_i(o,v); } void PartUI::cb_Close2_i(Fl_Button*, void*) { instrumentkitlist->hide(); } void PartUI::cb_Close2(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Close2_i(o,v); } void PartUI::cb_Mode_i(Fl_Osc_Choice* o, void*) { if (o->value()==0) { for (int i=1;ideactivate(); partkititem[0]->mutedcheck->deactivate(); } else { for (int i=1;iactivate(); partkititem[0]->mutedcheck->activate(); }; } void PartUI::cb_Mode(Fl_Osc_Choice* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Mode_i(o,v); } Fl_Menu_Item PartUI::menu_Mode[] = { {"OFF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"MULTI", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"SINGLE", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PartUI::cb_Comments_i(Fl_Button*, void*) { instrumenteditwindow->show(); } void PartUI::cb_Comments(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Comments_i(o,v); } void PartUI::cb_Effects_i(Fl_Button*, void*) { partfx->show(); } void PartUI::cb_Effects(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Effects_i(o,v); } void PartUI::cb_padeditbutton1_i(Fl_Button*, void*) { showparameters(0,2); } void PartUI::cb_padeditbutton1(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->parent()->user_data()))->cb_padeditbutton1_i(o,v); } void PartUI::cb_padsynenabledcheck_i(Fl_Osc_Check* o, void*) { if (o->value()==0) padeditbutton->deactivate(); else padeditbutton->activate(); } void PartUI::cb_padsynenabledcheck(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->parent()->parent()->user_data()))->cb_padsynenabledcheck_i(o,v); } void PartUI::cb_adsynenabledcheck_i(Fl_Osc_Check* o, void*) { if (o->value()==0) adeditbutton->deactivate(); else adeditbutton->activate(); } void PartUI::cb_adsynenabledcheck(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->parent()->parent()->user_data()))->cb_adsynenabledcheck_i(o,v); } void PartUI::cb_adeditbutton1_i(Fl_Button*, void*) { if (Fl::event_shift()) { showvoiceparams(0, true); } else if (Fl::event_ctrl()) { showvoiceparams(0, false); } else showparameters(0,0); } void PartUI::cb_adeditbutton1(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->parent()->user_data()))->cb_adeditbutton1_i(o,v); } void PartUI::cb_subsynenabledcheck_i(Fl_Osc_Check* o, void*) { if (o->value()==0) subeditbutton->deactivate(); else subeditbutton->activate(); } void PartUI::cb_subsynenabledcheck(Fl_Osc_Check* o, void* v) { ((PartUI*)(o->parent()->parent()->parent()->user_data()))->cb_subsynenabledcheck_i(o,v); } void PartUI::cb_subeditbutton1_i(Fl_Button*, void*) { showparameters(0,1); } void PartUI::cb_subeditbutton1(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->parent()->user_data()))->cb_subeditbutton1_i(o,v); } void PartUI::cb_Kit_i(Fl_Button*, void*) { instrumentkitlist->show(); } void PartUI::cb_Kit(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Kit_i(o,v); } void PartUI::cb_Effects1_i(Fl_Button*, void*) { partfx->show(); } void PartUI::cb_Effects1(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Effects1_i(o,v); } void PartUI::cb_Author_i(Fl_Osc_Input* o, void*) { o->oscWrite(o->ext, "s", o->value()); } void PartUI::cb_Author(Fl_Osc_Input* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Author_i(o,v); } void PartUI::cb_Comments1_i(Fl_Osc_Input* o, void*) { o->oscWrite(o->ext, "s", o->value()); } void PartUI::cb_Comments1(Fl_Osc_Input* o, void* v) { ((PartUI*)(o->parent()->parent()->user_data()))->cb_Comments1_i(o,v); } Fl_Menu_Item PartUI::menu_Type[] = { {"--------------------------", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Piano", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Chromatic Percussion", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Organ", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Guitar", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Bass", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Solo Strings", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Ensemble", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Brass", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Reed", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Pipe", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Synth Lead", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Synth Pad", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Synth Effects", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Ethnic", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Percussive", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Sound Effects", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void PartUI::cb_Close3_i(Fl_Button*, void*) { instrumenteditwindow->hide(); } void PartUI::cb_Close3(Fl_Button* o, void* v) { ((PartUI*)(o->parent()->user_data()))->cb_Close3_i(o,v); } Fl_Group* PartUI::make_window() { { partgroup = new Fl_Group(0, 0, 385, 180); partgroup->box(FL_NO_BOX); partgroup->color(FL_BACKGROUND_COLOR); partgroup->selection_color(FL_BACKGROUND_COLOR); partgroup->labeltype(FL_NO_LABEL); partgroup->labelfont(0); partgroup->labelsize(14); partgroup->labelcolor(FL_FOREGROUND_COLOR); partgroup->user_data((void*)(this)); partgroup->align(Fl_Align(FL_ALIGN_TOP)); partgroup->when(FL_WHEN_RELEASE); { partgroupui = new Fl_Osc_Group(0, 0, 385, 180); partgroupui->box(FL_NO_BOX); partgroupui->color(FL_BACKGROUND_COLOR); partgroupui->selection_color(FL_BACKGROUND_COLOR); partgroupui->labeltype(FL_NORMAL_LABEL); partgroupui->labelfont(0); partgroupui->labelsize(14); partgroupui->labelcolor(FL_FOREGROUND_COLOR); partgroupui->align(Fl_Align(FL_ALIGN_TOP)); partgroupui->when(FL_WHEN_RELEASE); { Fl_Osc_Dial* o = new Fl_Osc_Dial(50, 40, 25, 25, "Pan"); o->box(FL_ROUND_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_INACTIVE_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); 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("Ppanning"); o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Counter* o = new Fl_Osc_Counter(195, 45, 90, 20, "KeyShift"); o->box(FL_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_INACTIVE_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->minimum(-64); o->maximum(64); o->step(1); o->align(Fl_Align(FL_ALIGN_TOP)); o->when(FL_WHEN_CHANGED); o->lstep(12); o->init("Pkeyshift", 'i', -64); } // Fl_Osc_Counter* o { Fl_Scroll* o = new Fl_Scroll(166, 91, 125, 49); o->box(FL_UP_BOX); o->labelfont(1); o->labelsize(10); o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE)); { Fl_Pack* o = new Fl_Pack(171, 96, 115, 35); o->type(1); o->spacing(5); for (int i=0;iinit(npart,i);} o->end(); } // Fl_Pack* o o->end(); } // Fl_Scroll* o { PartNameButton* o = new PartNameButton(195, 5, 185, 20, "Grand Piano"); o->tooltip("left mousebutton - to choose/save/.. from/to bank or right mousebutton to cha\ nge the name or middle button to change the instrument information"); o->box(FL_UP_FRAME); o->down_box(FL_DOWN_FRAME); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_Grand); o->align(Fl_Align(68|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); /*o->label((char *)part->Pname);*/ o->ext = "Pname";o->oscRegister("Pname"); } // PartNameButton* o { Fl_Box* o = new Fl_Box(166, 81, 95, 10, "To Sys.Efx."); o->labelfont(1); o->labelsize(10); } // Fl_Box* o { Fl_Osc_Check* o = new Fl_Osc_Check(10, 155, 65, 20, "NoteOn"); o->tooltip("set if the part receives NoteOn messages"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("Pnoteon"); } // Fl_Osc_Check* o { Fl_Osc_Counter* o = minkcounter = new Fl_Osc_Counter(295, 125, 40, 15, "Min.k"); minkcounter->tooltip("Minimum key (that the part receives NoteOn messages)"); minkcounter->type(1); minkcounter->box(FL_UP_BOX); minkcounter->color(FL_BACKGROUND_COLOR); minkcounter->selection_color(FL_INACTIVE_COLOR); minkcounter->labeltype(FL_NORMAL_LABEL); minkcounter->labelfont(1); minkcounter->labelsize(10); minkcounter->labelcolor(FL_FOREGROUND_COLOR); minkcounter->minimum(0); minkcounter->maximum(127); minkcounter->step(1); minkcounter->textsize(10); minkcounter->callback((Fl_Callback*)cb_minkcounter); minkcounter->align(Fl_Align(FL_ALIGN_BOTTOM)); minkcounter->when(FL_WHEN_CHANGED); o->init("Pminkey"); } // Fl_Osc_Counter* minkcounter { Fl_Osc_Counter* o = maxkcounter = new Fl_Osc_Counter(340, 125, 40, 15, "Max.k"); maxkcounter->tooltip("Maximum key (that the part receives NoteOn messages)"); maxkcounter->type(1); maxkcounter->box(FL_UP_BOX); maxkcounter->color(FL_BACKGROUND_COLOR); maxkcounter->selection_color(FL_INACTIVE_COLOR); maxkcounter->labeltype(FL_NORMAL_LABEL); maxkcounter->labelfont(1); maxkcounter->labelsize(10); maxkcounter->labelcolor(FL_FOREGROUND_COLOR); maxkcounter->minimum(0); maxkcounter->maximum(127); maxkcounter->step(1); maxkcounter->textsize(10); maxkcounter->callback((Fl_Callback*)cb_maxkcounter); maxkcounter->align(Fl_Align(FL_ALIGN_BOTTOM)); maxkcounter->when(FL_WHEN_CHANGED); o->init("Pmaxkey"); } // Fl_Osc_Counter* maxkcounter { Fl_Osc_Dial* o = new Fl_Osc_Dial(10, 35, 30, 30, "Volume"); o->tooltip("Part Volume"); o->box(FL_ROUND_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_INACTIVE_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); 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("Pvolume"); o->reset_value=96; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(135, 40, 25, 25, "Vel.Ofs."); o->tooltip("Velocity Offset"); o->box(FL_ROUND_UP_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("Pveloffs"); o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(95, 40, 25, 25, "Vel.Sns."); o->tooltip("Velocity Sensing Function"); o->box(FL_ROUND_UP_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("Pvelsns"); o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Button* o = new Fl_Button(295, 90, 85, 30, "Controllers"); o->labelfont(1); o->labelsize(11); o->callback((Fl_Callback*)cb_Controllers); } // Fl_Button* o { Fl_Osc_Check* o = new Fl_Osc_Check(95, 155, 88, 20, "Portamento"); o->tooltip("Enable/Disable the portamento"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("ctl/portamento.portamento"); } // Fl_Osc_Check* o { Fl_Button* o = new Fl_Button(15, 90, 130, 30, "Edit instrument"); o->color(FL_LIGHT2); o->labelfont(1); o->labelsize(13); o->callback((Fl_Callback*)cb_Edit); } // Fl_Button* o { Fl_Osc_Button* o = new Fl_Osc_Button(315, 155, 15, 12, "m"); o->tooltip("set the minimum key to the last pressed key"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_m1); o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o { Fl_Osc_Button* o = new Fl_Osc_Button(345, 155, 15, 12, "M"); o->tooltip("set the maximum key to the last pressed key"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_M1); o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o { Fl_Osc_Button* o = new Fl_Osc_Button(330, 155, 15, 12, "R"); o->tooltip("reset the minimum key to 0 and maximum key to 127"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_R1); o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o { Fl_Osc_Choice* o = new Fl_Osc_Choice(310, 45, 70, 20, "MIDI Chn.Rcv."); o->tooltip("receive from Midi channel"); o->box(FL_UP_BOX); o->down_box(FL_BORDER_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->textfont(1); o->textsize(10); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); char nrstr[10]; for(int i=0;iadd(nrstr); else o->add("Drms10");}; o->init("Prcvchn"); } // Fl_Osc_Choice* o { Fl_Osc_Counter* o = keylimitlist = new Fl_Osc_Counter(215, 155, 50, 20, "KLmt"); keylimitlist->tooltip("Key Limit"); keylimitlist->box(FL_UP_BOX); keylimitlist->color(FL_BACKGROUND_COLOR); keylimitlist->selection_color(FL_INACTIVE_COLOR); keylimitlist->labeltype(FL_NORMAL_LABEL); keylimitlist->labelfont(0); keylimitlist->labelsize(10); keylimitlist->labelcolor(FL_FOREGROUND_COLOR); keylimitlist->textfont(1); keylimitlist->textsize(10); keylimitlist->align(Fl_Align(FL_ALIGN_RIGHT)); keylimitlist->when(FL_WHEN_CHANGED); o->init("Pkeylimit",'i'); o->step(1.0,10.0); o->range(0,127); } // Fl_Osc_Counter* keylimitlist { Fl_Osc_Choice* o = new Fl_Osc_Choice(80, 130, 64, 18, "Mode :"); o->tooltip("Poly, Mono or Legato mode"); o->box(FL_UP_BOX); o->down_box(FL_BORDER_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->textfont(1); o->textsize(10); o->align(Fl_Align(FL_ALIGN_LEFT)); o->when(FL_WHEN_RELEASE); o->add("Poly"); o->add("Mono"); o->add("Legato"); o->init("polyType"); } // Fl_Osc_Choice* o partgroupui->end(); } // Fl_Osc_Group* partgroupui { Fl_Osc_Check* o = partenablebutton = new Fl_Osc_Check(90, 5, 75, 20, "Enabled"); partenablebutton->box(FL_NO_BOX); partenablebutton->down_box(FL_DOWN_BOX); partenablebutton->color(FL_BACKGROUND_COLOR); partenablebutton->selection_color(FL_FOREGROUND_COLOR); partenablebutton->labeltype(FL_NORMAL_LABEL); partenablebutton->labelfont(1); partenablebutton->labelsize(11); partenablebutton->labelcolor(FL_FOREGROUND_COLOR); partenablebutton->callback((Fl_Callback*)cb_partenablebutton); partenablebutton->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); partenablebutton->when(FL_WHEN_RELEASE); o->init("Penabled"); } // Fl_Osc_Check* partenablebutton partgroup->end(); } // Fl_Group* partgroup { ctlwindow = new Fl_Osc_Window(500, 135, "Controllers"); ctlwindow->box(FL_NO_BOX); ctlwindow->color(FL_BACKGROUND_COLOR); ctlwindow->selection_color(FL_BACKGROUND_COLOR); ctlwindow->labeltype(FL_NO_LABEL); ctlwindow->labelfont(0); ctlwindow->labelsize(14); ctlwindow->labelcolor(FL_FOREGROUND_COLOR); ctlwindow->user_data((void*)(this)); ctlwindow->align(Fl_Align(FL_ALIGN_TOP)); ctlwindow->when(FL_WHEN_RELEASE); { new Fl_Box(0, 0, 0, 0); ctlwindow->init(osc,"/part"+to_s(npart)+"/ctl/"); } // Fl_Box* o { Fl_Osc_Check* o = new Fl_Osc_Check(155, 58, 45, 20, "Expr"); o->tooltip("Expression enable"); o->box(FL_THIN_UP_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("expression.receive"); } // Fl_Osc_Check* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(10, 55, 30, 30, "PanDpth"); o->tooltip("Panning Depth"); 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("panning.depth");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(90, 55, 30, 30, "FltCut"); o->tooltip("Filter Cutoff depth"); 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("filtercutoff.depth");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(50, 55, 30, 30, "FltQ"); o->tooltip("Filter Q depth"); 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("filterq.depth");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(125, 10, 30, 30, "BwDpth"); o->tooltip("BandWidth depth"); 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("bandwidth.depth");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(50, 10, 30, 30, "ModWh"); o->tooltip("Modulation Wheel depth"); 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("modwheel.depth");o->reset_value=80; } // Fl_Osc_Dial* o { benddir = new Fl_Check_Button(205, 37, 69, 15, "Downward"); benddir->down_box(FL_DOWN_BOX); benddir->labelsize(10); benddir->callback((Fl_Callback*)cb_benddir); } // Fl_Check_Button* benddir { Fl_Osc_Counter* o = bendrng = new Fl_Osc_Counter(165, 15, 110, 20, "PWheelB.Rng (cents)"); bendrng->tooltip("Pitch Wheel Bend Range (cents)"); bendrng->box(FL_UP_BOX); bendrng->color(FL_BACKGROUND_COLOR); bendrng->selection_color(FL_INACTIVE_COLOR); bendrng->labeltype(FL_NORMAL_LABEL); bendrng->labelfont(0); bendrng->labelsize(10); bendrng->labelcolor(FL_FOREGROUND_COLOR); bendrng->minimum(-6400); bendrng->maximum(6400); bendrng->step(1); bendrng->align(Fl_Align(FL_ALIGN_TOP)); bendrng->when(FL_WHEN_CHANGED); o->init("pitchwheel.bendrange", 'i'); o->lstep(100); } // Fl_Osc_Counter* bendrng { Fl_Osc_Check* o = bendsplt = new Fl_Osc_Check(167, 37, 38, 15, "Split"); bendsplt->box(FL_NO_BOX); bendsplt->down_box(FL_DOWN_BOX); bendsplt->color(FL_BACKGROUND_COLOR); bendsplt->selection_color(FL_FOREGROUND_COLOR); bendsplt->labeltype(FL_NORMAL_LABEL); bendsplt->labelfont(0); bendsplt->labelsize(10); bendsplt->labelcolor(FL_FOREGROUND_COLOR); bendsplt->callback((Fl_Callback*)cb_bendsplt); bendsplt->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); bendsplt->when(FL_WHEN_RELEASE); o->init("pitchwheel.is_split"); } // Fl_Osc_Check* bendsplt { Fl_Osc_Check* o = new Fl_Osc_Check(205, 58, 60, 20, "FMamp"); o->tooltip("FM amplitude enable"); o->box(FL_THIN_UP_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("fmamp.receive"); } // Fl_Osc_Check* o { Fl_Osc_Check* o = new Fl_Osc_Check(155, 83, 45, 20, "Vol"); o->tooltip("Volume enable"); o->box(FL_THIN_UP_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("volume.receive"); } // Fl_Osc_Check* o { Fl_Osc_Check* o = new Fl_Osc_Check(205, 83, 60, 20, "Sustain"); o->tooltip("Sustain pedal enable"); o->box(FL_THIN_UP_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_Sustain); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("sustain.receive"); } // Fl_Osc_Check* o { Fl_Button* o = new Fl_Button(400, 110, 95, 20, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close); } // Fl_Button* o { Fl_Osc_Button* o = new Fl_Osc_Button(5, 110, 210, 20, "Reset all controllers"); o->box(FL_THIN_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(14); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_Reset); o->align(Fl_Align(FL_ALIGN_CENTER)); o->when(FL_WHEN_RELEASE); } // Fl_Osc_Button* o { Fl_Osc_Group* o = new Fl_Osc_Group(280, 15, 160, 90, "Portamento"); o->box(FL_UP_FRAME); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_TOP)); o->when(FL_WHEN_RELEASE); { Fl_Osc_Check* o = new Fl_Osc_Check(285, 20, 40, 20, "Rcv"); o->tooltip("Receive Portamento Controllers"); o->box(FL_THIN_UP_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("portamento.receive"); } // Fl_Osc_Check* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(285, 60, 25, 25, "time"); o->tooltip("Portamento time"); 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("portamento.time");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Counter* o = new Fl_Osc_Counter(340, 20, 50, 20, "thresh"); o->tooltip("Minimum or max. difference of the notes in order to do the portamento (x 100 \ cents)"); o->type(1); o->box(FL_UP_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->minimum(0); o->maximum(127); o->step(1); o->align(Fl_Align(FL_ALIGN_BOTTOM)); o->when(FL_WHEN_CHANGED); o->init("portamento.pitchthresh"); } // Fl_Osc_Counter* o { Fl_Osc_Check* o = new Fl_Osc_Check(365, 70, 15, 15, "th.type"); o->tooltip("Threshold type (min/max)"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_BOTTOM)); o->when(FL_WHEN_RELEASE); o->init("portamento.pitchthreshtype"); } // Fl_Osc_Check* o { Fl_Box* o = new Fl_Box(340, 50, 55, 15, "x100 cnt."); o->labelsize(10); o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(315, 60, 25, 25, "t.dn/up"); o->tooltip("Portamento time stretch (up/down)"); 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("portamento.updowntimestretch");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = propta = new Fl_Osc_Dial(405, 20, 25, 25, "Prp.Rate"); propta->tooltip("Distance required to double change from nonpropotinal portamento time"); propta->box(FL_NO_BOX); propta->color(FL_BACKGROUND_COLOR); propta->selection_color(FL_INACTIVE_COLOR); propta->labeltype(FL_NORMAL_LABEL); propta->labelfont(0); propta->labelsize(9); propta->labelcolor(FL_FOREGROUND_COLOR); propta->maximum(127); propta->step(1); propta->align(Fl_Align(FL_ALIGN_BOTTOM)); propta->when(FL_WHEN_CHANGED); o->init("portamento.propRate");o->reset_value=80; } // Fl_Osc_Dial* propta { Fl_Osc_Dial* o = proptb = new Fl_Osc_Dial(405, 60, 25, 25, "Prp.Dpth"); proptb->tooltip("The difference from nonproportinal portamento"); proptb->box(FL_NO_BOX); proptb->color(FL_BACKGROUND_COLOR); proptb->selection_color(FL_INACTIVE_COLOR); proptb->labeltype(FL_NORMAL_LABEL); proptb->labelfont(0); proptb->labelsize(9); proptb->labelcolor(FL_FOREGROUND_COLOR); proptb->maximum(127); proptb->step(1); proptb->align(Fl_Align(FL_ALIGN_BOTTOM)); proptb->when(FL_WHEN_CHANGED); o->init("portamento.propDepth");o->reset_value=90; } // Fl_Osc_Dial* proptb { Fl_Osc_Check* o = new Fl_Osc_Check(285, 40, 50, 15, "Proprt."); o->tooltip("Enable Proportinal Portamento (over fixed Portamento)"); o->box(FL_THIN_UP_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(9); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_Proprt); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("portamento.proportional"); } // Fl_Osc_Check* o o->end(); } // Fl_Osc_Group* o { Fl_Osc_Group* o = new Fl_Osc_Group(445, 15, 50, 90, "Resonance"); o->box(FL_UP_FRAME); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_BACKGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_TOP)); o->when(FL_WHEN_RELEASE); { Fl_Osc_Dial* o = new Fl_Osc_Dial(455, 60, 25, 25, "BWdpth"); o->tooltip("BandWidth controller depth"); 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("resonancebandwidth.depth");o->reset_value=64; } // Fl_Osc_Dial* o { Fl_Osc_Dial* o = new Fl_Osc_Dial(455, 20, 25, 25, "CFdpth"); o->tooltip("Center Frequency controller Depth"); 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("resonancecenter.depth");o->reset_value=64; } // Fl_Osc_Dial* o o->end(); } // Fl_Osc_Group* o { Fl_Osc_Check* o = new Fl_Osc_Check(10, 15, 40, 25, "Exp MWh"); o->tooltip("Exponential modulation wheel"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(132|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("modwheel.exponential"); } // Fl_Osc_Check* o { Fl_Osc_Check* o = new Fl_Osc_Check(85, 15, 35, 25, "Exp BW"); o->tooltip("Exponential BandWidth Controller"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(132|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("bandwidth.exponential"); } // Fl_Osc_Check* o ctlwindow->end(); } // Fl_Osc_Window* ctlwindow { partfx = new Fl_Osc_Window(390, 145, "Part\'s Insert Effects"); partfx->box(FL_NO_BOX); partfx->color(FL_BACKGROUND_COLOR); partfx->selection_color(FL_BACKGROUND_COLOR); partfx->labeltype(FL_NO_LABEL); partfx->labelfont(0); partfx->labelsize(14); partfx->labelcolor(FL_FOREGROUND_COLOR); partfx->user_data((void*)(this)); partfx->align(Fl_Align(FL_ALIGN_TOP)); partfx->when(FL_WHEN_RELEASE); { new Fl_Box(0, 0, 0, 0); partfx->init(osc, part_path); } // Fl_Box* o { Fl_Counter* o = inseffnocounter = new Fl_Counter(5, 110, 80, 20, "FX No."); inseffnocounter->type(1); inseffnocounter->labelfont(1); inseffnocounter->minimum(1); inseffnocounter->maximum(127); inseffnocounter->step(1); inseffnocounter->textfont(1); inseffnocounter->callback((Fl_Callback*)cb_inseffnocounter); inseffnocounter->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); o->bounds(1,NUM_PART_EFX); o->value(ninseff+1); } // Fl_Counter* inseffnocounter { Fl_Osc_Choice* o = insefftype = new Fl_Osc_Choice(155, 110, 70, 15, "EffType"); insefftype->box(FL_UP_BOX); insefftype->down_box(FL_BORDER_BOX); insefftype->color(FL_BACKGROUND_COLOR); insefftype->selection_color(FL_SELECTION_COLOR); insefftype->labeltype(FL_NORMAL_LABEL); insefftype->labelfont(0); insefftype->labelsize(10); insefftype->labelcolor(FL_FOREGROUND_COLOR); insefftype->callback((Fl_Callback*)cb_insefftype); insefftype->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); insefftype->when(FL_WHEN_RELEASE); insefftype->menu(menu_insefftype); o->init(("partefx"+to_s(ninseff)+"/efftype").c_str()); } // Fl_Osc_Choice* insefftype { inseffectuigroup = new Fl_Osc_Group(5, 5, 380, 100); inseffectuigroup->box(FL_FLAT_BOX); inseffectuigroup->color((Fl_Color)48); inseffectuigroup->selection_color(FL_BACKGROUND_COLOR); inseffectuigroup->labeltype(FL_NORMAL_LABEL); inseffectuigroup->labelfont(0); inseffectuigroup->labelsize(14); inseffectuigroup->labelcolor(FL_FOREGROUND_COLOR); inseffectuigroup->align(Fl_Align(FL_ALIGN_TOP)); inseffectuigroup->when(FL_WHEN_RELEASE); { new Fl_Box(0, 0, 0, 0); inseffectuigroup->ext = "partefx0/"; } // Fl_Box* o { EffUI* o = inseffectui = new EffUI(5, 5, 380, 95); inseffectui->box(FL_NO_BOX); inseffectui->color(FL_BACKGROUND_COLOR); inseffectui->selection_color(FL_BACKGROUND_COLOR); inseffectui->labeltype(FL_NORMAL_LABEL); inseffectui->labelfont(0); inseffectui->labelsize(14); inseffectui->labelcolor(FL_FOREGROUND_COLOR); inseffectui->align(Fl_Align(FL_ALIGN_TOP)); inseffectui->when(FL_WHEN_RELEASE); o->init(true); inseffectui->end(); } // EffUI* inseffectui inseffectuigroup->end(); } // Fl_Osc_Group* inseffectuigroup { Fl_Button* o = new Fl_Button(325, 115, 60, 20, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close1); } // Fl_Button* o { Fl_Osc_Choice* o = sendtochoice = new Fl_Osc_Choice(235, 110, 80, 15, "Send To."); sendtochoice->box(FL_UP_BOX); sendtochoice->down_box(FL_BORDER_BOX); sendtochoice->color(FL_BACKGROUND_COLOR); sendtochoice->selection_color(FL_SELECTION_COLOR); sendtochoice->labeltype(FL_NORMAL_LABEL); sendtochoice->labelfont(0); sendtochoice->labelsize(10); sendtochoice->labelcolor(FL_FOREGROUND_COLOR); sendtochoice->callback((Fl_Callback*)cb_sendtochoice); sendtochoice->align(Fl_Align(FL_ALIGN_BOTTOM_LEFT)); sendtochoice->when(FL_WHEN_RELEASE); sendtochoice->menu(menu_sendtochoice); /*int x=part->Pefxroute[ninseff]; if (x==127) x=1;*/ o->init(("Pefxroute"+to_s(ninseff)).c_str()); } // Fl_Osc_Choice* sendtochoice { Fl_Osc_Check* o = bypasseff = new Fl_Osc_Check(90, 110, 60, 15, "bypass"); bypasseff->tooltip("if the effect is not used (is bypassed)"); bypasseff->box(FL_NO_BOX); bypasseff->down_box(FL_DOWN_BOX); bypasseff->color(FL_BACKGROUND_COLOR); bypasseff->selection_color(FL_FOREGROUND_COLOR); bypasseff->labeltype(FL_NORMAL_LABEL); bypasseff->labelfont(0); bypasseff->labelsize(11); bypasseff->labelcolor(FL_FOREGROUND_COLOR); bypasseff->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); bypasseff->when(FL_WHEN_RELEASE); o->init("Pefxbypass"+to_s(ninseff)); } // Fl_Osc_Check* bypasseff { Fl_Button* o = new Fl_Button(90, 127, 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(120, 127, 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 partfx->end(); } // Fl_Osc_Window* partfx { instrumentkitlist = new Fl_Osc_Window(670, 370, "Instrument Kit"); instrumentkitlist->box(FL_NO_BOX); instrumentkitlist->color(FL_BACKGROUND_COLOR); instrumentkitlist->selection_color(FL_BACKGROUND_COLOR); instrumentkitlist->labeltype(FL_NO_LABEL); instrumentkitlist->labelfont(0); instrumentkitlist->labelsize(14); instrumentkitlist->labelcolor(FL_FOREGROUND_COLOR); instrumentkitlist->user_data((void*)(this)); instrumentkitlist->align(Fl_Align(FL_ALIGN_TOP)); instrumentkitlist->when(FL_WHEN_RELEASE); { new Fl_Box(0, 0, 0, 0); instrumentkitlist->init(osc, "/part"+to_s(npart)+"/"); } // Fl_Box* o { Fl_Button* o = new Fl_Button(255, 350, 160, 20, "Close Window"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close2); } // Fl_Button* o { kitlist = new Fl_Scroll(0, 15, 670, 330); kitlist->type(2); kitlist->box(FL_UP_FRAME); { Fl_Pack* o = new Fl_Pack(0, 20, 670, 320); for (int i=0;iinit(i,this);} o->end(); } // Fl_Pack* o kitlist->end(); } // Fl_Scroll* kitlist { Fl_Box* o = new Fl_Box(5, 0, 25, 15, "No."); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Box* o = new Fl_Box(55, 0, 25, 15, "M."); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Box* o = new Fl_Box(235, 0, 40, 15, "Min.k"); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Box* o = new Fl_Box(345, 0, 40, 15, "Max.k"); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Box* o = new Fl_Box(405, 0, 50, 15, "ADsynth"); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Box* o = new Fl_Box(470, 0, 60, 15, "SUBsynth"); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Osc_Choice* o = new Fl_Osc_Choice(35, 350, 70, 15, "Mode"); o->box(FL_UP_BOX); o->down_box(FL_BORDER_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->textfont(1); o->textsize(11); o->callback((Fl_Callback*)cb_Mode); o->align(Fl_Align(FL_ALIGN_LEFT)); o->when(FL_WHEN_RELEASE); o->menu(menu_Mode); o->init("Pkitmode"); } // Fl_Osc_Choice* o { Fl_Osc_Check* o = new Fl_Osc_Check(125, 350, 80, 15, "Drum mode"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("Pdrummode"); } // Fl_Osc_Check* o { Fl_Button* o = new Fl_Button(481, 350, 106, 20, "Comments"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Comments); } // Fl_Button* o { Fl_Button* o = new Fl_Button(600, 350, 70, 20, "Effects"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Effects); } // Fl_Button* o { Fl_Box* o = new Fl_Box(620, 0, 30, 15, "FX.r."); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o { Fl_Box* o = new Fl_Box(540, 0, 60, 15, "PADsynth"); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_BOTTOM|FL_ALIGN_INSIDE)); } // Fl_Box* o instrumentkitlist->end(); } // Fl_Osc_Window* instrumentkitlist { instrumenteditwindow = new Fl_Osc_Window(395, 360, "Instrument Edit"); instrumenteditwindow->box(FL_NO_BOX); instrumenteditwindow->color(FL_BACKGROUND_COLOR); instrumenteditwindow->selection_color(FL_BACKGROUND_COLOR); instrumenteditwindow->labeltype(FL_NO_LABEL); instrumenteditwindow->labelfont(0); instrumenteditwindow->labelsize(14); instrumenteditwindow->labelcolor(FL_FOREGROUND_COLOR); instrumenteditwindow->user_data((void*)(this)); instrumenteditwindow->align(Fl_Align(FL_ALIGN_TOP)); instrumenteditwindow->when(FL_WHEN_RELEASE); { new Fl_Box(0, 0, 0, 0); instrumenteditwindow->init(osc, "/part"+to_s(npart)+"/"); } // Fl_Box* o { editgroup = new Fl_Osc_Group(0, 220, 395, 110); editgroup->box(FL_UP_FRAME); editgroup->color(FL_BACKGROUND_COLOR); editgroup->selection_color(FL_BACKGROUND_COLOR); editgroup->labeltype(FL_NORMAL_LABEL); editgroup->labelfont(0); editgroup->labelsize(14); editgroup->labelcolor(FL_FOREGROUND_COLOR); editgroup->align(Fl_Align(FL_ALIGN_TOP)); editgroup->when(FL_WHEN_RELEASE); { new Fl_Box(0, 220, 0, 0); editgroup->ext = "kit0/"; } // Fl_Box* o { Fl_Group* o = new Fl_Group(205, 245, 100, 80, "PADsynth"); o->box(FL_ENGRAVED_FRAME); o->labelfont(1); { padeditbutton = new Fl_Button(215, 280, 80, 35, "Edit"); padeditbutton->color((Fl_Color)51); padeditbutton->selection_color((Fl_Color)51); padeditbutton->labelfont(1); padeditbutton->labelsize(13); padeditbutton->callback((Fl_Callback*)cb_padeditbutton1); padeditbutton->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Button* padeditbutton { Fl_Osc_Check* o = padsynenabledcheck = new Fl_Osc_Check(215, 255, 80, 20, "Enabled"); padsynenabledcheck->tooltip("enable/disable PADsynth"); padsynenabledcheck->box(FL_UP_BOX); padsynenabledcheck->down_box(FL_DOWN_BOX); padsynenabledcheck->color((Fl_Color)51); padsynenabledcheck->selection_color(FL_FOREGROUND_COLOR); padsynenabledcheck->labeltype(FL_NORMAL_LABEL); padsynenabledcheck->labelfont(1); padsynenabledcheck->labelsize(11); padsynenabledcheck->labelcolor(FL_FOREGROUND_COLOR); padsynenabledcheck->callback((Fl_Callback*)cb_padsynenabledcheck); padsynenabledcheck->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); padsynenabledcheck->when(FL_WHEN_RELEASE); o->init("Ppadenabled"); } // Fl_Osc_Check* padsynenabledcheck o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(5, 245, 100, 80, "ADsynth"); o->box(FL_ENGRAVED_FRAME); o->labelfont(1); { Fl_Osc_Check* o = adsynenabledcheck = new Fl_Osc_Check(15, 255, 80, 20, "Enabled"); adsynenabledcheck->tooltip("enable/disable ADsynth"); adsynenabledcheck->box(FL_UP_BOX); adsynenabledcheck->down_box(FL_DOWN_BOX); adsynenabledcheck->color((Fl_Color)51); adsynenabledcheck->selection_color(FL_FOREGROUND_COLOR); adsynenabledcheck->labeltype(FL_NORMAL_LABEL); adsynenabledcheck->labelfont(1); adsynenabledcheck->labelsize(11); adsynenabledcheck->labelcolor(FL_FOREGROUND_COLOR); adsynenabledcheck->callback((Fl_Callback*)cb_adsynenabledcheck); adsynenabledcheck->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); adsynenabledcheck->when(FL_WHEN_RELEASE); o->init("Padenabled"); } // Fl_Osc_Check* adsynenabledcheck { adeditbutton = new Fl_Button(15, 281, 80, 34, "Edit"); adeditbutton->color((Fl_Color)51); adeditbutton->selection_color((Fl_Color)51); adeditbutton->labelfont(1); adeditbutton->labelsize(13); adeditbutton->callback((Fl_Callback*)cb_adeditbutton1); adeditbutton->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Button* adeditbutton o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(105, 245, 100, 80, "SUBsynth"); o->box(FL_ENGRAVED_FRAME); o->labelfont(1); { Fl_Osc_Check* o = subsynenabledcheck = new Fl_Osc_Check(115, 255, 80, 20, "Enabled"); subsynenabledcheck->tooltip("enable/disable SUBsynth"); subsynenabledcheck->box(FL_UP_BOX); subsynenabledcheck->down_box(FL_DOWN_BOX); subsynenabledcheck->color((Fl_Color)51); subsynenabledcheck->selection_color(FL_FOREGROUND_COLOR); subsynenabledcheck->labeltype(FL_NORMAL_LABEL); subsynenabledcheck->labelfont(1); subsynenabledcheck->labelsize(11); subsynenabledcheck->labelcolor(FL_FOREGROUND_COLOR); subsynenabledcheck->callback((Fl_Callback*)cb_subsynenabledcheck); subsynenabledcheck->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); subsynenabledcheck->when(FL_WHEN_RELEASE); o->init("Psubenabled"); } // Fl_Osc_Check* subsynenabledcheck { subeditbutton = new Fl_Button(115, 280, 80, 35, "Edit"); subeditbutton->color((Fl_Color)51); subeditbutton->selection_color((Fl_Color)51); subeditbutton->labelfont(1); subeditbutton->labelsize(13); subeditbutton->callback((Fl_Callback*)cb_subeditbutton1); subeditbutton->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Button* subeditbutton o->end(); } // Fl_Group* o { Fl_Button* o = new Fl_Button(310, 245, 80, 35, "Kit Edit"); o->color((Fl_Color)51); o->selection_color((Fl_Color)51); o->labelfont(1); o->callback((Fl_Callback*)cb_Kit); o->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(310, 290, 80, 35, "Effects"); o->color((Fl_Color)51); o->selection_color((Fl_Color)51); o->labelfont(1); o->labelsize(13); o->callback((Fl_Callback*)cb_Effects1); } // Fl_Button* o editgroup->end(); } // Fl_Osc_Group* editgroup { Fl_Group* o = new Fl_Group(0, 5, 395, 215); o->box(FL_UP_FRAME); { Fl_Osc_Input* o = new Fl_Osc_Input(5, 60, 385, 50, "Author and Copyright"); o->type(4); o->box(FL_DOWN_BOX); o->color((Fl_Color)124); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_Author); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); o->maximum_size(MAX_INFO_TEXT_SIZE); o->init("info.Pauthor"); } // Fl_Osc_Input* o { Fl_Osc_Input* o = new Fl_Osc_Input(5, 125, 385, 90, "Comments"); o->type(4); o->box(FL_DOWN_BOX); o->color((Fl_Color)124); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)cb_Comments1); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); o->maximum_size(MAX_INFO_TEXT_SIZE); o->init("info.Pcomments"); } // Fl_Osc_Input* o { Fl_Osc_Choice* o = new Fl_Osc_Choice(5, 25, 155, 20, "Type:"); o->box(FL_UP_BOX); o->down_box(FL_BORDER_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->textsize(10); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); o->when(FL_WHEN_RELEASE); o->menu(menu_Type); o->init("info.Ptype"); } // Fl_Osc_Choice* o o->end(); } // Fl_Group* o { Fl_Button* o = new Fl_Button(150, 335, 95, 25, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close3); } // Fl_Button* o instrumenteditwindow->end(); } // Fl_Osc_Window* instrumenteditwindow return instrumenteditwindow; } PartUI::PartUI(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h,label) { adnoteui=NULL; subnoteui=NULL; padnoteui=NULL; lastkititem=-1; } void PartUI::init(std::string part_path_, int npart_,BankUI *bankui_, std::string loc_, Fl_Osc_Interface *osc_) { assert(osc_); assert(!loc_.empty()); bankui=bankui_; part_path = part_path_; base = part_path; npart=npart_; ninseff=0; osc=osc_; loc=loc_; make_window(); #ifdef NTK_GUI adsynenabledcheck->selection_color(55); subsynenabledcheck->selection_color(55); padsynenabledcheck->selection_color(55); #endif partgroup->position(this->parent()->x()+2,this->parent()->y()+2); partgroup->show(); end(); //if (config.ui.showinstrumentinfo!=0) instrumenteditwindow->show(); } int PartUI::cleanuplastkit(int kititem) { if (kititem==lastkititem) return 0; delete adnoteui; delete subnoteui; delete padnoteui; adnoteui=NULL;subnoteui=NULL;padnoteui=NULL; lastkititem=kititem; if(kititem>=NUM_KIT_ITEMS) return 1;//bad kit item if(kititem<0) return 1; return 0; } void PartUI::showparameters(int kititem,int engine) { if (engine==-1){//this is used if I want to clear the engine from the part //if (kititem==lastkititem) kititem=-1; //else kititem=lastkititem; delete adnoteui; delete subnoteui; delete padnoteui; adnoteui=NULL;subnoteui=NULL;padnoteui=NULL; return; } if (cleanuplastkit(kititem)) return; if(!adnoteui && engine==0)//adsynenabledcheck->value()) adnoteui=new ADnoteUI(loc+"kit"+to_s(kititem)+"/adpars/", osc); if(!subnoteui && engine==1)//subsynenabledcheck->value()) subnoteui=new SUBnoteUI(osc, loc+"kit"+to_s(kititem)+"/subpars/"); if(!padnoteui && engine==2)//padsynenabledcheck->value()) padnoteui=new PADnoteUI(loc+"kit"+to_s(kititem)+"/padpars/", osc); if (engine==0&&adnoteui) adnoteui->ADnoteGlobalParameters->show(); if (engine==1&&subnoteui) subnoteui->SUBparameters->show(); if (engine==2&&padnoteui) padnoteui->padnotewindow->show(); } void PartUI::showvoiceparams(int kititem, bool voicelist) { if (cleanuplastkit(kititem)) return; if(adnoteui || (adnoteui=new ADnoteUI(loc+"kit"+to_s(kititem)+"/adpars/", osc))) { if(voicelist) adnoteui->ADnoteVoiceList->show(); else { if (adnoteui->advoice->mod_type->value() == 0) adnoteui->advoice->voiceFMparametersgroup->deactivate(); else adnoteui->advoice->voiceFMparametersgroup->activate(); adnoteui->ADnoteVoice->show(); }} } PartUI::~PartUI() { delete adnoteui; delete subnoteui; delete padnoteui; partgroup->hide(); //delete(partgroup); ctlwindow->hide(); delete(ctlwindow); partfx->hide(); delete(partfx); instrumentkitlist->hide(); delete(instrumentkitlist); instrumenteditwindow->hide(); delete(instrumenteditwindow); } void PartUI::rebase(std::string new_loc) { loc = new_loc; partgroupui->rebase(new_loc); ctlwindow->rebase(new_loc+"ctl/"); partfx->rebase(new_loc); instrumentkitlist->rebase(new_loc); instrumenteditwindow->rebase(new_loc); partenablebutton->rebase(new_loc); int next_part = 0; const char *tmp = new_loc.c_str(); while(*tmp && !isdigit(*tmp)) tmp++; next_part = atoi(tmp); for (int i=0;irebase(next_part); }