Added RPN/NRPN definitions.

This commit is contained in:
Francois Best 2016-04-03 17:58:33 +02:00
parent 219797524d
commit 79c01a27a4
1 changed files with 26 additions and 0 deletions

View File

@ -122,6 +122,8 @@ enum MidiControlChangeNumber
GeneralPurposeController3 = 18,
GeneralPurposeController4 = 19,
DataEntryLSB = 38,
// Switches ----------------------------------------------------------------
Sustain = 64,
Portamento = 65,
@ -152,6 +154,12 @@ enum MidiControlChangeNumber
Effects3 = 93, ///< Chorus send level
Effects4 = 94, ///< Celeste depth
Effects5 = 95, ///< Phaser depth
DataIncrement = 96,
DataDecrement = 97,
NRPN = 98, ///< Non-Registered Parameter Number (LSB)
NRPNMSB = 99, ///< Non-Registered Parameter Number (MSB)
RPN = 100, ///< Registered Parameter Number (LSB)
RPNMSB = 101, ///< Registered Parameter Number (MSB)
// Channel Mode messages ---------------------------------------------------
AllSoundOff = 120,
@ -164,6 +172,24 @@ enum MidiControlChangeNumber
PolyModeOn = 127
};
struct RPN
{
#define MIDI_MAKE_RPN(msb, lsb) msb << 7 + lsb
enum RegisteredParameterNumbers
{
PitchBendSensitivity = MIDI_MAKE_RPN(0x00, 0x00),
ChannelFineTuning = MIDI_MAKE_RPN(0x00, 0x01),
ChannelCoarseTuning = MIDI_MAKE_RPN(0x00, 0x02),
SelectTuningProgram = MIDI_MAKE_RPN(0x00, 0x03),
SelectTuningBank = MIDI_MAKE_RPN(0x00, 0x04),
ModulationDepthRange = MIDI_MAKE_RPN(0x00, 0x05),
NullFunction = MIDI_MAKE_RPN(0x7f, 0x7f),
};
#undef MIDI_MAKE_RPN
};
// -----------------------------------------------------------------------------
/*! \brief Create an instance of the library attached to a serial port.