Skip to content

Commit 79c01a2

Browse files
author
Francois Best
committed
Added RPN/NRPN definitions.
1 parent 2197975 commit 79c01a2

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/midi_Defs.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ enum MidiControlChangeNumber
122122
GeneralPurposeController3 = 18,
123123
GeneralPurposeController4 = 19,
124124

125+
DataEntryLSB = 38,
126+
125127
// Switches ----------------------------------------------------------------
126128
Sustain = 64,
127129
Portamento = 65,
@@ -152,6 +154,12 @@ enum MidiControlChangeNumber
152154
Effects3 = 93, ///< Chorus send level
153155
Effects4 = 94, ///< Celeste depth
154156
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)
155163

156164
// Channel Mode messages ---------------------------------------------------
157165
AllSoundOff = 120,
@@ -164,6 +172,24 @@ enum MidiControlChangeNumber
164172
PolyModeOn = 127
165173
};
166174

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+
167193
// -----------------------------------------------------------------------------
168194

169195
/*! \brief Create an instance of the library attached to a serial port.

0 commit comments

Comments
 (0)