1 #ifndef AL_PARAMETERMIDI_H
2 #define AL_PARAMETERMIDI_H
45 #include "al/io/al_MIDI.hpp"
46 #include "al/ui/al_Parameter.hpp"
74 ParameterMIDI(
unsigned int deviceIndex,
bool verbose =
false);
76 void open(
unsigned int deviceIndex = 0);
78 void open(
int deviceIndex,
bool verbose);
80 [[deprecated(
"Use open()")]]
void init(
int deviceIndex = 0,
81 bool verbose =
false);
85 void connectControl(
Parameter ¶m,
int controlNumber,
int channel) {
86 connectControl(param, controlNumber, channel, param.
min(), param.
max());
89 void connectControl(
Parameter ¶m,
int controlNumber,
int channel,
100 int channel = 1, std::vector<float>
min = {},
101 std::vector<float>
max = {});
113 float max = -1,
int high = -1);
115 void connectNoteToToggle(
ParameterBool ¶m,
int channel,
int note);
117 void connectNoteToIncrement(
Parameter ¶m,
int channel,
int note,
120 bool isOpen() {
return mRtMidiIn.isPortOpen(); }
124 void verbose(
bool v) { mVerbose = v; }
134 std::vector<int> controlNumbers;
137 std::vector<float>
min;
138 std::vector<float>
max;
162 std::vector<ControlBinding> getCurrentControlBindings() {
163 return mControlBindings;
165 std::vector<NoteBinding> getCurrentNoteBindings() {
return mNoteBindings; }
170 std::vector<ControlBinding> mControlBindings;
171 std::vector<NoteBinding> mNoteBindings;
172 std::vector<ToggleBinding> mToggleBindings;
173 std::vector<IncrementBinding> mIncrementBindings;
174 std::vector<AbstractBinding> mAbstractBindings;
The ParameterMIDI class connects Parameter objects to MIDI messages.
void connectNoteToValue(Parameter ¶m, int channel, float min, int low, float max=-1, int high=-1)
connectNoteToValue
void connectControls(ParameterMeta ¶m, std::vector< int > controlNumbers, int channel=1, std::vector< float > min={}, std::vector< float > max={})
virtual void onMIDIMessage(const MIDIMessage &m) override
Called when a MIDI message is received.
void min(ParameterType minValue, ValueSource *src=nullptr)
set the minimum value for the parameter
void max(ParameterType maxValue, ValueSource *src=nullptr)
set the maximum value for the parameter
T min(const T &v1, const T &v2, const T &v3)
T max(const T &v1, const T &v2, const T &v3)