forked from klang-modular/synthapp
parent
66a47fec0c
commit
8aa080d588
10 changed files with 40 additions and 499 deletions
@ -1,9 +1,11 @@ |
|||||||
build/ |
build/ |
||||||
.DS_Store |
.DS_Store |
||||||
|
*.swp |
||||||
|
*.a |
||||||
CMakeCache.txt |
CMakeCache.txt |
||||||
CMakeFiles/ |
CMakeFiles/ |
||||||
Launch_main_*/ |
Launch_main_*/ |
||||||
*.cmake |
*.cmake |
||||||
main |
main |
||||||
Makefile |
Makefile |
||||||
.vs/ |
.vs/ |
||||||
|
@ -1,10 +0,0 @@ |
|||||||
#include <wx/wxprec.h> |
|
||||||
|
|
||||||
#ifndef WX_PRECOMP |
|
||||||
#include <wx/wx.h> |
|
||||||
#endif |
|
||||||
|
|
||||||
class CCSlider : public wxPanel { |
|
||||||
public: |
|
||||||
CCSlider(wxWindow* parent, wxWindowID id, int value, const wxString& label); |
|
||||||
}; |
|
@ -1,28 +0,0 @@ |
|||||||
#ifndef __SYNTHAPP_H__ |
|
||||||
#define __SYNTHAPP_H__ |
|
||||||
|
|
||||||
#include <mutex> |
|
||||||
|
|
||||||
#include <wx/wxprec.h> |
|
||||||
|
|
||||||
#ifndef WX_PRECOMP |
|
||||||
#include <wx/wx.h> |
|
||||||
#endif |
|
||||||
|
|
||||||
#include <portaudio.h> |
|
||||||
#include <portmidi.h> |
|
||||||
|
|
||||||
#include "synth.h" |
|
||||||
|
|
||||||
class SynthApp : public wxApp { |
|
||||||
public: |
|
||||||
PaStream* paStream; |
|
||||||
PmStream* pmStream; |
|
||||||
Synth synth; |
|
||||||
std::mutex synthMutex; |
|
||||||
|
|
||||||
virtual bool OnInit(); |
|
||||||
virtual int OnExit(); |
|
||||||
}; |
|
||||||
|
|
||||||
#endif |
|
@ -1,96 +0,0 @@ |
|||||||
#ifndef __SYNTHFRAME_H__ |
|
||||||
#define __SYNTHFRAME_H__ |
|
||||||
|
|
||||||
#include <wx/wxprec.h> |
|
||||||
|
|
||||||
#ifndef WX_PRECOMP |
|
||||||
#include <wx/wx.h> |
|
||||||
#endif |
|
||||||
|
|
||||||
class SynthFrame : public wxFrame { |
|
||||||
public: |
|
||||||
SynthFrame(); |
|
||||||
|
|
||||||
private: |
|
||||||
enum { |
|
||||||
UNISON_SLIDER = wxID_TOP, |
|
||||||
|
|
||||||
OSC1_MODE_SLIDER, |
|
||||||
OSC2_MODE_SLIDER, |
|
||||||
|
|
||||||
OSC_DET_SLIDER, |
|
||||||
OSC2_PIT_SLIDER, |
|
||||||
OSC_MIX_SLIDER, |
|
||||||
|
|
||||||
NOISE_MIX_SLIDER, |
|
||||||
|
|
||||||
FLT_TYPE_SLIDER, |
|
||||||
FLT_SLOPE_SLIDER, |
|
||||||
FLT_FREQ_SLIDER, |
|
||||||
FLT_Q_SLIDER, |
|
||||||
|
|
||||||
AMP_ATTACK_SLIDER, |
|
||||||
AMP_DECAY_SLIDER, |
|
||||||
AMP_SUSTAIN_SLIDER, |
|
||||||
AMP_RELEASE_SLIDER, |
|
||||||
|
|
||||||
MOD_ATTACK_SLIDER, |
|
||||||
MOD_DECAY_SLIDER, |
|
||||||
MOD_SUSTAIN_SLIDER, |
|
||||||
MOD_RELEASE_SLIDER, |
|
||||||
|
|
||||||
KEY_TRACK_SLIDER, |
|
||||||
|
|
||||||
MOD_ENV_FLT_SLIDER, |
|
||||||
|
|
||||||
LFO_FREQ_SLIDER, |
|
||||||
LFO_PITCH_SLIDER, |
|
||||||
LFO_FILTER_SLIDER, |
|
||||||
|
|
||||||
REVERB_SLIDER |
|
||||||
}; |
|
||||||
|
|
||||||
wxSlider* addCCSlider(wxWindow* parent, wxSizer* sizer, wxWindowID id, const wxString& label, uint8_t value); |
|
||||||
|
|
||||||
void OnExit(wxCommandEvent& event); |
|
||||||
void OnAbout(wxCommandEvent& event); |
|
||||||
|
|
||||||
void OnUnisonScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnOsc1ModeScroll(wxScrollEvent& event); |
|
||||||
void OnOsc2ModeScroll(wxScrollEvent& event); |
|
||||||
void OnOscDetScroll(wxScrollEvent& event); |
|
||||||
void OnOsc2PitScroll(wxScrollEvent& event); |
|
||||||
void OnOscMixScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnNoiseMixScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnFltTypeScroll(wxScrollEvent& event); |
|
||||||
void OnFltSlopeScroll(wxScrollEvent& event); |
|
||||||
void OnFltFreqScroll(wxScrollEvent& event); |
|
||||||
void OnFltQScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnKeyTrackScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnAmpAttackScroll(wxScrollEvent& event); |
|
||||||
void OnAmpDecayScroll(wxScrollEvent& event); |
|
||||||
void OnAmpSustainScroll(wxScrollEvent& event); |
|
||||||
void OnAmpReleaseScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnFltAttackScroll(wxScrollEvent& event); |
|
||||||
void OnFltDecayScroll(wxScrollEvent& event); |
|
||||||
void OnFltSustainScroll(wxScrollEvent& event); |
|
||||||
void OnFltReleaseScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnModEnvFltGainScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnLFOFreqScroll(wxScrollEvent& event); |
|
||||||
void OnLFOPitchScroll(wxScrollEvent& event); |
|
||||||
void OnLFOFilterScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
void OnReverbScroll(wxScrollEvent& event); |
|
||||||
|
|
||||||
wxDECLARE_EVENT_TABLE(); |
|
||||||
}; |
|
||||||
|
|
||||||
#endif |
|
@ -1 +0,0 @@ |
|||||||
Subproject commit a242283456ffd0920a2384f6fee45d56a7ecc3a5 |
|
@ -1,8 +0,0 @@ |
|||||||
#include "ccslider.h" |
|
||||||
|
|
||||||
CCSlider::CCSlider(wxWindow* parent, wxWindowID id, int value, const wxString& label) : wxPanel(parent) { |
|
||||||
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); |
|
||||||
SetSizer(sizer); |
|
||||||
sizer->Add(new wxSlider(this, id, value, 0, 127, wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL | wxSL_INVERSE), 1, wxEXPAND); |
|
||||||
sizer->Add(new wxStaticText(this, wxID_ANY, label)); |
|
||||||
} |
|
@ -1,295 +0,0 @@ |
|||||||
#include <iostream> |
|
||||||
|
|
||||||
#include "cc.h" |
|
||||||
#include "preset.h" |
|
||||||
|
|
||||||
#include "synthframe.h" |
|
||||||
#include "synthapp.h" |
|
||||||
|
|
||||||
#include "ccslider.h" |
|
||||||
|
|
||||||
wxDECLARE_APP(SynthApp); |
|
||||||
|
|
||||||
SynthFrame::SynthFrame() : wxFrame(NULL, wxID_ANY, "Hello World") { |
|
||||||
wxMenu *menuFile = new wxMenu; |
|
||||||
menuFile->Append(wxID_EXIT); |
|
||||||
|
|
||||||
wxMenu *menuHelp = new wxMenu; |
|
||||||
menuHelp->Append(wxID_ABOUT); |
|
||||||
|
|
||||||
wxMenuBar *menuBar = new wxMenuBar; |
|
||||||
menuBar->Append(menuFile, "&File"); |
|
||||||
menuBar->Append(menuHelp, "&Help"); |
|
||||||
|
|
||||||
SetMenuBar(menuBar); |
|
||||||
|
|
||||||
CreateStatusBar(); |
|
||||||
SetStatusText("Welcome to wxWidgets!"); |
|
||||||
|
|
||||||
wxPanel* panel = new wxPanel(this); |
|
||||||
|
|
||||||
wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL); |
|
||||||
panel->SetSizer(sizer); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, UNISON_SLIDER, DEFAULT_PRESET.unison, "Uni"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, OSC1_MODE_SLIDER, DEFAULT_PRESET.osc1Mode, "O1M"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, OSC2_MODE_SLIDER, DEFAULT_PRESET.osc2Mode, "O2M"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, OSC_DET_SLIDER, DEFAULT_PRESET.oscDetune, "Det"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, OSC2_PIT_SLIDER, DEFAULT_PRESET.osc2Pitch, "2nd"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, OSC_MIX_SLIDER, DEFAULT_PRESET.oscMix, "OMx"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, NOISE_MIX_SLIDER, DEFAULT_PRESET.noiseMix, "NMx"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, FLT_TYPE_SLIDER, DEFAULT_PRESET.filter.type, "FTy"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, FLT_SLOPE_SLIDER, DEFAULT_PRESET.filter.slope, "FSl"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, FLT_FREQ_SLIDER, DEFAULT_PRESET.filter.freq, "Frq"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, FLT_Q_SLIDER, DEFAULT_PRESET.filter.Q, "Res"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, KEY_TRACK_SLIDER, DEFAULT_PRESET.keyTrack, "Key"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, AMP_ATTACK_SLIDER, DEFAULT_PRESET.ampEnv.attack, "aA"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, AMP_DECAY_SLIDER, DEFAULT_PRESET.ampEnv.decay, "aD"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, AMP_SUSTAIN_SLIDER, DEFAULT_PRESET.ampEnv.sustain, "aS"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, AMP_RELEASE_SLIDER, DEFAULT_PRESET.ampEnv.release, "aR"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, MOD_ATTACK_SLIDER, DEFAULT_PRESET.modEnv.attack, "mA"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, MOD_DECAY_SLIDER, DEFAULT_PRESET.modEnv.decay, "mD"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, MOD_SUSTAIN_SLIDER, DEFAULT_PRESET.modEnv.sustain, "mS"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, MOD_RELEASE_SLIDER, DEFAULT_PRESET.modEnv.release, "mR"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, MOD_ENV_FLT_SLIDER, DEFAULT_PRESET.modEnvFltGain, "Env"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, LFO_FREQ_SLIDER, DEFAULT_PRESET.lfoFreq, "LFO"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, LFO_PITCH_SLIDER, DEFAULT_PRESET.lfoPitchMod, "Pit"), 1, wxEXPAND); |
|
||||||
sizer->Add(new CCSlider(panel, LFO_FILTER_SLIDER, DEFAULT_PRESET.lfoFltMod, "Flt"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
sizer->Add(new CCSlider(panel, REVERB_SLIDER, DEFAULT_PRESET.reverb, "Rvb"), 1, wxEXPAND); |
|
||||||
sizer->AddStretchSpacer(); |
|
||||||
|
|
||||||
this->FitInside(); |
|
||||||
|
|
||||||
Bind(wxEVT_MENU, &SynthFrame::OnAbout, this, wxID_ABOUT); |
|
||||||
Bind(wxEVT_MENU, &SynthFrame::OnExit, this, wxID_EXIT); |
|
||||||
} |
|
||||||
|
|
||||||
void SynthFrame::OnExit(wxCommandEvent& event) { |
|
||||||
Close(true); |
|
||||||
} |
|
||||||
|
|
||||||
void SynthFrame::OnAbout(wxCommandEvent& event) { |
|
||||||
wxMessageBox("This is a wxWidgets Hello World example", |
|
||||||
"About Hello World", wxOK | wxICON_INFORMATION); |
|
||||||
} |
|
||||||
|
|
||||||
void SynthFrame::OnUnisonScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_UNISON, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnOsc1ModeScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_OSC1MDE, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnOsc2ModeScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_OSC2MDE, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnOscDetScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_OSC_DET, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnOsc2PitScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_OSC2PIT, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnOscMixScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_OSC_MIX, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
} |
|
||||||
|
|
||||||
void SynthFrame::OnNoiseMixScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_NOI_MIX, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
} |
|
||||||
|
|
||||||
void SynthFrame::OnFltTypeScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_TYP, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltSlopeScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_SLP, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltFreqScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_FRQ, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltQScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_Q, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnKeyTrackScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_KEY_TRK, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
} |
|
||||||
|
|
||||||
void SynthFrame::OnAmpAttackScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_AMP_ATK, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnAmpDecayScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_AMP_DEC, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnAmpSustainScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_AMP_SUS, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnAmpReleaseScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_AMP_REL, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltAttackScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_ATK, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltDecayScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_DEC, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltSustainScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_SUS, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnFltReleaseScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_FLT_REL, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnModEnvFltGainScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_MOD_FLT, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnLFOFreqScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_LFO_FRQ, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnLFOPitchScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_LFO_PIT, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnLFOFilterScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_LFO_FLT, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
void SynthFrame::OnReverbScroll(wxScrollEvent& event) { |
|
||||||
SynthApp& app = wxGetApp(); |
|
||||||
app.synthMutex.lock(); |
|
||||||
app.synth.control(0, CC_RVB_SND, event.GetPosition()); |
|
||||||
app.synthMutex.unlock(); |
|
||||||
}
|
|
||||||
|
|
||||||
wxBEGIN_EVENT_TABLE(SynthFrame, wxFrame) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::UNISON_SLIDER, SynthFrame::OnUnisonScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::OSC1_MODE_SLIDER, SynthFrame::OnOsc1ModeScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::OSC2_MODE_SLIDER, SynthFrame::OnOsc2ModeScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::OSC_DET_SLIDER, SynthFrame::OnOscDetScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::OSC2_PIT_SLIDER, SynthFrame::OnOsc2PitScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::OSC_MIX_SLIDER, SynthFrame::OnOscMixScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::NOISE_MIX_SLIDER, SynthFrame::OnNoiseMixScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::FLT_TYPE_SLIDER, SynthFrame::OnFltTypeScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::FLT_SLOPE_SLIDER, SynthFrame::OnFltSlopeScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::FLT_FREQ_SLIDER, SynthFrame::OnFltFreqScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::FLT_Q_SLIDER, SynthFrame::OnFltQScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::KEY_TRACK_SLIDER, SynthFrame::OnKeyTrackScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::AMP_ATTACK_SLIDER, SynthFrame::OnAmpAttackScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::AMP_DECAY_SLIDER, SynthFrame::OnAmpDecayScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::AMP_SUSTAIN_SLIDER, SynthFrame::OnAmpSustainScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::AMP_RELEASE_SLIDER, SynthFrame::OnAmpReleaseScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::MOD_ATTACK_SLIDER, SynthFrame::OnFltAttackScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::MOD_DECAY_SLIDER, SynthFrame::OnFltDecayScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::MOD_SUSTAIN_SLIDER, SynthFrame::OnFltSustainScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::MOD_RELEASE_SLIDER, SynthFrame::OnFltReleaseScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::MOD_ENV_FLT_SLIDER, SynthFrame::OnModEnvFltGainScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::LFO_FREQ_SLIDER, SynthFrame::OnLFOFreqScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::LFO_PITCH_SLIDER, SynthFrame::OnLFOPitchScroll) |
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::LFO_FILTER_SLIDER, SynthFrame::OnLFOFilterScroll) |
|
||||||
|
|
||||||
EVT_COMMAND_SCROLL(SynthFrame::REVERB_SLIDER, SynthFrame::OnReverbScroll) |
|
||||||
|
|
||||||
wxEND_EVENT_TABLE() |
|
Loading…
Reference in new issue