@@ -1,308 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef ADnoteUI_h | |||||
#define ADnoteUI_h | |||||
#include <FL/Fl.H> | |||||
#include "../Params/ADnoteParameters.h" | |||||
#include "ResonanceUI.h" | |||||
#include "Fl_Osc_Slider.H" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Choice.H" | |||||
#include "Fl_Osc_Slider.H" | |||||
#include "Fl_Osc_VSlider.H" | |||||
#include "Fl_Oscilloscope.h" | |||||
#include "EnvelopeUI.h" | |||||
#include "LFOUI.h" | |||||
#include "FilterUI.h" | |||||
#include "OscilGenUI.h" | |||||
#include "PresetsUI.h" | |||||
class PhaseSlider : public Fl_Osc_TSlider { | |||||
public: | |||||
PhaseSlider(int x,int y, int w, int h, const char *label=0) | |||||
; | |||||
void set_scope(Fl_Oscilloscope *newscope); | |||||
void OSC_value(int i); | |||||
void cb(void); | |||||
private: | |||||
Fl_Oscilloscope *oscope = NULL; | |||||
}; | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Button.H> | |||||
class ADvoicelistitem : public Fl_Osc_Group { | |||||
Fl_Osc_Group* make_window(); | |||||
Fl_Osc_Group *ADnoteVoiceListItem; | |||||
Fl_Osc_Group *voicelistitemgroup; | |||||
public: | |||||
Fl_Osc_VSlider *voicevolume; | |||||
Fl_Osc_Check *voiceresonanceenabled; | |||||
Fl_Osc_VSlider *voicelfofreq; | |||||
Fl_Osc_Dial *voicepanning; | |||||
Fl_Osc_Group *voiceoscil; | |||||
Fl_Osc_Output *detunevalueoutput; | |||||
Fl_Osc_Slider *voicedetune; | |||||
private: | |||||
void cb_voicedetune_i(Fl_Osc_Slider*, void*); | |||||
static void cb_voicedetune(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Box *whitenoiselabel; | |||||
Fl_Box *pinknoiselabel; | |||||
private: | |||||
Fl_Osc_Check *voiceenabled; | |||||
void cb_voiceenabled_i(Fl_Osc_Check*, void*); | |||||
static void cb_voiceenabled(Fl_Osc_Check*, void*); | |||||
void cb_edit_i(Fl_Button*, void*); | |||||
static void cb_edit(Fl_Button*, void*); | |||||
public: | |||||
ADvoicelistitem(int x,int y, int w, int h, const char *label=0); | |||||
void init(int nvoice_, std::string loc_, Fl_Osc_Interface *osc_); | |||||
void refreshlist(); | |||||
~ADvoicelistitem(); | |||||
private: | |||||
int nvoice; | |||||
class Osc_IntModel *voice_phase; | |||||
class Osc_IntModel *sound_type; | |||||
class Osc_IntModel *ext_oscil; | |||||
Fl_Oscilloscope *oscil; | |||||
std::string loc; | |||||
}; | |||||
#include <FL/Fl_Group.H> | |||||
class ADvoiceUI : public Fl_Group { | |||||
public: | |||||
Fl_Osc_Group* make_window(); | |||||
Fl_Osc_Group *ADnoteVoiceParameters; | |||||
Fl_Group *voiceparametersgroup; | |||||
Fl_Group *voicemodegroup; | |||||
Fl_Group *voiceFMparametersgroup; | |||||
Fl_Group *modfrequency; | |||||
EnvelopeUI *voiceFMfreqenvgroup; | |||||
private: | |||||
void cb_On_i(Fl_Osc_Check*, void*); | |||||
static void cb_On(Fl_Osc_Check*, void*); | |||||
void cb__i(Fl_Osc_Slider*, void*); | |||||
static void cb_(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Output *fmdetunevalueoutput; | |||||
private: | |||||
void cb_Detune_i(Fl_Osc_Choice*, void*); | |||||
static void cb_Detune(Fl_Osc_Choice*, void*); | |||||
void cb_440Hz_i(Fl_Osc_Check*, void*); | |||||
static void cb_440Hz(Fl_Osc_Check*, void*); | |||||
public: | |||||
EnvelopeUI *voiceFMampenvgroup; | |||||
private: | |||||
void cb_On1_i(Fl_Osc_Check*, void*); | |||||
static void cb_On1(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Group *modoscil; | |||||
Fl_Osc_Group *fmoscil; | |||||
Fl_Button *changeFMoscilbutton; | |||||
private: | |||||
void cb_changeFMoscilbutton_i(Fl_Button*, void*); | |||||
static void cb_changeFMoscilbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *extFMoscil; | |||||
private: | |||||
void cb_extFMoscil_i(Fl_Osc_Choice*, void*); | |||||
static void cb_extFMoscil(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Osc_Choice *extMod; | |||||
private: | |||||
void cb_extMod_i(Fl_Osc_Choice*, void*); | |||||
static void cb_extMod(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Osc_Choice *mod_type; | |||||
private: | |||||
void cb_mod_type_i(Fl_Osc_Choice*, void*); | |||||
static void cb_mod_type(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_mod_type[]; | |||||
public: | |||||
EnvelopeUI *voicefreqenvgroup; | |||||
private: | |||||
void cb_On2_i(Fl_Osc_Check*, void*); | |||||
static void cb_On2(Fl_Osc_Check*, void*); | |||||
public: | |||||
LFOUI *voicefreqlfogroup; | |||||
private: | |||||
void cb_On3_i(Fl_Osc_Check*, void*); | |||||
static void cb_On3(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Dial *bendadjdial; | |||||
Fl_Osc_Dial *offsethzdial; | |||||
private: | |||||
void cb_1_i(Fl_Osc_Slider*, void*); | |||||
static void cb_1(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Output *detunevalueoutput; | |||||
private: | |||||
void cb_440Hz1_i(Fl_Osc_Check*, void*); | |||||
static void cb_440Hz1(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Dial *fixedfreqetdial; | |||||
private: | |||||
void cb_Detune1_i(Fl_Osc_Choice*, void*); | |||||
static void cb_Detune1(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Osc_Group *voiceoscil; | |||||
Fl_Button *changevoiceoscilbutton; | |||||
private: | |||||
void cb_changevoiceoscilbutton_i(Fl_Button*, void*); | |||||
static void cb_changevoiceoscilbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *extoscil; | |||||
private: | |||||
void cb_extoscil_i(Fl_Osc_Choice*, void*); | |||||
static void cb_extoscil(Fl_Osc_Choice*, void*); | |||||
void cb_Frequency_i(Fl_Osc_Slider*, void*); | |||||
static void cb_Frequency(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Output *unisonspreadoutput; | |||||
EnvelopeUI *voiceampenvgroup; | |||||
private: | |||||
void cb_On4_i(Fl_Osc_Check*, void*); | |||||
static void cb_On4(Fl_Osc_Check*, void*); | |||||
public: | |||||
LFOUI *voiceamplfogroup; | |||||
private: | |||||
void cb_On5_i(Fl_Osc_Check*, void*); | |||||
static void cb_On5(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Group *voicefiltergroup; | |||||
EnvelopeUI *voicefilterenvgroup; | |||||
private: | |||||
void cb_On6_i(Fl_Osc_Check*, void*); | |||||
static void cb_On6(Fl_Osc_Check*, void*); | |||||
public: | |||||
LFOUI *voicefilterlfogroup; | |||||
private: | |||||
void cb_On7_i(Fl_Osc_Check*, void*); | |||||
static void cb_On7(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Group *activeVoiceID; | |||||
private: | |||||
void cb_2_i(Fl_Osc_Choice*, void*); | |||||
static void cb_2(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_[]; | |||||
public: | |||||
Fl_Osc_Check *bypassfiltercheckbutton; | |||||
private: | |||||
void cb_On8_i(Fl_Osc_Check*, void*); | |||||
static void cb_On8(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Box *whitenoiselabel; | |||||
Fl_Box *pinknoiselabel; | |||||
Fl_Osc_Check *voiceonbutton; | |||||
private: | |||||
void cb_voiceonbutton_i(Fl_Osc_Check*, void*); | |||||
static void cb_voiceonbutton(Fl_Osc_Check*, void*); | |||||
public: | |||||
ADvoiceUI(int x,int y, int w, int h, const char *label=0); | |||||
void init(int nvoice_, std::string loc_, Fl_Osc_Interface *osc_); | |||||
~ADvoiceUI(); | |||||
void change_voice(int nvoice_); | |||||
private: | |||||
int nvoice; | |||||
OscilEditor *oscedit; | |||||
Fl_Oscilloscope *osc; | |||||
Fl_Oscilloscope *oscFM; | |||||
std::string loc; | |||||
std::string base; | |||||
Fl_Osc_Interface *osc_i; | |||||
}; | |||||
#include <FL/Fl_Counter.H> | |||||
#include <FL/Fl_Text_Display.H> | |||||
#include <FL/Fl_Scroll.H> | |||||
#include <FL/Fl_Pack.H> | |||||
class ADnoteUI : public PresetsUI_ { | |||||
Fl_Osc_Window* make_window(); | |||||
public: | |||||
Fl_Osc_Window *ADnoteGlobalParameters; | |||||
EnvelopeUI *freqenv; | |||||
Fl_Osc_Counter *octave; | |||||
Fl_Osc_Counter *coarsedet; | |||||
LFOUI *freqlfo; | |||||
Fl_Osc_Slider *detune; | |||||
private: | |||||
void cb_detune_i(Fl_Osc_Slider*, void*); | |||||
static void cb_detune(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Output *detunevalueoutput; | |||||
Fl_Osc_Choice *detunetype; | |||||
private: | |||||
void cb_detunetype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_detunetype(Fl_Osc_Choice*, void*); | |||||
void cb_relBW_i(Fl_Osc_Dial*, void*); | |||||
static void cb_relBW(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_VSlider *volume; | |||||
Fl_Osc_VSlider *vsns; | |||||
Fl_Osc_Dial *pan; | |||||
Fl_Osc_Dial *pstr; | |||||
Fl_Osc_Dial *pt; | |||||
Fl_Osc_Dial *pstc; | |||||
Fl_Osc_Dial *pvel; | |||||
EnvelopeUI *ampenv; | |||||
LFOUI *amplfo; | |||||
Fl_Osc_Check *rndgrp; | |||||
EnvelopeUI *filterenv; | |||||
LFOUI *filterlfo; | |||||
FilterUI *filterui; | |||||
Fl_Osc_Check *stereo; | |||||
private: | |||||
void cb_Show_i(Fl_Button*, void*); | |||||
static void cb_Show(Fl_Button*, void*); | |||||
void cb_Show1_i(Fl_Button*, void*); | |||||
static void cb_Show1(Fl_Button*, void*); | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_Resonance_i(Fl_Button*, void*); | |||||
static void cb_Resonance(Fl_Button*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *ADnoteVoice; | |||||
ADvoiceUI *advoice; | |||||
private: | |||||
void cb_Close1_i(Fl_Button*, void*); | |||||
static void cb_Close1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Counter *currentvoicecounter; | |||||
private: | |||||
void cb_currentvoicecounter_i(Fl_Counter*, void*); | |||||
static void cb_currentvoicecounter(Fl_Counter*, void*); | |||||
void cb_C1_i(Fl_Button*, void*); | |||||
static void cb_C1(Fl_Button*, void*); | |||||
void cb_P1_i(Fl_Button*, void*); | |||||
static void cb_P1(Fl_Button*, void*); | |||||
void cb_Show2_i(Fl_Button*, void*); | |||||
static void cb_Show2(Fl_Button*, void*); | |||||
void cb_Show3_i(Fl_Button*, void*); | |||||
static void cb_Show3(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *ADnoteVoiceList; | |||||
private: | |||||
void cb_Close2_i(Fl_Button*, void*); | |||||
static void cb_Close2(Fl_Button*, void*); | |||||
void cb_Edit_i(Fl_Button*, void*); | |||||
static void cb_Edit(Fl_Button*, void*); | |||||
public: | |||||
ADnoteUI(std::string loc_, Fl_Osc_Interface *osc_); | |||||
~ADnoteUI(); | |||||
void refresh(); | |||||
private: | |||||
ResonanceUI *resui; | |||||
int nvoice; | |||||
ADvoicelistitem *voicelistitem[NUM_VOICES]; | |||||
std::string loc; | |||||
Fl_Osc_Interface *osc; | |||||
}; | |||||
#endif |
@@ -1,196 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/BankUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
void BankUI::cb_Close_i(Fl_Button*, void*) { | |||||
bankuiwindow->hide(); | |||||
} | |||||
void BankUI::cb_Close(Fl_Button* o, void* v) { | |||||
((BankUI*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
void BankUI::cb_New_i(Fl_Button*, void*) { | |||||
const char *dirname; | |||||
dirname=fl_input("New empty Bank:"); | |||||
if (dirname==NULL) return; | |||||
osc->write("/bank/newbank", "s", dirname); | |||||
refreshmainwindow(); | |||||
} | |||||
void BankUI::cb_New(Fl_Button* o, void* v) { | |||||
((BankUI*)(o->parent()->user_data()))->cb_New_i(o,v); | |||||
} | |||||
void BankUI::cb_banklist_i(BankList*, void*) { | |||||
refreshmainwindow(); | |||||
} | |||||
void BankUI::cb_banklist(BankList* o, void* v) { | |||||
((BankUI*)(o->parent()->user_data()))->cb_banklist_i(o,v); | |||||
} | |||||
void BankUI::cb_Refresh_i(Fl_Button*, void*) { | |||||
rescan_for_banks(); | |||||
banklist->value(0); | |||||
} | |||||
void BankUI::cb_Refresh(Fl_Button* o, void* v) { | |||||
((BankUI*)(o->parent()->user_data()))->cb_Refresh_i(o,v); | |||||
} | |||||
void BankUI::cb_Search_i(Fl_Input* o, void*) { | |||||
std::string str = o->value(); | |||||
update_search(str); | |||||
} | |||||
void BankUI::cb_Search(Fl_Input* o, void* v) { | |||||
((BankUI*)(o->parent()->user_data()))->cb_Search_i(o,v); | |||||
} | |||||
Fl_Osc_Window* BankUI::make_window() { | |||||
{ bankuiwindow = new Fl_Osc_Window(785, 575, "Bank"); | |||||
bankuiwindow->box(FL_FLAT_BOX); | |||||
bankuiwindow->color(FL_BACKGROUND_COLOR); | |||||
bankuiwindow->selection_color(FL_BACKGROUND_COLOR); | |||||
bankuiwindow->labeltype(FL_NO_LABEL); | |||||
bankuiwindow->labelfont(0); | |||||
bankuiwindow->labelsize(14); | |||||
bankuiwindow->labelcolor(FL_FOREGROUND_COLOR); | |||||
bankuiwindow->user_data((void*)(this)); | |||||
bankuiwindow->align(Fl_Align(FL_ALIGN_TOP)); | |||||
bankuiwindow->when(FL_WHEN_RELEASE); | |||||
{ new Fl_Box(0, 0, 0, 0); | |||||
bankuiwindow->init(osc, "/"); | |||||
} // Fl_Box* o | |||||
{ Fl_Button* o = new Fl_Button(705, 546, 70, 24, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
{ bankview = new BankView(5, 34, 772, 491); | |||||
bankview->box(FL_ENGRAVED_FRAME); | |||||
bankview->color(FL_BACKGROUND_COLOR); | |||||
bankview->selection_color(FL_BACKGROUND_COLOR); | |||||
bankview->labeltype(FL_NORMAL_LABEL); | |||||
bankview->labelfont(0); | |||||
bankview->labelsize(14); | |||||
bankview->labelcolor(FL_FOREGROUND_COLOR); | |||||
bankview->align(Fl_Align(FL_ALIGN_TOP)); | |||||
bankview->when(FL_WHEN_RELEASE); | |||||
bankview->end(); | |||||
} // BankView* bankview | |||||
{ BankViewControls* o = modeselect = new BankViewControls(5, 528, 425, 42); | |||||
modeselect->box(FL_ENGRAVED_BOX); | |||||
modeselect->color(FL_BACKGROUND_COLOR); | |||||
modeselect->selection_color(FL_BACKGROUND_COLOR); | |||||
modeselect->labeltype(FL_NORMAL_LABEL); | |||||
modeselect->labelfont(0); | |||||
modeselect->labelsize(14); | |||||
modeselect->labelcolor(FL_FOREGROUND_COLOR); | |||||
modeselect->align(Fl_Align(FL_ALIGN_TOP)); | |||||
modeselect->when(FL_WHEN_RELEASE); | |||||
o->box(FL_UP_BOX); | |||||
modeselect->end(); | |||||
} // BankViewControls* modeselect | |||||
{ Fl_Button* o = new Fl_Button(685, 5, 93, 25, "New Bank..."); | |||||
o->labelfont(1); | |||||
o->labelsize(11); | |||||
o->callback((Fl_Callback*)cb_New); | |||||
o->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
} // Fl_Button* o | |||||
{ Fl_Osc_Check* o = new Fl_Osc_Check(705, 529, 60, 15, "auto close"); | |||||
o->tooltip("automatically close the bank window if the instrument is loaded"); | |||||
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("config/cfg.BankUIAutoClose"); | |||||
} // Fl_Osc_Check* o | |||||
{ BankList* o = banklist = new BankList(5, 8, 220, 20); | |||||
banklist->box(FL_UP_BOX); | |||||
banklist->down_box(FL_BORDER_BOX); | |||||
banklist->color(FL_BACKGROUND_COLOR); | |||||
banklist->selection_color(FL_SELECTION_COLOR); | |||||
banklist->labeltype(FL_NORMAL_LABEL); | |||||
banklist->labelfont(1); | |||||
banklist->labelsize(14); | |||||
banklist->labelcolor(FL_FOREGROUND_COLOR); | |||||
banklist->textfont(1); | |||||
banklist->textsize(11); | |||||
banklist->callback((Fl_Callback*)cb_banklist); | |||||
banklist->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
banklist->when(FL_WHEN_RELEASE); | |||||
bankview->init(osc, modeselect, npart); | |||||
o->init("bank/bank_select"); | |||||
} // BankList* banklist | |||||
{ Fl_Button* o = new Fl_Button(230, 8, 105, 20, "Refresh bank list"); | |||||
o->tooltip("Refresh the bank list (rescan)"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color(FL_LIGHT1); | |||||
o->labelsize(11); | |||||
o->callback((Fl_Callback*)cb_Refresh); | |||||
} // Fl_Button* o | |||||
{ Fl_Input* o = new Fl_Input(460, 8, 105, 20, "Search by name: "); | |||||
o->tooltip("Enter text to search for"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color(FL_LIGHT1); | |||||
o->labelsize(11); | |||||
o->callback((Fl_Callback*)cb_Search); | |||||
o->when(FL_WHEN_CHANGED); | |||||
} // Fl_Input* o | |||||
bankuiwindow->end(); | |||||
} // Fl_Osc_Window* bankuiwindow | |||||
return bankuiwindow; | |||||
} | |||||
BankUI::BankUI(int *npart_, Fl_Osc_Interface *osc_) { | |||||
npart=npart_; | |||||
osc =osc_; | |||||
make_window(); | |||||
} | |||||
BankUI::~BankUI() { | |||||
bankuiwindow->hide(); | |||||
delete bankuiwindow; | |||||
} | |||||
void BankUI::show() { | |||||
bankuiwindow->show(); | |||||
} | |||||
void BankUI::hide() { | |||||
bankuiwindow->hide(); | |||||
} | |||||
void BankUI::init(Fl_Valuator *cbwig_) { | |||||
cbwig=cbwig_; | |||||
bankview->cbwig(cbwig); | |||||
rescan_for_banks(); | |||||
} | |||||
void BankUI::process() { | |||||
} | |||||
void BankUI::refreshmainwindow() { | |||||
bankview->refresh(); | |||||
} | |||||
void BankUI::rescan_for_banks() { | |||||
banklist->clear(); | |||||
osc->write("/bank/rescan"); | |||||
if (banklist->size() == 0) | |||||
banklist->add(" "); | |||||
} | |||||
void BankUI::update_search(std::string search_string) { | |||||
if (search_string.empty()) { | |||||
refreshmainwindow(); | |||||
} else { | |||||
osc->write("/bank/search", "s", search_string.c_str()); | |||||
} | |||||
} |
@@ -1,60 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef BankUI_h | |||||
#define BankUI_h | |||||
#include <FL/Fl.H> | |||||
#include <cstdlib> | |||||
#include <cstdio> | |||||
#include <cstring> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_File_Chooser.H> | |||||
#include <FL/Fl_Input.H> | |||||
#include "Fl_Osc_Interface.h" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "../Misc/Util.h" | |||||
#include "BankView.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Input.H> | |||||
class BankUI { | |||||
public: | |||||
Fl_Osc_Window* make_window(); | |||||
Fl_Osc_Window *bankuiwindow; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
public: | |||||
BankView *bankview; | |||||
BankViewControls *modeselect; | |||||
private: | |||||
void cb_New_i(Fl_Button*, void*); | |||||
static void cb_New(Fl_Button*, void*); | |||||
public: | |||||
BankList *banklist; | |||||
private: | |||||
void cb_banklist_i(BankList*, void*); | |||||
static void cb_banklist(BankList*, void*); | |||||
void cb_Refresh_i(Fl_Button*, void*); | |||||
static void cb_Refresh(Fl_Button*, void*); | |||||
void cb_Search_i(Fl_Input*, void*); | |||||
static void cb_Search(Fl_Input*, void*); | |||||
public: | |||||
BankUI(int *npart_, Fl_Osc_Interface *osc_); | |||||
virtual ~BankUI(); | |||||
void show(); | |||||
void hide(); | |||||
void init(Fl_Valuator *cbwig_); | |||||
void process(); | |||||
void refreshmainwindow(); | |||||
void rescan_for_banks(); | |||||
void update_search(std::string search_string); | |||||
private: | |||||
Fl_Osc_Interface *osc; | |||||
public: | |||||
Fl_Valuator *cbwig; | |||||
private: | |||||
int *npart; | |||||
}; | |||||
#endif |
@@ -1,397 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/ConfigUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
void ConfigUI::cb_configwindow_i(Fl_Osc_Window* o, void*) { | |||||
o->hide(); | |||||
} | |||||
void ConfigUI::cb_configwindow(Fl_Osc_Window* o, void* v) { | |||||
((ConfigUI*)(o->user_data()))->cb_configwindow_i(o,v); | |||||
} | |||||
void ConfigUI::cb_oscilsize_widget_i(Fl_Choice* o, void*) { | |||||
oscilsize->updateVal((int)(o->value()+7)); | |||||
} | |||||
void ConfigUI::cb_oscilsize_widget(Fl_Choice* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_oscilsize_widget_i(o,v); | |||||
} | |||||
Fl_Menu_Item ConfigUI::menu_oscilsize_widget[] = { | |||||
{"128", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"256", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"512", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"1024", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"2048", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"4096", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"8192", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{"16384", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
Fl_Menu_Item ConfigUI::menu_PADsynth[] = { | |||||
{"Linear(fast)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"Cubic(slow)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
Fl_Menu_Item ConfigUI::menu_Virtual[] = { | |||||
{" ", 0, 0, 0, 1, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"QWERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"Dvorak", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"QWERTZ", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"AZERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
void ConfigUI::cb_rootsbrowse_i(Fl_Osc_ListView* o, void*) { | |||||
activatebutton_rootdir(o->value()!=0); | |||||
} | |||||
void ConfigUI::cb_rootsbrowse(Fl_Osc_ListView* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_rootsbrowse_i(o,v); | |||||
} | |||||
void ConfigUI::cb_Add_i(Fl_Button*, void*) { | |||||
const char *dirname; | |||||
dirname=fl_dir_chooser("Add a root directory for banks:",NULL,0); | |||||
if (dirname==NULL) return; | |||||
rootsbrowse->append(dirname); | |||||
} | |||||
void ConfigUI::cb_Add(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add_i(o,v); | |||||
} | |||||
void ConfigUI::cb_removerootdirbutton_i(Fl_Button*, void*) { | |||||
if (rootsbrowse->value()!=0) { | |||||
rootsbrowse->doRemove(rootsbrowse->value()); | |||||
}; | |||||
activatebutton_rootdir(false); | |||||
} | |||||
void ConfigUI::cb_removerootdirbutton(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removerootdirbutton_i(o,v); | |||||
} | |||||
void ConfigUI::cb_makedefaultrootdirbutton_i(Fl_Button*, void*) { | |||||
int n=rootsbrowse->value(); | |||||
if (n!=0) { | |||||
rootsbrowse->doMove(1,n); | |||||
rootsbrowse->value(1); | |||||
rootsbrowse->redraw(); | |||||
}; | |||||
activatebutton_rootdir(true); | |||||
} | |||||
void ConfigUI::cb_makedefaultrootdirbutton(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultrootdirbutton_i(o,v); | |||||
} | |||||
void ConfigUI::cb_presetbrowse_i(Fl_Osc_ListView* o, void*) { | |||||
activatebutton_presetdir(o->value()!=0); | |||||
} | |||||
void ConfigUI::cb_presetbrowse(Fl_Osc_ListView* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_presetbrowse_i(o,v); | |||||
} | |||||
void ConfigUI::cb_Add1_i(Fl_Button*, void*) { | |||||
const char *dirname; | |||||
dirname=fl_dir_chooser("Add a preset directory :",NULL,0); | |||||
if (dirname==NULL) return; | |||||
presetbrowse->add(dirname); | |||||
} | |||||
void ConfigUI::cb_Add1(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add1_i(o,v); | |||||
} | |||||
void ConfigUI::cb_removepresetbutton_i(Fl_Button*, void*) { | |||||
if (presetbrowse->value()!=0) { | |||||
presetbrowse->remove(presetbrowse->value()); | |||||
}; | |||||
activatebutton_presetdir(false); | |||||
} | |||||
void ConfigUI::cb_removepresetbutton(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removepresetbutton_i(o,v); | |||||
} | |||||
void ConfigUI::cb_makedefaultpresetbutton_i(Fl_Button*, void*) { | |||||
int n=presetbrowse->value(); | |||||
if (n!=0) { | |||||
presetbrowse->move(1,n); | |||||
presetbrowse->value(1); | |||||
presetbrowse->redraw(); | |||||
}; | |||||
activatebutton_presetdir(true); | |||||
} | |||||
void ConfigUI::cb_makedefaultpresetbutton(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultpresetbutton_i(o,v); | |||||
} | |||||
void ConfigUI::cb_Close_i(Fl_Button*, void*) { | |||||
configwindow->hide(); | |||||
} | |||||
void ConfigUI::cb_Close(Fl_Button* o, void* v) { | |||||
((ConfigUI*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
Fl_Osc_Window* ConfigUI::make_window() { | |||||
{ configwindow = new Fl_Osc_Window(510, 370, "ZynAddSubFX Settings"); | |||||
configwindow->box(FL_FLAT_BOX); | |||||
configwindow->color(FL_BACKGROUND_COLOR); | |||||
configwindow->selection_color(FL_BACKGROUND_COLOR); | |||||
configwindow->labeltype(FL_NO_LABEL); | |||||
configwindow->labelfont(0); | |||||
configwindow->labelsize(14); | |||||
configwindow->labelcolor(FL_FOREGROUND_COLOR); | |||||
configwindow->callback((Fl_Callback*)cb_configwindow, (void*)(this)); | |||||
configwindow->align(Fl_Align(FL_ALIGN_TOP)); | |||||
configwindow->when(FL_WHEN_RELEASE); | |||||
{ dummy = new Fl_Box(25, 25, 25, 25); | |||||
configwindow->init(osc, "/config/"); | |||||
} // Fl_Box* dummy | |||||
{ Fl_Tabs* o = new Fl_Tabs(5, 5, 500, 330); | |||||
{ mainsettings = new Fl_Group(5, 25, 500, 310, "Main settings"); | |||||
{ Fl_Group* o = new Fl_Group(15, 45, 165, 30, "Sample Rate"); | |||||
o->box(FL_ENGRAVED_FRAME); | |||||
{ Fl_Osc_Numeric_Input* o = samplerateinput = new Fl_Osc_Numeric_Input(115, 50, 60, 20); | |||||
samplerateinput->type(2); | |||||
samplerateinput->box(FL_DOWN_BOX); | |||||
samplerateinput->color(FL_BACKGROUND2_COLOR); | |||||
samplerateinput->selection_color(FL_SELECTION_COLOR); | |||||
samplerateinput->labeltype(FL_NORMAL_LABEL); | |||||
samplerateinput->labelfont(0); | |||||
samplerateinput->labelsize(14); | |||||
samplerateinput->labelcolor(FL_FOREGROUND_COLOR); | |||||
samplerateinput->textfont(1); | |||||
samplerateinput->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
samplerateinput->when(FL_WHEN_RELEASE); | |||||
o->init("cfg.SampleRate"); | |||||
} // Fl_Osc_Numeric_Input* samplerateinput | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
{ Fl_Osc_Numeric_Input* o = new Fl_Osc_Numeric_Input(190, 45, 60, 20, "Buffer Size"); | |||||
o->tooltip("Internal Sound Buffer Size (samples)"); | |||||
o->type(2); | |||||
o->box(FL_DOWN_BOX); | |||||
o->color(FL_BACKGROUND2_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->align(Fl_Align(129)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->init("cfg.SoundBufferSize"); | |||||
} // Fl_Osc_Numeric_Input* o | |||||
{ Fl_Osc_Check* o = new Fl_Osc_Check(15, 80, 95, 20, "Swap Stereo "); | |||||
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(11); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->init("cfg.SwapStereo"); | |||||
} // Fl_Osc_Check* o | |||||
{ oscilsize_widget = new Fl_Choice(175, 80, 75, 20, "OscilSize"); | |||||
oscilsize_widget->tooltip("ADSynth Oscillator Size (samples)"); | |||||
oscilsize_widget->down_box(FL_BORDER_BOX); | |||||
oscilsize_widget->labelfont(1); | |||||
oscilsize_widget->labelsize(11); | |||||
oscilsize_widget->textsize(10); | |||||
oscilsize_widget->callback((Fl_Callback*)cb_oscilsize_widget); | |||||
oscilsize_widget->menu(menu_oscilsize_widget); | |||||
} // Fl_Choice* oscilsize_widget | |||||
{ Fl_Box* o = new Fl_Box(10, 300, 235, 30, "Most settings has effect only after ZynAddSubFX is restarted."); | |||||
o->labelfont(1); | |||||
o->labelsize(11); | |||||
o->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
} // Fl_Box* o | |||||
{ Fl_Osc_Counter* o = new Fl_Osc_Counter(20, 215, 65, 15, "XML compression level"); | |||||
o->tooltip("gzip compression level (0 - uncompressed)"); | |||||
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(11); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->minimum(0); | |||||
o->maximum(9); | |||||
o->step(1); | |||||
o->align(Fl_Align(FL_ALIGN_RIGHT)); | |||||
o->when(FL_WHEN_CHANGED); | |||||
o->init("cfg.GzipCompression"); | |||||
} // Fl_Osc_Counter* o | |||||
{ Fl_Osc_Choice* o = new Fl_Osc_Choice(175, 105, 75, 15, "PADsynth Interpolation"); | |||||
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->textsize(11); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->menu(menu_PADsynth); | |||||
o->init("cfg.Interpolation"); | |||||
} // Fl_Osc_Choice* o | |||||
{ Fl_Osc_Choice* o = new Fl_Osc_Choice(155, 235, 85, 20, "Virtual Keyboard Layout"); | |||||
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(12); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->textfont(1); | |||||
o->textsize(11); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->menu(menu_Virtual); | |||||
o->init("cfg.VirKeybLayout"); | |||||
} // Fl_Osc_Choice* o | |||||
{ Fl_Osc_Check* o = new Fl_Osc_Check(10, 255, 220, 20, "Ignore MIDI Program Change"); | |||||
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(14); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->init("cfg.IgnoreProgramChange"); | |||||
} // Fl_Osc_Check* o | |||||
mainsettings->end(); | |||||
} // Fl_Group* mainsettings | |||||
{ Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Bank root dirs"); | |||||
o->hide(); | |||||
{ Fl_Osc_ListView* o = rootsbrowse = new Fl_Osc_ListView(15, 35, 485, 220); | |||||
rootsbrowse->type(2); | |||||
rootsbrowse->box(FL_NO_BOX); | |||||
rootsbrowse->color(FL_BACKGROUND2_COLOR); | |||||
rootsbrowse->selection_color(FL_SELECTION_COLOR); | |||||
rootsbrowse->labeltype(FL_NORMAL_LABEL); | |||||
rootsbrowse->labelfont(0); | |||||
rootsbrowse->labelsize(14); | |||||
rootsbrowse->labelcolor(FL_FOREGROUND_COLOR); | |||||
rootsbrowse->callback((Fl_Callback*)cb_rootsbrowse); | |||||
rootsbrowse->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
rootsbrowse->when(FL_WHEN_RELEASE_ALWAYS); | |||||
o->init("cfg.bankRootDirList"); | |||||
} // Fl_Osc_ListView* rootsbrowse | |||||
{ Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add root directory..."); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Add); | |||||
o->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
} // Fl_Button* o | |||||
{ Fl_Button* o = removerootdirbutton = new Fl_Button(105, 265, 80, 35, "Remove root dir..."); | |||||
removerootdirbutton->box(FL_THIN_UP_BOX); | |||||
removerootdirbutton->callback((Fl_Callback*)cb_removerootdirbutton); | |||||
removerootdirbutton->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
o->deactivate(); | |||||
} // Fl_Button* removerootdirbutton | |||||
{ Fl_Button* o = makedefaultrootdirbutton = new Fl_Button(190, 265, 80, 35, "Make default"); | |||||
makedefaultrootdirbutton->box(FL_THIN_UP_BOX); | |||||
makedefaultrootdirbutton->callback((Fl_Callback*)cb_makedefaultrootdirbutton); | |||||
makedefaultrootdirbutton->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
o->deactivate(); | |||||
} // Fl_Button* makedefaultrootdirbutton | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
{ Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Presets dirs"); | |||||
o->hide(); | |||||
{ Fl_Osc_ListView* o = presetbrowse = new Fl_Osc_ListView(15, 35, 485, 220); | |||||
presetbrowse->type(2); | |||||
presetbrowse->box(FL_NO_BOX); | |||||
presetbrowse->color(FL_BACKGROUND2_COLOR); | |||||
presetbrowse->selection_color(FL_SELECTION_COLOR); | |||||
presetbrowse->labeltype(FL_NORMAL_LABEL); | |||||
presetbrowse->labelfont(0); | |||||
presetbrowse->labelsize(14); | |||||
presetbrowse->labelcolor(FL_FOREGROUND_COLOR); | |||||
presetbrowse->callback((Fl_Callback*)cb_presetbrowse); | |||||
presetbrowse->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
presetbrowse->when(FL_WHEN_RELEASE_ALWAYS); | |||||
o->init("cfg.presetsDirList"); | |||||
} // Fl_Osc_ListView* presetbrowse | |||||
{ Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add preset directory..."); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Add1); | |||||
o->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
} // Fl_Button* o | |||||
{ Fl_Button* o = removepresetbutton = new Fl_Button(105, 265, 80, 35, "Remove preset dir..."); | |||||
removepresetbutton->box(FL_THIN_UP_BOX); | |||||
removepresetbutton->callback((Fl_Callback*)cb_removepresetbutton); | |||||
removepresetbutton->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
o->deactivate(); | |||||
} // Fl_Button* removepresetbutton | |||||
{ Fl_Button* o = makedefaultpresetbutton = new Fl_Button(190, 265, 80, 35, "Make default"); | |||||
makedefaultpresetbutton->box(FL_THIN_UP_BOX); | |||||
makedefaultpresetbutton->callback((Fl_Callback*)cb_makedefaultpresetbutton); | |||||
makedefaultpresetbutton->align(Fl_Align(FL_ALIGN_WRAP)); | |||||
o->deactivate(); | |||||
} // Fl_Button* makedefaultpresetbutton | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
o->end(); | |||||
} // Fl_Tabs* o | |||||
{ Fl_Button* o = new Fl_Button(200, 345, 105, 20, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
configwindow->end(); | |||||
} // Fl_Osc_Window* configwindow | |||||
return configwindow; | |||||
} | |||||
ConfigUI::ConfigUI(Fl_Osc_Interface *osc_) { | |||||
osc = osc_; | |||||
make_window(); | |||||
oscilsize = new Osc_IntModel(osc); | |||||
oscilsize->callback = [this](int i){ | |||||
oscilsize_widget->value(i-7); | |||||
}; | |||||
oscilsize->doUpdate("/config/cfg.OscilPower"); | |||||
} | |||||
void ConfigUI::activatebutton_rootdir(bool active) { | |||||
if (active) { | |||||
removerootdirbutton->activate(); | |||||
makedefaultrootdirbutton->activate(); | |||||
}else{ | |||||
removerootdirbutton->deactivate(); | |||||
makedefaultrootdirbutton->deactivate(); | |||||
}; | |||||
} | |||||
void ConfigUI::activatebutton_presetdir(bool active) { | |||||
if (active) { | |||||
removepresetbutton->activate(); | |||||
makedefaultpresetbutton->activate(); | |||||
}else{ | |||||
removepresetbutton->deactivate(); | |||||
makedefaultpresetbutton->deactivate(); | |||||
}; | |||||
} | |||||
void ConfigUI::show() { | |||||
if (isPlugin) { | |||||
mainsettings->deactivate(); | |||||
} | |||||
rootsbrowse->update(); | |||||
presetbrowse->update(); | |||||
configwindow->show(); | |||||
} |
@@ -1,90 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef ConfigUI_h | |||||
#define ConfigUI_h | |||||
#include <FL/Fl.H> | |||||
#include <stdio.h> | |||||
#include <math.h> | |||||
#include <stdlib.h> | |||||
#include <FL/Fl_File_Chooser.H> | |||||
#include "Fl_Osc_Button.H" | |||||
#include "Fl_Osc_Counter.H" | |||||
#include "Fl_Osc_Choice.H" | |||||
#include "Osc_IntModel.h" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Input.H" | |||||
#include "Fl_Osc_Numeric_Input.H" | |||||
#include "Fl_Osc_ListView.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "../globals.h" | |||||
#include "../Misc/Util.h" | |||||
using namespace zyncarla; | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Tabs.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Choice.H> | |||||
#include <FL/Fl_Button.H> | |||||
class ConfigUI { | |||||
public: | |||||
Fl_Osc_Window* make_window(); | |||||
Fl_Osc_Window *configwindow; | |||||
private: | |||||
void cb_configwindow_i(Fl_Osc_Window*, void*); | |||||
static void cb_configwindow(Fl_Osc_Window*, void*); | |||||
public: | |||||
Fl_Box *dummy; | |||||
Fl_Group *mainsettings; | |||||
Fl_Osc_Numeric_Input *samplerateinput; | |||||
Fl_Choice *oscilsize_widget; | |||||
private: | |||||
void cb_oscilsize_widget_i(Fl_Choice*, void*); | |||||
static void cb_oscilsize_widget(Fl_Choice*, void*); | |||||
static Fl_Menu_Item menu_oscilsize_widget[]; | |||||
static Fl_Menu_Item menu_PADsynth[]; | |||||
static Fl_Menu_Item menu_Virtual[]; | |||||
public: | |||||
Fl_Osc_ListView *rootsbrowse; | |||||
private: | |||||
void cb_rootsbrowse_i(Fl_Osc_ListView*, void*); | |||||
static void cb_rootsbrowse(Fl_Osc_ListView*, void*); | |||||
void cb_Add_i(Fl_Button*, void*); | |||||
static void cb_Add(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *removerootdirbutton; | |||||
private: | |||||
void cb_removerootdirbutton_i(Fl_Button*, void*); | |||||
static void cb_removerootdirbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *makedefaultrootdirbutton; | |||||
private: | |||||
void cb_makedefaultrootdirbutton_i(Fl_Button*, void*); | |||||
static void cb_makedefaultrootdirbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_ListView *presetbrowse; | |||||
private: | |||||
void cb_presetbrowse_i(Fl_Osc_ListView*, void*); | |||||
static void cb_presetbrowse(Fl_Osc_ListView*, void*); | |||||
void cb_Add1_i(Fl_Button*, void*); | |||||
static void cb_Add1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *removepresetbutton; | |||||
private: | |||||
void cb_removepresetbutton_i(Fl_Button*, void*); | |||||
static void cb_removepresetbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *makedefaultpresetbutton; | |||||
private: | |||||
void cb_makedefaultpresetbutton_i(Fl_Button*, void*); | |||||
static void cb_makedefaultpresetbutton(Fl_Button*, void*); | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
public: | |||||
ConfigUI(Fl_Osc_Interface *osc_); | |||||
void activatebutton_rootdir(bool active); | |||||
void activatebutton_presetdir(bool active); | |||||
void show(); | |||||
class Fl_Osc_Interface *osc; | |||||
class Osc_IntModel *oscilsize; | |||||
}; | |||||
#endif |
@@ -1,318 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef EffUI_h | |||||
#define EffUI_h | |||||
#include <FL/Fl.H> | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <string.h> | |||||
#include "../globals.h" | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_EQGraph.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "EnvelopeUI.h" | |||||
#include "FilterUI.h" | |||||
#include "../Misc/Util.h" | |||||
#include "../Effects/EffectMgr.h" | |||||
#include "../Effects/Phaser.h" /* for macros only, TODO */ | |||||
#include "../Effects/Alienwah.h" /* for macros only, TODO */ | |||||
#include "PresetsUI.h" | |||||
#include "common.H" | |||||
using namespace zyncarla; | |||||
#include <FL/Fl_Counter.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Double_Window.H> | |||||
class EffUI : public Fl_Osc_Group,public PresetsUI_ { | |||||
public: | |||||
EffUI(int x,int y, int w, int h, const char *label=0); | |||||
~EffUI(); | |||||
Fl_Group* make_null_window(); | |||||
Fl_Group *effnullwindow; | |||||
Fl_Group* make_reverb_window(); | |||||
Fl_Group *effreverbwindow; | |||||
Fl_Osc_Choice *revp; | |||||
static Fl_Menu_Item menu_revp[]; | |||||
Fl_Osc_Choice *revp10; | |||||
private: | |||||
void cb_revp10_i(Fl_Osc_Choice*, void*); | |||||
static void cb_revp10(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_revp10[]; | |||||
public: | |||||
Fl_Osc_Dial *revp0; | |||||
Fl_Osc_Dial *revp1; | |||||
Fl_Osc_Dial *revp2; | |||||
Fl_Osc_Dial *revp3; | |||||
Fl_Osc_Dial *revp4; | |||||
Fl_Osc_Dial *revp12; | |||||
Fl_Osc_Dial *revp6; | |||||
Fl_Osc_Dial *revp7; | |||||
Fl_Osc_Dial *revp8; | |||||
Fl_Osc_Dial *revp9; | |||||
Fl_Osc_Dial *revp11; | |||||
Fl_Group* make_echo_window(); | |||||
Fl_Group *effechowindow; | |||||
Fl_Osc_Choice *echop; | |||||
static Fl_Menu_Item menu_echop[]; | |||||
Fl_Osc_Dial *echop0; | |||||
Fl_Osc_Dial *echop1; | |||||
Fl_Osc_Dial *echop2; | |||||
Fl_Osc_Dial *echop3; | |||||
Fl_Osc_Dial *echop4; | |||||
Fl_Osc_Dial *echop5; | |||||
Fl_Osc_Dial *echop6; | |||||
Fl_Group* make_chorus_window(); | |||||
Fl_Group *effchoruswindow; | |||||
Fl_Osc_Choice *chorusp; | |||||
static Fl_Menu_Item menu_chorusp[]; | |||||
Fl_Osc_Dial *chorusp0; | |||||
Fl_Osc_Dial *chorusp1; | |||||
Fl_Osc_Dial *chorusp2; | |||||
Fl_Osc_Dial *chorusp3; | |||||
Fl_Osc_Dial *chorusp5; | |||||
Fl_Osc_Dial *chorusp6; | |||||
Fl_Osc_Dial *chorusp7; | |||||
Fl_Osc_Dial *chorusp8; | |||||
Fl_Osc_Dial *chorusp9; | |||||
Fl_Osc_Check *chorusp11; | |||||
Fl_Osc_Choice *chorusp4; | |||||
static Fl_Menu_Item menu_chorusp4[]; | |||||
Fl_Group* make_phaser_window(); | |||||
Fl_Group *effphaserwindow; | |||||
Fl_Osc_Choice *phaserp; | |||||
static Fl_Menu_Item menu_phaserp[]; | |||||
Fl_Osc_Dial *phaserp0; | |||||
Fl_Osc_Dial *phaserp1; | |||||
Fl_Osc_Dial *phaserp2; | |||||
Fl_Osc_Dial *phaserp3; | |||||
Fl_Osc_Choice *phaserp4; | |||||
static Fl_Menu_Item menu_phaserp4[]; | |||||
Fl_Osc_Dial *phaserp5; | |||||
Fl_Osc_Dial *phaserp6; | |||||
Fl_Osc_Dial *phaserp7; | |||||
Fl_Osc_Counter *phaserp8; | |||||
Fl_Osc_Dial *phaserp9; | |||||
Fl_Osc_Check *phaserp10; | |||||
Fl_Osc_Dial *phaserp11; | |||||
Fl_Osc_Check *phaserp12; | |||||
Fl_Osc_Dial *phaserp13; | |||||
Fl_Osc_Check *phaserp14; | |||||
Fl_Group* make_alienwah_window(); | |||||
Fl_Group *effalienwahwindow; | |||||
Fl_Osc_Choice *awp; | |||||
static Fl_Menu_Item menu_awp[]; | |||||
Fl_Osc_Dial *awp0; | |||||
Fl_Osc_Dial *awp1; | |||||
Fl_Osc_Dial *awp2; | |||||
Fl_Osc_Dial *awp3; | |||||
Fl_Osc_Dial *awp5; | |||||
Fl_Osc_Dial *awp6; | |||||
Fl_Osc_Dial *awp7; | |||||
Fl_Osc_Dial *awp9; | |||||
Fl_Osc_Choice *awp4; | |||||
static Fl_Menu_Item menu_awp4[]; | |||||
Fl_Osc_Dial *awp10; | |||||
Fl_Osc_Counter *awp8; | |||||
Fl_Group* make_distorsion_window(); | |||||
Fl_Group *effdistorsionwindow; | |||||
Fl_Osc_Choice *distp; | |||||
static Fl_Menu_Item menu_distp[]; | |||||
Fl_Osc_Dial *distp0; | |||||
Fl_Osc_Dial *distp1; | |||||
Fl_Osc_Dial *distp2; | |||||
Fl_Osc_Dial *distp3; | |||||
Fl_Osc_Dial *distp4; | |||||
Fl_Osc_Dial *distp7; | |||||
Fl_Osc_Dial *distp8; | |||||
Fl_Osc_Choice *distp5; | |||||
static Fl_Menu_Item menu_distp5[]; | |||||
Fl_Osc_Check *distp6; | |||||
Fl_Osc_Check *distp9; | |||||
Fl_Osc_Check *distp10; | |||||
Fl_Group* make_eq_window(); | |||||
Fl_Group *effeqwindow; | |||||
Fl_Osc_Dial *eqp0; | |||||
private: | |||||
void cb_eqp0_i(Fl_Osc_Dial*, void*); | |||||
static void cb_eqp0(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Counter *bandcounter; | |||||
private: | |||||
void cb_bandcounter_i(Fl_Counter*, void*); | |||||
static void cb_bandcounter(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Group *bandgroup; | |||||
Fl_Osc_Dial *freqdial; | |||||
private: | |||||
void cb_freqdial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_freqdial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *gaindial; | |||||
private: | |||||
void cb_gaindial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_gaindial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *qdial; | |||||
private: | |||||
void cb_qdial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_qdial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Counter *stagescounter; | |||||
private: | |||||
void cb_stagescounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_stagescounter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *typechoice; | |||||
private: | |||||
void cb_typechoice_i(Fl_Osc_Choice*, void*); | |||||
static void cb_typechoice(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_typechoice[]; | |||||
public: | |||||
Fl_EQGraph *eqgraph; | |||||
Fl_Group* make_dynamicfilter_window(); | |||||
Fl_Group *effdynamicfilterwindow; | |||||
Fl_Osc_Choice *dfp; | |||||
static Fl_Menu_Item menu_dfp[]; | |||||
Fl_Osc_Dial *dfp0; | |||||
Fl_Osc_Dial *dfp1; | |||||
Fl_Osc_Dial *dfp2; | |||||
Fl_Osc_Dial *dfp3; | |||||
Fl_Osc_Dial *dfp5; | |||||
Fl_Osc_Dial *dfp6; | |||||
Fl_Osc_Choice *dfp4; | |||||
static Fl_Menu_Item menu_dfp4[]; | |||||
private: | |||||
void cb_Filter_i(Fl_Button*, void*); | |||||
static void cb_Filter(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *dfp7; | |||||
Fl_Osc_Dial *dfp9; | |||||
Fl_Osc_Check *dfp8; | |||||
Fl_Double_Window* make_filter_window(); | |||||
Fl_Double_Window *filterwindow; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
public: | |||||
void init(bool ins_); | |||||
void refresh(); | |||||
private: | |||||
int eqband; | |||||
public: | |||||
bool insertion; | |||||
int efftype; | |||||
}; | |||||
class SimpleEffUI : public Fl_Osc_Group,public PresetsUI_ { | |||||
public: | |||||
SimpleEffUI(int x,int y, int w, int h, const char *label=0); | |||||
~SimpleEffUI(); | |||||
Fl_Group* make_null_window(); | |||||
Fl_Group *effnullwindow; | |||||
Fl_Group* make_reverb_window(); | |||||
Fl_Group *effreverbwindow; | |||||
Fl_Osc_Choice *revp; | |||||
static Fl_Menu_Item menu_revp1[]; | |||||
Fl_Osc_Dial *revp0; | |||||
Fl_Osc_Dial *revp2; | |||||
Fl_Osc_Dial *revp3; | |||||
Fl_Osc_Dial *revp9; | |||||
Fl_Group* make_echo_window(); | |||||
Fl_Group *effechowindow; | |||||
Fl_Osc_Choice *echop; | |||||
static Fl_Menu_Item menu_echop1[]; | |||||
Fl_Osc_Dial *echop0; | |||||
Fl_Osc_Dial *echop2; | |||||
Fl_Osc_Dial *echop5; | |||||
Fl_Group* make_chorus_window(); | |||||
Fl_Group *effchoruswindow; | |||||
Fl_Osc_Choice *chorusp; | |||||
static Fl_Menu_Item menu_chorusp1[]; | |||||
Fl_Osc_Dial *chorusp0; | |||||
Fl_Osc_Dial *chorusp2; | |||||
Fl_Osc_Dial *chorusp6; | |||||
Fl_Osc_Dial *chorusp7; | |||||
Fl_Osc_Dial *chorusp8; | |||||
Fl_Group* make_phaser_window(); | |||||
Fl_Group *effphaserwindow; | |||||
Fl_Osc_Choice *phaserp; | |||||
static Fl_Menu_Item menu_phaserp1[]; | |||||
Fl_Osc_Dial *phaserp0; | |||||
Fl_Osc_Dial *phaserp2; | |||||
Fl_Osc_Dial *phaserp5; | |||||
Fl_Osc_Dial *phaserp6; | |||||
Fl_Osc_Dial *phaserp7; | |||||
Fl_Osc_Counter *phaserp8; | |||||
Fl_Group* make_alienwah_window(); | |||||
Fl_Group *effalienwahwindow; | |||||
Fl_Osc_Choice *awp; | |||||
static Fl_Menu_Item menu_awp1[]; | |||||
Fl_Osc_Dial *awp0; | |||||
Fl_Osc_Dial *awp2; | |||||
Fl_Osc_Dial *awp6; | |||||
Fl_Osc_Counter *awp8; | |||||
Fl_Group* make_distorsion_window(); | |||||
Fl_Group *effdistorsionwindow; | |||||
Fl_Osc_Choice *distp; | |||||
static Fl_Menu_Item menu_distp1[]; | |||||
Fl_Osc_Dial *distp0; | |||||
Fl_Osc_Dial *distp3; | |||||
Fl_Osc_Dial *distp4; | |||||
Fl_Osc_Dial *distp7; | |||||
Fl_Osc_Choice *distp5; | |||||
static Fl_Menu_Item menu_distp51[]; | |||||
Fl_Group* make_eq_window(); | |||||
Fl_Group *effeqwindow; | |||||
Fl_Counter *bandcounter; | |||||
private: | |||||
void cb_bandcounter1_i(Fl_Counter*, void*); | |||||
static void cb_bandcounter1(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Group *bandgroup; | |||||
Fl_Osc_Dial *freqdial; | |||||
private: | |||||
void cb_freqdial1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_freqdial1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *gaindial; | |||||
private: | |||||
void cb_gaindial1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_gaindial1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *qdial; | |||||
private: | |||||
void cb_qdial1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_qdial1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Counter *stagescounter; | |||||
private: | |||||
void cb_stagescounter1_i(Fl_Osc_Counter*, void*); | |||||
static void cb_stagescounter1(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *typechoice; | |||||
private: | |||||
void cb_typechoice1_i(Fl_Osc_Choice*, void*); | |||||
static void cb_typechoice1(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_typechoice1[]; | |||||
public: | |||||
Fl_EQGraph *eqgraph; | |||||
Fl_Group* make_dynamicfilter_window(); | |||||
Fl_Group *effdynamicfilterwindow; | |||||
Fl_Osc_Choice *dfp; | |||||
static Fl_Menu_Item menu_dfp1[]; | |||||
Fl_Osc_Dial *dfp0; | |||||
Fl_Osc_Dial *dfp2; | |||||
Fl_Osc_Dial *dfp6; | |||||
Fl_Osc_Dial *dfp7; | |||||
Fl_Osc_Dial *dfp9; | |||||
void init(bool ins_); | |||||
void refresh(); | |||||
private: | |||||
int eqband; | |||||
public: | |||||
bool insertion; | |||||
int efftype; | |||||
}; | |||||
#endif |
@@ -1,256 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef EnvelopeUI_h | |||||
#define EnvelopeUI_h | |||||
#include <FL/Fl.H> | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Button.H" | |||||
#include "Fl_Osc_Counter.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
#include "../globals.h" | |||||
#include <FL/Fl_Group.H> | |||||
#include "../Params/EnvelopeParams.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/fl_draw.H> | |||||
#include <FL/fl_ask.H> | |||||
#include "PresetsUI.h" | |||||
#include "common.H" | |||||
#include "EnvelopeFreeEdit.h" | |||||
class PointButton : public Fl_Button, public Fl_Osc_Widget { | |||||
public: | |||||
PointButton(int x,int y, int w, int h, const char *label=0); | |||||
void rebase(std::string new_base); | |||||
void init(std::string path_); | |||||
}; | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Group.H> | |||||
class EnvelopeUI : public Fl_Osc_Group,PresetsUI_ { | |||||
public: | |||||
EnvelopeUI(int x,int y, int w, int h, const char *label=0); | |||||
~EnvelopeUI(); | |||||
Fl_Osc_Window* make_freemode_edit_window(); | |||||
Fl_Osc_Window *freemodeeditwindow; | |||||
private: | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
PointButton *addpoint; | |||||
private: | |||||
void cb_addpoint_i(PointButton*, void*); | |||||
static void cb_addpoint(PointButton*, void*); | |||||
public: | |||||
EnvelopeFreeEdit *freeedit; | |||||
private: | |||||
void cb_freeedit_i(EnvelopeFreeEdit*, void*); | |||||
static void cb_freeedit(EnvelopeFreeEdit*, void*); | |||||
public: | |||||
PointButton *deletepoint; | |||||
private: | |||||
void cb_deletepoint_i(PointButton*, void*); | |||||
static void cb_deletepoint(PointButton*, void*); | |||||
public: | |||||
Fl_Osc_Check *forcedreleasecheck; | |||||
Fl_Osc_Dial *envstretchdial; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *linearenvelopecheck; | |||||
Fl_Osc_Counter *sustaincounter; | |||||
private: | |||||
void cb_sustaincounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_sustaincounter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Check *freemodehack; | |||||
private: | |||||
void cb_freemodehack_i(Fl_Osc_Check*, void*); | |||||
static void cb_freemodehack(Fl_Osc_Check*, void*); | |||||
void cb_Cancel_i(Fl_Osc_Button*, void*); | |||||
static void cb_Cancel(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Group* make_ADSR_window(); | |||||
Fl_Osc_Group *envADSR; | |||||
private: | |||||
void cb_C1_i(Fl_Button*, void*); | |||||
static void cb_C1(Fl_Button*, void*); | |||||
void cb_P1_i(Fl_Button*, void*); | |||||
static void cb_P1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e1adt; | |||||
private: | |||||
void cb_e1adt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e1adt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e1ddt; | |||||
private: | |||||
void cb_e1ddt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e1ddt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e1rdt; | |||||
private: | |||||
void cb_e1rdt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e1rdt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e1sval; | |||||
private: | |||||
void cb_e1sval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e1sval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Check *e1forcedrelease; | |||||
Fl_Osc_Dial *e1envstretch; | |||||
private: | |||||
void cb_E_i(Fl_Osc_Button*, void*); | |||||
static void cb_E(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *e1linearenvelope; | |||||
Fl_Osc_Group* make_ASR_window(); | |||||
Fl_Osc_Group *envASR; | |||||
private: | |||||
void cb_C2_i(Fl_Button*, void*); | |||||
static void cb_C2(Fl_Button*, void*); | |||||
void cb_P2_i(Fl_Button*, void*); | |||||
static void cb_P2(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e2aval; | |||||
private: | |||||
void cb_e2aval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e2aval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e2adt; | |||||
private: | |||||
void cb_e2adt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e2adt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e2rval; | |||||
private: | |||||
void cb_e2rval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e2rval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e2rdt; | |||||
private: | |||||
void cb_e2rdt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e2rdt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e2envstretch; | |||||
Fl_Osc_Check *e2forcedrelease; | |||||
private: | |||||
void cb_E1_i(Fl_Osc_Button*, void*); | |||||
static void cb_E1(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Group* make_ADSRfilter_window(); | |||||
Fl_Osc_Group *envADSRfilter; | |||||
private: | |||||
void cb_C3_i(Fl_Button*, void*); | |||||
static void cb_C3(Fl_Button*, void*); | |||||
void cb_P3_i(Fl_Button*, void*); | |||||
static void cb_P3(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3aval; | |||||
private: | |||||
void cb_e3aval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e3aval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3adt; | |||||
private: | |||||
void cb_e3adt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e3adt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3dval; | |||||
private: | |||||
void cb_e3dval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e3dval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3ddt; | |||||
private: | |||||
void cb_e3ddt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e3ddt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3rdt; | |||||
private: | |||||
void cb_e3rdt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e3rdt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3rval; | |||||
private: | |||||
void cb_e3rval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e3rval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e3envstretch; | |||||
Fl_Osc_Check *e3forcedrelease; | |||||
private: | |||||
void cb_E2_i(Fl_Osc_Button*, void*); | |||||
static void cb_E2(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Group* make_ASRbw_window(); | |||||
Fl_Osc_Group *envASRbw; | |||||
private: | |||||
void cb_C4_i(Fl_Button*, void*); | |||||
static void cb_C4(Fl_Button*, void*); | |||||
void cb_P4_i(Fl_Button*, void*); | |||||
static void cb_P4(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e4aval; | |||||
private: | |||||
void cb_e4aval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e4aval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e4adt; | |||||
private: | |||||
void cb_e4adt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e4adt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e4rval; | |||||
private: | |||||
void cb_e4rval_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e4rval(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e4rdt; | |||||
private: | |||||
void cb_e4rdt_i(Fl_Osc_Dial*, void*); | |||||
static void cb_e4rdt(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *e4envstretch; | |||||
Fl_Osc_Check *e4forcedrelease; | |||||
private: | |||||
void cb_E3_i(Fl_Osc_Button*, void*); | |||||
static void cb_E3(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Group* make_free_window(); | |||||
Fl_Osc_Group *envfree; | |||||
Fl_Group *envfreegroup; | |||||
private: | |||||
void cb_E4_i(Fl_Osc_Button*, void*); | |||||
static void cb_E4(Fl_Osc_Button*, void*); | |||||
public: | |||||
EnvelopeFreeEdit *freeeditsmall; | |||||
private: | |||||
void cb_freeeditsmall_i(EnvelopeFreeEdit*, void*); | |||||
static void cb_freeeditsmall(EnvelopeFreeEdit*, void*); | |||||
void cb_C5_i(Fl_Button*, void*); | |||||
static void cb_C5(Fl_Button*, void*); | |||||
void cb_P5_i(Fl_Button*, void*); | |||||
static void cb_P5(Fl_Button*, void*); | |||||
public: | |||||
void open_as_freemode(); | |||||
void init(int env_type, Fl_Osc_Interface *osc_, std::string base_, std::string ext_); | |||||
void rebase(std::string new_base); | |||||
void disable_freemode(); | |||||
void refresh(); | |||||
void refresh_display(); | |||||
private: | |||||
int Envmode; | |||||
int Penvsustain; | |||||
int Penvpoints; | |||||
int Penvstretch; | |||||
int Pforcedrelease; | |||||
int Plinearenvelope; | |||||
Fl_Group *envwindow; | |||||
}; | |||||
#endif |
@@ -1,905 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/FilterUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
#include <cmath> | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
void FilterUI::cb_P_i(Fl_Button*, void*) { | |||||
presetsui->paste(filterui->loc(),this); | |||||
} | |||||
void FilterUI::cb_P(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_P_i(o,v); | |||||
} | |||||
Fl_Menu_Item FilterUI::menu_analogfiltertypechoice[] = { | |||||
{"LPF1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"HPF1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"LPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"HPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"BPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"NF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"PkF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"LSh2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"HSh2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
Fl_Menu_Item FilterUI::menu_svfiltertypechoice[] = { | |||||
{"1LPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"1HPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"1BPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"1NF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
void FilterUI::cb_filtertype_i(Fl_Osc_Choice*, void*) { | |||||
refresh(); | |||||
} | |||||
void FilterUI::cb_filtertype(Fl_Osc_Choice* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_filtertype_i(o,v); | |||||
} | |||||
Fl_Menu_Item FilterUI::menu_filtertype[] = { | |||||
{"Analog", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"Formant", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"StVarF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
void FilterUI::cb_qdial_i(Fl_Osc_Dial*, void*) { | |||||
formantfiltergraph->redraw(); | |||||
} | |||||
void FilterUI::cb_qdial(Fl_Osc_Dial* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_qdial_i(o,v); | |||||
} | |||||
void FilterUI::cb_gaindial_i(Fl_Osc_Dial*, void*) { | |||||
formantfiltergraph->redraw(); | |||||
} | |||||
void FilterUI::cb_gaindial(Fl_Osc_Dial* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_gaindial_i(o,v); | |||||
} | |||||
void FilterUI::cb_stcounter_i(Fl_Osc_Choice*, void*) { | |||||
formantfiltergraph->redraw(); | |||||
} | |||||
void FilterUI::cb_stcounter(Fl_Osc_Choice* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_stcounter_i(o,v); | |||||
} | |||||
void FilterUI::cb_editbutton_i(Fl_Button*, void*) { | |||||
formantparswindow->show(); | |||||
} | |||||
void FilterUI::cb_editbutton(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_editbutton_i(o,v); | |||||
} | |||||
void FilterUI::cb_C_i(Fl_Button*, void*) { | |||||
presetsui->copy(filterui->loc()); | |||||
} | |||||
void FilterUI::cb_C(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_C_i(o,v); | |||||
} | |||||
void FilterUI::cb_P1_i(Fl_Button*, void*) { | |||||
presetsui->paste(filterui->loc(),this); | |||||
} | |||||
void FilterUI::cb_P1(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_P1_i(o,v); | |||||
} | |||||
void FilterUI::cb_P2_i(Fl_Button*, void*) { | |||||
presetsui->paste(filterui->loc(),this,nvowel); | |||||
} | |||||
void FilterUI::cb_P2(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_P2_i(o,v); | |||||
} | |||||
void FilterUI::cb_Formant_i(Fl_Counter* o, void*) { | |||||
nformant=(int) o->value(); | |||||
formantparsgroup->reext("Pvowels"+to_s(nvowel)+"/Pformants"+to_s(nformant)+"/"); | |||||
update_formant_window(); | |||||
formantfiltergraph->redraw(); | |||||
} | |||||
void FilterUI::cb_Formant(Fl_Counter* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Formant_i(o,v); | |||||
} | |||||
void FilterUI::cb_Vowel_i(Fl_Counter* o, void*) { | |||||
nvowel=(int) o->value(); | |||||
formantparsgroup->reext("Pvowels"+to_s(nvowel)+"/Pformants"+to_s(nformant)+"/"); | |||||
update_formant_window(); | |||||
formantfiltergraph->redraw(); | |||||
} | |||||
void FilterUI::cb_Vowel(Fl_Counter* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Vowel_i(o,v); | |||||
} | |||||
void FilterUI::cb_formant_freq_dial_i(Fl_Osc_Dial*, void*) { | |||||
formantfiltergraph->update(); | |||||
} | |||||
void FilterUI::cb_formant_freq_dial(Fl_Osc_Dial* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_freq_dial_i(o,v); | |||||
} | |||||
void FilterUI::cb_formant_q_dial_i(Fl_Osc_Dial*, void*) { | |||||
formantfiltergraph->update(); | |||||
} | |||||
void FilterUI::cb_formant_q_dial(Fl_Osc_Dial* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_q_dial_i(o,v); | |||||
} | |||||
void FilterUI::cb_formant_amp_dial_i(Fl_Osc_Dial*, void*) { | |||||
formantfiltergraph->update(); | |||||
} | |||||
void FilterUI::cb_formant_amp_dial(Fl_Osc_Dial* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_amp_dial_i(o,v); | |||||
} | |||||
void FilterUI::cb_sequencesize_i(Fl_Osc_Counter*, void*) { | |||||
update_formant_window(); | |||||
} | |||||
void FilterUI::cb_sequencesize(Fl_Osc_Counter* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_sequencesize_i(o,v); | |||||
} | |||||
void FilterUI::cb_S_i(Fl_Counter* o, void*) { | |||||
nseqpos = o->value();update_formant_window();vowel_counter->oscMove("vowel_seq"+to_s(nseqpos)); | |||||
} | |||||
void FilterUI::cb_S(Fl_Counter* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_S_i(o,v); | |||||
} | |||||
void FilterUI::cb_vowel_counter_i(Fl_Osc_Counter* o, void*) { | |||||
(void)o;//pars->Psequence[nseqpos].nvowel=(int) o->value(); pars->changed=true; | |||||
} | |||||
void FilterUI::cb_vowel_counter(Fl_Osc_Counter* o, void* v) { | |||||
((FilterUI*)(o->parent()->parent()->user_data()))->cb_vowel_counter_i(o,v); | |||||
} | |||||
void FilterUI::cb_numformants_i(Fl_Osc_Counter*, void*) { | |||||
update_formant_window(); | |||||
formantfiltergraph->redraw(); | |||||
} | |||||
void FilterUI::cb_numformants(Fl_Osc_Counter* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_numformants_i(o,v); | |||||
} | |||||
void FilterUI::cb_centerfreqvo_i(Fl_Osc_Output* o, void*) { | |||||
o->value(o->newvalue()/1000.0); | |||||
} | |||||
void FilterUI::cb_centerfreqvo(Fl_Osc_Output* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_centerfreqvo_i(o,v); | |||||
} | |||||
void FilterUI::cb_octavesfreqvo_i(Fl_Osc_Output* o, void*) { | |||||
o->value(o->newvalue()); | |||||
} | |||||
void FilterUI::cb_octavesfreqvo(Fl_Osc_Output* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_octavesfreqvo_i(o,v); | |||||
} | |||||
void FilterUI::cb_cfknob_i(Fl_Osc_Slider*, void*) { | |||||
centerfreqvo->update(); | |||||
} | |||||
void FilterUI::cb_cfknob(Fl_Osc_Slider* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_cfknob_i(o,v); | |||||
} | |||||
void FilterUI::cb_octknob_i(Fl_Osc_Slider*, void*) { | |||||
octavesfreqvo->update(); | |||||
} | |||||
void FilterUI::cb_octknob(Fl_Osc_Slider* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_octknob_i(o,v); | |||||
} | |||||
void FilterUI::cb_Close_i(Fl_Button*, void*) { | |||||
formantparswindow->hide(); | |||||
} | |||||
void FilterUI::cb_Close(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
void FilterUI::cb_C1_i(Fl_Button*, void*) { | |||||
presetsui->copy(filterui->loc(),nvowel); | |||||
} | |||||
void FilterUI::cb_C1(Fl_Button* o, void* v) { | |||||
((FilterUI*)(o->parent()->user_data()))->cb_C1_i(o,v); | |||||
} | |||||
FilterUI::FilterUI(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h) { | |||||
nvowel=0;nformant=0;nseqpos=0; | |||||
} | |||||
FilterUI::~FilterUI() { | |||||
filterui->hide(); | |||||
formantparswindow->hide(); | |||||
hide(); | |||||
//delete (filterui); | |||||
delete (formantparswindow); | |||||
} | |||||
Fl_Osc_Group* FilterUI::make_window() { | |||||
{ filterui = new Fl_Osc_Group(0, 0, 275, 70); | |||||
filterui->box(FL_FLAT_BOX); | |||||
filterui->color(FL_LIGHT1); | |||||
filterui->selection_color(FL_BACKGROUND_COLOR); | |||||
filterui->labeltype(FL_NO_LABEL); | |||||
filterui->labelfont(1); | |||||
filterui->labelsize(14); | |||||
filterui->labelcolor(FL_FOREGROUND_COLOR); | |||||
filterui->user_data((void*)(this)); | |||||
filterui->align(Fl_Align(FL_ALIGN_TOP)); | |||||
filterui->when(FL_WHEN_RELEASE); | |||||
{ Fl_Button* o = new Fl_Button(203, 5, 15, 15, "P"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color((Fl_Color)179); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->labelcolor((Fl_Color)55); | |||||
o->callback((Fl_Callback*)cb_P); | |||||
} // Fl_Button* o | |||||
{ Fl_Group* o = filterparamswindow = new Fl_Group(0, 0, 275, 75, "Filter Parameters"); | |||||
filterparamswindow->box(FL_UP_FRAME); | |||||
filterparamswindow->color((Fl_Color)183); | |||||
filterparamswindow->labeltype(FL_ENGRAVED_LABEL); | |||||
filterparamswindow->labelsize(10); | |||||
filterparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
{ Fl_Osc_Choice* o = analogfiltertypechoice = new Fl_Osc_Choice(10, 50, 50, 15, "FilterType"); | |||||
analogfiltertypechoice->tooltip("The Filter type"); | |||||
analogfiltertypechoice->box(FL_UP_BOX); | |||||
analogfiltertypechoice->down_box(FL_BORDER_BOX); | |||||
analogfiltertypechoice->color(FL_BACKGROUND_COLOR); | |||||
analogfiltertypechoice->selection_color(FL_SELECTION_COLOR); | |||||
analogfiltertypechoice->labeltype(FL_NORMAL_LABEL); | |||||
analogfiltertypechoice->labelfont(0); | |||||
analogfiltertypechoice->labelsize(10); | |||||
analogfiltertypechoice->labelcolor(FL_FOREGROUND_COLOR); | |||||
analogfiltertypechoice->textsize(10); | |||||
analogfiltertypechoice->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
analogfiltertypechoice->when(FL_WHEN_RELEASE); | |||||
analogfiltertypechoice->menu(menu_analogfiltertypechoice); | |||||
o->init("Ptype"); | |||||
} // Fl_Osc_Choice* analogfiltertypechoice | |||||
{ Fl_Osc_Choice* o = svfiltertypechoice = new Fl_Osc_Choice(10, 50, 50, 15, "FilterType"); | |||||
svfiltertypechoice->tooltip("The Filter type"); | |||||
svfiltertypechoice->box(FL_UP_BOX); | |||||
svfiltertypechoice->down_box(FL_BORDER_BOX); | |||||
svfiltertypechoice->color(FL_BACKGROUND_COLOR); | |||||
svfiltertypechoice->selection_color(FL_SELECTION_COLOR); | |||||
svfiltertypechoice->labeltype(FL_NORMAL_LABEL); | |||||
svfiltertypechoice->labelfont(0); | |||||
svfiltertypechoice->labelsize(10); | |||||
svfiltertypechoice->labelcolor(FL_FOREGROUND_COLOR); | |||||
svfiltertypechoice->textsize(10); | |||||
svfiltertypechoice->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
svfiltertypechoice->when(FL_WHEN_RELEASE); | |||||
svfiltertypechoice->menu(menu_svfiltertypechoice); | |||||
o->init("Ptype"); | |||||
} // Fl_Osc_Choice* svfiltertypechoice | |||||
{ Fl_Osc_Choice* o = filtertype = new Fl_Osc_Choice(10, 20, 60, 15, "Category"); | |||||
filtertype->tooltip("The Category of the Filter (Analog/Formantic/etc.)"); | |||||
filtertype->box(FL_UP_BOX); | |||||
filtertype->down_box(FL_BORDER_BOX); | |||||
filtertype->color(FL_BACKGROUND_COLOR); | |||||
filtertype->selection_color(FL_SELECTION_COLOR); | |||||
filtertype->labeltype(FL_NORMAL_LABEL); | |||||
filtertype->labelfont(0); | |||||
filtertype->labelsize(10); | |||||
filtertype->labelcolor(FL_FOREGROUND_COLOR); | |||||
filtertype->textsize(10); | |||||
filtertype->callback((Fl_Callback*)cb_filtertype); | |||||
filtertype->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
filtertype->when(FL_WHEN_RELEASE); | |||||
filtertype->menu(menu_filtertype); | |||||
o->init("Pcategory"); | |||||
} // Fl_Osc_Choice* filtertype | |||||
{ Fl_Osc_Dial* o = cfreqdial = new Fl_Osc_Dial(75, 25, 30, 30, "C.Freq"); | |||||
cfreqdial->tooltip("Center Frequency of the Filter or the base position in the vowel\'s sequence"); | |||||
cfreqdial->box(FL_ROUND_UP_BOX); | |||||
cfreqdial->color(FL_BACKGROUND_COLOR); | |||||
cfreqdial->selection_color(FL_INACTIVE_COLOR); | |||||
cfreqdial->labeltype(FL_NORMAL_LABEL); | |||||
cfreqdial->labelfont(0); | |||||
cfreqdial->labelsize(10); | |||||
cfreqdial->labelcolor(FL_FOREGROUND_COLOR); | |||||
cfreqdial->maximum(127); | |||||
cfreqdial->step(1); | |||||
cfreqdial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
cfreqdial->when(FL_WHEN_CHANGED); | |||||
o->init("Pfreq"); | |||||
} // Fl_Osc_Dial* cfreqdial | |||||
{ Fl_Osc_Dial* o = qdial = new Fl_Osc_Dial(110, 25, 30, 30, "Q"); | |||||
qdial->tooltip("Filter resonance or bandwidth"); | |||||
qdial->box(FL_ROUND_UP_BOX); | |||||
qdial->color(FL_BACKGROUND_COLOR); | |||||
qdial->selection_color(FL_INACTIVE_COLOR); | |||||
qdial->labeltype(FL_NORMAL_LABEL); | |||||
qdial->labelfont(0); | |||||
qdial->labelsize(10); | |||||
qdial->labelcolor(FL_FOREGROUND_COLOR); | |||||
qdial->maximum(127); | |||||
qdial->step(1); | |||||
qdial->callback((Fl_Callback*)cb_qdial); | |||||
qdial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
qdial->when(FL_WHEN_CHANGED); | |||||
o->init("Pq"); | |||||
} // Fl_Osc_Dial* qdial | |||||
{ Fl_Osc_Dial* o = freqtrdial = new Fl_Osc_Dial(215, 25, 30, 30, "freq.tr."); | |||||
freqtrdial->tooltip("Filter frequency tracking (left is negative, middle is 0, and right is positi\ | |||||
ve)"); | |||||
freqtrdial->box(FL_ROUND_UP_BOX); | |||||
freqtrdial->color(FL_BACKGROUND_COLOR); | |||||
freqtrdial->selection_color(FL_INACTIVE_COLOR); | |||||
freqtrdial->labeltype(FL_NORMAL_LABEL); | |||||
freqtrdial->labelfont(0); | |||||
freqtrdial->labelsize(10); | |||||
freqtrdial->labelcolor(FL_FOREGROUND_COLOR); | |||||
freqtrdial->maximum(127); | |||||
freqtrdial->step(1); | |||||
freqtrdial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
freqtrdial->when(FL_WHEN_CHANGED); | |||||
o->init("Pfreqtrack"); | |||||
} // Fl_Osc_Dial* freqtrdial | |||||
{ Fl_Osc_Dial* o = vsnsadial = new Fl_Osc_Dial(145, 25, 30, 30, "V.SnsA."); | |||||
vsnsadial->tooltip("Velocity sensing amount of the Filter"); | |||||
vsnsadial->box(FL_ROUND_UP_BOX); | |||||
vsnsadial->color(FL_BACKGROUND_COLOR); | |||||
vsnsadial->selection_color(FL_INACTIVE_COLOR); | |||||
vsnsadial->labeltype(FL_NORMAL_LABEL); | |||||
vsnsadial->labelfont(0); | |||||
vsnsadial->labelsize(10); | |||||
vsnsadial->labelcolor(FL_FOREGROUND_COLOR); | |||||
vsnsadial->maximum(127); | |||||
vsnsadial->step(1); | |||||
vsnsadial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
vsnsadial->when(FL_WHEN_CHANGED); | |||||
if(!alt_root.empty()) o->alt_init(alt_root, "VelocityScale"); | |||||
else {o->deactivate(); o->value(127);o->mark_dead();} | |||||
} // Fl_Osc_Dial* vsnsadial | |||||
{ Fl_Osc_Dial* o = vsnsdial = new Fl_Osc_Dial(180, 25, 30, 30, "V.Sns."); | |||||
vsnsdial->tooltip("Velocity Sensing Function of the Filter"); | |||||
vsnsdial->box(FL_ROUND_UP_BOX); | |||||
vsnsdial->color(FL_BACKGROUND_COLOR); | |||||
vsnsdial->selection_color(FL_INACTIVE_COLOR); | |||||
vsnsdial->labeltype(FL_NORMAL_LABEL); | |||||
vsnsdial->labelfont(0); | |||||
vsnsdial->labelsize(10); | |||||
vsnsdial->labelcolor(FL_FOREGROUND_COLOR); | |||||
vsnsdial->maximum(127); | |||||
vsnsdial->step(1); | |||||
vsnsdial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
vsnsdial->when(FL_WHEN_CHANGED); | |||||
if(!alt_root.empty()) o->alt_init(alt_root, "VelocityScaleFunction"); | |||||
else {o->deactivate(); o->value(127);o->mark_dead();} | |||||
} // Fl_Osc_Dial* vsnsdial | |||||
{ Fl_Osc_Dial* o = gaindial = new Fl_Osc_Dial(250, 35, 20, 20, "gain"); | |||||
gaindial->tooltip("Filter output gain/damp"); | |||||
gaindial->box(FL_ROUND_UP_BOX); | |||||
gaindial->color(FL_BACKGROUND_COLOR); | |||||
gaindial->selection_color(FL_INACTIVE_COLOR); | |||||
gaindial->labeltype(FL_NORMAL_LABEL); | |||||
gaindial->labelfont(0); | |||||
gaindial->labelsize(10); | |||||
gaindial->labelcolor(FL_FOREGROUND_COLOR); | |||||
gaindial->maximum(127); | |||||
gaindial->step(1); | |||||
gaindial->callback((Fl_Callback*)cb_gaindial); | |||||
gaindial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
gaindial->when(FL_WHEN_CHANGED); | |||||
o->init("Pgain"); | |||||
} // Fl_Osc_Dial* gaindial | |||||
{ Fl_Osc_Choice* o = stcounter = new Fl_Osc_Choice(235, 5, 35, 15, "St"); | |||||
stcounter->tooltip("Filter stages (in order to increase dB/oct. value and the order of the filter\ | |||||
)"); | |||||
stcounter->box(FL_UP_BOX); | |||||
stcounter->down_box(FL_BORDER_BOX); | |||||
stcounter->color(FL_BACKGROUND_COLOR); | |||||
stcounter->selection_color(FL_SELECTION_COLOR); | |||||
stcounter->labeltype(FL_NORMAL_LABEL); | |||||
stcounter->labelfont(0); | |||||
stcounter->labelsize(10); | |||||
stcounter->labelcolor(FL_FOREGROUND_COLOR); | |||||
stcounter->textfont(1); | |||||
stcounter->textsize(10); | |||||
stcounter->callback((Fl_Callback*)cb_stcounter); | |||||
stcounter->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
stcounter->when(FL_WHEN_RELEASE); | |||||
for (int i=0;i<MAX_FILTER_STAGES;i++) {char tmp[10];snprintf(tmp,10,"%dx",i+1);o->add(tmp);}; | |||||
o->init("Pstages"); | |||||
} // Fl_Osc_Choice* stcounter | |||||
set_module_parameters( o ); | |||||
filterparamswindow->end(); | |||||
} // Fl_Group* filterparamswindow | |||||
{ editbutton = new Fl_Button(15, 40, 50, 25, "Edit"); | |||||
editbutton->labelfont(1); | |||||
editbutton->labelsize(11); | |||||
editbutton->callback((Fl_Callback*)cb_editbutton); | |||||
} // Fl_Button* editbutton | |||||
{ Fl_Button* o = new Fl_Button(186, 5, 15, 15, "C"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color((Fl_Color)179); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->labelcolor((Fl_Color)55); | |||||
o->callback((Fl_Callback*)cb_C); | |||||
} // Fl_Button* o | |||||
{ Fl_Button* o = new Fl_Button(203, 5, 15, 15, "P"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color((Fl_Color)179); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->labelcolor((Fl_Color)55); | |||||
o->callback((Fl_Callback*)cb_P1); | |||||
} // Fl_Button* o | |||||
filterui->end(); | |||||
} // Fl_Osc_Group* filterui | |||||
return filterui; | |||||
} | |||||
Fl_Osc_Window* FilterUI::make_formant_window() { | |||||
{ formantparswindow = new Fl_Osc_Window(700, 205, "Formant Filter Parameters"); | |||||
formantparswindow->box(FL_FLAT_BOX); | |||||
formantparswindow->color(FL_BACKGROUND_COLOR); | |||||
formantparswindow->selection_color(FL_BACKGROUND_COLOR); | |||||
formantparswindow->labeltype(FL_NO_LABEL); | |||||
formantparswindow->labelfont(0); | |||||
formantparswindow->labelsize(14); | |||||
formantparswindow->labelcolor(FL_FOREGROUND_COLOR); | |||||
formantparswindow->user_data((void*)(this)); | |||||
formantparswindow->align(Fl_Align(FL_ALIGN_TOP)); | |||||
formantparswindow->when(FL_WHEN_RELEASE); | |||||
{ Fl_Button* o = new Fl_Button(665, 25, 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_P2); | |||||
formantparswindow->osc = osc; | |||||
formantparswindow->base = loc(); | |||||
} // Fl_Button* o | |||||
{ Fl_Osc_Group* o = new Fl_Osc_Group(485, 47, 105, 113); | |||||
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->align(Fl_Align(FL_ALIGN_TOP)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
{ Fl_Counter* o = new Fl_Counter(545, 80, 40, 15, "Formant "); | |||||
o->type(1); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->minimum(0); | |||||
o->maximum(127); | |||||
o->step(1); | |||||
o->textsize(10); | |||||
o->callback((Fl_Callback*)cb_Formant); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->bounds(0,FF_MAX_FORMANTS-1); | |||||
o->value(nformant); | |||||
} // Fl_Counter* o | |||||
{ Fl_Counter* o = new Fl_Counter(545, 55, 40, 20, "Vowel no."); | |||||
o->type(1); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->minimum(0); | |||||
o->maximum(127); | |||||
o->step(1); | |||||
o->textfont(1); | |||||
o->textsize(11); | |||||
o->callback((Fl_Callback*)cb_Vowel); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->bounds(0,FF_MAX_VOWELS-1); | |||||
o->value(nvowel); | |||||
} // Fl_Counter* o | |||||
{ formantparsgroup = new Fl_Osc_Group(490, 105, 95, 50); | |||||
formantparsgroup->box(FL_ENGRAVED_FRAME); | |||||
formantparsgroup->color(FL_BACKGROUND_COLOR); | |||||
formantparsgroup->selection_color(FL_BACKGROUND_COLOR); | |||||
formantparsgroup->labeltype(FL_NORMAL_LABEL); | |||||
formantparsgroup->labelfont(0); | |||||
formantparsgroup->labelsize(14); | |||||
formantparsgroup->labelcolor(FL_FOREGROUND_COLOR); | |||||
formantparsgroup->align(Fl_Align(FL_ALIGN_TOP)); | |||||
formantparsgroup->when(FL_WHEN_RELEASE); | |||||
{ Fl_Box* o = new Fl_Box(515, 130, 35, 16, "dummy"); | |||||
o->hide(); | |||||
o->deactivate(); | |||||
formantparsgroup->ext = "Pvowels0/Pformants0/"; | |||||
} // Fl_Box* o | |||||
{ Fl_Osc_Dial* o = formant_freq_dial = new Fl_Osc_Dial(495, 115, 25, 25, "freq"); | |||||
formant_freq_dial->tooltip("Formant frequency"); | |||||
formant_freq_dial->box(FL_ROUND_UP_BOX); | |||||
formant_freq_dial->color(FL_BACKGROUND_COLOR); | |||||
formant_freq_dial->selection_color(FL_INACTIVE_COLOR); | |||||
formant_freq_dial->labeltype(FL_NORMAL_LABEL); | |||||
formant_freq_dial->labelfont(0); | |||||
formant_freq_dial->labelsize(10); | |||||
formant_freq_dial->labelcolor(FL_FOREGROUND_COLOR); | |||||
formant_freq_dial->maximum(127); | |||||
formant_freq_dial->step(1); | |||||
formant_freq_dial->callback((Fl_Callback*)cb_formant_freq_dial); | |||||
formant_freq_dial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
formant_freq_dial->when(FL_WHEN_CHANGED); | |||||
//TODO get widget renaming working here!!! | |||||
o->init("freq"); | |||||
} // Fl_Osc_Dial* formant_freq_dial | |||||
{ Fl_Osc_Dial* o = formant_q_dial = new Fl_Osc_Dial(525, 115, 24, 25, "Q"); | |||||
formant_q_dial->tooltip("Formant\'s Q"); | |||||
formant_q_dial->box(FL_ROUND_UP_BOX); | |||||
formant_q_dial->color(FL_BACKGROUND_COLOR); | |||||
formant_q_dial->selection_color(FL_INACTIVE_COLOR); | |||||
formant_q_dial->labeltype(FL_NORMAL_LABEL); | |||||
formant_q_dial->labelfont(0); | |||||
formant_q_dial->labelsize(10); | |||||
formant_q_dial->labelcolor(FL_FOREGROUND_COLOR); | |||||
formant_q_dial->maximum(127); | |||||
formant_q_dial->step(1); | |||||
formant_q_dial->callback((Fl_Callback*)cb_formant_q_dial); | |||||
formant_q_dial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
formant_q_dial->when(FL_WHEN_CHANGED); | |||||
o->init("q"); | |||||
} // Fl_Osc_Dial* formant_q_dial | |||||
{ Fl_Osc_Dial* o = formant_amp_dial = new Fl_Osc_Dial(555, 115, 24, 25, "amp"); | |||||
formant_amp_dial->tooltip("Formant amplitude"); | |||||
formant_amp_dial->box(FL_ROUND_UP_BOX); | |||||
formant_amp_dial->color(FL_BACKGROUND_COLOR); | |||||
formant_amp_dial->selection_color(FL_INACTIVE_COLOR); | |||||
formant_amp_dial->labeltype(FL_NORMAL_LABEL); | |||||
formant_amp_dial->labelfont(0); | |||||
formant_amp_dial->labelsize(10); | |||||
formant_amp_dial->labelcolor(FL_FOREGROUND_COLOR); | |||||
formant_amp_dial->maximum(127); | |||||
formant_amp_dial->step(1); | |||||
formant_amp_dial->callback((Fl_Callback*)cb_formant_amp_dial); | |||||
formant_amp_dial->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
formant_amp_dial->when(FL_WHEN_CHANGED); | |||||
o->init("amp"); | |||||
} // Fl_Osc_Dial* formant_amp_dial | |||||
formantparsgroup->end(); | |||||
} // Fl_Osc_Group* formantparsgroup | |||||
o->end(); | |||||
} // Fl_Osc_Group* o | |||||
{ Fl_Osc_Group* o = new Fl_Osc_Group(590, 47, 100, 113); | |||||
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->align(Fl_Align(FL_ALIGN_TOP)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
{ Fl_Osc_Counter* o = sequencesize = new Fl_Osc_Counter(595, 62, 55, 20, "Seq.Size"); | |||||
sequencesize->type(1); | |||||
sequencesize->box(FL_UP_BOX); | |||||
sequencesize->color(FL_BACKGROUND_COLOR); | |||||
sequencesize->selection_color(FL_INACTIVE_COLOR); | |||||
sequencesize->labeltype(FL_NORMAL_LABEL); | |||||
sequencesize->labelfont(1); | |||||
sequencesize->labelsize(10); | |||||
sequencesize->labelcolor(FL_FOREGROUND_COLOR); | |||||
sequencesize->minimum(0); | |||||
sequencesize->maximum(127); | |||||
sequencesize->step(1); | |||||
sequencesize->textfont(1); | |||||
sequencesize->textsize(11); | |||||
sequencesize->callback((Fl_Callback*)cb_sequencesize); | |||||
sequencesize->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
sequencesize->when(FL_WHEN_CHANGED); | |||||
o->bounds(1,FF_MAX_SEQUENCE-1); | |||||
o->init("Psequencesize"); | |||||
} // Fl_Osc_Counter* sequencesize | |||||
{ Fl_Counter* o = new Fl_Counter(595, 97, 40, 15, "S.Pos."); | |||||
o->tooltip("Current position from the sequence"); | |||||
o->type(1); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->minimum(0); | |||||
o->maximum(127); | |||||
o->step(1); | |||||
o->textsize(10); | |||||
o->callback((Fl_Callback*)cb_S); | |||||
o->align(Fl_Align(FL_ALIGN_TOP_RIGHT)); | |||||
o->bounds(0,FF_MAX_SEQUENCE-2); | |||||
o->value(nseqpos); | |||||
} // Fl_Counter* o | |||||
{ Fl_Osc_Counter* o = vowel_counter = new Fl_Osc_Counter(640, 97, 40, 15, "Vowel"); | |||||
vowel_counter->type(1); | |||||
vowel_counter->box(FL_UP_BOX); | |||||
vowel_counter->color(FL_BACKGROUND_COLOR); | |||||
vowel_counter->selection_color(FL_INACTIVE_COLOR); | |||||
vowel_counter->labeltype(FL_NORMAL_LABEL); | |||||
vowel_counter->labelfont(0); | |||||
vowel_counter->labelsize(10); | |||||
vowel_counter->labelcolor(FL_FOREGROUND_COLOR); | |||||
vowel_counter->minimum(0); | |||||
vowel_counter->maximum(127); | |||||
vowel_counter->step(1); | |||||
vowel_counter->textsize(10); | |||||
vowel_counter->callback((Fl_Callback*)cb_vowel_counter); | |||||
vowel_counter->align(Fl_Align(FL_ALIGN_TOP)); | |||||
vowel_counter->when(FL_WHEN_CHANGED); | |||||
o->bounds(0,FF_MAX_VOWELS-1); | |||||
o->init("vowel_seq0"); | |||||
} // Fl_Osc_Counter* vowel_counter | |||||
{ Fl_Osc_Check* o = new Fl_Osc_Check(625, 132, 60, 20, "Neg.Input"); | |||||
o->tooltip("Negate the input from LFO/envelopes/etc."); | |||||
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("Psequencereversed"); | |||||
} // Fl_Osc_Check* o | |||||
{ Fl_Osc_Dial* o = strchdial = new Fl_Osc_Dial(595, 130, 25, 25, "Strch"); | |||||
strchdial->tooltip("Sequence Stretch"); | |||||
strchdial->box(FL_ROUND_UP_BOX); | |||||
strchdial->color(FL_BACKGROUND_COLOR); | |||||
strchdial->selection_color(FL_INACTIVE_COLOR); | |||||
strchdial->labeltype(FL_NORMAL_LABEL); | |||||
strchdial->labelfont(0); | |||||
strchdial->labelsize(10); | |||||
strchdial->labelcolor(FL_FOREGROUND_COLOR); | |||||
strchdial->maximum(127); | |||||
strchdial->step(1); | |||||
strchdial->align(Fl_Align(FL_ALIGN_TOP)); | |||||
strchdial->when(FL_WHEN_CHANGED); | |||||
o->init("Psequencestretch"); | |||||
} // Fl_Osc_Dial* strchdial | |||||
o->end(); | |||||
} // Fl_Osc_Group* o | |||||
{ Fl_Osc_Counter* o = numformants = new Fl_Osc_Counter(485, 15, 65, 20, "Num.Formants"); | |||||
numformants->type(1); | |||||
numformants->box(FL_UP_BOX); | |||||
numformants->color(FL_BACKGROUND_COLOR); | |||||
numformants->selection_color(FL_INACTIVE_COLOR); | |||||
numformants->labeltype(FL_NORMAL_LABEL); | |||||
numformants->labelfont(0); | |||||
numformants->labelsize(10); | |||||
numformants->labelcolor(FL_FOREGROUND_COLOR); | |||||
numformants->minimum(0); | |||||
numformants->maximum(127); | |||||
numformants->step(1); | |||||
numformants->callback((Fl_Callback*)cb_numformants); | |||||
numformants->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
numformants->when(FL_WHEN_CHANGED); | |||||
o->bounds(1,FF_MAX_FORMANTS); | |||||
o->init("Pnumformants"); | |||||
} // Fl_Osc_Counter* numformants | |||||
{ Fl_Osc_Dial* o = frsldial = new Fl_Osc_Dial(565, 15, 25, 25, "Fr.Sl."); | |||||
frsldial->tooltip("Formant\'s Slowness (Morphing)"); | |||||
frsldial->box(FL_ROUND_UP_BOX); | |||||
frsldial->color(FL_BACKGROUND_COLOR); | |||||
frsldial->selection_color(FL_INACTIVE_COLOR); | |||||
frsldial->labeltype(FL_NORMAL_LABEL); | |||||
frsldial->labelfont(0); | |||||
frsldial->labelsize(10); | |||||
frsldial->labelcolor(FL_FOREGROUND_COLOR); | |||||
frsldial->maximum(127); | |||||
frsldial->step(1); | |||||
frsldial->align(Fl_Align(FL_ALIGN_TOP)); | |||||
frsldial->when(FL_WHEN_CHANGED); | |||||
o->init("Pformantslowness"); | |||||
} // Fl_Osc_Dial* frsldial | |||||
{ Fl_Osc_Output* o = centerfreqvo = new Fl_Osc_Output(511, 164, 40, 18, "C.f."); | |||||
centerfreqvo->tooltip("Center Frequency (kHz)"); | |||||
centerfreqvo->box(FL_NO_BOX); | |||||
centerfreqvo->color(FL_BACKGROUND_COLOR); | |||||
centerfreqvo->selection_color(FL_BACKGROUND_COLOR); | |||||
centerfreqvo->labeltype(FL_NORMAL_LABEL); | |||||
centerfreqvo->labelfont(0); | |||||
centerfreqvo->labelsize(13); | |||||
centerfreqvo->labelcolor(FL_FOREGROUND_COLOR); | |||||
centerfreqvo->minimum(1); | |||||
centerfreqvo->maximum(10); | |||||
centerfreqvo->step(0.01); | |||||
centerfreqvo->value(1); | |||||
centerfreqvo->textfont(1); | |||||
centerfreqvo->textsize(11); | |||||
centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo); | |||||
centerfreqvo->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
centerfreqvo->when(3); | |||||
o->init("centerfreq"); | |||||
} // Fl_Osc_Output* centerfreqvo | |||||
{ Fl_Osc_Output* o = octavesfreqvo = new Fl_Osc_Output(511, 182, 40, 18, "Oct."); | |||||
octavesfreqvo->tooltip("No. of octaves"); | |||||
octavesfreqvo->box(FL_NO_BOX); | |||||
octavesfreqvo->color(FL_BACKGROUND_COLOR); | |||||
octavesfreqvo->selection_color(FL_BACKGROUND_COLOR); | |||||
octavesfreqvo->labeltype(FL_NORMAL_LABEL); | |||||
octavesfreqvo->labelfont(0); | |||||
octavesfreqvo->labelsize(13); | |||||
octavesfreqvo->labelcolor(FL_FOREGROUND_COLOR); | |||||
octavesfreqvo->minimum(1); | |||||
octavesfreqvo->maximum(127); | |||||
octavesfreqvo->step(0.01); | |||||
octavesfreqvo->value(5); | |||||
octavesfreqvo->textfont(1); | |||||
octavesfreqvo->textsize(11); | |||||
octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo); | |||||
octavesfreqvo->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
octavesfreqvo->when(3); | |||||
o->init("octavesfreq"); | |||||
} // Fl_Osc_Output* octavesfreqvo | |||||
{ Fl_Osc_Slider* o = cfknob = new Fl_Osc_Slider(555, 167, 84, 15); | |||||
cfknob->type(5); | |||||
cfknob->box(FL_FLAT_BOX); | |||||
cfknob->color(FL_BACKGROUND_COLOR); | |||||
cfknob->selection_color(FL_BACKGROUND_COLOR); | |||||
cfknob->labeltype(FL_NORMAL_LABEL); | |||||
cfknob->labelfont(0); | |||||
cfknob->labelsize(14); | |||||
cfknob->labelcolor(FL_FOREGROUND_COLOR); | |||||
cfknob->maximum(127); | |||||
cfknob->callback((Fl_Callback*)cb_cfknob); | |||||
cfknob->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
cfknob->when(FL_WHEN_CHANGED); | |||||
o->init("Pcenterfreq", 'i'); | |||||
} // Fl_Osc_Slider* cfknob | |||||
{ Fl_Osc_Slider* o = octknob = new Fl_Osc_Slider(555, 185, 84, 15); | |||||
octknob->type(5); | |||||
octknob->box(FL_FLAT_BOX); | |||||
octknob->color(FL_BACKGROUND_COLOR); | |||||
octknob->selection_color(FL_BACKGROUND_COLOR); | |||||
octknob->labeltype(FL_NORMAL_LABEL); | |||||
octknob->labelfont(0); | |||||
octknob->labelsize(14); | |||||
octknob->labelcolor(FL_FOREGROUND_COLOR); | |||||
octknob->maximum(127); | |||||
octknob->callback((Fl_Callback*)cb_octknob); | |||||
octknob->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
octknob->when(FL_WHEN_CHANGED); | |||||
o->init("Poctavesfreq", 'i'); | |||||
} // Fl_Osc_Slider* octknob | |||||
{ FormantFilterGraph* o = formantfiltergraph = new FormantFilterGraph(5, 5, 475, 195); | |||||
formantfiltergraph->box(FL_BORDER_BOX); | |||||
formantfiltergraph->color(FL_BACKGROUND_COLOR); | |||||
formantfiltergraph->selection_color(FL_BACKGROUND_COLOR); | |||||
formantfiltergraph->labeltype(FL_NORMAL_LABEL); | |||||
formantfiltergraph->labelfont(0); | |||||
formantfiltergraph->labelsize(14); | |||||
formantfiltergraph->labelcolor(FL_FOREGROUND_COLOR); | |||||
formantfiltergraph->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
formantfiltergraph->when(FL_WHEN_RELEASE); | |||||
o->init(&nvowel,&nformant); | |||||
} // FormantFilterGraph* formantfiltergraph | |||||
{ Fl_Osc_Dial* o = wvknob = new Fl_Osc_Dial(600, 15, 25, 25, "Vw.Cl."); | |||||
wvknob->tooltip("Vowel \"clearness\" (how the mixed vowels are avoided)"); | |||||
wvknob->box(FL_ROUND_UP_BOX); | |||||
wvknob->color(FL_BACKGROUND_COLOR); | |||||
wvknob->selection_color(FL_INACTIVE_COLOR); | |||||
wvknob->labeltype(FL_NORMAL_LABEL); | |||||
wvknob->labelfont(0); | |||||
wvknob->labelsize(10); | |||||
wvknob->labelcolor(FL_FOREGROUND_COLOR); | |||||
wvknob->maximum(127); | |||||
wvknob->step(1); | |||||
wvknob->align(Fl_Align(FL_ALIGN_TOP)); | |||||
wvknob->when(FL_WHEN_CHANGED); | |||||
o->init("Pvowelclearness"); | |||||
} // Fl_Osc_Dial* wvknob | |||||
{ Fl_Button* o = new Fl_Button(645, 180, 50, 25, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
{ Fl_Button* o = new Fl_Button(635, 25, 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_C1); | |||||
} // Fl_Button* o | |||||
{ Fl_Box* o = new Fl_Box(635, 6, 55, 15, "Vowel"); | |||||
o->labelfont(1); | |||||
} // Fl_Box* o | |||||
formantparswindow->end(); | |||||
} // Fl_Osc_Window* formantparswindow | |||||
return formantparswindow; | |||||
} | |||||
void FilterUI::update_formant_window() { | |||||
//formant_freq_dial->value(pars->Pvowels[nvowel].formants[nformant].freq); | |||||
//formant_q_dial->value(pars->Pvowels[nvowel].formants[nformant].q); | |||||
//formant_amp_dial->value(pars->Pvowels[nvowel].formants[nformant].amp); | |||||
if (nformant<numformants->value()) formantparsgroup->activate(); | |||||
else formantparsgroup->deactivate(); | |||||
if (nseqpos<sequencesize->value()) vowel_counter->activate(); | |||||
else vowel_counter->deactivate(); | |||||
//vowel_counter->value(pars->Psequence[nseqpos].nvowel); | |||||
} | |||||
void FilterUI::refresh() { | |||||
update_formant_window(); | |||||
formantfiltergraph->redraw(); | |||||
const int Pcategory = filtertype->value(); | |||||
const int Ptype = analogfiltertypechoice->value(); | |||||
if (Pcategory==2) svfiltertypechoice->value(Ptype); | |||||
if (Pcategory==0) analogfiltertypechoice->value(Ptype); | |||||
const int categ=Pcategory; | |||||
if ((categ==0)||(categ==2)) { | |||||
if (categ==0) { | |||||
analogfiltertypechoice->show(); | |||||
svfiltertypechoice->hide(); | |||||
} else { | |||||
svfiltertypechoice->show(); | |||||
analogfiltertypechoice->hide(); | |||||
}; | |||||
editbutton->hide(); | |||||
formantparswindow->hide(); | |||||
cfreqdial->label("C.freq"); | |||||
} else { | |||||
analogfiltertypechoice->hide(); | |||||
svfiltertypechoice->hide(); | |||||
editbutton->show(); | |||||
cfreqdial->label("BS.pos"); | |||||
}; | |||||
filterparamswindow->redraw(); | |||||
} | |||||
void FilterUI::rebase(std::string new_base) { | |||||
formantparswindow->rebase(new_base+"VoiceFilter/"); | |||||
Fl_Osc_Group::rebase(new_base); | |||||
} | |||||
void FilterUI::init(std::string alt_root_, Fl_Osc_Interface *osc_, std::string base_, std::string ext_) { | |||||
alt_root = alt_root_; | |||||
osc = osc_; | |||||
base = base_; | |||||
ext = ext_; | |||||
assert(osc); | |||||
make_window(); | |||||
end(); | |||||
make_formant_window(); | |||||
filterui->resize(this->x(),this->y(),this->w(),this->h()); | |||||
switchcategory(0); | |||||
formantparswindow->label(this->label()); | |||||
update_formant_window(); | |||||
} | |||||
void FilterUI::switchcategory(int newcat) { | |||||
//TODO update Pgain & filter type on switch Pgain=64; | |||||
(void) newcat; | |||||
refresh(); | |||||
} | |||||
void FilterUI::use_for_dynamic_filter() { | |||||
freqtrdial->deactivate(); | |||||
gaindial->when(0); | |||||
cfknob->when(FL_WHEN_RELEASE); | |||||
octknob->when(FL_WHEN_RELEASE); | |||||
frsldial->when(0); | |||||
wvknob->when(0); | |||||
formant_freq_dial->when(0); | |||||
formant_q_dial->when(0); | |||||
formant_amp_dial->when(0); | |||||
strchdial->when(0); | |||||
} |
@@ -1,161 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef FilterUI_h | |||||
#define FilterUI_h | |||||
#include <FL/Fl.H> | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Choice.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Counter.H" | |||||
#include "Fl_Osc_Output.H" | |||||
#include "Fl_Osc_Slider.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "../globals.h" | |||||
#include "../Misc/Util.h" | |||||
#include <FL/Fl_Group.H> | |||||
#include "../Params/FilterParams.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/fl_draw.H> | |||||
#include <FL/fl_ask.H> | |||||
#include "PresetsUI.h" | |||||
#include "common.H" | |||||
#include "FormantFilterGraph.H" | |||||
using namespace zyncarla; | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Counter.H> | |||||
#include <FL/Fl_Box.H> | |||||
class FilterUI : public Fl_Osc_Group,PresetsUI_ { | |||||
public: | |||||
FilterUI(int x,int y, int w, int h, const char *label=0); | |||||
~FilterUI(); | |||||
Fl_Osc_Group* make_window(); | |||||
Fl_Osc_Group *filterui; | |||||
private: | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Group *filterparamswindow; | |||||
Fl_Osc_Choice *analogfiltertypechoice; | |||||
static Fl_Menu_Item menu_analogfiltertypechoice[]; | |||||
Fl_Osc_Choice *svfiltertypechoice; | |||||
static Fl_Menu_Item menu_svfiltertypechoice[]; | |||||
Fl_Osc_Choice *filtertype; | |||||
private: | |||||
void cb_filtertype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_filtertype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_filtertype[]; | |||||
public: | |||||
Fl_Osc_Dial *cfreqdial; | |||||
Fl_Osc_Dial *qdial; | |||||
private: | |||||
void cb_qdial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_qdial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *freqtrdial; | |||||
Fl_Osc_Dial *vsnsadial; | |||||
Fl_Osc_Dial *vsnsdial; | |||||
Fl_Osc_Dial *gaindial; | |||||
private: | |||||
void cb_gaindial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_gaindial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Choice *stcounter; | |||||
private: | |||||
void cb_stcounter_i(Fl_Osc_Choice*, void*); | |||||
static void cb_stcounter(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Button *editbutton; | |||||
private: | |||||
void cb_editbutton_i(Fl_Button*, void*); | |||||
static void cb_editbutton(Fl_Button*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P1_i(Fl_Button*, void*); | |||||
static void cb_P1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window* make_formant_window(); | |||||
Fl_Osc_Window *formantparswindow; | |||||
private: | |||||
void cb_P2_i(Fl_Button*, void*); | |||||
static void cb_P2(Fl_Button*, void*); | |||||
void cb_Formant_i(Fl_Counter*, void*); | |||||
static void cb_Formant(Fl_Counter*, void*); | |||||
void cb_Vowel_i(Fl_Counter*, void*); | |||||
static void cb_Vowel(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Group *formantparsgroup; | |||||
Fl_Osc_Dial *formant_freq_dial; | |||||
private: | |||||
void cb_formant_freq_dial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_formant_freq_dial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *formant_q_dial; | |||||
private: | |||||
void cb_formant_q_dial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_formant_q_dial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *formant_amp_dial; | |||||
private: | |||||
void cb_formant_amp_dial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_formant_amp_dial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Counter *sequencesize; | |||||
private: | |||||
void cb_sequencesize_i(Fl_Osc_Counter*, void*); | |||||
static void cb_sequencesize(Fl_Osc_Counter*, void*); | |||||
void cb_S_i(Fl_Counter*, void*); | |||||
static void cb_S(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Counter *vowel_counter; | |||||
private: | |||||
void cb_vowel_counter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_vowel_counter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Dial *strchdial; | |||||
Fl_Osc_Counter *numformants; | |||||
private: | |||||
void cb_numformants_i(Fl_Osc_Counter*, void*); | |||||
static void cb_numformants(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Dial *frsldial; | |||||
Fl_Osc_Output *centerfreqvo; | |||||
private: | |||||
void cb_centerfreqvo_i(Fl_Osc_Output*, void*); | |||||
static void cb_centerfreqvo(Fl_Osc_Output*, void*); | |||||
public: | |||||
Fl_Osc_Output *octavesfreqvo; | |||||
private: | |||||
void cb_octavesfreqvo_i(Fl_Osc_Output*, void*); | |||||
static void cb_octavesfreqvo(Fl_Osc_Output*, void*); | |||||
public: | |||||
Fl_Osc_Slider *cfknob; | |||||
private: | |||||
void cb_cfknob_i(Fl_Osc_Slider*, void*); | |||||
static void cb_cfknob(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Slider *octknob; | |||||
private: | |||||
void cb_octknob_i(Fl_Osc_Slider*, void*); | |||||
static void cb_octknob(Fl_Osc_Slider*, void*); | |||||
public: | |||||
FormantFilterGraph *formantfiltergraph; | |||||
Fl_Osc_Dial *wvknob; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_C1_i(Fl_Button*, void*); | |||||
static void cb_C1(Fl_Button*, void*); | |||||
public: | |||||
void update_formant_window(); | |||||
void refresh(); | |||||
void rebase(std::string new_base); | |||||
void init(std::string alt_root_, Fl_Osc_Interface *osc_, std::string base_, std::string ext_); | |||||
void switchcategory(int newcat); | |||||
void use_for_dynamic_filter(); | |||||
private: | |||||
std::string alt_root; | |||||
int nvowel,nformant,nseqpos; | |||||
}; | |||||
#endif |
@@ -1,251 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/LFOUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
#include "../globals.h" | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/fl_draw.H> | |||||
Fl_Menu_Item LFOUI::menu_LFOtype[] = { | |||||
{"SINE", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"TRI", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"SQR", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"R.up", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"R.dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"E1dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"E2dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"RND", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
void LFOUI::cb_C_i(Fl_Button*, void*) { | |||||
presetsui->copy(lfoparamswindow->loc()); | |||||
} | |||||
void LFOUI::cb_C(Fl_Button* o, void* v) { | |||||
((LFOUI*)(o->parent()->parent()->user_data()))->cb_C_i(o,v); | |||||
} | |||||
void LFOUI::cb_P_i(Fl_Button*, void*) { | |||||
presetsui->paste(lfoparamswindow->loc(),this); | |||||
} | |||||
void LFOUI::cb_P(Fl_Button* o, void* v) { | |||||
((LFOUI*)(o->parent()->parent()->user_data()))->cb_P_i(o,v); | |||||
} | |||||
LFOUI::LFOUI(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h) { | |||||
cached_label = label; | |||||
} | |||||
LFOUI::~LFOUI() { | |||||
lfoui->hide(); | |||||
hide(); | |||||
} | |||||
Fl_Group* LFOUI::make_window() { | |||||
{ lfoui = new Fl_Group(0, 0, 230, 70); | |||||
lfoui->box(FL_FLAT_BOX); | |||||
lfoui->color(FL_LIGHT1); | |||||
lfoui->selection_color(FL_BACKGROUND_COLOR); | |||||
lfoui->labeltype(FL_NO_LABEL); | |||||
lfoui->labelfont(1); | |||||
lfoui->labelsize(14); | |||||
lfoui->labelcolor(FL_FOREGROUND_COLOR); | |||||
lfoui->user_data((void*)(this)); | |||||
lfoui->align(Fl_Align(FL_ALIGN_TOP)); | |||||
lfoui->when(FL_WHEN_RELEASE); | |||||
{ Fl_Osc_Group* o = lfoparamswindow = new Fl_Osc_Group(0, 0, 230, 70, "LFO"); | |||||
lfoparamswindow->box(FL_UP_BOX); | |||||
lfoparamswindow->color(FL_CYAN); | |||||
lfoparamswindow->selection_color(FL_BACKGROUND_COLOR); | |||||
lfoparamswindow->labeltype(FL_ENGRAVED_LABEL); | |||||
lfoparamswindow->labelfont(0); | |||||
lfoparamswindow->labelsize(10); | |||||
lfoparamswindow->labelcolor(FL_FOREGROUND_COLOR); | |||||
lfoparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
lfoparamswindow->when(FL_WHEN_RELEASE); | |||||
{ Fl_Osc_DialF* o = freq = new Fl_Osc_DialF(5, 20, 30, 30, "Freq."); | |||||
freq->tooltip("LFO Frequency"); | |||||
freq->box(FL_ROUND_UP_BOX); | |||||
freq->color(FL_BACKGROUND_COLOR); | |||||
freq->selection_color(FL_INACTIVE_COLOR); | |||||
freq->labeltype(FL_NORMAL_LABEL); | |||||
freq->labelfont(0); | |||||
freq->labelsize(10); | |||||
freq->labelcolor(FL_FOREGROUND_COLOR); | |||||
freq->step(1e-05); | |||||
freq->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
freq->when(FL_WHEN_CHANGED); | |||||
o->init("Pfreq"); | |||||
} // Fl_Osc_DialF* freq | |||||
{ Fl_Osc_Dial* o = intensity = new Fl_Osc_Dial(40, 20, 30, 30, "Depth"); | |||||
intensity->tooltip("LFO Amount"); | |||||
intensity->box(FL_ROUND_UP_BOX); | |||||
intensity->color(FL_BACKGROUND_COLOR); | |||||
intensity->selection_color(FL_INACTIVE_COLOR); | |||||
intensity->labeltype(FL_NORMAL_LABEL); | |||||
intensity->labelfont(0); | |||||
intensity->labelsize(10); | |||||
intensity->labelcolor(FL_FOREGROUND_COLOR); | |||||
intensity->maximum(127); | |||||
intensity->step(1); | |||||
intensity->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
intensity->when(FL_WHEN_CHANGED); | |||||
o->init("Pintensity"); | |||||
} // Fl_Osc_Dial* intensity | |||||
{ Fl_Osc_Dial* o = delay = new Fl_Osc_Dial(110, 20, 30, 30, "Delay"); | |||||
delay->tooltip("LFO delay"); | |||||
delay->box(FL_ROUND_UP_BOX); | |||||
delay->color(FL_BACKGROUND_COLOR); | |||||
delay->selection_color(FL_INACTIVE_COLOR); | |||||
delay->labeltype(FL_NORMAL_LABEL); | |||||
delay->labelfont(0); | |||||
delay->labelsize(10); | |||||
delay->labelcolor(FL_FOREGROUND_COLOR); | |||||
delay->maximum(127); | |||||
delay->step(1); | |||||
delay->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
delay->when(FL_WHEN_CHANGED); | |||||
o->init("Pdelay"); | |||||
} // Fl_Osc_Dial* delay | |||||
{ Fl_Osc_Dial* o = startphase = new Fl_Osc_Dial(75, 20, 30, 30, "Start"); | |||||
startphase->tooltip("LFO Startphase (leftmost is Random)"); | |||||
startphase->box(FL_ROUND_UP_BOX); | |||||
startphase->color(FL_BACKGROUND_COLOR); | |||||
startphase->selection_color(FL_INACTIVE_COLOR); | |||||
startphase->labeltype(FL_NORMAL_LABEL); | |||||
startphase->labelfont(0); | |||||
startphase->labelsize(10); | |||||
startphase->labelcolor(FL_FOREGROUND_COLOR); | |||||
startphase->maximum(127); | |||||
startphase->step(1); | |||||
startphase->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
startphase->when(FL_WHEN_CHANGED); | |||||
o->init("Pstartphase"); | |||||
} // Fl_Osc_Dial* startphase | |||||
{ Fl_Osc_Dial* o = randomness = new Fl_Osc_Dial(180, 7, 20, 20, "A.R."); | |||||
randomness->tooltip("LFO Amplitude Randomness"); | |||||
randomness->box(FL_ROUND_UP_BOX); | |||||
randomness->color(FL_BACKGROUND_COLOR); | |||||
randomness->selection_color(FL_INACTIVE_COLOR); | |||||
randomness->labeltype(FL_NORMAL_LABEL); | |||||
randomness->labelfont(0); | |||||
randomness->labelsize(10); | |||||
randomness->labelcolor(FL_FOREGROUND_COLOR); | |||||
randomness->maximum(127); | |||||
randomness->step(1); | |||||
randomness->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
randomness->when(FL_WHEN_CHANGED); | |||||
o->init("Prandomness"); | |||||
} // Fl_Osc_Dial* randomness | |||||
{ Fl_Osc_Choice* o = LFOtype = new Fl_Osc_Choice(180, 40, 45, 15, "Type"); | |||||
LFOtype->tooltip("LFO function"); | |||||
LFOtype->box(FL_UP_BOX); | |||||
LFOtype->down_box(FL_BORDER_BOX); | |||||
LFOtype->color(FL_BACKGROUND_COLOR); | |||||
LFOtype->selection_color(FL_SELECTION_COLOR); | |||||
LFOtype->labeltype(FL_NORMAL_LABEL); | |||||
LFOtype->labelfont(0); | |||||
LFOtype->labelsize(10); | |||||
LFOtype->labelcolor(FL_FOREGROUND_COLOR); | |||||
LFOtype->textsize(8); | |||||
LFOtype->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
LFOtype->when(FL_WHEN_RELEASE); | |||||
LFOtype->menu(menu_LFOtype); | |||||
o->init("PLFOtype"); | |||||
} // Fl_Osc_Choice* LFOtype | |||||
{ Fl_Osc_Check* o = continous = new Fl_Osc_Check(165, 35, 15, 15, "C."); | |||||
continous->tooltip("Continuous LFO"); | |||||
continous->box(FL_NO_BOX); | |||||
continous->down_box(FL_DOWN_BOX); | |||||
continous->color(FL_BACKGROUND_COLOR); | |||||
continous->selection_color(FL_FOREGROUND_COLOR); | |||||
continous->labeltype(FL_NORMAL_LABEL); | |||||
continous->labelfont(0); | |||||
continous->labelsize(10); | |||||
continous->labelcolor(FL_FOREGROUND_COLOR); | |||||
continous->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
continous->when(FL_WHEN_RELEASE); | |||||
o->init("Pcontinous"); | |||||
} // Fl_Osc_Check* continous | |||||
{ Fl_Osc_Dial* o = freqrand = new Fl_Osc_Dial(205, 7, 20, 20, "F.R."); | |||||
freqrand->tooltip("LFO Frequency Randomness"); | |||||
freqrand->box(FL_ROUND_UP_BOX); | |||||
freqrand->color(FL_BACKGROUND_COLOR); | |||||
freqrand->selection_color(FL_INACTIVE_COLOR); | |||||
freqrand->labeltype(FL_NORMAL_LABEL); | |||||
freqrand->labelfont(0); | |||||
freqrand->labelsize(10); | |||||
freqrand->labelcolor(FL_FOREGROUND_COLOR); | |||||
freqrand->maximum(127); | |||||
freqrand->step(1); | |||||
freqrand->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
freqrand->when(FL_WHEN_CHANGED); | |||||
o->init("Pfreqrand"); | |||||
} // Fl_Osc_Dial* freqrand | |||||
{ Fl_Osc_Dial* o = stretch = new Fl_Osc_Dial(144, 30, 20, 20, "Str."); | |||||
stretch->tooltip("LFO stretch"); | |||||
stretch->box(FL_ROUND_UP_BOX); | |||||
stretch->color(FL_BACKGROUND_COLOR); | |||||
stretch->selection_color(FL_INACTIVE_COLOR); | |||||
stretch->labeltype(FL_NORMAL_LABEL); | |||||
stretch->labelfont(0); | |||||
stretch->labelsize(10); | |||||
stretch->labelcolor(FL_FOREGROUND_COLOR); | |||||
stretch->maximum(127); | |||||
stretch->step(1); | |||||
stretch->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
stretch->when(FL_WHEN_CHANGED); | |||||
o->init("Pstretch"); | |||||
} // Fl_Osc_Dial* stretch | |||||
{ Fl_Button* o = new Fl_Button(145, 10, 15, 15, "C"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color((Fl_Color)179); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->labelcolor((Fl_Color)55); | |||||
o->callback((Fl_Callback*)cb_C); | |||||
} // Fl_Button* o | |||||
{ Fl_Button* o = new Fl_Button(162, 10, 15, 15, "P"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->color((Fl_Color)179); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->labelcolor((Fl_Color)55); | |||||
o->callback((Fl_Callback*)cb_P); | |||||
} // Fl_Button* o | |||||
set_module_parameters(o); | |||||
lfoparamswindow->end(); | |||||
} // Fl_Osc_Group* lfoparamswindow | |||||
lfoui->end(); | |||||
} // Fl_Group* lfoui | |||||
return lfoui; | |||||
} | |||||
void LFOUI::refresh() { | |||||
freq->update(); | |||||
intensity->update(); | |||||
startphase->update(); | |||||
delay->update(); | |||||
continous->update(); | |||||
stretch->update(); | |||||
randomness->update(); | |||||
freqrand->update(); | |||||
LFOtype->update(); | |||||
} | |||||
void LFOUI::init(Fl_Osc_Interface *osc_, std::string base_, std::string ext_) { | |||||
base = base_; | |||||
ext = ext_; | |||||
osc = osc_; | |||||
make_window(); | |||||
end(); | |||||
refresh(); | |||||
lfoui->resize(this->x(),this->y(),this->w(),this->h()); | |||||
lfoparamswindow->label(cached_label); | |||||
} |
@@ -1,44 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef LFOUI_h | |||||
#define LFOUI_h | |||||
#include <FL/Fl.H> | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_DialF.H" | |||||
#include "Fl_Osc_Choice.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include <string> | |||||
#include "PresetsUI.h" | |||||
#include "common.H" | |||||
#include <FL/Fl_Button.H> | |||||
class LFOUI : public Fl_Osc_Group, PresetsUI_ { | |||||
public: | |||||
LFOUI(int x,int y, int w, int h, const char *label=0); | |||||
~LFOUI(); | |||||
Fl_Group* make_window(); | |||||
Fl_Group *lfoui; | |||||
Fl_Osc_Group *lfoparamswindow; | |||||
Fl_Osc_DialF *freq; | |||||
Fl_Osc_Dial *intensity; | |||||
Fl_Osc_Dial *delay; | |||||
Fl_Osc_Dial *startphase; | |||||
Fl_Osc_Dial *randomness; | |||||
Fl_Osc_Choice *LFOtype; | |||||
static Fl_Menu_Item menu_LFOtype[]; | |||||
Fl_Osc_Check *continous; | |||||
Fl_Osc_Dial *freqrand; | |||||
Fl_Osc_Dial *stretch; | |||||
private: | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
void refresh(); | |||||
void init(Fl_Osc_Interface *osc_, std::string base_, std::string ext_); | |||||
private: | |||||
const char *cached_label; | |||||
}; | |||||
#endif |
@@ -1,417 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef MasterUI_h | |||||
#define MasterUI_h | |||||
#include <FL/Fl.H> | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <string.h> | |||||
#include "WidgetPDial.h" | |||||
#include "ADnoteUI.h" | |||||
#include "SUBnoteUI.h" | |||||
#include "EffUI.h" | |||||
#include "VirKeyboard.h" | |||||
#include "ConfigUI.h" | |||||
#include "BankUI.h" | |||||
#include "PartUI.h" | |||||
#include "MicrotonalUI.h" | |||||
#include "PresetsUI.h" | |||||
#include "NioUI.h" | |||||
#include "VuPartMeter.h" | |||||
#include "VuMasterMeter.h" | |||||
#include "PartNameButton.h" | |||||
#include "common.H" | |||||
#if USE_NSM | |||||
#include "NSM.H" | |||||
extern NSM_Client *nsm; | |||||
#endif | |||||
#if !defined(PLUGINVERSION) && HAS_X11 | |||||
#include <X11/xpm.h> | |||||
#endif | |||||
#include "../globals.h" | |||||
class SysEffSend : public Fl_Osc_Dial { | |||||
public: | |||||
SysEffSend(int x,int y, int w, int h, const char *label=0); | |||||
void init(int neff1,int neff2); | |||||
~SysEffSend(); | |||||
}; | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Button.H> | |||||
class Panellistitem : public Fl_Osc_Group { | |||||
Fl_Group* make_window(); | |||||
Fl_Group *panellistitem; | |||||
Fl_Group *panellistitemgroup; | |||||
public: | |||||
VuPartMeter *partvu; | |||||
PartNameButton *partname; | |||||
private: | |||||
void cb_partname_i(PartNameButton*, void*); | |||||
static void cb_partname(PartNameButton*, void*); | |||||
public: | |||||
Fl_Osc_TSlider *partvolume; | |||||
Fl_Osc_Dial *partpanning; | |||||
private: | |||||
void cb_edit_i(Fl_Button*, void*); | |||||
static void cb_edit(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *partrcv; | |||||
private: | |||||
Fl_Osc_Check *partenabled; | |||||
void cb_partenabled_i(Fl_Osc_Check*, void*); | |||||
static void cb_partenabled(Fl_Osc_Check*, void*); | |||||
public: | |||||
Panellistitem(int x,int y, int w, int h, const char *label=0); | |||||
void init(int npart_,BankUI *bankui_, PartUI *partui_); | |||||
void refresh(); | |||||
~Panellistitem(); | |||||
private: | |||||
int npart; | |||||
BankUI *bankui; | |||||
PartUI *partui; | |||||
}; | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Menu_Bar.H> | |||||
#include <FL/Fl_Tabs.H> | |||||
#include <FL/Fl_Counter.H> | |||||
#include <FL/Fl_Double_Window.H> | |||||
#include <FL/Fl_Scroll.H> | |||||
#include <FL/Fl_Pack.H> | |||||
#include <FL/Fl_Choice.H> | |||||
class MasterUI { | |||||
public: | |||||
Fl_Osc_Window* make_window(); | |||||
Fl_Osc_Window *masterwindow; | |||||
private: | |||||
void cb_masterwindow_i(Fl_Osc_Window*, void*); | |||||
static void cb_masterwindow(Fl_Osc_Window*, void*); | |||||
public: | |||||
Fl_Box *dummy_again; | |||||
Fl_Osc_Group *win_root; | |||||
Fl_Menu_Bar *mastermenu; | |||||
static Fl_Menu_Item menu_mastermenu[]; | |||||
private: | |||||
void cb_New_i(Fl_Menu_*, void*); | |||||
static void cb_New(Fl_Menu_*, void*); | |||||
void cb_Revert_i(Fl_Menu_*, void*); | |||||
static void cb_Revert(Fl_Menu_*, void*); | |||||
void cb_Open_i(Fl_Menu_*, void*); | |||||
static void cb_Open(Fl_Menu_*, void*); | |||||
void cb_Save_i(Fl_Menu_*, void*); | |||||
static void cb_Save(Fl_Menu_*, void*); | |||||
void cb_Load_i(Fl_Menu_*, void*); | |||||
static void cb_Load(Fl_Menu_*, void*); | |||||
void cb_Clear_i(Fl_Menu_*, void*); | |||||
static void cb_Clear(Fl_Menu_*, void*); | |||||
void cb_Save1_i(Fl_Menu_*, void*); | |||||
static void cb_Save1(Fl_Menu_*, void*); | |||||
void cb_Load1_i(Fl_Menu_*, void*); | |||||
static void cb_Load1(Fl_Menu_*, void*); | |||||
void cb_Save2_i(Fl_Menu_*, void*); | |||||
static void cb_Save2(Fl_Menu_*, void*); | |||||
void cb_Show_i(Fl_Menu_*, void*); | |||||
static void cb_Show(Fl_Menu_*, void*); | |||||
void cb_Settings_i(Fl_Menu_*, void*); | |||||
static void cb_Settings(Fl_Menu_*, void*); | |||||
void cb_N_i(Fl_Menu_*, void*); | |||||
static void cb_N(Fl_Menu_*, void*); | |||||
void cb_Copyright_i(Fl_Menu_*, void*); | |||||
static void cb_Copyright(Fl_Menu_*, void*); | |||||
void cb_E_i(Fl_Menu_*, void*); | |||||
static void cb_E(Fl_Menu_*, void*); | |||||
void cb_Clear1_i(Fl_Menu_*, void*); | |||||
static void cb_Clear1(Fl_Menu_*, void*); | |||||
void cb_Open1_i(Fl_Menu_*, void*); | |||||
static void cb_Open1(Fl_Menu_*, void*); | |||||
void cb_Save3_i(Fl_Menu_*, void*); | |||||
static void cb_Save3(Fl_Menu_*, void*); | |||||
void cb_Show1_i(Fl_Menu_*, void*); | |||||
static void cb_Show1(Fl_Menu_*, void*); | |||||
void cb_Virtual_i(Fl_Menu_*, void*); | |||||
static void cb_Virtual(Fl_Menu_*, void*); | |||||
public: | |||||
static Fl_Menu_Item *recordmenu; | |||||
private: | |||||
void cb_Choose_i(Fl_Menu_*, void*); | |||||
static void cb_Choose(Fl_Menu_*, void*); | |||||
void cb_Switch_i(Fl_Menu_*, void*); | |||||
static void cb_Switch(Fl_Menu_*, void*); | |||||
public: | |||||
Fl_Box *dummy; | |||||
Fl_Osc_Dial *mastervolumedial; | |||||
Fl_Osc_Counter *masterkeyshiftcounter; | |||||
private: | |||||
void cb_Panic_i(Fl_Osc_Button*, void*); | |||||
static void cb_Panic(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Group *partuigroup; | |||||
PartUI *partui; | |||||
Fl_Counter *syseffnocounter; | |||||
private: | |||||
void cb_syseffnocounter_i(Fl_Counter*, void*); | |||||
static void cb_syseffnocounter(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *sysefftype; | |||||
private: | |||||
void cb_sysefftype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_sysefftype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_sysefftype[]; | |||||
public: | |||||
Fl_Osc_Group *syseffectuigroup; | |||||
EffUI *syseffectui; | |||||
private: | |||||
void cb_Send_i(Fl_Button*, void*); | |||||
static void cb_Send(Fl_Button*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Counter *inseffnocounter; | |||||
private: | |||||
void cb_inseffnocounter_i(Fl_Counter*, void*); | |||||
static void cb_inseffnocounter(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *insefftype; | |||||
private: | |||||
void cb_insefftype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_insefftype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_insefftype[]; | |||||
public: | |||||
Fl_Osc_Group *inseffectuigroup; | |||||
EffUI *inseffectui; | |||||
Fl_Osc_Choice *inseffpart; | |||||
private: | |||||
void cb_inseffpart_i(Fl_Osc_Choice*, void*); | |||||
static void cb_inseffpart(Fl_Osc_Choice*, void*); | |||||
void cb_C1_i(Fl_Button*, void*); | |||||
static void cb_C1(Fl_Button*, void*); | |||||
void cb_P1_i(Fl_Button*, void*); | |||||
static void cb_P1(Fl_Button*, void*); | |||||
void cb_Scales_i(Fl_Button*, void*); | |||||
static void cb_Scales(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Button *recordbutton; | |||||
private: | |||||
void cb_recordbutton_i(Fl_Osc_Button*, void*); | |||||
static void cb_recordbutton(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Button *stopbutton; | |||||
private: | |||||
void cb_stopbutton_i(Fl_Osc_Button*, void*); | |||||
static void cb_stopbutton(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Button *pausebutton; | |||||
private: | |||||
void cb_pausebutton_i(Fl_Osc_Button*, void*); | |||||
static void cb_pausebutton(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Box *pauselabel; | |||||
VuMasterMeter *mastervu; | |||||
Fl_Osc_Check *nrpnbutton; | |||||
Fl_Counter *npartcounter; | |||||
private: | |||||
void cb_npartcounter_i(Fl_Counter*, void*); | |||||
static void cb_npartcounter(Fl_Counter*, void*); | |||||
void cb_vK_i(Fl_Button*, void*); | |||||
static void cb_vK(Fl_Button*, void*); | |||||
void cb_Reset_i(Fl_Button*, void*); | |||||
static void cb_Reset(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *globalfinedetuneslider; | |||||
private: | |||||
void cb_Panel_i(Fl_Button*, void*); | |||||
static void cb_Panel(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *sm_indicator1; | |||||
Fl_Double_Window *aboutwindow; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *syseffsendwindow; | |||||
Fl_Scroll *syseffscroll; | |||||
private: | |||||
void cb_Close1_i(Fl_Button*, void*); | |||||
static void cb_Close1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *panelwindow; | |||||
private: | |||||
void cb_Close2_i(Fl_Button*, void*); | |||||
static void cb_Close2(Fl_Button*, void*); | |||||
void cb_Refresh_i(Fl_Button*, void*); | |||||
static void cb_Refresh(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *simplemasterwindow; | |||||
private: | |||||
void cb_simplemasterwindow_i(Fl_Osc_Window*, void*); | |||||
static void cb_simplemasterwindow(Fl_Osc_Window*, void*); | |||||
public: | |||||
Fl_Menu_Bar *simplemastermenu; | |||||
static Fl_Menu_Item menu_simplemastermenu[]; | |||||
private: | |||||
void cb_New1_i(Fl_Menu_*, void*); | |||||
static void cb_New1(Fl_Menu_*, void*); | |||||
void cb_Revert1_i(Fl_Menu_*, void*); | |||||
static void cb_Revert1(Fl_Menu_*, void*); | |||||
void cb_Open2_i(Fl_Menu_*, void*); | |||||
static void cb_Open2(Fl_Menu_*, void*); | |||||
void cb_Save4_i(Fl_Menu_*, void*); | |||||
static void cb_Save4(Fl_Menu_*, void*); | |||||
void cb_Settings1_i(Fl_Menu_*, void*); | |||||
static void cb_Settings1(Fl_Menu_*, void*); | |||||
void cb_Copyright1_i(Fl_Menu_*, void*); | |||||
static void cb_Copyright1(Fl_Menu_*, void*); | |||||
void cb_E1_i(Fl_Menu_*, void*); | |||||
static void cb_E1(Fl_Menu_*, void*); | |||||
void cb_Open3_i(Fl_Menu_*, void*); | |||||
static void cb_Open3(Fl_Menu_*, void*); | |||||
void cb_Show2_i(Fl_Menu_*, void*); | |||||
static void cb_Show2(Fl_Menu_*, void*); | |||||
void cb_Switch1_i(Fl_Menu_*, void*); | |||||
static void cb_Switch1(Fl_Menu_*, void*); | |||||
Fl_Osc_Group *simplelistitemgroup; | |||||
public: | |||||
PartNameButton *partname; | |||||
private: | |||||
void cb_partname1_i(PartNameButton*, void*); | |||||
static void cb_partname1(PartNameButton*, void*); | |||||
public: | |||||
Fl_Osc_TSlider *partpanning; | |||||
Fl_Osc_Choice *partrcv; | |||||
private: | |||||
void cb_partrcv_i(Fl_Osc_Choice*, void*); | |||||
static void cb_partrcv(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Osc_Dial *partvolume; | |||||
Fl_Osc_Check *simplepartportamento; | |||||
Fl_Osc_Counter *simpleminkcounter; | |||||
private: | |||||
void cb_simpleminkcounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_simpleminkcounter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Counter *simplemaxkcounter; | |||||
private: | |||||
void cb_simplemaxkcounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_simplemaxkcounter(Fl_Osc_Counter*, void*); | |||||
void cb_m_i(Fl_Osc_Button*, void*); | |||||
static void cb_m(Fl_Osc_Button*, void*); | |||||
void cb_M_i(Fl_Osc_Button*, void*); | |||||
static void cb_M(Fl_Osc_Button*, void*); | |||||
void cb_R_i(Fl_Button*, void*); | |||||
static void cb_R(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Counter *simplepartkeyshiftcounter; | |||||
Fl_Osc_Dial *simplesyseffsend; | |||||
private: | |||||
Fl_Osc_Check *partenabled; | |||||
void cb_partenabled1_i(Fl_Osc_Check*, void*); | |||||
static void cb_partenabled1(Fl_Osc_Check*, void*); | |||||
public: | |||||
VirKeys *virkeys; | |||||
Fl_Counter *simplesyseffnocounter; | |||||
private: | |||||
void cb_simplesyseffnocounter_i(Fl_Counter*, void*); | |||||
static void cb_simplesyseffnocounter(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *simplesysefftype; | |||||
private: | |||||
void cb_simplesysefftype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_simplesysefftype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_simplesysefftype[]; | |||||
public: | |||||
Fl_Osc_Group *simplesyseffectuigroup; | |||||
SimpleEffUI *simplesyseffectui; | |||||
private: | |||||
void cb_Send1_i(Fl_Button*, void*); | |||||
static void cb_Send1(Fl_Button*, void*); | |||||
void cb_P2_i(Fl_Button*, void*); | |||||
static void cb_P2(Fl_Button*, void*); | |||||
public: | |||||
Fl_Counter *simpleinseffnocounter; | |||||
private: | |||||
void cb_simpleinseffnocounter_i(Fl_Counter*, void*); | |||||
static void cb_simpleinseffnocounter(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *simpleinsefftype; | |||||
private: | |||||
void cb_simpleinsefftype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_simpleinsefftype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_simpleinsefftype[]; | |||||
public: | |||||
Fl_Osc_Group *simpleinseffectuigroup; | |||||
SimpleEffUI *simpleinseffectui; | |||||
Fl_Choice *simpleinseffpart; | |||||
private: | |||||
void cb_simpleinseffpart_i(Fl_Choice*, void*); | |||||
static void cb_simpleinseffpart(Fl_Choice*, void*); | |||||
void cb_P3_i(Fl_Button*, void*); | |||||
static void cb_P3(Fl_Button*, void*); | |||||
public: | |||||
VuMasterMeter *simplemastervu; | |||||
Fl_Osc_Dial *simplemastervolumedial; | |||||
Fl_Osc_Counter *simplemasterkeyshiftcounter; | |||||
private: | |||||
void cb_Stop_i(Fl_Osc_Button*, void*); | |||||
static void cb_Stop(Fl_Osc_Button*, void*); | |||||
void cb_Reset1_i(Fl_Button*, void*); | |||||
static void cb_Reset1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *simpleglobalfinedetuneslider; | |||||
Fl_Counter *simplenpartcounter; | |||||
private: | |||||
void cb_simplenpartcounter_i(Fl_Counter*, void*); | |||||
static void cb_simplenpartcounter(Fl_Counter*, void*); | |||||
void cb_Keyb_i(Fl_Counter*, void*); | |||||
static void cb_Keyb(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Button *sm_indicator2; | |||||
Fl_Osc_Window *selectuiwindow; | |||||
private: | |||||
void cb_selectuiwindow_i(Fl_Osc_Window*, void*); | |||||
static void cb_selectuiwindow(Fl_Osc_Window*, void*); | |||||
void cb_Advanced_i(Fl_Button*, void*); | |||||
static void cb_Advanced(Fl_Button*, void*); | |||||
void cb_Beginner_i(Fl_Button*, void*); | |||||
static void cb_Beginner(Fl_Button*, void*); | |||||
public: | |||||
void updatesendwindow(); | |||||
void updatepanel(); | |||||
void setfilelabel(const char *filename); | |||||
MasterUI(int *exitprogram_, class Fl_Osc_Interface *osc_); | |||||
~MasterUI(); | |||||
void showUI(int UIMode); | |||||
void simplerefresh(); | |||||
void do_new_master_unconditional(); | |||||
void do_new_master(); | |||||
int do_revert_changes_unconditional(); | |||||
void do_revert_changes(); | |||||
int do_load_master_unconditional(const char *filename, const char *display_name); | |||||
void do_load_master(const char* file = NULL); | |||||
void do_save_master(const char* file = NULL); | |||||
void refresh_master_ui(); | |||||
class Osc_DataModel *last_xmz; | |||||
private: | |||||
MicrotonalUI *microtonalui; | |||||
BankUI *bankui; | |||||
int ninseff,npart; | |||||
int nsyseff; | |||||
int *exitprogram; | |||||
Fl_Osc_Dial *syseffsend[NUM_SYS_EFX][NUM_SYS_EFX]; | |||||
VirKeyboard *virkeyboard; | |||||
ConfigUI *configui; | |||||
int swapefftype; | |||||
char masterwindowlabel[100]; | |||||
public: | |||||
Panellistitem *panellistitem[NUM_MIDI_PARTS]; | |||||
private: | |||||
NioUI nioui; | |||||
public: | |||||
class Fl_Osc_Interface *osc; | |||||
char last_loaded[XMZ_PATH_MAX]; | |||||
char loading_next[XMZ_PATH_MAX]; | |||||
void close(); | |||||
}; | |||||
#endif |
@@ -1,449 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/MicrotonalUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
void MicrotonalUI::cb_Invert_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) centerinvertcounter->deactivate(); | |||||
else centerinvertcounter->activate(); | |||||
} | |||||
void MicrotonalUI::cb_Invert(Fl_Osc_Check* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Invert_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_applybutton_i(Fl_Button*, void*) { | |||||
apply(); | |||||
} | |||||
void MicrotonalUI::cb_applybutton(Fl_Button* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_applybutton_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_Import_i(Fl_Button*, void*) { | |||||
const char *filename; | |||||
filename=fl_file_chooser("Open:","(*.scl)",NULL,0); | |||||
if (filename==NULL) return; | |||||
osc->write("/load_scl", "s", filename); | |||||
if (true) { | |||||
updateTuningsInput(); | |||||
nameinput->update(); | |||||
commentinput->update(); | |||||
tuningsinput->position(0); | |||||
octavesizeoutput->update(); | |||||
}; | |||||
} | |||||
void MicrotonalUI::cb_Import(Fl_Button* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_mappingenabledbutton_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) keymappinggroup->deactivate(); | |||||
else keymappinggroup->activate(); | |||||
o->show(); | |||||
} | |||||
void MicrotonalUI::cb_mappingenabledbutton(Fl_Osc_Check* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_mappingenabledbutton_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_Import1_i(Fl_Button*, void*) { | |||||
const char *filename; | |||||
filename=fl_file_chooser("Open:","(*.kbm)",NULL,0); | |||||
if (filename==NULL) return; | |||||
osc->write("/load_kbm", "s", filename); | |||||
if (true) { | |||||
updateMappingInput(); | |||||
mappinginput->position(0); | |||||
mapsizeoutput->update(); | |||||
firstnotecounter->update(); | |||||
lastnotecounter->update(); | |||||
middlenotecounter->update(); | |||||
mappingenabledbutton->update(); | |||||
afreqinput->update(); | |||||
anotecounter->update(); | |||||
}; | |||||
} | |||||
void MicrotonalUI::cb_Import1(Fl_Button* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import1_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_anotecounter_i(Fl_Osc_Counter* o, void*) { | |||||
/*if (microtonal->getnotefreq(o->value(),0)<0.0) o->textcolor(FL_RED); | |||||
else o->textcolor(FL_BLACK);*/ | |||||
o->redraw(); | |||||
} | |||||
void MicrotonalUI::cb_anotecounter(Fl_Osc_Counter* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_anotecounter_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_Close_i(Fl_Button*, void*) { | |||||
microtonaluiwindow->hide(); | |||||
} | |||||
void MicrotonalUI::cb_Close(Fl_Button* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
void MicrotonalUI::cb_Enable_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) microtonalgroup->deactivate(); | |||||
else microtonalgroup->activate(); | |||||
} | |||||
void MicrotonalUI::cb_Enable(Fl_Osc_Check* o, void* v) { | |||||
((MicrotonalUI*)(o->parent()->user_data()))->cb_Enable_i(o,v); | |||||
} | |||||
Fl_Osc_Window* MicrotonalUI::make_window(Fl_Osc_Interface *osc, std::string base) { | |||||
{ microtonaluiwindow = new Fl_Osc_Window(405, 450, "Scales"); | |||||
microtonaluiwindow->box(FL_FLAT_BOX); | |||||
microtonaluiwindow->color(FL_BACKGROUND_COLOR); | |||||
microtonaluiwindow->selection_color(FL_BACKGROUND_COLOR); | |||||
microtonaluiwindow->labeltype(FL_NO_LABEL); | |||||
microtonaluiwindow->labelfont(0); | |||||
microtonaluiwindow->labelsize(14); | |||||
microtonaluiwindow->labelcolor(FL_FOREGROUND_COLOR); | |||||
microtonaluiwindow->user_data((void*)(this)); | |||||
microtonaluiwindow->align(Fl_Align(FL_ALIGN_TOP)); | |||||
microtonaluiwindow->when(FL_WHEN_RELEASE); | |||||
{ new Fl_Box(0, 0, 0, 0); | |||||
microtonaluiwindow->init(osc, base); | |||||
} // Fl_Box* o | |||||
{ Fl_Group* o = new Fl_Group(249, 2, 155, 45); | |||||
o->tooltip("Center where the note\'s freqs. are turned upside-down"); | |||||
o->box(FL_ENGRAVED_FRAME); | |||||
{ Fl_Osc_Check* o = new Fl_Osc_Check(254, 13, 55, 30, "Invert keys"); | |||||
o->tooltip("Turn upside-down the note frequencies"); | |||||
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->callback((Fl_Callback*)cb_Invert); | |||||
o->align(Fl_Align(132|FL_ALIGN_INSIDE)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->init("Pinvertupdown"); | |||||
} // Fl_Osc_Check* o | |||||
{ Fl_Osc_Counter* o = centerinvertcounter = new Fl_Osc_Counter(319, 13, 80, 20, "Center"); | |||||
centerinvertcounter->box(FL_UP_BOX); | |||||
centerinvertcounter->color(FL_BACKGROUND_COLOR); | |||||
centerinvertcounter->selection_color(FL_INACTIVE_COLOR); | |||||
centerinvertcounter->labeltype(FL_NORMAL_LABEL); | |||||
centerinvertcounter->labelfont(1); | |||||
centerinvertcounter->labelsize(11); | |||||
centerinvertcounter->labelcolor(FL_FOREGROUND_COLOR); | |||||
centerinvertcounter->minimum(0); | |||||
centerinvertcounter->maximum(127); | |||||
centerinvertcounter->step(1); | |||||
centerinvertcounter->textfont(1); | |||||
centerinvertcounter->align(Fl_Align(130)); | |||||
centerinvertcounter->when(FL_WHEN_CHANGED); | |||||
o->lstep(12/*microtonal->getoctavesize()*/); | |||||
o->init("Pinvertupdowncenter"); | |||||
} // Fl_Osc_Counter* centerinvertcounter | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
{ microtonalgroup = new Fl_Group(3, 49, 402, 398); | |||||
microtonalgroup->box(FL_ENGRAVED_FRAME); | |||||
{ applybutton = new Fl_Button(8, 413, 107, 28, "Retune"); | |||||
applybutton->tooltip("Retune the synth accorging to the inputs from \"Tunnings\" and \"Keyboard Map\ | |||||
pings\""); | |||||
applybutton->box(FL_THIN_UP_BOX); | |||||
applybutton->labeltype(FL_EMBOSSED_LABEL); | |||||
applybutton->labelfont(1); | |||||
applybutton->labelsize(13); | |||||
applybutton->callback((Fl_Callback*)cb_applybutton); | |||||
} // Fl_Button* applybutton | |||||
{ Fl_Osc_Output* o = octavesizeoutput = new Fl_Osc_Output(150, 423, 35, 17, "nts./oct."); | |||||
octavesizeoutput->tooltip("Notes/Octave"); | |||||
octavesizeoutput->box(FL_NO_BOX); | |||||
octavesizeoutput->color(FL_BACKGROUND_COLOR); | |||||
octavesizeoutput->selection_color(FL_BACKGROUND_COLOR); | |||||
octavesizeoutput->labeltype(FL_NORMAL_LABEL); | |||||
octavesizeoutput->labelfont(0); | |||||
octavesizeoutput->labelsize(10); | |||||
octavesizeoutput->labelcolor(FL_FOREGROUND_COLOR); | |||||
octavesizeoutput->maximum(500); | |||||
octavesizeoutput->step(1); | |||||
octavesizeoutput->value(12); | |||||
octavesizeoutput->textfont(1); | |||||
octavesizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
octavesizeoutput->when(FL_WHEN_CHANGED); | |||||
o->init("octavesize"); | |||||
} // Fl_Osc_Output* octavesizeoutput | |||||
{ Fl_Osc_Input* o = nameinput = new Fl_Osc_Input(8, 64, 285, 25, "Name:"); | |||||
nameinput->box(FL_DOWN_BOX); | |||||
nameinput->color(FL_BACKGROUND2_COLOR); | |||||
nameinput->selection_color(FL_SELECTION_COLOR); | |||||
nameinput->labeltype(FL_NORMAL_LABEL); | |||||
nameinput->labelfont(1); | |||||
nameinput->labelsize(11); | |||||
nameinput->labelcolor(FL_FOREGROUND_COLOR); | |||||
nameinput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
nameinput->when(FL_WHEN_RELEASE); | |||||
o->maximum_size(MICROTONAL_MAX_NAME_LEN); | |||||
o->init("Pname"); | |||||
} // Fl_Osc_Input* nameinput | |||||
{ Fl_Osc_Input* o = tuningsinput = new Fl_Osc_Input(8, 144, 182, 264, "Tunings:"); | |||||
tuningsinput->type(4); | |||||
tuningsinput->box(FL_DOWN_BOX); | |||||
tuningsinput->color(FL_BACKGROUND2_COLOR); | |||||
tuningsinput->selection_color(FL_SELECTION_COLOR); | |||||
tuningsinput->labeltype(FL_NORMAL_LABEL); | |||||
tuningsinput->labelfont(1); | |||||
tuningsinput->labelsize(11); | |||||
tuningsinput->labelcolor(FL_FOREGROUND_COLOR); | |||||
tuningsinput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
tuningsinput->when(FL_WHEN_NEVER); | |||||
o->init("tunings"); | |||||
} // Fl_Osc_Input* tuningsinput | |||||
{ Fl_Osc_Input* o = commentinput = new Fl_Osc_Input(8, 104, 391, 25, "Comment:"); | |||||
commentinput->box(FL_DOWN_BOX); | |||||
commentinput->color(FL_BACKGROUND2_COLOR); | |||||
commentinput->selection_color(FL_SELECTION_COLOR); | |||||
commentinput->labeltype(FL_NORMAL_LABEL); | |||||
commentinput->labelfont(1); | |||||
commentinput->labelsize(11); | |||||
commentinput->labelcolor(FL_FOREGROUND_COLOR); | |||||
commentinput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
commentinput->when(FL_WHEN_RELEASE); | |||||
o->maximum_size(MICROTONAL_MAX_NAME_LEN); | |||||
o->init("Pcomment"); | |||||
} // Fl_Osc_Input* commentinput | |||||
{ Fl_Osc_Counter* o = new Fl_Osc_Counter(313, 69, 70, 20, "Shift"); | |||||
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(11); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->minimum(-64); | |||||
o->maximum(63); | |||||
o->step(1); | |||||
o->textfont(1); | |||||
o->align(Fl_Align(FL_ALIGN_TOP)); | |||||
o->when(FL_WHEN_CHANGED); | |||||
o->init("Pscaleshift"); | |||||
} // Fl_Osc_Counter* o | |||||
{ Fl_Button* o = new Fl_Button(243, 411, 84, 15, "Import .SCL file"); | |||||
o->tooltip("Inport Scala .scl file (tunnings)"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->callback((Fl_Callback*)cb_Import); | |||||
} // Fl_Button* o | |||||
{ keymappinggroup = new Fl_Group(193, 144, 206, 264, "Keyboard Mapping"); | |||||
keymappinggroup->box(FL_ENGRAVED_BOX); | |||||
keymappinggroup->labelfont(1); | |||||
keymappinggroup->labelsize(11); | |||||
{ Fl_Osc_Input* o = mappinginput = new Fl_Osc_Input(250, 147, 146, 258); | |||||
mappinginput->type(4); | |||||
mappinginput->box(FL_DOWN_BOX); | |||||
mappinginput->color(FL_BACKGROUND2_COLOR); | |||||
mappinginput->selection_color(FL_SELECTION_COLOR); | |||||
mappinginput->labeltype(FL_NORMAL_LABEL); | |||||
mappinginput->labelfont(1); | |||||
mappinginput->labelsize(11); | |||||
mappinginput->labelcolor(FL_FOREGROUND_COLOR); | |||||
mappinginput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
mappinginput->when(FL_WHEN_NEVER); | |||||
o->init("mapping"); | |||||
} // Fl_Osc_Input* mappinginput | |||||
{ Fl_Osc_Counter* o = firstnotecounter = new Fl_Osc_Counter(199, 195, 42, 18, "First note"); | |||||
firstnotecounter->tooltip("First MIDI note number"); | |||||
firstnotecounter->type(1); | |||||
firstnotecounter->box(FL_UP_BOX); | |||||
firstnotecounter->color(FL_BACKGROUND_COLOR); | |||||
firstnotecounter->selection_color(FL_INACTIVE_COLOR); | |||||
firstnotecounter->labeltype(FL_NORMAL_LABEL); | |||||
firstnotecounter->labelfont(0); | |||||
firstnotecounter->labelsize(10); | |||||
firstnotecounter->labelcolor(FL_FOREGROUND_COLOR); | |||||
firstnotecounter->minimum(0); | |||||
firstnotecounter->maximum(127); | |||||
firstnotecounter->step(1); | |||||
firstnotecounter->textfont(1); | |||||
firstnotecounter->textsize(11); | |||||
firstnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
firstnotecounter->when(FL_WHEN_CHANGED); | |||||
o->init("Pfirstkey"); | |||||
} // Fl_Osc_Counter* firstnotecounter | |||||
{ Fl_Osc_Counter* o = lastnotecounter = new Fl_Osc_Counter(199, 225, 42, 18, "Last note"); | |||||
lastnotecounter->tooltip("Last MIDI note number"); | |||||
lastnotecounter->type(1); | |||||
lastnotecounter->box(FL_UP_BOX); | |||||
lastnotecounter->color(FL_BACKGROUND_COLOR); | |||||
lastnotecounter->selection_color(FL_INACTIVE_COLOR); | |||||
lastnotecounter->labeltype(FL_NORMAL_LABEL); | |||||
lastnotecounter->labelfont(0); | |||||
lastnotecounter->labelsize(10); | |||||
lastnotecounter->labelcolor(FL_FOREGROUND_COLOR); | |||||
lastnotecounter->minimum(0); | |||||
lastnotecounter->maximum(127); | |||||
lastnotecounter->step(1); | |||||
lastnotecounter->value(127); | |||||
lastnotecounter->textfont(1); | |||||
lastnotecounter->textsize(11); | |||||
lastnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
lastnotecounter->when(FL_WHEN_CHANGED); | |||||
o->init("Plastkey"); | |||||
} // Fl_Osc_Counter* lastnotecounter | |||||
{ Fl_Osc_Counter* o = middlenotecounter = new Fl_Osc_Counter(199, 267, 42, 18, "Midle note"); | |||||
middlenotecounter->tooltip("Midle note (where scale degree 0 is mapped to)"); | |||||
middlenotecounter->type(1); | |||||
middlenotecounter->box(FL_UP_BOX); | |||||
middlenotecounter->color(FL_BACKGROUND_COLOR); | |||||
middlenotecounter->selection_color(FL_INACTIVE_COLOR); | |||||
middlenotecounter->labeltype(FL_NORMAL_LABEL); | |||||
middlenotecounter->labelfont(0); | |||||
middlenotecounter->labelsize(10); | |||||
middlenotecounter->labelcolor(FL_FOREGROUND_COLOR); | |||||
middlenotecounter->minimum(0); | |||||
middlenotecounter->maximum(127); | |||||
middlenotecounter->step(1); | |||||
middlenotecounter->value(60); | |||||
middlenotecounter->textfont(1); | |||||
middlenotecounter->textsize(11); | |||||
middlenotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
middlenotecounter->when(FL_WHEN_CHANGED); | |||||
o->init("Pmiddlenote"); | |||||
} // Fl_Osc_Counter* middlenotecounter | |||||
{ Fl_Osc_Output* o = mapsizeoutput = new Fl_Osc_Output(201, 382, 44, 20, "Map Size"); | |||||
mapsizeoutput->box(FL_NO_BOX); | |||||
mapsizeoutput->color(FL_BACKGROUND_COLOR); | |||||
mapsizeoutput->selection_color(FL_BACKGROUND_COLOR); | |||||
mapsizeoutput->labeltype(FL_NORMAL_LABEL); | |||||
mapsizeoutput->labelfont(0); | |||||
mapsizeoutput->labelsize(10); | |||||
mapsizeoutput->labelcolor(FL_FOREGROUND_COLOR); | |||||
mapsizeoutput->maximum(500); | |||||
mapsizeoutput->step(1); | |||||
mapsizeoutput->value(12); | |||||
mapsizeoutput->textfont(1); | |||||
mapsizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
mapsizeoutput->when(FL_WHEN_CHANGED); | |||||
o->init("Pmapsize"); | |||||
} // Fl_Osc_Output* mapsizeoutput | |||||
keymappinggroup->end(); | |||||
} // Fl_Group* keymappinggroup | |||||
{ Fl_Osc_Check* o = mappingenabledbutton = new Fl_Osc_Check(198, 150, 48, 21, "ON"); | |||||
mappingenabledbutton->tooltip("Enable the Mapping (otherwise the mapping is linear)"); | |||||
mappingenabledbutton->box(FL_FLAT_BOX); | |||||
mappingenabledbutton->down_box(FL_DOWN_BOX); | |||||
mappingenabledbutton->color(FL_BACKGROUND_COLOR); | |||||
mappingenabledbutton->selection_color(FL_FOREGROUND_COLOR); | |||||
mappingenabledbutton->labeltype(FL_NORMAL_LABEL); | |||||
mappingenabledbutton->labelfont(1); | |||||
mappingenabledbutton->labelsize(14); | |||||
mappingenabledbutton->labelcolor(FL_FOREGROUND_COLOR); | |||||
mappingenabledbutton->callback((Fl_Callback*)cb_mappingenabledbutton); | |||||
mappingenabledbutton->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
mappingenabledbutton->when(FL_WHEN_RELEASE); | |||||
o->init("Pmappingenabled"); | |||||
} // Fl_Osc_Check* mappingenabledbutton | |||||
{ Fl_Button* o = new Fl_Button(243, 428, 84, 16, "Import .kbm file"); | |||||
o->tooltip("Inport Scala .kbm file (keyboard mapping)"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->labelfont(1); | |||||
o->labelsize(10); | |||||
o->callback((Fl_Callback*)cb_Import1); | |||||
} // Fl_Button* o | |||||
microtonalgroup->end(); | |||||
} // Fl_Group* microtonalgroup | |||||
{ Fl_Group* o = new Fl_Group(108, 2, 140, 45); | |||||
o->box(FL_ENGRAVED_FRAME); | |||||
{ Fl_Osc_Counter* o = anotecounter = new Fl_Osc_Counter(173, 17, 65, 20, "\"A\" Note"); | |||||
anotecounter->tooltip("The \"A\" note (the reference note for which freq. (\"A\" freq) is given)"); | |||||
anotecounter->box(FL_UP_BOX); | |||||
anotecounter->color(FL_BACKGROUND_COLOR); | |||||
anotecounter->selection_color(FL_INACTIVE_COLOR); | |||||
anotecounter->labeltype(FL_NORMAL_LABEL); | |||||
anotecounter->labelfont(1); | |||||
anotecounter->labelsize(10); | |||||
anotecounter->labelcolor(FL_FOREGROUND_COLOR); | |||||
anotecounter->minimum(0); | |||||
anotecounter->maximum(127); | |||||
anotecounter->step(1); | |||||
anotecounter->value(69); | |||||
anotecounter->textfont(1); | |||||
anotecounter->textsize(10); | |||||
anotecounter->callback((Fl_Callback*)cb_anotecounter); | |||||
anotecounter->align(Fl_Align(129)); | |||||
anotecounter->when(FL_WHEN_CHANGED); | |||||
o->lstep(12); | |||||
o->init("PAnote"); | |||||
} // Fl_Osc_Counter* anotecounter | |||||
{ Fl_Osc_Value* o = afreqinput = new Fl_Osc_Value(118, 17, 45, 20, "\"A\" Freq."); | |||||
afreqinput->tooltip("The freq. of \"A\" note (default=440.0)"); | |||||
afreqinput->box(FL_DOWN_BOX); | |||||
afreqinput->color(FL_BACKGROUND2_COLOR); | |||||
afreqinput->selection_color(FL_SELECTION_COLOR); | |||||
afreqinput->labeltype(FL_NORMAL_LABEL); | |||||
afreqinput->labelfont(1); | |||||
afreqinput->labelsize(10); | |||||
afreqinput->labelcolor(FL_FOREGROUND_COLOR); | |||||
afreqinput->minimum(1); | |||||
afreqinput->maximum(20000); | |||||
afreqinput->step(0.001); | |||||
afreqinput->value(440); | |||||
afreqinput->textfont(1); | |||||
afreqinput->textsize(10); | |||||
afreqinput->align(Fl_Align(FL_ALIGN_TOP)); | |||||
afreqinput->when(FL_WHEN_CHANGED); | |||||
o->init("PAfreq"); | |||||
} // Fl_Osc_Value* afreqinput | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
{ Fl_Button* o = new Fl_Button(333, 413, 67, 28, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
{ Fl_Osc_Check* o = new Fl_Osc_Check(3, 3, 102, 45, "Enable Microtonal"); | |||||
o->box(FL_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(1); | |||||
o->labelsize(11); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->callback((Fl_Callback*)cb_Enable); | |||||
o->align(Fl_Align(132|FL_ALIGN_INSIDE)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
o->init("Penabled"); | |||||
} // Fl_Osc_Check* o | |||||
microtonaluiwindow->end(); | |||||
} // Fl_Osc_Window* microtonaluiwindow | |||||
return microtonaluiwindow; | |||||
} | |||||
void MicrotonalUI::updateTuningsInput() { | |||||
tuningsinput->update(); | |||||
} | |||||
void MicrotonalUI::updateMappingInput() { | |||||
mappinginput->update(); | |||||
} | |||||
MicrotonalUI::MicrotonalUI(Fl_Osc_Interface *osc_, std::string base) { | |||||
osc=osc_;make_window(osc, base); | |||||
} | |||||
MicrotonalUI::~MicrotonalUI() { | |||||
microtonaluiwindow->hide(); | |||||
delete(microtonaluiwindow); | |||||
} | |||||
void MicrotonalUI::show() { | |||||
microtonaluiwindow->show(); | |||||
} | |||||
void MicrotonalUI::apply() { | |||||
osc->write("/microtonal/tunings", "s", tuningsinput->value()); | |||||
osc->write("/microtonal/mapping", "s", mappinginput->value()); | |||||
octavesizeoutput->update(); | |||||
mapsizeoutput->update(); | |||||
anotecounter->update(); | |||||
} |
@@ -1,79 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef MicrotonalUI_h | |||||
#define MicrotonalUI_h | |||||
#include <FL/Fl.H> | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <string.h> | |||||
#include <FL/Fl_File_Chooser.H> | |||||
#include <FL/fl_ask.H> | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "Fl_Osc_Value.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Counter.H" | |||||
#include "Fl_Osc_Input.H" | |||||
#include "Fl_Osc_Output.H" | |||||
#include "../Misc/Microtonal.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Button.H> | |||||
class MicrotonalUI { | |||||
public: | |||||
Fl_Osc_Window* make_window(Fl_Osc_Interface *osc, std::string base); | |||||
Fl_Osc_Window *microtonaluiwindow; | |||||
private: | |||||
void cb_Invert_i(Fl_Osc_Check*, void*); | |||||
static void cb_Invert(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Counter *centerinvertcounter; | |||||
Fl_Group *microtonalgroup; | |||||
Fl_Button *applybutton; | |||||
private: | |||||
void cb_applybutton_i(Fl_Button*, void*); | |||||
static void cb_applybutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Output *octavesizeoutput; | |||||
Fl_Osc_Input *nameinput; | |||||
Fl_Osc_Input *tuningsinput; | |||||
Fl_Osc_Input *commentinput; | |||||
private: | |||||
void cb_Import_i(Fl_Button*, void*); | |||||
static void cb_Import(Fl_Button*, void*); | |||||
public: | |||||
Fl_Group *keymappinggroup; | |||||
Fl_Osc_Input *mappinginput; | |||||
Fl_Osc_Counter *firstnotecounter; | |||||
Fl_Osc_Counter *lastnotecounter; | |||||
Fl_Osc_Counter *middlenotecounter; | |||||
Fl_Osc_Output *mapsizeoutput; | |||||
Fl_Osc_Check *mappingenabledbutton; | |||||
private: | |||||
void cb_mappingenabledbutton_i(Fl_Osc_Check*, void*); | |||||
static void cb_mappingenabledbutton(Fl_Osc_Check*, void*); | |||||
void cb_Import1_i(Fl_Button*, void*); | |||||
static void cb_Import1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Counter *anotecounter; | |||||
private: | |||||
void cb_anotecounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_anotecounter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Value *afreqinput; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_Enable_i(Fl_Osc_Check*, void*); | |||||
static void cb_Enable(Fl_Osc_Check*, void*); | |||||
public: | |||||
void updateTuningsInput(); | |||||
void updateMappingInput(); | |||||
MicrotonalUI(Fl_Osc_Interface *osc_, std::string base); | |||||
~MicrotonalUI(); | |||||
void show(); | |||||
void apply(); | |||||
private: | |||||
Fl_Osc_Interface *osc; | |||||
}; | |||||
#endif |
@@ -1,260 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef OscilGenUI_h | |||||
#define OscilGenUI_h | |||||
#include <FL/Fl.H> | |||||
#include "../Synth/OscilGen.h" | |||||
#include "../Misc/Util.h" | |||||
#include "ResonanceUI.h" | |||||
#include "Fl_Oscilloscope.h" | |||||
#include "Fl_OscilSpectrum.h" | |||||
#include "Fl_Osc_Interface.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Slider.H> | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Choice.H" | |||||
#include "Fl_Osc_Counter.H" | |||||
#include "Fl_Osc_TSlider.H" | |||||
#include "Fl_Osc_VSlider.H" | |||||
#include "PresetsUI.h" | |||||
#include <FL/fl_draw.H> | |||||
using namespace zyncarla; | |||||
class OGSlider : public Fl_Osc_TSlider { | |||||
public: | |||||
OGSlider(int x,int y, int w, int h, const char *label=0) | |||||
; | |||||
void OSC_value(char c); | |||||
void cb(void); | |||||
void update(void); | |||||
bool phase; | |||||
}; | |||||
class OGWaveChoice : public Fl_Osc_Choice { | |||||
public: | |||||
OGWaveChoice(int x,int y, int w, int h, const char *label=0) | |||||
; | |||||
void OSC_value(int i); | |||||
void cb(void); | |||||
class OscilEditor *ogui; | |||||
}; | |||||
#include <FL/Fl_Box.H> | |||||
class Oscilharmonic : public Fl_Group { | |||||
Fl_Osc_Group* make_window(); | |||||
Fl_Osc_Group *harmonic; | |||||
public: | |||||
OGSlider *mag; | |||||
private: | |||||
void cb_mag_i(OGSlider*, void*); | |||||
static void cb_mag(OGSlider*, void*); | |||||
public: | |||||
OGSlider *phase; | |||||
private: | |||||
void cb_phase_i(OGSlider*, void*); | |||||
static void cb_phase(OGSlider*, void*); | |||||
public: | |||||
Oscilharmonic(int x,int y, int w, int h, const char *label=0); | |||||
void init(int n_,Fl_Group *display_, std::string loc_, Fl_Osc_Interface *osc_); | |||||
void refresh(); | |||||
~Oscilharmonic(); | |||||
private: | |||||
Fl_Group *display; | |||||
int n; | |||||
Fl_Osc_Interface *osc; | |||||
std::string loc; | |||||
}; | |||||
#include <FL/Fl_Double_Window.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Value_Output.H> | |||||
#include <FL/Fl_Check_Button.H> | |||||
#include <FL/Fl_Scroll.H> | |||||
#include <FL/Fl_Pack.H> | |||||
class OscilEditor : public PresetsUI_ { | |||||
public: | |||||
Fl_Double_Window* make_window(); | |||||
Fl_Double_Window *osceditUI; | |||||
Fl_Osc_Group *dummy; | |||||
Fl_Button *applybutton; | |||||
private: | |||||
void cb_applybutton_i(Fl_Button*, void*); | |||||
static void cb_applybutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Group *oscildisplaygroup; | |||||
Fl_Osc_VSlider *rndslider; | |||||
Fl_Osc_Choice *hrndtype; | |||||
static Fl_Menu_Item menu_hrndtype[]; | |||||
Fl_Osc_Dial *hrnddial; | |||||
Fl_Osc_Choice *magtype; | |||||
private: | |||||
void cb_magtype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_magtype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_magtype[]; | |||||
public: | |||||
Fl_Osc_Group *basefuncdisplaygroup; | |||||
Fl_Osc_Dial *bfpar; | |||||
private: | |||||
void cb_bfpar_i(Fl_Osc_Dial*, void*); | |||||
static void cb_bfpar(Fl_Osc_Dial*, void*); | |||||
public: | |||||
OGWaveChoice *bftype; | |||||
private: | |||||
void cb_bftype_i(OGWaveChoice*, void*); | |||||
static void cb_bftype(OGWaveChoice*, void*); | |||||
static Fl_Menu_Item menu_bftype[]; | |||||
public: | |||||
Fl_Value_Output *bfparval; | |||||
Fl_Group *basefuncmodulation; | |||||
Fl_Osc_Choice *bfmodtype; | |||||
private: | |||||
void cb_bfmodtype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_bfmodtype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_bfmodtype[]; | |||||
public: | |||||
Fl_Osc_Dial *bfmodpar1; | |||||
private: | |||||
void cb_bfmodpar1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_bfmodpar1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *bfmodpar2; | |||||
private: | |||||
void cb_bfmodpar2_i(Fl_Osc_Dial*, void*); | |||||
static void cb_bfmodpar2(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *bfmodpar3; | |||||
private: | |||||
void cb_bfmodpar3_i(Fl_Osc_Dial*, void*); | |||||
static void cb_bfmodpar3(Fl_Osc_Dial*, void*); | |||||
void cb_Use_i(Fl_Button*, void*); | |||||
static void cb_Use(Fl_Button*, void*); | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_Clear_i(Fl_Button*, void*); | |||||
static void cb_Clear(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *wshbutton; | |||||
private: | |||||
void cb_wshbutton_i(Fl_Osc_Choice*, void*); | |||||
static void cb_wshbutton(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_wshbutton[]; | |||||
public: | |||||
Fl_Osc_Dial *wshpar; | |||||
private: | |||||
void cb_wshpar_i(Fl_Osc_Dial*, void*); | |||||
static void cb_wshpar(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Value_Output *wsparval; | |||||
Fl_Check_Button *autoclearbutton; | |||||
Fl_Osc_Choice *fltbutton; | |||||
private: | |||||
void cb_fltbutton_i(Fl_Osc_Choice*, void*); | |||||
static void cb_fltbutton(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_fltbutton[]; | |||||
public: | |||||
Fl_Osc_Dial *filtervalue1; | |||||
private: | |||||
void cb_filtervalue1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_filtervalue1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Check_Button *filterpref; | |||||
private: | |||||
void cb_filterpref_i(Fl_Check_Button*, void*); | |||||
static void cb_filterpref(Fl_Check_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *filtervalue2; | |||||
private: | |||||
void cb_filtervalue2_i(Fl_Osc_Dial*, void*); | |||||
static void cb_filtervalue2(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Choice *sabutton; | |||||
private: | |||||
void cb_sabutton_i(Fl_Osc_Choice*, void*); | |||||
static void cb_sabutton(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_sabutton[]; | |||||
public: | |||||
Fl_Osc_Dial *sadjpar; | |||||
private: | |||||
void cb_sadjpar_i(Fl_Osc_Dial*, void*); | |||||
static void cb_sadjpar(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Counter *harmonicshiftcounter; | |||||
private: | |||||
void cb_harmonicshiftcounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_harmonicshiftcounter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Check *harmonicshiftpre; | |||||
private: | |||||
void cb_harmonicshiftpre_i(Fl_Osc_Check*, void*); | |||||
static void cb_harmonicshiftpre(Fl_Osc_Check*, void*); | |||||
void cb_R_i(Fl_Button*, void*); | |||||
static void cb_R(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *adhrtype; | |||||
private: | |||||
void cb_adhrtype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_adhrtype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_adhrtype[]; | |||||
public: | |||||
Fl_Osc_Dial *adhrpow; | |||||
private: | |||||
void cb_adhrpow_i(Fl_Osc_Dial*, void*); | |||||
static void cb_adhrpow(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *adhrbf; | |||||
private: | |||||
void cb_adhrbf_i(Fl_Osc_Dial*, void*); | |||||
static void cb_adhrbf(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_TSlider *adhrpar; | |||||
private: | |||||
void cb_adhrpar_i(Fl_Osc_TSlider*, void*); | |||||
static void cb_adhrpar(Fl_Osc_TSlider*, void*); | |||||
public: | |||||
Fl_Osc_Choice *modtype; | |||||
private: | |||||
void cb_modtype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_modtype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_modtype[]; | |||||
public: | |||||
Fl_Osc_Dial *modpar1; | |||||
private: | |||||
void cb_modpar1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_modpar1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *modpar2; | |||||
private: | |||||
void cb_modpar2_i(Fl_Osc_Dial*, void*); | |||||
static void cb_modpar2(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *modpar3; | |||||
private: | |||||
void cb_modpar3_i(Fl_Osc_Dial*, void*); | |||||
static void cb_modpar3(Fl_Osc_Dial*, void*); | |||||
void cb_Sine_i(Fl_Button*, void*); | |||||
static void cb_Sine(Fl_Button*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Scroll *_this_has_to_be_the_last; | |||||
Fl_Pack *harmonics; | |||||
OscilEditor(bool adnotep_, std::string loc_, Fl_Osc_Interface *osc_); | |||||
~OscilEditor(); | |||||
void refresh(); | |||||
void redrawoscil(); | |||||
void setbfmodstatus(int menuentry); | |||||
private: | |||||
Oscilharmonic *h[(MAX_AD_HARMONICS - 1)]; | |||||
std::string loc; | |||||
Fl_Osc_Interface *osc; | |||||
Fl_Oscilloscope *oscilo, *oscilo_base; | |||||
Fl_OscilSpectrum *oscils, *oscils_base; | |||||
bool adnotep; | |||||
bool initialized; | |||||
}; | |||||
#endif |
@@ -1,247 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef PADnoteUI_h | |||||
#define PADnoteUI_h | |||||
#include <FL/Fl.H> | |||||
#include "../Params/PADnoteParameters.h" | |||||
#include "ResonanceUI.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_File_Chooser.H> | |||||
#include <string> | |||||
#include "Fl_Osc_TSlider.H" | |||||
#include "Fl_Osc_VSlider.H" | |||||
#include "EnvelopeUI.h" | |||||
#include "LFOUI.h" | |||||
#include "FilterUI.h" | |||||
#include "OscilGenUI.h" | |||||
#include "Fl_PADnoteOvertonePosition.h" | |||||
#include "Fl_PADnoteHarmonicProfile.h" | |||||
#include "PresetsUI.h" | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Tabs.H> | |||||
#include <FL/Fl_Group.H> | |||||
#include <FL/Fl_Button.H> | |||||
class PADnoteUI : public PresetsUI_ { | |||||
public: | |||||
PADnoteUI(std::string location_, Fl_Osc_Interface *osc_); | |||||
Fl_Osc_Window* make_window(); | |||||
Fl_Osc_Window *padnotewindow; | |||||
Fl_Box *dummy; | |||||
private: | |||||
void cb__i(Fl_Tabs*, void*); | |||||
static void cb_(Fl_Tabs*, void*); | |||||
public: | |||||
Fl_Osc_Group *harmonicstructuregroup; | |||||
Fl_Osc_Group *bwprofilegroup; | |||||
Fl_Osc_Dial *hpbasepar1; | |||||
private: | |||||
void cb_hpbasepar1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpbasepar1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Choice *hpbasetype; | |||||
private: | |||||
void cb_hpbasetype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_hpbasetype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_hpbasetype[]; | |||||
public: | |||||
Fl_Osc_Dial *hpfreqmult; | |||||
private: | |||||
void cb_hpfreqmult_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpfreqmult(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *hpmpar1; | |||||
private: | |||||
void cb_hpmpar1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpmpar1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *hpmfreq; | |||||
private: | |||||
void cb_hpmfreq_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpmfreq(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Choice *hpamptype; | |||||
private: | |||||
void cb_hpamptype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_hpamptype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_hpamptype[]; | |||||
public: | |||||
Fl_Osc_Choice *hpampmode; | |||||
private: | |||||
void cb_hpampmode_i(Fl_Osc_Choice*, void*); | |||||
static void cb_hpampmode(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_hpampmode[]; | |||||
public: | |||||
Fl_Osc_Dial *hpamppar1; | |||||
private: | |||||
void cb_hpamppar1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpamppar1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *hpamppar2; | |||||
private: | |||||
void cb_hpamppar2_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpamppar2(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Check *hpautoscale; | |||||
private: | |||||
void cb_hpautoscale_i(Fl_Osc_Check*, void*); | |||||
static void cb_hpautoscale(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Choice *hponehalf; | |||||
private: | |||||
void cb_hponehalf_i(Fl_Osc_Choice*, void*); | |||||
static void cb_hponehalf(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_hponehalf[]; | |||||
public: | |||||
Fl_Osc_Dial *hpwidth; | |||||
private: | |||||
void cb_hpwidth_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hpwidth(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Group *oscilgroup; | |||||
private: | |||||
void cb_Change_i(Fl_Button*, void*); | |||||
static void cb_Change(Fl_Button*, void*); | |||||
public: | |||||
Fl_Box *cbwidget; | |||||
private: | |||||
void cb_cbwidget_i(Fl_Box*, void*); | |||||
static void cb_cbwidget(Fl_Box*, void*); | |||||
void cb_Resonance_i(Fl_Button*, void*); | |||||
static void cb_Resonance(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *bwdial; | |||||
private: | |||||
void cb_bwdial_i(Fl_Osc_Dial*, void*); | |||||
static void cb_bwdial(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Output *bwcents; | |||||
Fl_Osc_Choice *hrpostype; | |||||
private: | |||||
void cb_hrpostype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_hrpostype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_hrpostype[]; | |||||
public: | |||||
Fl_Osc_Dial *hrpospar1; | |||||
private: | |||||
void cb_hrpospar1_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hrpospar1(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *hrpospar2; | |||||
private: | |||||
void cb_hrpospar2_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hrpospar2(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Dial *hrpospar3; | |||||
private: | |||||
void cb_hrpospar3_i(Fl_Osc_Dial*, void*); | |||||
static void cb_hrpospar3(Fl_Osc_Dial*, void*); | |||||
public: | |||||
Fl_Osc_Choice *bwscale; | |||||
private: | |||||
void cb_bwscale_i(Fl_Osc_Choice*, void*); | |||||
static void cb_bwscale(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_bwscale[]; | |||||
public: | |||||
Fl_Group *overtonepos; | |||||
Fl_Osc_Choice *qsamplesize; | |||||
private: | |||||
void cb_qsamplesize_i(Fl_Osc_Choice*, void*); | |||||
static void cb_qsamplesize(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_qsamplesize[]; | |||||
public: | |||||
Fl_Osc_Choice *qsmpoct; | |||||
private: | |||||
void cb_qsmpoct_i(Fl_Osc_Choice*, void*); | |||||
static void cb_qsmpoct(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_qsmpoct[]; | |||||
public: | |||||
Fl_Osc_Choice *qoct; | |||||
private: | |||||
void cb_qoct_i(Fl_Osc_Choice*, void*); | |||||
static void cb_qoct(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_qoct[]; | |||||
public: | |||||
Fl_Osc_Choice *qbasenote; | |||||
private: | |||||
void cb_qbasenote_i(Fl_Osc_Choice*, void*); | |||||
static void cb_qbasenote(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_qbasenote[]; | |||||
public: | |||||
Fl_Group *hprofile; | |||||
Fl_Osc_Choice *spectrummode; | |||||
private: | |||||
void cb_spectrummode_i(Fl_Osc_Choice*, void*); | |||||
static void cb_spectrummode(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_spectrummode[]; | |||||
public: | |||||
EnvelopeUI *freqenv; | |||||
Fl_Osc_Counter *octave; | |||||
Fl_Osc_Counter *coarsedet; | |||||
LFOUI *freqlfo; | |||||
Fl_Osc_Slider *detune; | |||||
private: | |||||
void cb_detune_i(Fl_Osc_Slider*, void*); | |||||
static void cb_detune(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Output *detunevalueoutput; | |||||
Fl_Osc_Choice *detunetype; | |||||
private: | |||||
void cb_detunetype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_detunetype(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Osc_Dial *bendadjustdial; | |||||
Fl_Osc_Dial *offsethzdial; | |||||
Fl_Osc_Check *hz440; | |||||
private: | |||||
void cb_hz440_i(Fl_Osc_Check*, void*); | |||||
static void cb_hz440(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Dial *fixedfreqetdial; | |||||
Fl_Osc_VSlider *volume; | |||||
Fl_Osc_VSlider *vsns; | |||||
Fl_Osc_Dial *pan; | |||||
Fl_Osc_Dial *pstr; | |||||
Fl_Osc_Dial *pt; | |||||
Fl_Osc_Dial *pstc; | |||||
Fl_Osc_Dial *pvel; | |||||
EnvelopeUI *ampenv; | |||||
LFOUI *amplfo; | |||||
Fl_Osc_Check *stereo; | |||||
private: | |||||
void cb_stereo_i(Fl_Osc_Check*, void*); | |||||
static void cb_stereo(Fl_Osc_Check*, void*); | |||||
public: | |||||
EnvelopeUI *filterenv; | |||||
LFOUI *filterlfo; | |||||
FilterUI *filterui; | |||||
Fl_Button *applybutton; | |||||
private: | |||||
void cb_applybutton_i(Fl_Button*, void*); | |||||
static void cb_applybutton(Fl_Button*, void*); | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
void cb_export_i(Fl_Osc_Button*, void*); | |||||
static void cb_export(Fl_Osc_Button*, void*); | |||||
public: | |||||
void refresh(); | |||||
~PADnoteUI(); | |||||
OscilEditor *oscui; | |||||
private: | |||||
bool initialized; | |||||
public: | |||||
Fl_Oscilloscope *osc; | |||||
ResonanceUI *resui; | |||||
private: | |||||
std::string location; | |||||
Fl_Osc_Interface *osc_i; | |||||
PADnoteHarmonicProfile *hpui; | |||||
PADnoteOvertonePosition *opui; | |||||
class Osc_IntModel *apply_watcher; | |||||
}; | |||||
#endif |
@@ -1,274 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef PartUI_h | |||||
#define PartUI_h | |||||
#include <FL/Fl.H> | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <string.h> | |||||
#include <string> | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Input.H" | |||||
#include "PartNameButton.h" | |||||
#include "EffUI.h" | |||||
#include "BankUI.h" | |||||
#include "ADnoteUI.h" | |||||
#include "SUBnoteUI.h" | |||||
#include "PADnoteUI.h" | |||||
#include "../Misc/Config.h" | |||||
#include "../Misc/Master.h" | |||||
#include "../Misc/Part.h" | |||||
class PartSysEffSend : public Fl_Group { | |||||
Fl_Group* make_window(); | |||||
Fl_Group *syseffsend; | |||||
public: | |||||
Fl_Osc_Dial *widget; | |||||
PartSysEffSend(int x,int y, int w, int h, const char *label=0); | |||||
void init(int npart_,int neff_); | |||||
void rebase(int part); | |||||
~PartSysEffSend(); | |||||
private: | |||||
int neff; | |||||
int npart; | |||||
}; | |||||
#include <FL/Fl_Button.H> | |||||
class PartKitItem : public Fl_Osc_Group { | |||||
Fl_Osc_Group* make_window(); | |||||
Fl_Osc_Group *partkititem; | |||||
Fl_Osc_Group *partkititemgroup; | |||||
public: | |||||
Fl_Osc_Counter *minkcounter; | |||||
private: | |||||
void cb_m_i(Fl_Osc_Button*, void*); | |||||
static void cb_m(Fl_Osc_Button*, void*); | |||||
void cb_M_i(Fl_Osc_Button*, void*); | |||||
static void cb_M(Fl_Osc_Button*, void*); | |||||
void cb_R_i(Fl_Button*, void*); | |||||
static void cb_R(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *adeditbutton; | |||||
private: | |||||
void cb_adeditbutton_i(Fl_Button*, void*); | |||||
static void cb_adeditbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *subeditbutton; | |||||
private: | |||||
void cb_subeditbutton_i(Fl_Button*, void*); | |||||
static void cb_subeditbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *mutedcheck; | |||||
Fl_Osc_Counter *maxkcounter; | |||||
Fl_Osc_Input *labelbutton; | |||||
private: | |||||
void cb_labelbutton_i(Fl_Osc_Input*, void*); | |||||
static void cb_labelbutton(Fl_Osc_Input*, void*); | |||||
Fl_Osc_Check *adcheck; | |||||
void cb_adcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_adcheck(Fl_Osc_Check*, void*); | |||||
Fl_Osc_Check *subcheck; | |||||
void cb_subcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_subcheck(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Choice *sendtoeffect; | |||||
Fl_Button *padeditbutton; | |||||
private: | |||||
void cb_padeditbutton_i(Fl_Button*, void*); | |||||
static void cb_padeditbutton(Fl_Button*, void*); | |||||
Fl_Osc_Check *padcheck; | |||||
void cb_padcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_padcheck(Fl_Osc_Check*, void*); | |||||
Fl_Osc_Check *enabledcheck; | |||||
void cb_enabledcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_enabledcheck(Fl_Osc_Check*, void*); | |||||
public: | |||||
PartKitItem(int x,int y, int w, int h, const char *label=0); | |||||
void refresh(); | |||||
void init(int n_,class PartUI *partui_); | |||||
~PartKitItem(); | |||||
private: | |||||
int n; | |||||
char label[10]; | |||||
class PartUI *partui; | |||||
}; | |||||
#include <FL/Fl_Scroll.H> | |||||
#include <FL/Fl_Pack.H> | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Check_Button.H> | |||||
#include <FL/Fl_Counter.H> | |||||
#include <FL/Fl_Group.H> | |||||
class PartUI : public Fl_Osc_Group { | |||||
Fl_Group* make_window(); | |||||
Fl_Group *partgroup; | |||||
public: | |||||
Fl_Osc_Group *partgroupui; | |||||
private: | |||||
void cb_Grand_i(PartNameButton*, void*); | |||||
static void cb_Grand(PartNameButton*, void*); | |||||
public: | |||||
Fl_Osc_Counter *minkcounter; | |||||
private: | |||||
void cb_minkcounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_minkcounter(Fl_Osc_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Counter *maxkcounter; | |||||
private: | |||||
void cb_maxkcounter_i(Fl_Osc_Counter*, void*); | |||||
static void cb_maxkcounter(Fl_Osc_Counter*, void*); | |||||
void cb_Controllers_i(Fl_Button*, void*); | |||||
static void cb_Controllers(Fl_Button*, void*); | |||||
void cb_Edit_i(Fl_Button*, void*); | |||||
static void cb_Edit(Fl_Button*, void*); | |||||
void cb_m1_i(Fl_Osc_Button*, void*); | |||||
static void cb_m1(Fl_Osc_Button*, void*); | |||||
void cb_M1_i(Fl_Osc_Button*, void*); | |||||
static void cb_M1(Fl_Osc_Button*, void*); | |||||
void cb_R1_i(Fl_Osc_Button*, void*); | |||||
static void cb_R1(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Counter *keylimitlist; | |||||
Fl_Osc_Check *partenablebutton; | |||||
private: | |||||
void cb_partenablebutton_i(Fl_Osc_Check*, void*); | |||||
static void cb_partenablebutton(Fl_Osc_Check*, void*); | |||||
Fl_Osc_Window *ctlwindow; | |||||
public: | |||||
Fl_Check_Button *benddir; | |||||
private: | |||||
void cb_benddir_i(Fl_Check_Button*, void*); | |||||
static void cb_benddir(Fl_Check_Button*, void*); | |||||
public: | |||||
Fl_Osc_Counter *bendrng; | |||||
Fl_Osc_Check *bendsplt; | |||||
private: | |||||
void cb_bendsplt_i(Fl_Osc_Check*, void*); | |||||
static void cb_bendsplt(Fl_Osc_Check*, void*); | |||||
void cb_Sustain_i(Fl_Osc_Check*, void*); | |||||
static void cb_Sustain(Fl_Osc_Check*, void*); | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_Reset_i(Fl_Osc_Button*, void*); | |||||
static void cb_Reset(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Dial *propta; | |||||
Fl_Osc_Dial *proptb; | |||||
private: | |||||
void cb_Proprt_i(Fl_Osc_Check*, void*); | |||||
static void cb_Proprt(Fl_Osc_Check*, void*); | |||||
Fl_Osc_Window *partfx; | |||||
public: | |||||
Fl_Counter *inseffnocounter; | |||||
private: | |||||
void cb_inseffnocounter_i(Fl_Counter*, void*); | |||||
static void cb_inseffnocounter(Fl_Counter*, void*); | |||||
public: | |||||
Fl_Osc_Choice *insefftype; | |||||
private: | |||||
void cb_insefftype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_insefftype(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_insefftype[]; | |||||
public: | |||||
Fl_Osc_Group *inseffectuigroup; | |||||
EffUI *inseffectui; | |||||
private: | |||||
void cb_Close1_i(Fl_Button*, void*); | |||||
static void cb_Close1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *sendtochoice; | |||||
private: | |||||
void cb_sendtochoice_i(Fl_Osc_Choice*, void*); | |||||
static void cb_sendtochoice(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_sendtochoice[]; | |||||
public: | |||||
Fl_Osc_Check *bypasseff; | |||||
private: | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *instrumentkitlist; | |||||
private: | |||||
void cb_Close2_i(Fl_Button*, void*); | |||||
static void cb_Close2(Fl_Button*, void*); | |||||
public: | |||||
Fl_Scroll *kitlist; | |||||
private: | |||||
void cb_Mode_i(Fl_Osc_Choice*, void*); | |||||
static void cb_Mode(Fl_Osc_Choice*, void*); | |||||
static Fl_Menu_Item menu_Mode[]; | |||||
void cb_Comments_i(Fl_Button*, void*); | |||||
static void cb_Comments(Fl_Button*, void*); | |||||
void cb_Effects_i(Fl_Button*, void*); | |||||
static void cb_Effects(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Window *instrumenteditwindow; | |||||
Fl_Osc_Group *editgroup; | |||||
Fl_Button *padeditbutton; | |||||
private: | |||||
void cb_padeditbutton1_i(Fl_Button*, void*); | |||||
static void cb_padeditbutton1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *padsynenabledcheck; | |||||
private: | |||||
void cb_padsynenabledcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_padsynenabledcheck(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Check *adsynenabledcheck; | |||||
private: | |||||
void cb_adsynenabledcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_adsynenabledcheck(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Button *adeditbutton; | |||||
private: | |||||
void cb_adeditbutton1_i(Fl_Button*, void*); | |||||
static void cb_adeditbutton1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *subsynenabledcheck; | |||||
private: | |||||
void cb_subsynenabledcheck_i(Fl_Osc_Check*, void*); | |||||
static void cb_subsynenabledcheck(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Button *subeditbutton; | |||||
private: | |||||
void cb_subeditbutton1_i(Fl_Button*, void*); | |||||
static void cb_subeditbutton1(Fl_Button*, void*); | |||||
void cb_Kit_i(Fl_Button*, void*); | |||||
static void cb_Kit(Fl_Button*, void*); | |||||
void cb_Effects1_i(Fl_Button*, void*); | |||||
static void cb_Effects1(Fl_Button*, void*); | |||||
void cb_Author_i(Fl_Osc_Input*, void*); | |||||
static void cb_Author(Fl_Osc_Input*, void*); | |||||
void cb_Comments1_i(Fl_Osc_Input*, void*); | |||||
static void cb_Comments1(Fl_Osc_Input*, void*); | |||||
static Fl_Menu_Item menu_Type[]; | |||||
void cb_Close3_i(Fl_Button*, void*); | |||||
static void cb_Close3(Fl_Button*, void*); | |||||
public: | |||||
PartUI(int x,int y, int w, int h, const char *label=0); | |||||
void init(std::string part_path_, int npart_,BankUI *bankui_, std::string loc_, Fl_Osc_Interface *osc_); | |||||
int cleanuplastkit(int kititem); | |||||
void showparameters(int kititem,int engine); | |||||
void showvoiceparams(int kititem, bool voicelist); | |||||
~PartUI(); | |||||
private: | |||||
BankUI *bankui; | |||||
public: | |||||
ADnoteUI *adnoteui; | |||||
private: | |||||
SUBnoteUI *subnoteui; | |||||
PADnoteUI *padnoteui; | |||||
PartSysEffSend *psyef[NUM_SYS_EFX]; | |||||
int npart; | |||||
int ninseff; | |||||
int lastkititem; | |||||
PartKitItem *partkititem[NUM_KIT_ITEMS]; | |||||
std::string part_path; | |||||
std::string loc; | |||||
Fl_Osc_Interface *osc; | |||||
public: | |||||
void rebase(std::string new_loc); | |||||
}; | |||||
#endif |
@@ -1,331 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/PresetsUI.h" | |||||
void PresetsUI_::refresh() { | |||||
; | |||||
} | |||||
PresetsUI_::~PresetsUI_() { | |||||
; | |||||
} | |||||
void PresetsUI::cb_copybrowse_i(Fl_Browser* o, void*) { | |||||
int val=o->value(); | |||||
if (val!=0){ | |||||
presetname->cut(0,presetname->maximum_size()); | |||||
presetname->insert(o->text(val)); | |||||
}; | |||||
} | |||||
void PresetsUI::cb_copybrowse(Fl_Browser* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_copybrowse_i(o,v); | |||||
} | |||||
void PresetsUI::cb_copypbutton_i(Fl_Button*, void*) { | |||||
const char *tmp=presetname->value(); | |||||
if (tmp!=NULL) { | |||||
if (strlen(tmp)>0){ | |||||
if(arraymode) | |||||
osc->write("/presets/copy", "ssi", url.c_str(), tmp, arrayidx); | |||||
else | |||||
osc->write("/presets/copy", "ss", url.c_str(), tmp); | |||||
copywin->hide(); | |||||
}; | |||||
}; | |||||
} | |||||
void PresetsUI::cb_copypbutton(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_copypbutton_i(o,v); | |||||
} | |||||
void PresetsUI::cb_copybutton_i(Fl_Button*, void*) { | |||||
if(arraymode) | |||||
osc->write("/presets/copy", "si", url.c_str(), arrayidx); | |||||
else | |||||
osc->write("/presets/copy", "s", url.c_str()); | |||||
copywin->hide(); | |||||
} | |||||
void PresetsUI::cb_copybutton(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_copybutton_i(o,v); | |||||
} | |||||
void PresetsUI::cb_Cancel_i(Fl_Button*, void*) { | |||||
copywin->hide(); | |||||
} | |||||
void PresetsUI::cb_Cancel(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_Cancel_i(o,v); | |||||
} | |||||
void PresetsUI::cb_presetname_i(Fl_Input* o, void*) { | |||||
const char *tmp=o->value(); | |||||
if (tmp==NULL) tmp=""; | |||||
if (strlen(tmp)>0) { | |||||
copybutton->deactivate(); | |||||
copypbutton->activate(); | |||||
} else { | |||||
copybutton->activate(); | |||||
copypbutton->deactivate(); | |||||
}; | |||||
} | |||||
void PresetsUI::cb_presetname(Fl_Input* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_presetname_i(o,v); | |||||
} | |||||
void PresetsUI::cb_pastebrowse_i(Fl_Browser* o, void*) { | |||||
if (o->value()==0) { | |||||
pastepbutton->deactivate(); | |||||
deletepbutton->deactivate(); | |||||
}else{ | |||||
pastepbutton->activate(); | |||||
deletepbutton->activate(); | |||||
}; | |||||
} | |||||
void PresetsUI::cb_pastebrowse(Fl_Browser* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_pastebrowse_i(o,v); | |||||
} | |||||
void PresetsUI::cb_pastepbutton_i(Fl_Button*, void*) { | |||||
int n=pastebrowse->value()-1; | |||||
if (n>=0){ | |||||
if(arraymode) | |||||
osc->write("/presets/paste", "ssi", url.c_str(), files[n].c_str(), arrayidx); | |||||
else | |||||
osc->write("/presets/paste", "ss", url.c_str(), files[n].c_str()); | |||||
} | |||||
pastewin->hide(); | |||||
pui->refresh(); | |||||
} | |||||
void PresetsUI::cb_pastepbutton(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_pastepbutton_i(o,v); | |||||
} | |||||
void PresetsUI::cb_pastebutton_i(Fl_Button*, void*) { | |||||
if(arraymode) | |||||
osc->write("/presets/paste", "si", url.c_str(), arrayidx); | |||||
else | |||||
osc->write("/presets/paste", "s", url.c_str()); | |||||
pastewin->hide(); | |||||
pui->refresh(); | |||||
} | |||||
void PresetsUI::cb_pastebutton(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_pastebutton_i(o,v); | |||||
} | |||||
void PresetsUI::cb_Cancel1_i(Fl_Button*, void*) { | |||||
pastewin->hide(); | |||||
} | |||||
void PresetsUI::cb_Cancel1(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_Cancel1_i(o,v); | |||||
} | |||||
void PresetsUI::cb_deletepbutton_i(Fl_Button*, void*) { | |||||
int n=pastebrowse->value()-1; | |||||
if (n>=0) { | |||||
osc->write("/presets/delete", "s", files[n].c_str()); | |||||
} | |||||
rescan(url); | |||||
} | |||||
void PresetsUI::cb_deletepbutton(Fl_Button* o, void* v) { | |||||
((PresetsUI*)(o->parent()->user_data()))->cb_deletepbutton_i(o,v); | |||||
} | |||||
PresetsUI::PresetsUI(Fl_Osc_Interface *osc_):listmodel(osc_), datamodel(osc_) { | |||||
osc = osc_; | |||||
arraymode = false; | |||||
make_window(); | |||||
listmodel.callback = [this](Osc_ListModel::list_t list) { | |||||
copybrowse->clear(); | |||||
pastebrowse->clear(); | |||||
files.clear(); | |||||
printf("adding entries<%s>...\n", datamodel.value.c_str()); | |||||
if(datamodel.value.empty()) | |||||
return; | |||||
for(unsigned i=0;i<list.size();++i){ | |||||
std::string type = std::get<2>(list[i]); | |||||
std::string comp = datamodel.value.substr(1); | |||||
if(arraymode) | |||||
comp += "n"; | |||||
bool same = comp == type; | |||||
same |= strstr(type.c_str(), "Plfo") && strstr(comp.c_str(), "Plfo"); | |||||
if(!same) | |||||
continue; | |||||
files.push_back(std::get<0>(list[i])); | |||||
copybrowse->add(std::get<1>(list[i]).c_str()); | |||||
pastebrowse->add(std::get<1>(list[i]).c_str()); | |||||
}}; | |||||
datamodel.callback = [this](Osc_DataModel::value_t val) { | |||||
printf("Value = %s\n", val.c_str()); | |||||
copytypetext->label(val.c_str()); | |||||
pastetypetext->label(val.c_str()); | |||||
listmodel.doUpdate("/presets/scan-for-presets"); | |||||
}; | |||||
} | |||||
PresetsUI::~PresetsUI() { | |||||
copywin->hide();delete(copywin); | |||||
pastewin->hide();delete(pastewin); | |||||
} | |||||
Fl_Double_Window* PresetsUI::make_window() { | |||||
{ copywin = new Fl_Double_Window(265, 430, "Copy to Clipboard/Preset"); | |||||
copywin->box(FL_THIN_UP_BOX); | |||||
copywin->color((Fl_Color)238); | |||||
copywin->user_data((void*)(this)); | |||||
{ copybrowse = new Fl_Browser(10, 25, 245, 320); | |||||
copybrowse->type(1); | |||||
copybrowse->callback((Fl_Callback*)cb_copybrowse); | |||||
} // Fl_Browser* copybrowse | |||||
{ copypbutton = new Fl_Button(145, 355, 110, 20, "Copy to Preset"); | |||||
copypbutton->box(FL_THIN_UP_BOX); | |||||
copypbutton->callback((Fl_Callback*)cb_copypbutton); | |||||
} // Fl_Button* copypbutton | |||||
{ copybutton = new Fl_Button(25, 385, 90, 35, "Copy to Clipboard"); | |||||
copybutton->box(FL_THIN_UP_BOX); | |||||
copybutton->callback((Fl_Callback*)cb_copybutton); | |||||
copybutton->align(Fl_Align(192)); | |||||
} // Fl_Button* copybutton | |||||
{ Fl_Button* o = new Fl_Button(160, 385, 80, 35, "Cancel"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Cancel); | |||||
o->align(Fl_Align(192)); | |||||
} // Fl_Button* o | |||||
{ Fl_Box* o = new Fl_Box(10, 5, 40, 15, "Type:"); | |||||
o->labelsize(11); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
} // Fl_Box* o | |||||
{ copytypetext = new Fl_Box(50, 5, 205, 15); | |||||
copytypetext->box(FL_FLAT_BOX); | |||||
copytypetext->color((Fl_Color)238); | |||||
copytypetext->labelfont(1); | |||||
copytypetext->labelsize(11); | |||||
copytypetext->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
} // Fl_Box* copytypetext | |||||
{ presetname = new Fl_Input(10, 355, 130, 20); | |||||
presetname->callback((Fl_Callback*)cb_presetname); | |||||
presetname->when(FL_WHEN_CHANGED); | |||||
} // Fl_Input* presetname | |||||
copywin->set_modal(); | |||||
copywin->end(); | |||||
} // Fl_Double_Window* copywin | |||||
{ pastewin = new Fl_Double_Window(265, 430, "Paste from Clipboard/Preset"); | |||||
pastewin->box(FL_THIN_UP_BOX); | |||||
pastewin->color((Fl_Color)238); | |||||
pastewin->user_data((void*)(this)); | |||||
{ pastebrowse = new Fl_Browser(10, 25, 245, 320); | |||||
pastebrowse->type(2); | |||||
pastebrowse->callback((Fl_Callback*)cb_pastebrowse); | |||||
} // Fl_Browser* pastebrowse | |||||
{ pastepbutton = new Fl_Button(10, 355, 160, 20, "Paste from Preset"); | |||||
pastepbutton->box(FL_THIN_UP_BOX); | |||||
pastepbutton->callback((Fl_Callback*)cb_pastepbutton); | |||||
} // Fl_Button* pastepbutton | |||||
{ pastebutton = new Fl_Button(25, 385, 90, 35, "Paste from Clipboard"); | |||||
pastebutton->box(FL_THIN_UP_BOX); | |||||
pastebutton->callback((Fl_Callback*)cb_pastebutton); | |||||
pastebutton->align(Fl_Align(192)); | |||||
} // Fl_Button* pastebutton | |||||
{ Fl_Button* o = new Fl_Button(160, 385, 80, 35, "Cancel"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Cancel1); | |||||
o->align(Fl_Align(192)); | |||||
} // Fl_Button* o | |||||
{ pastetypetext = new Fl_Box(55, 5, 200, 15); | |||||
pastetypetext->box(FL_FLAT_BOX); | |||||
pastetypetext->color((Fl_Color)238); | |||||
pastetypetext->labelfont(1); | |||||
pastetypetext->labelsize(11); | |||||
pastetypetext->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
} // Fl_Box* pastetypetext | |||||
{ Fl_Box* o = new Fl_Box(15, 5, 40, 15, "Type:"); | |||||
o->labelsize(11); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
} // Fl_Box* o | |||||
{ deletepbutton = new Fl_Button(180, 355, 75, 20, "Delete"); | |||||
deletepbutton->box(FL_THIN_UP_BOX); | |||||
deletepbutton->callback((Fl_Callback*)cb_deletepbutton); | |||||
} // Fl_Button* deletepbutton | |||||
pastewin->set_modal(); | |||||
pastewin->end(); | |||||
} // Fl_Double_Window* pastewin | |||||
return pastewin; | |||||
} | |||||
void PresetsUI::paste(std::string url_, PresetsUI_ *pui, int idx) { | |||||
url = url_; | |||||
this->pui=pui; | |||||
bool but=(Fl::event_button()!=FL_LEFT_MOUSE); | |||||
pastepbutton->deactivate(); | |||||
deletepbutton->deactivate(); | |||||
arraymode = true; | |||||
arrayidx = idx; | |||||
if(but) { | |||||
osc->write("/presets/paste", "si", url.c_str(), idx); | |||||
pui->refresh(); | |||||
} else { | |||||
rescan(url_); | |||||
pastewin->show(); | |||||
} | |||||
} | |||||
void PresetsUI::copy(std::string url_, int idx) { | |||||
copybutton->activate(); | |||||
copypbutton->deactivate(); | |||||
arraymode = true; | |||||
arrayidx = idx; | |||||
url = url_; | |||||
this->pui=NULL; | |||||
bool but=(Fl::event_button()!=FL_LEFT_MOUSE); | |||||
presetname->cut(0,presetname->maximum_size()); | |||||
if(but) { | |||||
osc->write("/presets/copy", "si", url_.c_str(), idx); | |||||
} else { | |||||
rescan(url_); | |||||
copywin->show(); | |||||
} | |||||
} | |||||
void PresetsUI::copy(std::string url_) { | |||||
copybutton->activate(); | |||||
copypbutton->deactivate(); | |||||
arraymode = false; | |||||
url = url_; | |||||
this->pui=NULL; | |||||
bool but=(Fl::event_button()!=FL_LEFT_MOUSE); | |||||
presetname->cut(0,presetname->maximum_size()); | |||||
if(but) { | |||||
osc->write("/presets/copy", "s", url_.c_str()); | |||||
} else { | |||||
rescan(url_); | |||||
copywin->show(); | |||||
}; | |||||
} | |||||
void PresetsUI::paste(std::string url_, PresetsUI_ *pui) { | |||||
url = url_; | |||||
this->pui=pui; | |||||
bool but=(Fl::event_button()!=FL_LEFT_MOUSE); | |||||
pastepbutton->deactivate(); | |||||
deletepbutton->deactivate(); | |||||
arraymode = false; | |||||
if(but) { | |||||
osc->write("/presets/paste", "s", url.c_str()); | |||||
pui->refresh(); | |||||
} else { | |||||
rescan(url_); | |||||
pastewin->show(); | |||||
}; | |||||
} | |||||
void PresetsUI::rescan(std::string url) { | |||||
copybrowse->clear(); | |||||
pastebrowse->clear(); | |||||
printf("Datamodel Update..."); | |||||
datamodel.doUpdate(url+"preset-type"); | |||||
} | |||||
PresetsUI *presetsui; |
@@ -1,92 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef PresetsUI_h | |||||
#define PresetsUI_h | |||||
#include <FL/Fl.H> | |||||
#include <FL/fl_ask.H> | |||||
#include <cstdio> | |||||
#include <cstdlib> | |||||
#include <string> | |||||
#include "Osc_ListModel.h" | |||||
#include "Osc_DataModel.h" | |||||
class PresetsUI_ { | |||||
public: | |||||
virtual void refresh(); | |||||
virtual ~PresetsUI_(); | |||||
}; | |||||
#include <FL/Fl_Double_Window.H> | |||||
#include <FL/Fl_Browser.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/Fl_Input.H> | |||||
class PresetsUI { | |||||
public: | |||||
PresetsUI(Fl_Osc_Interface *osc_); | |||||
~PresetsUI(); | |||||
Fl_Double_Window* make_window(); | |||||
Fl_Double_Window *copywin; | |||||
Fl_Browser *copybrowse; | |||||
private: | |||||
void cb_copybrowse_i(Fl_Browser*, void*); | |||||
static void cb_copybrowse(Fl_Browser*, void*); | |||||
public: | |||||
Fl_Button *copypbutton; | |||||
private: | |||||
void cb_copypbutton_i(Fl_Button*, void*); | |||||
static void cb_copypbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *copybutton; | |||||
private: | |||||
void cb_copybutton_i(Fl_Button*, void*); | |||||
static void cb_copybutton(Fl_Button*, void*); | |||||
void cb_Cancel_i(Fl_Button*, void*); | |||||
static void cb_Cancel(Fl_Button*, void*); | |||||
public: | |||||
Fl_Box *copytypetext; | |||||
Fl_Input *presetname; | |||||
private: | |||||
void cb_presetname_i(Fl_Input*, void*); | |||||
static void cb_presetname(Fl_Input*, void*); | |||||
public: | |||||
Fl_Double_Window *pastewin; | |||||
Fl_Browser *pastebrowse; | |||||
private: | |||||
void cb_pastebrowse_i(Fl_Browser*, void*); | |||||
static void cb_pastebrowse(Fl_Browser*, void*); | |||||
public: | |||||
Fl_Button *pastepbutton; | |||||
private: | |||||
void cb_pastepbutton_i(Fl_Button*, void*); | |||||
static void cb_pastepbutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *pastebutton; | |||||
private: | |||||
void cb_pastebutton_i(Fl_Button*, void*); | |||||
static void cb_pastebutton(Fl_Button*, void*); | |||||
void cb_Cancel1_i(Fl_Button*, void*); | |||||
static void cb_Cancel1(Fl_Button*, void*); | |||||
public: | |||||
Fl_Box *pastetypetext; | |||||
Fl_Button *deletepbutton; | |||||
private: | |||||
void cb_deletepbutton_i(Fl_Button*, void*); | |||||
static void cb_deletepbutton(Fl_Button*, void*); | |||||
public: | |||||
void paste(std::string url_, PresetsUI_ *pui, int idx); | |||||
void copy(std::string url_, int idx); | |||||
void copy(std::string url_); | |||||
void paste(std::string url_, PresetsUI_ *pui); | |||||
void rescan(std::string url); | |||||
std::string url; | |||||
Fl_Osc_Interface *osc; | |||||
Osc_ListModel listmodel; | |||||
Osc_DataModel datamodel; | |||||
std::vector<std::string> files; | |||||
bool arraymode; | |||||
int arrayidx; | |||||
PresetsUI_ *pui; | |||||
}; | |||||
extern PresetsUI *presetsui; | |||||
#endif |
@@ -1,461 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/ResonanceUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
#include <math.h> | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
#include <string.h> | |||||
void ResonanceUI::cb_Close_i(Fl_Button*, void*) { | |||||
resonancewindow->hide(); | |||||
} | |||||
void ResonanceUI::cb_Close(Fl_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_Zero_i(Fl_Osc_Button* o, void*) { | |||||
o->oscWrite("zero"); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_Zero(Fl_Osc_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_Zero_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_Smooth_i(Fl_Osc_Button* o, void*) { | |||||
o->oscWrite("smooth"); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_Smooth(Fl_Osc_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_Smooth_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_maxdb_i(Fl_Osc_Slider* o, void*) { | |||||
maxdbvo->value(o->value()); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_maxdb(Fl_Osc_Slider* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_maxdb_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_centerfreqvo_i(Fl_Osc_Output* o, void*) { | |||||
o->value(o->newvalue()/1000.0); | |||||
} | |||||
void ResonanceUI::cb_centerfreqvo(Fl_Osc_Output* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_centerfreqvo_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_octavesfreqvo_i(Fl_Osc_Output* o, void*) { | |||||
o->value(o->newvalue()); | |||||
} | |||||
void ResonanceUI::cb_octavesfreqvo(Fl_Osc_Output* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_octavesfreqvo_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_RND2_i(Fl_Osc_Button* o, void*) { | |||||
o->oscWrite("randomize", "i", 1); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_RND2(Fl_Osc_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_RND2_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_RND1_i(Fl_Osc_Button* o, void*) { | |||||
o->oscWrite("randomize", "i", 0); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_RND1(Fl_Osc_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_RND1_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_RND3_i(Fl_Osc_Button* o, void*) { | |||||
o->oscWrite("randomize", "i", 2); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_RND3(Fl_Osc_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_RND3_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_InterpP_i(Fl_Osc_Button* o, void*) { | |||||
int type; | |||||
if (Fl::event_button()==FL_LEFT_MOUSE) type=0; | |||||
else type=1; | |||||
o->oscWrite("interpolatepeaks", "i", type); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_InterpP(Fl_Osc_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_InterpP_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_centerfreq_i(Fl_Osc_Slider*, void*) { | |||||
centerfreqvo->do_callback(); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_centerfreq(Fl_Osc_Slider* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_centerfreq_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_octavesfreq_i(Fl_Osc_Slider*, void*) { | |||||
octavesfreqvo->do_callback(); | |||||
redrawPADnoteApply(); | |||||
} | |||||
void ResonanceUI::cb_octavesfreq(Fl_Osc_Slider* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_octavesfreq_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_C_i(Fl_Button*, void*) { | |||||
presetsui->copy(resonancewindow->loc()); | |||||
} | |||||
void ResonanceUI::cb_C(Fl_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_C_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_P_i(Fl_Button*, void*) { | |||||
presetsui->paste(resonancewindow->loc(),this); | |||||
} | |||||
void ResonanceUI::cb_P(Fl_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_P_i(o,v); | |||||
} | |||||
void ResonanceUI::cb_applybutton_i(Fl_Button*, void*) { | |||||
applybutton->color(FL_GRAY); | |||||
applybutton->redraw(); | |||||
if (cbapplywidget!=NULL) { | |||||
cbapplywidget->do_callback(); | |||||
cbapplywidget->color(FL_GRAY); | |||||
cbapplywidget->redraw(); | |||||
}; | |||||
} | |||||
void ResonanceUI::cb_applybutton(Fl_Button* o, void* v) { | |||||
((ResonanceUI*)(o->parent()->user_data()))->cb_applybutton_i(o,v); | |||||
} | |||||
Fl_Osc_Window* ResonanceUI::make_window(Fl_Osc_Interface *osc, std::string loc) { | |||||
{ resonancewindow = new Fl_Osc_Window(780, 305, "Resonance"); | |||||
resonancewindow->box(FL_FLAT_BOX); | |||||
resonancewindow->color(FL_BACKGROUND_COLOR); | |||||
resonancewindow->selection_color(FL_BACKGROUND_COLOR); | |||||
resonancewindow->labeltype(FL_NO_LABEL); | |||||
resonancewindow->labelfont(0); | |||||
resonancewindow->labelsize(14); | |||||
resonancewindow->labelcolor(FL_FOREGROUND_COLOR); | |||||
resonancewindow->user_data((void*)(this)); | |||||
resonancewindow->align(Fl_Align(FL_ALIGN_TOP)); | |||||
resonancewindow->when(FL_WHEN_RELEASE); | |||||
{ khzvalue = new Fl_Value_Output(415, 264, 45, 18, "kHz"); | |||||
khzvalue->labelsize(12); | |||||
khzvalue->minimum(0.001); | |||||
khzvalue->maximum(48); | |||||
khzvalue->step(0.01); | |||||
khzvalue->textfont(1); | |||||
khzvalue->textsize(12); | |||||
khzvalue->align(Fl_Align(FL_ALIGN_RIGHT)); | |||||
//this widget must be before the calling widgets | |||||
resonancewindow->init(osc,loc); | |||||
} // Fl_Value_Output* khzvalue | |||||
{ dbvalue = new Fl_Value_Output(415, 282, 45, 18, "dB"); | |||||
dbvalue->labelsize(12); | |||||
dbvalue->minimum(-150); | |||||
dbvalue->maximum(150); | |||||
dbvalue->step(0.1); | |||||
dbvalue->textfont(1); | |||||
dbvalue->textsize(12); | |||||
dbvalue->align(Fl_Align(FL_ALIGN_RIGHT)); | |||||
//this widget must be before the calling widgets | |||||
} // Fl_Value_Output* dbvalue | |||||
{ Fl_Button* o = new Fl_Button(690, 283, 84, 17, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(491, 264, 66, 15, "Zero"); | |||||
o->tooltip("Clear the resonance function"); | |||||
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(12); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->callback((Fl_Callback*)cb_Zero); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(491, 282, 66, 18, "Smooth"); | |||||
o->tooltip("Smooth the resonance function"); | |||||
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(12); | |||||
o->labelcolor(FL_FOREGROUND_COLOR); | |||||
o->callback((Fl_Callback*)cb_Smooth); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ Fl_Osc_Check* o = enabled = new Fl_Osc_Check(6, 270, 78, 27, "Enable"); | |||||
enabled->box(FL_THIN_UP_BOX); | |||||
enabled->down_box(FL_DOWN_BOX); | |||||
enabled->color(FL_BACKGROUND_COLOR); | |||||
enabled->selection_color(FL_FOREGROUND_COLOR); | |||||
enabled->labeltype(FL_NORMAL_LABEL); | |||||
enabled->labelfont(0); | |||||
enabled->labelsize(14); | |||||
enabled->labelcolor(FL_FOREGROUND_COLOR); | |||||
enabled->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
enabled->when(FL_WHEN_RELEASE); | |||||
o->init("Penabled"); | |||||
} // Fl_Osc_Check* enabled | |||||
{ Fl_Osc_Slider* o = maxdb = new Fl_Osc_Slider(90, 285, 84, 15); | |||||
maxdb->type(5); | |||||
maxdb->box(FL_FLAT_BOX); | |||||
maxdb->color(FL_BACKGROUND_COLOR); | |||||
maxdb->selection_color(FL_BACKGROUND_COLOR); | |||||
maxdb->labeltype(FL_NORMAL_LABEL); | |||||
maxdb->labelfont(0); | |||||
maxdb->labelsize(14); | |||||
maxdb->labelcolor(FL_FOREGROUND_COLOR); | |||||
maxdb->minimum(1); | |||||
maxdb->maximum(90); | |||||
maxdb->step(1); | |||||
maxdb->value(30); | |||||
maxdb->callback((Fl_Callback*)cb_maxdb); | |||||
maxdb->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
maxdb->when(FL_WHEN_CHANGED); | |||||
o->init("PmaxdB", 'i'); o->reset_value = 30; | |||||
} // Fl_Osc_Slider* maxdb | |||||
{ maxdbvo = new Fl_Value_Output(126, 264, 24, 18, "Max."); | |||||
maxdbvo->tooltip("The Maximum amplitude (dB)"); | |||||
maxdbvo->labelsize(12); | |||||
maxdbvo->minimum(1); | |||||
maxdbvo->maximum(127); | |||||
maxdbvo->step(1); | |||||
maxdbvo->value(30); | |||||
maxdbvo->textsize(12); | |||||
} // Fl_Value_Output* maxdbvo | |||||
{ new Fl_Box(150, 264, 24, 18, "dB"); | |||||
} // Fl_Box* o | |||||
{ Fl_Osc_Output* o = centerfreqvo = new Fl_Osc_Output(210, 264, 45, 18, "C.f."); | |||||
centerfreqvo->tooltip("Center Frequency (kHz)"); | |||||
centerfreqvo->box(FL_NO_BOX); | |||||
centerfreqvo->color(FL_BACKGROUND_COLOR); | |||||
centerfreqvo->selection_color(FL_BACKGROUND_COLOR); | |||||
centerfreqvo->labeltype(FL_NORMAL_LABEL); | |||||
centerfreqvo->labelfont(0); | |||||
centerfreqvo->labelsize(12); | |||||
centerfreqvo->labelcolor(FL_FOREGROUND_COLOR); | |||||
centerfreqvo->minimum(1); | |||||
centerfreqvo->maximum(10); | |||||
centerfreqvo->step(0.01); | |||||
centerfreqvo->value(1); | |||||
centerfreqvo->textfont(1); | |||||
centerfreqvo->textsize(12); | |||||
centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo); | |||||
centerfreqvo->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
centerfreqvo->when(3); | |||||
o->init("centerfreq"); | |||||
} // Fl_Osc_Output* centerfreqvo | |||||
{ Fl_Osc_Output* o = octavesfreqvo = new Fl_Osc_Output(210, 282, 45, 18, "Oct."); | |||||
octavesfreqvo->tooltip("No. of octaves"); | |||||
octavesfreqvo->box(FL_NO_BOX); | |||||
octavesfreqvo->color(FL_BACKGROUND_COLOR); | |||||
octavesfreqvo->selection_color(FL_BACKGROUND_COLOR); | |||||
octavesfreqvo->labeltype(FL_NORMAL_LABEL); | |||||
octavesfreqvo->labelfont(0); | |||||
octavesfreqvo->labelsize(12); | |||||
octavesfreqvo->labelcolor(FL_FOREGROUND_COLOR); | |||||
octavesfreqvo->maximum(11); | |||||
octavesfreqvo->step(0.01); | |||||
octavesfreqvo->value(5); | |||||
octavesfreqvo->textfont(1); | |||||
octavesfreqvo->textsize(12); | |||||
octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo); | |||||
octavesfreqvo->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
octavesfreqvo->when(3); | |||||
o->init("octavesfreq"); | |||||
} // Fl_Osc_Output* octavesfreqvo | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(566, 276, 42, 12, "RND2"); | |||||
o->tooltip("Randomize the resonance function"); | |||||
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_RND2); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(566, 264, 42, 12, "RND1"); | |||||
o->tooltip("Randomize the resonance function"); | |||||
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_RND1); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(566, 288, 42, 12, "RND3"); | |||||
o->tooltip("Randomize the resonance function"); | |||||
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_RND3); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ Fl_Osc_Check* o = p1st = new Fl_Osc_Check(365, 285, 45, 15, "P.1st"); | |||||
p1st->tooltip("Protect the fundamental frequency (do not damp the first harmonic)"); | |||||
p1st->box(FL_NO_BOX); | |||||
p1st->down_box(FL_DOWN_BOX); | |||||
p1st->color(FL_BACKGROUND_COLOR); | |||||
p1st->selection_color(FL_FOREGROUND_COLOR); | |||||
p1st->labeltype(FL_NORMAL_LABEL); | |||||
p1st->labelfont(0); | |||||
p1st->labelsize(10); | |||||
p1st->labelcolor(FL_FOREGROUND_COLOR); | |||||
p1st->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
p1st->when(FL_WHEN_RELEASE); | |||||
o->init("Pprotectthefundamental"); | |||||
} // Fl_Osc_Check* p1st | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(365, 265, 46, 15, "InterpP"); | |||||
o->tooltip("Interpolate the peaks"); | |||||
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_InterpP); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ Fl_Osc_Slider* o = centerfreq = new Fl_Osc_Slider(260, 268, 90, 14); | |||||
centerfreq->type(5); | |||||
centerfreq->box(FL_FLAT_BOX); | |||||
centerfreq->color(FL_BACKGROUND_COLOR); | |||||
centerfreq->selection_color(FL_BACKGROUND_COLOR); | |||||
centerfreq->labeltype(FL_NORMAL_LABEL); | |||||
centerfreq->labelfont(0); | |||||
centerfreq->labelsize(10); | |||||
centerfreq->labelcolor(FL_FOREGROUND_COLOR); | |||||
centerfreq->maximum(127); | |||||
centerfreq->step(1); | |||||
centerfreq->callback((Fl_Callback*)cb_centerfreq); | |||||
centerfreq->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
centerfreq->when(FL_WHEN_CHANGED); | |||||
o->init("Pcenterfreq", 'i');o->reset_value=64; | |||||
} // Fl_Osc_Slider* centerfreq | |||||
{ Fl_Osc_Slider* o = octavesfreq = new Fl_Osc_Slider(260, 286, 90, 14); | |||||
octavesfreq->type(5); | |||||
octavesfreq->box(FL_FLAT_BOX); | |||||
octavesfreq->color(FL_BACKGROUND_COLOR); | |||||
octavesfreq->selection_color(FL_BACKGROUND_COLOR); | |||||
octavesfreq->labeltype(FL_NORMAL_LABEL); | |||||
octavesfreq->labelfont(0); | |||||
octavesfreq->labelsize(10); | |||||
octavesfreq->labelcolor(FL_FOREGROUND_COLOR); | |||||
octavesfreq->maximum(127); | |||||
octavesfreq->step(1); | |||||
octavesfreq->callback((Fl_Callback*)cb_octavesfreq); | |||||
octavesfreq->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
octavesfreq->when(FL_WHEN_CHANGED); | |||||
o->init("Poctavesfreq", 'i');o->reset_value=64; | |||||
} // Fl_Osc_Slider* octavesfreq | |||||
{ Fl_Button* o = new Fl_Button(625, 275, 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(655, 275, 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 | |||||
{ applybutton = new Fl_Button(690, 265, 85, 15, "Apply"); | |||||
applybutton->box(FL_THIN_UP_BOX); | |||||
applybutton->labelfont(1); | |||||
applybutton->labelsize(11); | |||||
applybutton->callback((Fl_Callback*)cb_applybutton); | |||||
} // Fl_Button* applybutton | |||||
{ rg = new Fl_Resonance_Graph(6, 5, 768, 256); | |||||
rg->box(FL_BORDER_BOX); | |||||
rg->color(FL_BACKGROUND_COLOR); | |||||
rg->selection_color(FL_BACKGROUND_COLOR); | |||||
rg->labeltype(FL_NORMAL_LABEL); | |||||
rg->labelfont(0); | |||||
rg->labelsize(14); | |||||
rg->labelcolor(FL_FOREGROUND_COLOR); | |||||
rg->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
rg->when(FL_WHEN_RELEASE); | |||||
} // Fl_Resonance_Graph* rg | |||||
resonancewindow->end(); | |||||
} // Fl_Osc_Window* resonancewindow | |||||
return resonancewindow; | |||||
} | |||||
ResonanceUI::ResonanceUI(Fl_Osc_Interface *osc, std::string loc) { | |||||
assert(osc); | |||||
cbwidget=NULL; | |||||
cbapplywidget=NULL; | |||||
make_window(osc, loc); | |||||
rg->init(khzvalue,dbvalue); | |||||
applybutton->hide(); | |||||
} | |||||
ResonanceUI::~ResonanceUI() { | |||||
resonancewindow->hide(); | |||||
delete resonancewindow; | |||||
} | |||||
void ResonanceUI::redrawPADnoteApply() { | |||||
rg->update(); | |||||
if (cbwidget!=NULL) { | |||||
cbwidget->do_callback(); | |||||
applybutton->color(FL_RED); | |||||
applybutton->redraw(); | |||||
}; | |||||
} | |||||
void ResonanceUI::setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget) { | |||||
this->cbwidget=cbwidget; | |||||
this->cbapplywidget=cbapplywidget; | |||||
rg->setcbwidget(cbwidget,applybutton); | |||||
applybutton->show(); | |||||
} | |||||
void ResonanceUI::refresh() { | |||||
redrawPADnoteApply(); | |||||
//TODO fix me when controls are relocatable | |||||
//enabled->value(respar->Penabled); | |||||
//maxdb->value(respar->PmaxdB); | |||||
//maxdbvo->value(respar->PmaxdB); | |||||
// | |||||
//centerfreqvo->value(respar->getcenterfreq()/1000.0); | |||||
//octavesfreqvo->value(respar->getoctavesfreq()); | |||||
// | |||||
//centerfreq->value(respar->Pcenterfreq); | |||||
//octavesfreq->value(respar->Poctavesfreq); | |||||
// | |||||
//p1st->value(respar->Pprotectthefundamental); | |||||
rg->update(); | |||||
} |
@@ -1,91 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef ResonanceUI_h | |||||
#define ResonanceUI_h | |||||
#include <FL/Fl.H> | |||||
#include <FL/Fl_Box.H> | |||||
#include <FL/fl_draw.H> | |||||
#include <FL/Fl_Value_Output.H> | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "Fl_Osc_Pane.H" | |||||
#include "Fl_Osc_Button.H" | |||||
#include "Fl_Osc_Check.H" | |||||
#include "Fl_Osc_Slider.H" | |||||
#include "Fl_Osc_Output.H" | |||||
#include "Fl_Resonance_Graph.H" | |||||
#include "PresetsUI.h" | |||||
#include <FL/Fl_Value_Output.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Box.H> | |||||
class ResonanceUI : PresetsUI_ { | |||||
public: | |||||
Fl_Osc_Window* make_window(Fl_Osc_Interface *osc, std::string loc); | |||||
Fl_Osc_Window *resonancewindow; | |||||
Fl_Value_Output *khzvalue; | |||||
Fl_Value_Output *dbvalue; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_Zero_i(Fl_Osc_Button*, void*); | |||||
static void cb_Zero(Fl_Osc_Button*, void*); | |||||
void cb_Smooth_i(Fl_Osc_Button*, void*); | |||||
static void cb_Smooth(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *enabled; | |||||
Fl_Osc_Slider *maxdb; | |||||
private: | |||||
void cb_maxdb_i(Fl_Osc_Slider*, void*); | |||||
static void cb_maxdb(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Value_Output *maxdbvo; | |||||
Fl_Osc_Output *centerfreqvo; | |||||
private: | |||||
void cb_centerfreqvo_i(Fl_Osc_Output*, void*); | |||||
static void cb_centerfreqvo(Fl_Osc_Output*, void*); | |||||
public: | |||||
Fl_Osc_Output *octavesfreqvo; | |||||
private: | |||||
void cb_octavesfreqvo_i(Fl_Osc_Output*, void*); | |||||
static void cb_octavesfreqvo(Fl_Osc_Output*, void*); | |||||
void cb_RND2_i(Fl_Osc_Button*, void*); | |||||
static void cb_RND2(Fl_Osc_Button*, void*); | |||||
void cb_RND1_i(Fl_Osc_Button*, void*); | |||||
static void cb_RND1(Fl_Osc_Button*, void*); | |||||
void cb_RND3_i(Fl_Osc_Button*, void*); | |||||
static void cb_RND3(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Check *p1st; | |||||
private: | |||||
void cb_InterpP_i(Fl_Osc_Button*, void*); | |||||
static void cb_InterpP(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Osc_Slider *centerfreq; | |||||
private: | |||||
void cb_centerfreq_i(Fl_Osc_Slider*, void*); | |||||
static void cb_centerfreq(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Slider *octavesfreq; | |||||
private: | |||||
void cb_octavesfreq_i(Fl_Osc_Slider*, void*); | |||||
static void cb_octavesfreq(Fl_Osc_Slider*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Button *applybutton; | |||||
private: | |||||
void cb_applybutton_i(Fl_Button*, void*); | |||||
static void cb_applybutton(Fl_Button*, void*); | |||||
public: | |||||
Fl_Resonance_Graph *rg; | |||||
ResonanceUI(Fl_Osc_Interface *osc, std::string loc); | |||||
~ResonanceUI(); | |||||
void redrawPADnoteApply(); | |||||
void setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget); | |||||
void refresh(); | |||||
private: | |||||
Fl_Widget *cbwidget,*cbapplywidget; | |||||
}; | |||||
#endif |
@@ -1,821 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/SUBnoteUI.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
SUBSlider::SUBSlider(int x,int y, int w, int h, const char *label) | |||||
:Fl_Osc_TSlider(x,y,w,h,label) { | |||||
} | |||||
void SUBSlider::OSC_value(char c) { | |||||
value(127-c); | |||||
selection_color(value() == reset_value ? 0 : 222); | |||||
} | |||||
void SUBSlider::cb(void) { | |||||
selection_color(value() == reset_value ? 0 : 222); | |||||
oscWrite(ext, "c", (int)(127-Fl_Slider::value())); | |||||
if(cb_data.first) | |||||
cb_data.first(this, cb_data.second); | |||||
} | |||||
Fl_Osc_Group* SUBnoteharmonic::make_window() { | |||||
{ harmonic = new Fl_Osc_Group(0, 0, 90, 305); | |||||
harmonic->box(FL_FLAT_BOX); | |||||
harmonic->color(FL_BACKGROUND_COLOR); | |||||
harmonic->selection_color(FL_BACKGROUND_COLOR); | |||||
harmonic->labeltype(FL_NO_LABEL); | |||||
harmonic->labelfont(0); | |||||
harmonic->labelsize(14); | |||||
harmonic->labelcolor(FL_FOREGROUND_COLOR); | |||||
harmonic->user_data((void*)(this)); | |||||
harmonic->align(Fl_Align(FL_ALIGN_TOP)); | |||||
harmonic->when(FL_WHEN_RELEASE); | |||||
{ mag = new SUBSlider(0, 15, 10, 135); | |||||
mag->tooltip("harmonic\'s magnitude"); | |||||
mag->type(4); | |||||
mag->box(FL_FLAT_BOX); | |||||
mag->color(FL_BACKGROUND_COLOR); | |||||
mag->selection_color(FL_FOREGROUND_COLOR); | |||||
mag->labeltype(FL_NORMAL_LABEL); | |||||
mag->labelfont(0); | |||||
mag->labelsize(14); | |||||
mag->labelcolor(FL_FOREGROUND_COLOR); | |||||
mag->maximum(127); | |||||
mag->step(1); | |||||
mag->value(127); | |||||
mag->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
mag->when(FL_WHEN_CHANGED); | |||||
} // SUBSlider* mag | |||||
{ bw = new SUBSlider(0, 157, 10, 130); | |||||
bw->tooltip("harmonic\'s bandwidth"); | |||||
bw->type(4); | |||||
bw->box(FL_FLAT_BOX); | |||||
bw->color(FL_BACKGROUND_COLOR); | |||||
bw->selection_color((Fl_Color)222); | |||||
bw->labeltype(FL_NORMAL_LABEL); | |||||
bw->labelfont(0); | |||||
bw->labelsize(14); | |||||
bw->labelcolor(FL_FOREGROUND_COLOR); | |||||
bw->maximum(127); | |||||
bw->step(1); | |||||
bw->value(64); | |||||
bw->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
bw->when(FL_WHEN_CHANGED); | |||||
} // SUBSlider* bw | |||||
{ Fl_Box* o = new Fl_Box(10, 219, 5, 5); | |||||
o->box(FL_FLAT_BOX); | |||||
o->color(FL_DARK2); | |||||
if (n+1==MAX_SUB_HARMONICS) o->hide(); | |||||
} // Fl_Box* o | |||||
{ Fl_Box* o = new Fl_Box(0, 288, 10, 15, "01"); | |||||
o->labelfont(1); | |||||
o->labelsize(9); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp)); | |||||
} // Fl_Box* o | |||||
{ Fl_Box* o = new Fl_Box(0, 0, 10, 15, "01"); | |||||
o->labelfont(1); | |||||
o->labelsize(9); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp)); | |||||
} // Fl_Box* o | |||||
harmonic->end(); | |||||
} // Fl_Osc_Group* harmonic | |||||
return harmonic; | |||||
} | |||||
SUBnoteharmonic::SUBnoteharmonic(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h,label) { | |||||
n=0; | |||||
} | |||||
void SUBnoteharmonic::init(int n_) { | |||||
n=n_; | |||||
make_window(); | |||||
harmonic->show(); | |||||
mag->reset_value=127; | |||||
mag->ext = "Phmag" + to_s(n); | |||||
mag->oscRegister(mag->ext.c_str()); | |||||
mag->set_transform([](float x){return 127.0f - x;}); | |||||
bw->reset_value=63; | |||||
bw->ext = "Phrelbw" + to_s(n); | |||||
bw->oscRegister(bw->ext.c_str()); | |||||
bw->set_transform([](float x){return 63.0f - x;}); | |||||
osc->requestValue(base+"Phrelbw"+to_s(n)); | |||||
end(); | |||||
} | |||||
void SUBnoteharmonic::refresh() { | |||||
// request values for the widgets | |||||
mag->oscWrite(mag->ext); | |||||
bw->oscWrite(bw->ext); | |||||
} | |||||
SUBnoteharmonic::~SUBnoteharmonic() { | |||||
harmonic->hide(); | |||||
hide(); | |||||
//delete(harmonic); | |||||
} | |||||
void SUBnoteUI::cb_Close_i(Fl_Button*, void*) { | |||||
SUBparameters->hide(); | |||||
} | |||||
void SUBnoteUI::cb_Close(Fl_Button* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
Fl_Menu_Item SUBnoteUI::menu_magtype[] = { | |||||
{"Linear", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"-40dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"-60dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"-80dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"-100dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
Fl_Menu_Item SUBnoteUI::menu_start[] = { | |||||
{"Zero", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"RND", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{"Max.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
void SUBnoteUI::cb_freqee_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) freqenvelopegroup->deactivate(); | |||||
else freqenvelopegroup->activate(); | |||||
o->show(); | |||||
freqsettingsui->redraw(); | |||||
} | |||||
void SUBnoteUI::cb_freqee(Fl_Osc_Check* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_freqee_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_detune_i(Fl_Osc_Slider* o, void*) { | |||||
o->oscWrite("detunevalue"); | |||||
} | |||||
void SUBnoteUI::cb_detune(Fl_Osc_Slider* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detune_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_hz440_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) fixedfreqetdial->deactivate(); | |||||
else fixedfreqetdial->activate(); | |||||
} | |||||
void SUBnoteUI::cb_hz440(Fl_Osc_Check* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_hz440_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_detunetype_i(Fl_Osc_Choice* o, void*) { | |||||
o->oscWrite("detunevalue"); | |||||
} | |||||
void SUBnoteUI::cb_detunetype(Fl_Osc_Choice* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detunetype_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_Clear_i(Fl_Osc_Button* o, void*) { | |||||
o->oscWrite("clear"); | |||||
for (int i=1;i<MAX_SUB_HARMONICS;i++){ | |||||
h[i]->mag->oscWrite(h[i]->mag->ext, "c", 0); | |||||
h[i]->bw->oscWrite(h[i]->bw->ext, "c", 64); | |||||
}; | |||||
h[0]->mag->oscWrite(h[0]->mag->ext, "c", 127); | |||||
h[0]->bw->oscWrite(h[0]->bw->ext, "c", 64); | |||||
SUBparameters->redraw(); | |||||
} | |||||
void SUBnoteUI::cb_Clear(Fl_Osc_Button* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->user_data()))->cb_Clear_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_bwee_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) bandwidthenvelopegroup->deactivate(); | |||||
else bandwidthenvelopegroup->activate(); | |||||
o->show(); | |||||
bandwidthsettingsui->redraw(); | |||||
} | |||||
void SUBnoteUI::cb_bwee(Fl_Osc_Check* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_bwee_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_filtere_i(Fl_Osc_Check* o, void*) { | |||||
if (o->value()==0) globalfiltergroup->deactivate(); | |||||
else globalfiltergroup->activate(); | |||||
o->show(); | |||||
globalfiltergroup->redraw(); | |||||
} | |||||
void SUBnoteUI::cb_filtere(Fl_Osc_Check* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->user_data()))->cb_filtere_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_C_i(Fl_Button*, void*) { | |||||
presetsui->copy(loc); | |||||
} | |||||
void SUBnoteUI::cb_C(Fl_Button* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->user_data()))->cb_C_i(o,v); | |||||
} | |||||
void SUBnoteUI::cb_P_i(Fl_Button*, void*) { | |||||
presetsui->paste(loc,this); | |||||
} | |||||
void SUBnoteUI::cb_P(Fl_Button* o, void* v) { | |||||
((SUBnoteUI*)(o->parent()->user_data()))->cb_P_i(o,v); | |||||
} | |||||
Fl_Menu_Item SUBnoteUI::menu_spreadtype[] = { | |||||
{"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} | |||||
}; | |||||
Fl_Osc_Window* SUBnoteUI::make_window() { | |||||
{ SUBparameters = new Fl_Osc_Window(735, 475, "SUBsynth Parameters"); | |||||
SUBparameters->box(FL_FLAT_BOX); | |||||
SUBparameters->color(FL_BACKGROUND_COLOR); | |||||
SUBparameters->selection_color(FL_BACKGROUND_COLOR); | |||||
SUBparameters->labeltype(FL_NO_LABEL); | |||||
SUBparameters->labelfont(0); | |||||
SUBparameters->labelsize(14); | |||||
SUBparameters->labelcolor(FL_FOREGROUND_COLOR); | |||||
SUBparameters->user_data((void*)(this)); | |||||
SUBparameters->align(Fl_Align(FL_ALIGN_TOP)); | |||||
SUBparameters->when(FL_WHEN_RELEASE); | |||||
{ Fl_Box* o = new Fl_Box(0, 0, 0, 0); | |||||
o->box(FL_FLAT_BOX); | |||||
o->color(FL_DARK2); | |||||
SUBparameters->init(osc, loc); | |||||
} // Fl_Box* o | |||||
{ Fl_Scroll* o = new Fl_Scroll(5, 140, 434, 330, "scroll"); | |||||
o->type(1); | |||||
o->box(FL_FLAT_BOX); | |||||
o->labeltype(FL_NO_LABEL); | |||||
{ Fl_Pack* o = harmonics = new Fl_Pack(5, 145, 425, 325); | |||||
harmonics->type(1); | |||||
for (int i=0;i<MAX_SUB_HARMONICS;i++){h[i]=new SUBnoteharmonic(0,0,15,o->h(),"");h[i]->init(i);} | |||||
harmonics->end(); | |||||
} // Fl_Pack* harmonics | |||||
o->end(); | |||||
} // Fl_Scroll* o | |||||
{ Fl_Button* o = new Fl_Button(670, 446, 60, 25, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
{ Fl_Group* o = new Fl_Group(5, 5, 215, 135, "AMPLITUDE"); | |||||
o->box(FL_UP_FRAME); | |||||
o->labeltype(FL_EMBOSSED_LABEL); | |||||
o->labelfont(1); | |||||
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
{ Fl_Osc_VSlider* o = vol = new Fl_Osc_VSlider(10, 25, 140, 15, "Vol"); | |||||
vol->tooltip("Volume"); | |||||
vol->type(5); | |||||
vol->box(FL_NO_BOX); | |||||
vol->color(FL_BACKGROUND_COLOR); | |||||
vol->selection_color(FL_BACKGROUND_COLOR); | |||||
vol->labeltype(FL_NORMAL_LABEL); | |||||
vol->labelfont(0); | |||||
vol->labelsize(11); | |||||
vol->labelcolor(FL_FOREGROUND_COLOR); | |||||
vol->maximum(127); | |||||
vol->step(1); | |||||
vol->align(Fl_Align(FL_ALIGN_RIGHT)); | |||||
vol->when(FL_WHEN_CHANGED); | |||||
o->init("PVolume");o->reset_value=96; | |||||
} // Fl_Osc_VSlider* vol | |||||
{ Fl_Osc_VSlider* o = vsns = new Fl_Osc_VSlider(10, 45, 140, 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=90; | |||||
} // Fl_Osc_VSlider* vsns | |||||
{ Fl_Osc_Dial* o = pan = new Fl_Osc_Dial(185, 20, 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 | |||||
{ EnvelopeUI* o = ampenv = new EnvelopeUI(10, 65, 205, 70, "SUBsynth - 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, loc, "AmpEnvelope/"); | |||||
ampenv->end(); | |||||
} // EnvelopeUI* ampenv | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
{ Fl_Group* o = new Fl_Group(495, 406, 235, 35); | |||||
o->box(FL_UP_FRAME); | |||||
{ Fl_Osc_Counter* o = filterstages = new Fl_Osc_Counter(515, 421, 45, 15, "Filter Stages"); | |||||
filterstages->tooltip("How many times the noise is filtered"); | |||||
filterstages->type(1); | |||||
filterstages->box(FL_UP_BOX); | |||||
filterstages->color(FL_BACKGROUND_COLOR); | |||||
filterstages->selection_color(FL_INACTIVE_COLOR); | |||||
filterstages->labeltype(FL_NORMAL_LABEL); | |||||
filterstages->labelfont(1); | |||||
filterstages->labelsize(10); | |||||
filterstages->labelcolor(FL_FOREGROUND_COLOR); | |||||
filterstages->minimum(1); | |||||
filterstages->maximum(5); | |||||
filterstages->step(1); | |||||
filterstages->textsize(10); | |||||
filterstages->align(Fl_Align(FL_ALIGN_TOP)); | |||||
filterstages->when(FL_WHEN_CHANGED); | |||||
o->init("Pnumstages"); | |||||
} // Fl_Osc_Counter* filterstages | |||||
{ Fl_Osc_Choice* o = magtype = new Fl_Osc_Choice(585, 421, 65, 15, "Mag.Type"); | |||||
magtype->box(FL_UP_BOX); | |||||
magtype->down_box(FL_BORDER_BOX); | |||||
magtype->color(FL_BACKGROUND_COLOR); | |||||
magtype->selection_color(FL_SELECTION_COLOR); | |||||
magtype->labeltype(FL_NORMAL_LABEL); | |||||
magtype->labelfont(1); | |||||
magtype->labelsize(10); | |||||
magtype->labelcolor(FL_FOREGROUND_COLOR); | |||||
magtype->textsize(11); | |||||
magtype->align(Fl_Align(FL_ALIGN_TOP)); | |||||
magtype->when(FL_WHEN_RELEASE); | |||||
magtype->menu(menu_magtype); | |||||
o->init("Phmagtype"); | |||||
} // Fl_Osc_Choice* magtype | |||||
{ Fl_Osc_Choice* o = start = new Fl_Osc_Choice(670, 420, 50, 15, "Start"); | |||||
start->box(FL_UP_BOX); | |||||
start->down_box(FL_BORDER_BOX); | |||||
start->color(FL_BACKGROUND_COLOR); | |||||
start->selection_color(FL_SELECTION_COLOR); | |||||
start->labeltype(FL_NORMAL_LABEL); | |||||
start->labelfont(1); | |||||
start->labelsize(10); | |||||
start->labelcolor(FL_FOREGROUND_COLOR); | |||||
start->textsize(11); | |||||
start->align(Fl_Align(FL_ALIGN_TOP)); | |||||
start->when(FL_WHEN_RELEASE); | |||||
start->menu(menu_start); | |||||
o->init("Pstart"); | |||||
} // Fl_Osc_Choice* start | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
{ freqsettingsui = new Fl_Group(440, 5, 295, 146, "FREQUENCY"); | |||||
freqsettingsui->box(FL_UP_FRAME); | |||||
freqsettingsui->labeltype(FL_EMBOSSED_LABEL); | |||||
freqsettingsui->labelfont(1); | |||||
freqsettingsui->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
{ EnvelopeUI* o = freqenvelopegroup = new EnvelopeUI(445, 75, 205, 70, "SUBsynth - Frequency Envelope"); | |||||
freqenvelopegroup->box(FL_FLAT_BOX); | |||||
freqenvelopegroup->color((Fl_Color)51); | |||||
freqenvelopegroup->selection_color(FL_BACKGROUND_COLOR); | |||||
freqenvelopegroup->labeltype(FL_NORMAL_LABEL); | |||||
freqenvelopegroup->labelfont(0); | |||||
freqenvelopegroup->labelsize(14); | |||||
freqenvelopegroup->labelcolor(FL_FOREGROUND_COLOR); | |||||
freqenvelopegroup->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); | |||||
freqenvelopegroup->when(FL_WHEN_RELEASE); | |||||
o->init(ENV_ASR, osc, loc, "FreqEnvelope/"); | |||||
freqenvelopegroup->end(); | |||||
} // EnvelopeUI* freqenvelopegroup | |||||
{ Fl_Osc_Check* o = freqee = new Fl_Osc_Check(445, 77, 55, 15, "Enabled"); | |||||
freqee->box(FL_NO_BOX); | |||||
freqee->down_box(FL_DOWN_BOX); | |||||
freqee->color(FL_BACKGROUND_COLOR); | |||||
freqee->selection_color(FL_FOREGROUND_COLOR); | |||||
freqee->labeltype(FL_NORMAL_LABEL); | |||||
freqee->labelfont(1); | |||||
freqee->labelsize(10); | |||||
freqee->labelcolor(FL_FOREGROUND_COLOR); | |||||
freqee->callback((Fl_Callback*)cb_freqee); | |||||
freqee->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
freqee->when(FL_WHEN_RELEASE); | |||||
o->init("PFreqEnvelopeEnabled"); | |||||
} // Fl_Osc_Check* freqee | |||||
{ Fl_Osc_Counter* o = octave = new Fl_Osc_Counter(670, 58, 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(655, 125, 60, 20, "Coarse Det."); | |||||
coarsedet->tooltip("Coarse Detune"); | |||||
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)); | |||||
coarsedet->when(FL_WHEN_CHANGED); | |||||
o->init("coarsedetune"); | |||||
o->lstep(10); | |||||
} // Fl_Osc_Counter* coarsedet | |||||
{ Fl_Osc_Slider* o = detune = new Fl_Osc_Slider(495, 27, 230, 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(448, 27, 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_Dial* o = bendadjdial = new Fl_Osc_Dial(448, 53, 15, 15, "Bend"); | |||||
bendadjdial->tooltip("How the frequency varies according to the pitch wheel"); | |||||
bendadjdial->box(FL_ROUND_UP_BOX); | |||||
bendadjdial->color(FL_BACKGROUND_COLOR); | |||||
bendadjdial->selection_color(FL_INACTIVE_COLOR); | |||||
bendadjdial->labeltype(FL_NORMAL_LABEL); | |||||
bendadjdial->labelfont(0); | |||||
bendadjdial->labelsize(10); | |||||
bendadjdial->labelcolor(FL_FOREGROUND_COLOR); | |||||
bendadjdial->minimum(-64); | |||||
bendadjdial->maximum(63); | |||||
bendadjdial->step(1); | |||||
bendadjdial->align(Fl_Align(FL_ALIGN_RIGHT)); | |||||
bendadjdial->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* bendadjdial | |||||
{ Fl_Osc_Dial* o = offsethzdial = new Fl_Osc_Dial(500, 53, 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(555, 53, 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(610, 53, 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 | |||||
{ Fl_Osc_Choice* o = detunetype = new Fl_Osc_Choice(655, 94, 70, 15, "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 | |||||
freqsettingsui->end(); | |||||
} // Fl_Group* freqsettingsui | |||||
{ Fl_Osc_Check* o = stereo = new Fl_Osc_Check(440, 406, 55, 35, "Stereo"); | |||||
stereo->box(FL_THIN_UP_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(10); | |||||
stereo->labelcolor(FL_FOREGROUND_COLOR); | |||||
stereo->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
stereo->when(FL_WHEN_RELEASE); | |||||
o->init("Pstereo"); | |||||
} // Fl_Osc_Check* stereo | |||||
{ Fl_Osc_Button* o = new Fl_Osc_Button(445, 446, 70, 25, "Clear"); | |||||
o->tooltip("Clear the harmonics"); | |||||
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_Clear); | |||||
o->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
o->when(FL_WHEN_RELEASE); | |||||
} // Fl_Osc_Button* o | |||||
{ bandwidthsettingsui = new Fl_Group(220, 5, 220, 135, "BANDWIDTH"); | |||||
bandwidthsettingsui->box(FL_UP_FRAME); | |||||
bandwidthsettingsui->labeltype(FL_EMBOSSED_LABEL); | |||||
bandwidthsettingsui->labelfont(1); | |||||
bandwidthsettingsui->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
{ EnvelopeUI* o = bandwidthenvelopegroup = new EnvelopeUI(225, 65, 205, 70, "SUBsynth - BandWidth Envelope"); | |||||
bandwidthenvelopegroup->box(FL_FLAT_BOX); | |||||
bandwidthenvelopegroup->color((Fl_Color)51); | |||||
bandwidthenvelopegroup->selection_color(FL_BACKGROUND_COLOR); | |||||
bandwidthenvelopegroup->labeltype(FL_NORMAL_LABEL); | |||||
bandwidthenvelopegroup->labelfont(0); | |||||
bandwidthenvelopegroup->labelsize(14); | |||||
bandwidthenvelopegroup->labelcolor(FL_FOREGROUND_COLOR); | |||||
bandwidthenvelopegroup->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE)); | |||||
bandwidthenvelopegroup->when(FL_WHEN_RELEASE); | |||||
o->init(ENV_ADSR_BW, osc, loc, "BandWidthEnvelope/"); | |||||
bandwidthenvelopegroup->end(); | |||||
} // EnvelopeUI* bandwidthenvelopegroup | |||||
{ Fl_Osc_Check* o = bwee = new Fl_Osc_Check(225, 67, 55, 15, "Enabled"); | |||||
bwee->box(FL_NO_BOX); | |||||
bwee->down_box(FL_DOWN_BOX); | |||||
bwee->color(FL_BACKGROUND_COLOR); | |||||
bwee->selection_color(FL_FOREGROUND_COLOR); | |||||
bwee->labeltype(FL_NORMAL_LABEL); | |||||
bwee->labelfont(1); | |||||
bwee->labelsize(10); | |||||
bwee->labelcolor(FL_FOREGROUND_COLOR); | |||||
bwee->callback((Fl_Callback*)cb_bwee); | |||||
bwee->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
bwee->when(FL_WHEN_RELEASE); | |||||
o->init("PBandWidthEnvelopeEnabled"); | |||||
} // Fl_Osc_Check* bwee | |||||
{ Fl_Osc_VSlider* o = bandwidth = new Fl_Osc_VSlider(225, 40, 115, 15, "Band Width"); | |||||
bandwidth->type(5); | |||||
bandwidth->box(FL_NO_BOX); | |||||
bandwidth->color(FL_BACKGROUND_COLOR); | |||||
bandwidth->selection_color(FL_BACKGROUND_COLOR); | |||||
bandwidth->labeltype(FL_NORMAL_LABEL); | |||||
bandwidth->labelfont(0); | |||||
bandwidth->labelsize(10); | |||||
bandwidth->labelcolor(FL_FOREGROUND_COLOR); | |||||
bandwidth->maximum(127); | |||||
bandwidth->step(1); | |||||
bandwidth->align(Fl_Align(FL_ALIGN_TOP)); | |||||
bandwidth->when(FL_WHEN_CHANGED); | |||||
o->init("Pbandwidth");o->reset_value=40; | |||||
} // Fl_Osc_VSlider* bandwidth | |||||
{ Fl_Osc_TSlider* o = bwidthscale = new Fl_Osc_TSlider(345, 40, 90, 15, "B.Width Scale"); | |||||
bwidthscale->tooltip("How much I increase the BandWidth according to lower/higher harmonics"); | |||||
bwidthscale->type(5); | |||||
bwidthscale->box(FL_NO_BOX); | |||||
bwidthscale->color(FL_BACKGROUND_COLOR); | |||||
bwidthscale->selection_color(FL_BACKGROUND_COLOR); | |||||
bwidthscale->labeltype(FL_NORMAL_LABEL); | |||||
bwidthscale->labelfont(0); | |||||
bwidthscale->labelsize(10); | |||||
bwidthscale->labelcolor(FL_FOREGROUND_COLOR); | |||||
bwidthscale->minimum(-64); | |||||
bwidthscale->maximum(63); | |||||
bwidthscale->step(1); | |||||
bwidthscale->align(Fl_Align(FL_ALIGN_TOP)); | |||||
bwidthscale->when(FL_WHEN_CHANGED); | |||||
o->init("Pbwscale",'i'); | |||||
} // Fl_Osc_TSlider* bwidthscale | |||||
bandwidthsettingsui->end(); | |||||
} // Fl_Group* bandwidthsettingsui | |||||
{ globalfiltergroup = new Fl_Group(440, 221, 290, 185, "FILTER"); | |||||
globalfiltergroup->box(FL_UP_FRAME); | |||||
globalfiltergroup->labeltype(FL_EMBOSSED_LABEL); | |||||
globalfiltergroup->labelfont(1); | |||||
globalfiltergroup->labelsize(13); | |||||
globalfiltergroup->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
{ EnvelopeUI* o = filterenv = new EnvelopeUI(445, 331, 275, 70, "SUBsynth - 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, loc, "GlobalFilterEnvelope/"); | |||||
filterenv->end(); | |||||
} // EnvelopeUI* filterenv | |||||
{ FilterUI* o = filterui = new FilterUI(445, 246, 275, 75, "SUBsynthl - 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(loc + "PGlobalFilter" , osc, loc, "GlobalFilter/"); | |||||
filterui->end(); | |||||
} // FilterUI* filterui | |||||
globalfiltergroup->end(); | |||||
} // Fl_Group* globalfiltergroup | |||||
{ Fl_Osc_Check* o = filtere = new Fl_Osc_Check(445, 226, 85, 20, "Enabled"); | |||||
filtere->box(FL_NO_BOX); | |||||
filtere->down_box(FL_DOWN_BOX); | |||||
filtere->color(FL_BACKGROUND_COLOR); | |||||
filtere->selection_color(FL_FOREGROUND_COLOR); | |||||
filtere->labeltype(FL_NORMAL_LABEL); | |||||
filtere->labelfont(1); | |||||
filtere->labelsize(11); | |||||
filtere->labelcolor(FL_FOREGROUND_COLOR); | |||||
filtere->callback((Fl_Callback*)cb_filtere); | |||||
filtere->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); | |||||
filtere->when(FL_WHEN_RELEASE); | |||||
o->init("PGlobalFilterEnabled"); | |||||
} // Fl_Osc_Check* filtere | |||||
{ Fl_Button* o = new Fl_Button(600, 451, 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(630, 451, 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_Group* o = new Fl_Group(440, 151, 220, 70, "OVERTONES"); | |||||
o->box(FL_UP_FRAME); | |||||
o->labeltype(FL_EMBOSSED_LABEL); | |||||
o->labelfont(1); | |||||
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); | |||||
{ Fl_Osc_Choice* o = spreadtype = new Fl_Osc_Choice(450, 190, 80, 20, "OvertonesPosition"); | |||||
spreadtype->box(FL_UP_BOX); | |||||
spreadtype->down_box(FL_BORDER_BOX); | |||||
spreadtype->color(FL_BACKGROUND_COLOR); | |||||
spreadtype->selection_color(FL_SELECTION_COLOR); | |||||
spreadtype->labeltype(FL_NORMAL_LABEL); | |||||
spreadtype->labelfont(0); | |||||
spreadtype->labelsize(10); | |||||
spreadtype->labelcolor(FL_FOREGROUND_COLOR); | |||||
spreadtype->textsize(10); | |||||
spreadtype->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
spreadtype->when(FL_WHEN_RELEASE); | |||||
spreadtype->menu(menu_spreadtype); | |||||
o->init("POvertoneSpread.type"); | |||||
} // Fl_Osc_Choice* spreadtype | |||||
{ Fl_Osc_Dial* o = spreadpar1 = new Fl_Osc_Dial(548, 173, 30, 30, "Par1"); | |||||
spreadpar1->box(FL_ROUND_UP_BOX); | |||||
spreadpar1->color(FL_BACKGROUND_COLOR); | |||||
spreadpar1->selection_color(FL_INACTIVE_COLOR); | |||||
spreadpar1->labeltype(FL_NORMAL_LABEL); | |||||
spreadpar1->labelfont(0); | |||||
spreadpar1->labelsize(10); | |||||
spreadpar1->labelcolor(FL_FOREGROUND_COLOR); | |||||
spreadpar1->maximum(255); | |||||
spreadpar1->step(1); | |||||
spreadpar1->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
spreadpar1->when(FL_WHEN_CHANGED); | |||||
o->init("POvertoneSpread.par1"); | |||||
} // Fl_Osc_Dial* spreadpar1 | |||||
{ Fl_Osc_Dial* o = spreadpar2 = new Fl_Osc_Dial(583, 173, 30, 30, "Par2"); | |||||
spreadpar2->box(FL_ROUND_UP_BOX); | |||||
spreadpar2->color(FL_BACKGROUND_COLOR); | |||||
spreadpar2->selection_color(FL_INACTIVE_COLOR); | |||||
spreadpar2->labeltype(FL_NORMAL_LABEL); | |||||
spreadpar2->labelfont(0); | |||||
spreadpar2->labelsize(10); | |||||
spreadpar2->labelcolor(FL_FOREGROUND_COLOR); | |||||
spreadpar2->maximum(255); | |||||
spreadpar2->step(1); | |||||
spreadpar2->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
spreadpar2->when(FL_WHEN_CHANGED); | |||||
o->init("POvertoneSpread.par2"); | |||||
} // Fl_Osc_Dial* spreadpar2 | |||||
{ Fl_Osc_Dial* o = spreadpar3 = new Fl_Osc_Dial(618, 173, 30, 30, "ForceH"); | |||||
spreadpar3->box(FL_ROUND_UP_BOX); | |||||
spreadpar3->color(FL_BACKGROUND_COLOR); | |||||
spreadpar3->selection_color(FL_INACTIVE_COLOR); | |||||
spreadpar3->labeltype(FL_NORMAL_LABEL); | |||||
spreadpar3->labelfont(0); | |||||
spreadpar3->labelsize(10); | |||||
spreadpar3->labelcolor(FL_FOREGROUND_COLOR); | |||||
spreadpar3->maximum(255); | |||||
spreadpar3->step(1); | |||||
spreadpar3->align(Fl_Align(FL_ALIGN_BOTTOM)); | |||||
spreadpar3->when(FL_WHEN_CHANGED); | |||||
o->init("POvertoneSpread.par3"); | |||||
} // Fl_Osc_Dial* spreadpar3 | |||||
o->end(); | |||||
} // Fl_Group* o | |||||
SUBparameters->end(); | |||||
} // Fl_Osc_Window* SUBparameters | |||||
return SUBparameters; | |||||
} | |||||
void SUBnoteUI::refresh() { | |||||
SUBparameters->update(); | |||||
for (int i=0;i<MAX_SUB_HARMONICS;i++) h[i]->refresh(); | |||||
//globalfiltergroup->redraw(); | |||||
//ampenv->refresh(); | |||||
//bandwidthenvelopegroup->refresh(); | |||||
//freqenvelopegroup->refresh(); | |||||
//filterui->refresh(); | |||||
//filterenv->refresh(); | |||||
} | |||||
SUBnoteUI::SUBnoteUI(Fl_Osc_Interface *osc_, std::string loc_) { | |||||
osc = osc_; | |||||
loc = loc_; | |||||
make_window(); | |||||
} | |||||
SUBnoteUI::~SUBnoteUI() { | |||||
//for (int i=0;i<MAX_SUB_HARMONICS;i++) delete (h[i]); | |||||
SUBparameters->hide(); | |||||
delete(SUBparameters); | |||||
} |
@@ -1,131 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef SUBnoteUI_h | |||||
#define SUBnoteUI_h | |||||
#include <FL/Fl.H> | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <string.h> | |||||
#include "../globals.h" | |||||
#include "Fl_Osc_VSlider.H" | |||||
#include "Fl_Osc_TSlider.H" | |||||
#include "Fl_Osc_Dial.H" | |||||
#include "EnvelopeUI.h" | |||||
#include "FilterUI.h" | |||||
#include "../Misc/Util.h" | |||||
#include "../Params/SUBnoteParameters.h" | |||||
#include "PresetsUI.h" | |||||
class SUBSlider : public Fl_Osc_TSlider { | |||||
public: | |||||
SUBSlider(int x,int y, int w, int h, const char *label=0) | |||||
; | |||||
void OSC_value(char c); | |||||
void cb(void); | |||||
}; | |||||
#include <FL/Fl_Box.H> | |||||
class SUBnoteharmonic : public Fl_Osc_Group { | |||||
Fl_Osc_Group* make_window(); | |||||
public: | |||||
Fl_Osc_Group *harmonic; | |||||
SUBSlider *mag; | |||||
SUBSlider *bw; | |||||
SUBnoteharmonic(int x,int y, int w, int h, const char *label=0); | |||||
void init(int n_); | |||||
void refresh(); | |||||
~SUBnoteharmonic(); | |||||
private: | |||||
int n; | |||||
}; | |||||
#include <FL/Fl_Scroll.H> | |||||
#include <FL/Fl_Pack.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Group.H> | |||||
class SUBnoteUI : public PresetsUI_ { | |||||
public: | |||||
Fl_Osc_Window* make_window(); | |||||
Fl_Osc_Window *SUBparameters; | |||||
Fl_Pack *harmonics; | |||||
private: | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_VSlider *vol; | |||||
Fl_Osc_VSlider *vsns; | |||||
Fl_Osc_Dial *pan; | |||||
EnvelopeUI *ampenv; | |||||
Fl_Osc_Counter *filterstages; | |||||
Fl_Osc_Choice *magtype; | |||||
static Fl_Menu_Item menu_magtype[]; | |||||
Fl_Osc_Choice *start; | |||||
static Fl_Menu_Item menu_start[]; | |||||
Fl_Group *freqsettingsui; | |||||
EnvelopeUI *freqenvelopegroup; | |||||
Fl_Osc_Check *freqee; | |||||
private: | |||||
void cb_freqee_i(Fl_Osc_Check*, void*); | |||||
static void cb_freqee(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Counter *octave; | |||||
Fl_Osc_Counter *coarsedet; | |||||
Fl_Osc_Slider *detune; | |||||
private: | |||||
void cb_detune_i(Fl_Osc_Slider*, void*); | |||||
static void cb_detune(Fl_Osc_Slider*, void*); | |||||
public: | |||||
Fl_Osc_Output *detunevalueoutput; | |||||
Fl_Osc_Dial *bendadjdial; | |||||
Fl_Osc_Dial *offsethzdial; | |||||
Fl_Osc_Check *hz440; | |||||
private: | |||||
void cb_hz440_i(Fl_Osc_Check*, void*); | |||||
static void cb_hz440(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_Dial *fixedfreqetdial; | |||||
Fl_Osc_Choice *detunetype; | |||||
private: | |||||
void cb_detunetype_i(Fl_Osc_Choice*, void*); | |||||
static void cb_detunetype(Fl_Osc_Choice*, void*); | |||||
public: | |||||
Fl_Osc_Check *stereo; | |||||
private: | |||||
void cb_Clear_i(Fl_Osc_Button*, void*); | |||||
static void cb_Clear(Fl_Osc_Button*, void*); | |||||
public: | |||||
Fl_Group *bandwidthsettingsui; | |||||
EnvelopeUI *bandwidthenvelopegroup; | |||||
Fl_Osc_Check *bwee; | |||||
private: | |||||
void cb_bwee_i(Fl_Osc_Check*, void*); | |||||
static void cb_bwee(Fl_Osc_Check*, void*); | |||||
public: | |||||
Fl_Osc_VSlider *bandwidth; | |||||
Fl_Osc_TSlider *bwidthscale; | |||||
Fl_Group *globalfiltergroup; | |||||
EnvelopeUI *filterenv; | |||||
FilterUI *filterui; | |||||
Fl_Osc_Check *filtere; | |||||
private: | |||||
void cb_filtere_i(Fl_Osc_Check*, void*); | |||||
static void cb_filtere(Fl_Osc_Check*, void*); | |||||
void cb_C_i(Fl_Button*, void*); | |||||
static void cb_C(Fl_Button*, void*); | |||||
void cb_P_i(Fl_Button*, void*); | |||||
static void cb_P(Fl_Button*, void*); | |||||
public: | |||||
Fl_Osc_Choice *spreadtype; | |||||
static Fl_Menu_Item menu_spreadtype[]; | |||||
Fl_Osc_Dial *spreadpar1; | |||||
Fl_Osc_Dial *spreadpar2; | |||||
Fl_Osc_Dial *spreadpar3; | |||||
void refresh(); | |||||
SUBnoteUI(Fl_Osc_Interface *osc_, std::string loc_); | |||||
~SUBnoteUI(); | |||||
private: | |||||
Fl_Osc_Interface *osc; | |||||
std::string loc; | |||||
SUBnoteharmonic *h[MAX_SUB_HARMONICS]; | |||||
}; | |||||
#endif |
@@ -1,552 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#include "external/zynaddsubfx/UI/VirKeyboard.h" | |||||
//Copyright (c) 2002-2005 Nasca Octavian Paul | |||||
//License: GNU GPL version 2 or later | |||||
static const int keyspos[12]={0,-1,1,-2,2,3,-4,4,-5,5,-6,6}; | |||||
static const int keysoct1qwerty[]={'q','2','w','3','e','r','5','t','6','y','7','u','i','9','o','0','p','[','=',']','\\',FL_Enter,0}; | |||||
static const int keysoct2qwerty[]={'z','s','x','d','c','v','g','b','h','n','j','m',',','l','.',';','/',0}; | |||||
static const int keysoct1dw[]={'\'','2',',','3','.','p','5','y','6','f','7','g','c','9','r','0','l','/',']','=','\\',FL_Enter,0}; | |||||
static const int keysoct2dw[]={';','o','q','e','j','k','i','x','d','b','h','m','w','n','v','s','z',0}; | |||||
static const int keysoct1qwertz[]={'q','2','w','3','e','r','5','t','6','z','7','u','i','9','o','0','p',252,'\'','+','\\',FL_Enter,0}; | |||||
static const int keysoct2qwertz[]={'y','s','x','d','c','v','g','b','h','n','j','m',',','l','.',246,'-',0}; | |||||
static const int keysoct1az[]={'a',233,'z','\"','e','r','(','t','-','y',232,'u','i',231,'o',224,'p',65106,'=','$',0}; | |||||
static const int keysoct2az[]={'w','s','x','d','c','v','g','b','h','n','j',',',';','l',':','m','!',0}; | |||||
VirKeys::VirKeys(int x,int y, int w, int h, const char *label):Fl_Box(x,y,w,h,label),Fl_Osc_Widget() { | |||||
} | |||||
void VirKeys::OSC_value(int layout) { | |||||
keylayout = layout; | |||||
} | |||||
void VirKeys::init(Fl_Osc_Interface *osc_, std::string loc_) { | |||||
osc=osc_; | |||||
osc->createLink("/config/cfg.VirKeybLayout", this); | |||||
osc->requestValue("/config/cfg.VirKeybLayout"); | |||||
loc=loc_; | |||||
for (int i=0;i<N_OCT*12+1;i++) pressed[i]=0; | |||||
keylayout=0; | |||||
midich=0; | |||||
midivel=100; | |||||
midioct=2; | |||||
keyoct1=3; | |||||
keyoct2=2; | |||||
rndvelocity=0; | |||||
} | |||||
void VirKeys::draw() { | |||||
int ox=x(),oy=y(),lx=w(),ly=h()-1,i; | |||||
#ifdef NTK_GUI | |||||
#ifdef CARLA_VERSION_STRING | |||||
Fl_Image *white_up = Fl_Shared_Image::get( gUiPixmapPath + "/white_key.png" ); | |||||
Fl_Image *white_down = Fl_Shared_Image::get( gUiPixmapPath + "/white_key_pressed.png" ); | |||||
Fl_Image *black_up = Fl_Shared_Image::get( gUiPixmapPath + "/black_key.png" ); | |||||
Fl_Image *black_down = Fl_Shared_Image::get( gUiPixmapPath + "/black_key_pressed.png" ); | |||||
#else | |||||
Fl_Image *white_up = Fl_Shared_Image::get( PIXMAP_PATH "white_key.png" ); | |||||
Fl_Image *white_down = Fl_Shared_Image::get( PIXMAP_PATH "white_key_pressed.png" ); | |||||
Fl_Image *black_up = Fl_Shared_Image::get( PIXMAP_PATH "black_key.png" ); | |||||
Fl_Image *black_down = Fl_Shared_Image::get( PIXMAP_PATH "black_key_pressed.png" ); | |||||
#endif | |||||
//On error fetch everything from source directory | |||||
if(!(white_up&&white_down&&black_up&&black_down)) { | |||||
white_up = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/white_key.png"); | |||||
white_down = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/white_key_pressed.png"); | |||||
black_up = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/black_key.png"); | |||||
black_down = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/black_key_pressed.png"); | |||||
} | |||||
Fl_Image *key; | |||||
for (i=0;i<N_OCT*12;i++) { | |||||
int noct=i/12; | |||||
int kv=keyspos[i%12]; | |||||
if (kv>=0){//white keys | |||||
if (pressed[i]==0) | |||||
key = white_up; | |||||
else | |||||
key = white_down; | |||||
key->draw( ox + (kv + 7 * noct ) * white_up->w() + 3, oy ); | |||||
} | |||||
} | |||||
for (i=0;i<N_OCT*12;i++){ | |||||
int noct=i/12; | |||||
int kv=keyspos[i%12]; | |||||
if ( kv < 0 ) { | |||||
kv=keyspos[(i+1)%12]; | |||||
if (pressed[i]==0) | |||||
key = black_up; | |||||
else | |||||
key = black_down; | |||||
key->draw( ox + (kv + 7 * noct ) * white_up->w() - black_up->w() / 2 + 2, oy ); | |||||
} | |||||
} | |||||
#else | |||||
if (damage()!=1){ | |||||
fl_color(250,240,230); | |||||
fl_rectf(ox,oy,lx,ly); | |||||
fl_color(FL_BLACK); | |||||
fl_line(ox,oy,ox+lx,oy); | |||||
fl_line(ox,oy+ly,ox+lx,oy+ly); | |||||
for (i=0;i<N_OCT*7+1;i++){ | |||||
fl_line(ox+i*SIZE_WHITE,oy,ox+i*SIZE_WHITE,oy+ly); | |||||
int ik=i%7; | |||||
if ((ik==1)||(ik==2)||(ik==4)||(ik==5)||(ik==6)) | |||||
fl_rectf(ox+i*SIZE_WHITE-SIZE_BLACK/2,oy, | |||||
SIZE_BLACK+1,ly*3/5); | |||||
} | |||||
} | |||||
for (i=0;i<N_OCT*12;i++){ | |||||
// if (pressed[i]==0) continue; | |||||
int noct=i/12; | |||||
int kv=keyspos[i%12]; | |||||
if (kv>=0){//white keys | |||||
if (pressed[i]==0) fl_color(250,240,230); | |||||
else fl_color(FL_BLUE); | |||||
fl_rectf(ox+(kv+7*noct)*SIZE_WHITE+3,oy+ly*3/5+2, | |||||
SIZE_WHITE-4,ly*2/5-3); | |||||
} else {//black keys | |||||
kv=keyspos[(i+1)%12]; | |||||
if (pressed[i]==0) fl_color(FL_BLACK); | |||||
else fl_color(FL_BLUE); | |||||
fl_rectf(ox+(kv+7*noct)*SIZE_WHITE-SIZE_BLACK/2+2,oy+2, | |||||
SIZE_BLACK-3,ly*3/5-5); | |||||
} | |||||
} | |||||
#endif | |||||
} | |||||
int VirKeys::handle(int event) { | |||||
int i; | |||||
int ly=h(); | |||||
int x_=Fl::event_x()-x(); | |||||
int y_=Fl::event_y()-y(); | |||||
if ( (x_<0)&&(x_>w()) && (y_<0)&&(y_>h())){ | |||||
return(0); | |||||
}; | |||||
if ((event==FL_PUSH)||(event==FL_DRAG)||(event==FL_RELEASE)){ | |||||
int kpos=-1; | |||||
if (y_>ly*3/5){//white keys | |||||
int pos=x_/SIZE_WHITE; | |||||
if (pos<0) return(1); | |||||
for (i=0;i<12;i++) { | |||||
if (pos%7==keyspos[i]) { | |||||
kpos=pos/7*12+i; | |||||
break; | |||||
}; | |||||
}; | |||||
} else {//black keys | |||||
int pos=(x_+SIZE_WHITE/2)/SIZE_WHITE; | |||||
if (pos<0) return(1); | |||||
for (i=1;i<12;i++) { | |||||
if (pos%7==-keyspos[i]) { | |||||
kpos=pos/7*12+i; | |||||
break; | |||||
}; | |||||
}; | |||||
}; | |||||
if ((kpos!=-1)&&((event==FL_PUSH)||(event==FL_DRAG))&& | |||||
(Fl::event_shift()==0)) { | |||||
presskey(kpos,1,1); | |||||
}; | |||||
if ((event==FL_PUSH)&&(Fl::event_shift()!=0)) { | |||||
if (pressed[kpos]==0) presskey(kpos,0,1); | |||||
else releasekey(kpos,1); | |||||
}; | |||||
if ((event==FL_RELEASE)&&(Fl::event_shift()==0)) | |||||
releaseallkeys(1); | |||||
take_focus(); | |||||
}; | |||||
const int *keysoct1=keysoct1qwerty; | |||||
const int *keysoct2=keysoct2qwerty; | |||||
if (keylayout==2) { | |||||
keysoct1=keysoct1dw; | |||||
keysoct2=keysoct2dw; | |||||
}else if (keylayout==3) { | |||||
keysoct1=keysoct1qwertz; | |||||
keysoct2=keysoct2qwertz; | |||||
}else if (keylayout==4) { | |||||
keysoct1=keysoct1az; | |||||
keysoct2=keysoct2az; | |||||
}; | |||||
if ((event==FL_KEYDOWN)||(event==FL_KEYUP)){ | |||||
int key=Fl::event_key(); | |||||
int kpos=-1; | |||||
for (i=0;keysoct1[i]!=0;i++) if (key==keysoct1[i]) kpos=i+12*keyoct1; | |||||
for (i=0;keysoct2[i]!=0;i++) if (key==keysoct2[i]) kpos=i+12*keyoct2; | |||||
if (kpos==-1) return(0); | |||||
if ((event==FL_KEYUP) && (Fl::event_key(key)==0) && (Fl::get_key(key)!=0)) return(0); | |||||
if (event==FL_KEYDOWN) presskey(kpos,0,2); | |||||
else releasekey(kpos,2); | |||||
}; | |||||
return(1); | |||||
} | |||||
void VirKeys::presskey(int nk,int exclusive,int type) { | |||||
//Exclusive means that multiple keys can be pressed at once | |||||
//when the user uses the shift key | |||||
if (nk>=N_OCT*12) return; | |||||
if ((nk<0)&&(exclusive==0)) { | |||||
releaseallkeys(type); | |||||
return; | |||||
}; | |||||
if (nk<0) return; | |||||
if (pressed[nk]!=0) return;//the key is already pressed | |||||
if (exclusive!=0) releaseallkeys(type); | |||||
pressed[nk]=type; | |||||
damage(1); | |||||
float vel=midivel; | |||||
if (rndvelocity!=0){ | |||||
vel=midivel*(127.0-rndvelocity)/127.0+(rand()/RAND_MAX)*rndvelocity; | |||||
}; | |||||
osc->write(loc+"noteOn", "iii", midich,nk+midioct*12,(int)vel); | |||||
} | |||||
void VirKeys::releasekey(int nk,int type) { | |||||
if ((nk<0)||(nk>=N_OCT*12)) return; | |||||
if (pressed[nk]==0) return;//the key is not pressed | |||||
if ((type!=0)&&(pressed[nk]!=type)) return; | |||||
pressed[nk]=0; | |||||
damage(1); | |||||
osc->write(loc+"noteOff", "ii", midich,nk+12*midioct); | |||||
} | |||||
void VirKeys::releaseallkeys(int type) { | |||||
for (int i=0;i<N_OCT*12;i++) releasekey(i,type); | |||||
} | |||||
void VirKeyboard::cb_virkeyboardwindow_i(Fl_Double_Window*, void*) { | |||||
releaseallkeys(); | |||||
virkeyboardwindow->hide(); | |||||
} | |||||
void VirKeyboard::cb_virkeyboardwindow(Fl_Double_Window* o, void* v) { | |||||
((VirKeyboard*)(o->user_data()))->cb_virkeyboardwindow_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_qwer_i(Fl_Counter* o, void*) { | |||||
releaseallkeys(); | |||||
virkeys->keyoct1=(int) o->value(); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_qwer(Fl_Counter* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_qwer_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_zxcv_i(Fl_Counter* o, void*) { | |||||
releaseallkeys(); | |||||
virkeys->keyoct2=(int) o->value(); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_zxcv(Fl_Counter* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_zxcv_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_Vel_i(Fl_Value_Slider* o, void*) { | |||||
virkeys->midivel=(int) o->value(); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_Vel(Fl_Value_Slider* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_Vel_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_Oct_i(Fl_Counter* o, void*) { | |||||
releaseallkeys(); | |||||
virkeys->midioct=(int) o->value(); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_Oct(Fl_Counter* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_Oct_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_Close_i(Fl_Button*, void*) { | |||||
releaseallkeys(); | |||||
virkeyboardwindow->hide(); | |||||
} | |||||
void VirKeyboard::cb_Close(Fl_Button* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_Close_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_Cval_i(Fl_Value_Slider* o, void*) { | |||||
int ctl=midictl; | |||||
osc->write("/setController", "iii", virkeys->midich,ctl,(int) o->value()); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_Cval(Fl_Value_Slider* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_Cval_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_Controller_i(Fl_Choice* o, void*) { | |||||
switch((int) o->value()+1){ | |||||
case 1: midictl=C_modwheel; break; | |||||
case 2: midictl=C_volume; break; | |||||
case 3: midictl=C_panning; break; | |||||
case 4: midictl=C_expression; break; | |||||
case 5: midictl=C_sustain; break; | |||||
case 6: midictl=C_portamento; break; | |||||
case 7: midictl=C_filterq; break; | |||||
case 8: midictl=C_filtercutoff; break; | |||||
case 9: midictl=C_bandwidth; break; | |||||
case 10: midictl=C_fmamp; break; | |||||
case 11: midictl=C_resonance_center; break; | |||||
case 12: midictl=C_resonance_bandwidth; break; | |||||
default: midictl=C_NULL; break; | |||||
}; | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_Controller(Fl_Choice* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_Controller_i(o,v); | |||||
} | |||||
Fl_Menu_Item VirKeyboard::menu_Controller[] = { | |||||
{"01: Mod.Wheel", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"07: Volume", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"10: Panning", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"11: Expression", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"64: Sustain", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"65: Portamento", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"71: Filter Q", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"74: Filter Freq.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"75: Bandwidth", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"76: FM Gain", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"77: Res. c. freq", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{"78: Res. bw.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, | |||||
{0,0,0,0,0,0,0,0,0} | |||||
}; | |||||
void VirKeyboard::cb_pitchwheelroller_i(Fl_Roller* o, void*) { | |||||
osc->write("/setController", "iii", virkeys->midich,C_pitchwheel,-(int) o->value()); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_pitchwheelroller(Fl_Roller* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_pitchwheelroller_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_R_i(Fl_Button*, void*) { | |||||
pitchwheelroller->value(0); | |||||
pitchwheelroller->do_callback(); | |||||
} | |||||
void VirKeyboard::cb_R(Fl_Button* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_R_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_Vrnd_i(WidgetPDial* o, void*) { | |||||
virkeys->rndvelocity=(int) o->value(); | |||||
} | |||||
void VirKeyboard::cb_Vrnd(WidgetPDial* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_Vrnd_i(o,v); | |||||
} | |||||
void VirKeyboard::cb_partrcv_i(Fl_Choice* o, void*) { | |||||
releaseallkeys(); | |||||
virkeys->midich=(int) o->value(); | |||||
virkeys->take_focus(); | |||||
} | |||||
void VirKeyboard::cb_partrcv(Fl_Choice* o, void* v) { | |||||
((VirKeyboard*)(o->parent()->user_data()))->cb_partrcv_i(o,v); | |||||
} | |||||
Fl_Double_Window* VirKeyboard::make_window() { | |||||
{ virkeyboardwindow = new Fl_Double_Window(650, 130, "Virtual Keyboard - ZynAddSubFX"); | |||||
virkeyboardwindow->callback((Fl_Callback*)cb_virkeyboardwindow, (void*)(this)); | |||||
{ VirKeys* o = virkeys = new VirKeys(10, 10, 590, 80, "Keyboard"); | |||||
virkeys->box(FL_FLAT_BOX); | |||||
virkeys->color((Fl_Color)17); | |||||
virkeys->selection_color(FL_BACKGROUND_COLOR); | |||||
virkeys->labeltype(FL_NORMAL_LABEL); | |||||
virkeys->labelfont(0); | |||||
virkeys->labelsize(14); | |||||
virkeys->labelcolor(FL_FOREGROUND_COLOR); | |||||
virkeys->align(Fl_Align(FL_ALIGN_CENTER)); | |||||
virkeys->when(FL_WHEN_RELEASE); | |||||
o->init(osc,loc); | |||||
} // VirKeys* virkeys | |||||
{ Fl_Counter* o = new Fl_Counter(380, 95, 45, 15, "\"qwer..\" Oct"); | |||||
o->tooltip("keys \"q2w3er5t6y...\" octave"); | |||||
o->type(1); | |||||
o->labelsize(10); | |||||
o->minimum(0); | |||||
o->maximum(5); | |||||
o->step(1); | |||||
o->textfont(1); | |||||
o->textsize(10); | |||||
o->callback((Fl_Callback*)cb_qwer); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->when(FL_WHEN_RELEASE_ALWAYS); | |||||
o->value(virkeys->keyoct1); | |||||
} // Fl_Counter* o | |||||
{ Fl_Counter* o = new Fl_Counter(380, 110, 45, 15, "\"zxcv..\" Oct"); | |||||
o->tooltip("keys \"zsxdcvgbh...\" octave"); | |||||
o->type(1); | |||||
o->labelsize(10); | |||||
o->minimum(0); | |||||
o->maximum(5); | |||||
o->step(1); | |||||
o->textfont(1); | |||||
o->textsize(10); | |||||
o->callback((Fl_Callback*)cb_zxcv); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->when(FL_WHEN_RELEASE_ALWAYS); | |||||
o->value(virkeys->keyoct2); | |||||
} // Fl_Counter* o | |||||
{ Fl_Value_Slider* o = new Fl_Value_Slider(95, 105, 100, 15, "Vel"); | |||||
o->tooltip("Velocity"); | |||||
o->type(5); | |||||
o->box(FL_NO_BOX); | |||||
o->labelsize(10); | |||||
o->minimum(1); | |||||
o->maximum(127); | |||||
o->step(1); | |||||
o->callback((Fl_Callback*)cb_Vel); | |||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
o->value(virkeys->midivel); | |||||
} // Fl_Value_Slider* o | |||||
{ Fl_Counter* o = new Fl_Counter(255, 100, 55, 20, "Oct."); | |||||
o->tooltip("Midi Octave"); | |||||
o->type(1); | |||||
o->labelsize(11); | |||||
o->minimum(0); | |||||
o->maximum(5); | |||||
o->step(1); | |||||
o->textfont(1); | |||||
o->textsize(11); | |||||
o->callback((Fl_Callback*)cb_Oct); | |||||
o->align(Fl_Align(FL_ALIGN_LEFT)); | |||||
o->when(FL_WHEN_RELEASE_ALWAYS); | |||||
o->value(virkeys->midioct); | |||||
} // Fl_Counter* o | |||||
{ Fl_Button* o = new Fl_Button(545, 105, 55, 20, "Close"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->callback((Fl_Callback*)cb_Close); | |||||
} // Fl_Button* o | |||||
{ Fl_Value_Slider* o = new Fl_Value_Slider(605, 10, 15, 115, "Cval"); | |||||
o->tooltip("Controller value"); | |||||
o->type(2); | |||||
o->box(FL_ENGRAVED_BOX); | |||||
o->selection_color((Fl_Color)229); | |||||
o->labelsize(8); | |||||
o->minimum(127); | |||||
o->maximum(0); | |||||
o->step(1); | |||||
o->value(64); | |||||
o->textsize(7); | |||||
o->callback((Fl_Callback*)cb_Cval); | |||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
} // Fl_Value_Slider* o | |||||
{ Fl_Choice* o = new Fl_Choice(435, 105, 100, 15, "Controller"); | |||||
o->down_box(FL_BORDER_BOX); | |||||
o->labelsize(10); | |||||
o->textfont(1); | |||||
o->textsize(10); | |||||
o->callback((Fl_Callback*)cb_Controller); | |||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
o->when(FL_WHEN_RELEASE_ALWAYS); | |||||
o->menu(menu_Controller); | |||||
midictl=C_filtercutoff;o->value(7); | |||||
} // Fl_Choice* o | |||||
{ pitchwheelroller = new Fl_Roller(625, 10, 20, 95, "Pwh"); | |||||
pitchwheelroller->tooltip("Pitch Wheel"); | |||||
pitchwheelroller->labelsize(8); | |||||
pitchwheelroller->minimum(-8192); | |||||
pitchwheelroller->maximum(8192); | |||||
pitchwheelroller->step(64); | |||||
pitchwheelroller->callback((Fl_Callback*)cb_pitchwheelroller); | |||||
pitchwheelroller->align(Fl_Align(FL_ALIGN_TOP)); | |||||
pitchwheelroller->when(3); | |||||
} // Fl_Roller* pitchwheelroller | |||||
{ Fl_Button* o = new Fl_Button(625, 110, 20, 15, "R"); | |||||
o->tooltip("Reset Pitch Bend"); | |||||
o->box(FL_THIN_UP_BOX); | |||||
o->labelfont(1); | |||||
o->callback((Fl_Callback*)cb_R); | |||||
} // Fl_Button* o | |||||
{ WidgetPDial* o = new WidgetPDial(205, 105, 20, 20, "Vrnd"); | |||||
o->tooltip("Velocity Randomness"); | |||||
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->callback((Fl_Callback*)cb_Vrnd); | |||||
o->align(Fl_Align(129)); | |||||
o->when(FL_WHEN_CHANGED); | |||||
o->value(virkeys->rndvelocity); | |||||
} // WidgetPDial* o | |||||
{ Fl_Choice* o = partrcv = new Fl_Choice(20, 105, 65, 20, "MIDI Ch."); | |||||
partrcv->tooltip("Send to Midi Channel"); | |||||
partrcv->down_box(FL_BORDER_BOX); | |||||
partrcv->labelsize(10); | |||||
partrcv->textfont(1); | |||||
partrcv->textsize(10); | |||||
partrcv->callback((Fl_Callback*)cb_partrcv); | |||||
partrcv->align(Fl_Align(FL_ALIGN_TOP_LEFT)); | |||||
char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Chn%d",i+1);if (i!=9) o->add(nrstr); else o->add("Drum10");}; | |||||
o->value(virkeys->midich); | |||||
} // Fl_Choice* partrcv | |||||
virkeyboardwindow->end(); | |||||
} // Fl_Double_Window* virkeyboardwindow | |||||
return virkeyboardwindow; | |||||
} | |||||
VirKeyboard::VirKeyboard(Fl_Osc_Interface *osc_, std::string loc_) { | |||||
osc=osc_; | |||||
loc=loc_; | |||||
midictl=75; | |||||
make_window(); | |||||
} | |||||
VirKeyboard::~VirKeyboard() { | |||||
delete virkeyboardwindow; | |||||
} | |||||
void VirKeyboard::show() { | |||||
virkeyboardwindow->show(); | |||||
} | |||||
void VirKeyboard::releaseallkeys() { | |||||
virkeys->releaseallkeys(0); | |||||
} |
@@ -1,100 +0,0 @@ | |||||
// generated by Fast Light User Interface Designer (fluid) version 1.0300 | |||||
#ifndef VirKeyboard_h | |||||
#define VirKeyboard_h | |||||
#include <FL/Fl.H> | |||||
#include <cstdlib> | |||||
#include <FL/fl_draw.H> | |||||
#include <FL/Fl_Box.H> | |||||
#include "../globals.h" | |||||
#include "../Misc/Util.h" | |||||
#include "WidgetPDial.h" | |||||
#include "Fl_Osc_Counter.H" | |||||
#include "common.H" | |||||
#ifdef NTK_GUI | |||||
#include "FL/Fl_Shared_Image.H" | |||||
#endif | |||||
using namespace zyncarla; | |||||
class VirKeys : public Fl_Box, public Fl_Osc_Widget { | |||||
static const int N_OCT=6; | |||||
static const int SIZE_WHITE=14; | |||||
static const int SIZE_BLACK=8; | |||||
public: | |||||
VirKeys(int x,int y, int w, int h, const char *label=0); | |||||
void OSC_value(int layout); | |||||
void init(Fl_Osc_Interface *osc_, std::string loc_); | |||||
void draw(); | |||||
int handle(int event); | |||||
void presskey(int nk,int exclusive,int type); | |||||
void releasekey(int nk,int type); | |||||
void releaseallkeys(int type); | |||||
private: | |||||
int pressed[N_OCT*12+1]; | |||||
public: | |||||
unsigned char midich; | |||||
int keylayout; | |||||
unsigned char midivel; | |||||
char midioct,keyoct1,keyoct2; | |||||
unsigned char rndvelocity; | |||||
private: | |||||
Fl_Osc_Interface *osc; | |||||
std::string loc; | |||||
}; | |||||
#include <FL/Fl_Double_Window.H> | |||||
#include <FL/Fl_Counter.H> | |||||
#include <FL/Fl_Value_Slider.H> | |||||
#include <FL/Fl_Button.H> | |||||
#include <FL/Fl_Choice.H> | |||||
#include <FL/Fl_Roller.H> | |||||
class VirKeyboard { | |||||
public: | |||||
Fl_Double_Window* make_window(); | |||||
Fl_Double_Window *virkeyboardwindow; | |||||
private: | |||||
void cb_virkeyboardwindow_i(Fl_Double_Window*, void*); | |||||
static void cb_virkeyboardwindow(Fl_Double_Window*, void*); | |||||
public: | |||||
VirKeys *virkeys; | |||||
private: | |||||
void cb_qwer_i(Fl_Counter*, void*); | |||||
static void cb_qwer(Fl_Counter*, void*); | |||||
void cb_zxcv_i(Fl_Counter*, void*); | |||||
static void cb_zxcv(Fl_Counter*, void*); | |||||
void cb_Vel_i(Fl_Value_Slider*, void*); | |||||
static void cb_Vel(Fl_Value_Slider*, void*); | |||||
void cb_Oct_i(Fl_Counter*, void*); | |||||
static void cb_Oct(Fl_Counter*, void*); | |||||
void cb_Close_i(Fl_Button*, void*); | |||||
static void cb_Close(Fl_Button*, void*); | |||||
void cb_Cval_i(Fl_Value_Slider*, void*); | |||||
static void cb_Cval(Fl_Value_Slider*, void*); | |||||
void cb_Controller_i(Fl_Choice*, void*); | |||||
static void cb_Controller(Fl_Choice*, void*); | |||||
static Fl_Menu_Item menu_Controller[]; | |||||
public: | |||||
Fl_Roller *pitchwheelroller; | |||||
private: | |||||
void cb_pitchwheelroller_i(Fl_Roller*, void*); | |||||
static void cb_pitchwheelroller(Fl_Roller*, void*); | |||||
void cb_R_i(Fl_Button*, void*); | |||||
static void cb_R(Fl_Button*, void*); | |||||
void cb_Vrnd_i(WidgetPDial*, void*); | |||||
static void cb_Vrnd(WidgetPDial*, void*); | |||||
public: | |||||
Fl_Choice *partrcv; | |||||
private: | |||||
void cb_partrcv_i(Fl_Choice*, void*); | |||||
static void cb_partrcv(Fl_Choice*, void*); | |||||
public: | |||||
VirKeyboard(Fl_Osc_Interface *osc_, std::string loc_); | |||||
~VirKeyboard(); | |||||
void show(); | |||||
void releaseallkeys(); | |||||
private: | |||||
int midictl; | |||||
Fl_Osc_Interface *osc; | |||||
std::string loc; | |||||
}; | |||||
#endif |