@@ -122,6 +122,8 @@ enum MidiControlChangeNumber
122
122
GeneralPurposeController3 = 18 ,
123
123
GeneralPurposeController4 = 19 ,
124
124
125
+ DataEntryLSB = 38 ,
126
+
125
127
// Switches ----------------------------------------------------------------
126
128
Sustain = 64 ,
127
129
Portamento = 65 ,
@@ -152,6 +154,12 @@ enum MidiControlChangeNumber
152
154
Effects3 = 93 , ///< Chorus send level
153
155
Effects4 = 94 , ///< Celeste depth
154
156
Effects5 = 95 , ///< Phaser depth
157
+ DataIncrement = 96 ,
158
+ DataDecrement = 97 ,
159
+ NRPN = 98 , ///< Non-Registered Parameter Number (LSB)
160
+ NRPNMSB = 99 , ///< Non-Registered Parameter Number (MSB)
161
+ RPN = 100 , ///< Registered Parameter Number (LSB)
162
+ RPNMSB = 101 , ///< Registered Parameter Number (MSB)
155
163
156
164
// Channel Mode messages ---------------------------------------------------
157
165
AllSoundOff = 120 ,
@@ -164,6 +172,24 @@ enum MidiControlChangeNumber
164
172
PolyModeOn = 127
165
173
};
166
174
175
+ struct RPN
176
+ {
177
+ #define MIDI_MAKE_RPN (msb , lsb ) msb << 7 + lsb
178
+
179
+ enum RegisteredParameterNumbers
180
+ {
181
+ PitchBendSensitivity = MIDI_MAKE_RPN (0x00 , 0x00 ),
182
+ ChannelFineTuning = MIDI_MAKE_RPN (0x00 , 0x01 ),
183
+ ChannelCoarseTuning = MIDI_MAKE_RPN (0x00 , 0x02 ),
184
+ SelectTuningProgram = MIDI_MAKE_RPN (0x00 , 0x03 ),
185
+ SelectTuningBank = MIDI_MAKE_RPN (0x00 , 0x04 ),
186
+ ModulationDepthRange = MIDI_MAKE_RPN (0x00 , 0x05 ),
187
+ NullFunction = MIDI_MAKE_RPN (0x7f , 0x7f ),
188
+ };
189
+
190
+ #undef MIDI_MAKE_RPN
191
+ };
192
+
167
193
// -----------------------------------------------------------------------------
168
194
169
195
/*! \brief Create an instance of the library attached to a serial port.
0 commit comments