summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-07-03 04:40:58 +0000
committerDavid Robillard <d@drobilla.net>2007-07-03 04:40:58 +0000
commit4c82b22d3368e386a0055ab1565ec42d6bb2f239 (patch)
treef51dcbd4f5219c5b7afe9991f378c1e6a177e01b
parentee0ddf0b33d4ec241e7b4b95ed30828bc9bb8d53 (diff)
downloadraul-4c82b22d3368e386a0055ab1565ec42d6bb2f239.tar.gz
raul-4c82b22d3368e386a0055ab1565ec42d6bb2f239.tar.bz2
raul-4c82b22d3368e386a0055ab1565ec42d6bb2f239.zip
Added MIDI controller/event names.
git-svn-id: http://svn.drobilla.net/lad/raul@560 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--raul/midi_events.h116
-rw-r--r--raul/midi_names.h233
-rw-r--r--tests/midi_ringbuffer_test.cpp1
3 files changed, 291 insertions, 59 deletions
diff --git a/raul/midi_events.h b/raul/midi_events.h
index a298a87..863fe0f 100644
--- a/raul/midi_events.h
+++ b/raul/midi_events.h
@@ -28,70 +28,45 @@
* \{
*/
-// Commands:
-#define MIDI_CMD_NOTE_OFF 0x80 /**< note off */
-#define MIDI_CMD_NOTE_ON 0x90 /**< note on */
-#define MIDI_CMD_NOTE_PRESSURE 0xA0 /**< key pressure */
-#define MIDI_CMD_CONTROL 0xB0 /**< control change */
-#define MIDI_CMD_PGM_CHANGE 0xC0 /**< program change */
-#define MIDI_CMD_CHANNEL_PRESSURE 0xD0 /**< channel pressure */
-#define MIDI_CMD_BENDER 0xE0 /**< pitch bender */
-
-#define MIDI_CMD_COMMON_SYSEX 0xF0 /**< sysex (system exclusive) begin */
-#define MIDI_CMD_COMMON_MTC_QUARTER 0xF1 /**< MTC quarter frame */
-#define MIDI_CMD_COMMON_SONG_POS 0xF2 /**< song position */
-#define MIDI_CMD_COMMON_SONG_SELECT 0xF3 /**< song select */
-#define MIDI_CMD_COMMON_TUNE_REQUEST 0xF6 /**< tune request */
-#define MIDI_CMD_COMMON_SYSEX_END 0xF7 /**< end of sysex */
-#define MIDI_CMD_COMMON_CLOCK 0xF8 /**< clock */
-#define MIDI_CMD_COMMON_TICK 0xF9 /**< tick */
-#define MIDI_CMD_COMMON_START 0xFA /**< start */
-#define MIDI_CMD_COMMON_CONTINUE 0xFB /**< continue */
-#define MIDI_CMD_COMMON_STOP 0xFC /**< stop */
-#define MIDI_CMD_COMMON_SENSING 0xFE /**< active sensing */
-#define MIDI_CMD_COMMON_RESET 0xFF /**< reset */
-
-
-// Controllers:
-
-#define MIDI_CTL_MSB_BANK 0x00 /**< Bank selection */
+// Controllers
+#define MIDI_CTL_MSB_BANK 0x00 /**< Bank Selection */
#define MIDI_CTL_MSB_MODWHEEL 0x01 /**< Modulation */
#define MIDI_CTL_MSB_BREATH 0x02 /**< Breath */
#define MIDI_CTL_MSB_FOOT 0x04 /**< Foot */
-#define MIDI_CTL_MSB_PORTAMENTO_TIME 0x05 /**< Portamento time */
-#define MIDI_CTL_MSB_DATA_ENTRY 0x06 /**< Data entry */
-#define MIDI_CTL_MSB_MAIN_VOLUME 0x07 /**< Main volume */
+#define MIDI_CTL_MSB_PORTAMENTO_TIME 0x05 /**< Portamento Time */
+#define MIDI_CTL_MSB_DATA_ENTRY 0x06 /**< Data Entry */
+#define MIDI_CTL_MSB_MAIN_VOLUME 0x07 /**< Main Volume */
#define MIDI_CTL_MSB_BALANCE 0x08 /**< Balance */
#define MIDI_CTL_MSB_PAN 0x0A /**< Panpot */
#define MIDI_CTL_MSB_EXPRESSION 0x0B /**< Expression */
#define MIDI_CTL_MSB_EFFECT1 0x0C /**< Effect1 */
#define MIDI_CTL_MSB_EFFECT2 0x0D /**< Effect2 */
-#define MIDI_CTL_MSB_GENERAL_PURPOSE1 0x10 /**< General purpose 1 */
-#define MIDI_CTL_MSB_GENERAL_PURPOSE2 0x11 /**< General purpose 2 */
-#define MIDI_CTL_MSB_GENERAL_PURPOSE3 0x12 /**< General purpose 3 */
-#define MIDI_CTL_MSB_GENERAL_PURPOSE4 0x13 /**< General purpose 4 */
-#define MIDI_CTL_LSB_BANK 0x20 /**< Bank selection */
+#define MIDI_CTL_MSB_GENERAL_PURPOSE1 0x10 /**< General Purpose 1 */
+#define MIDI_CTL_MSB_GENERAL_PURPOSE2 0x11 /**< General Purpose 2 */
+#define MIDI_CTL_MSB_GENERAL_PURPOSE3 0x12 /**< General Purpose 3 */
+#define MIDI_CTL_MSB_GENERAL_PURPOSE4 0x13 /**< General Purpose 4 */
+#define MIDI_CTL_LSB_BANK 0x20 /**< Bank Selection */
#define MIDI_CTL_LSB_MODWHEEL 0x21 /**< Modulation */
#define MIDI_CTL_LSB_BREATH 0x22 /**< Breath */
#define MIDI_CTL_LSB_FOOT 0x24 /**< Foot */
-#define MIDI_CTL_LSB_PORTAMENTO_TIME 0x25 /**< Portamento time */
-#define MIDI_CTL_LSB_DATA_ENTRY 0x26 /**< Data entry */
-#define MIDI_CTL_LSB_MAIN_VOLUME 0x27 /**< Main volume */
+#define MIDI_CTL_LSB_PORTAMENTO_TIME 0x25 /**< Portamento Time */
+#define MIDI_CTL_LSB_DATA_ENTRY 0x26 /**< Data Entry */
+#define MIDI_CTL_LSB_MAIN_VOLUME 0x27 /**< Main Volume */
#define MIDI_CTL_LSB_BALANCE 0x28 /**< Balance */
#define MIDI_CTL_LSB_PAN 0x2A /**< Panpot */
#define MIDI_CTL_LSB_EXPRESSION 0x2B /**< Expression */
#define MIDI_CTL_LSB_EFFECT1 0x2C /**< Effect1 */
#define MIDI_CTL_LSB_EFFECT2 0x2D /**< Effect2 */
-#define MIDI_CTL_LSB_GENERAL_PURPOSE1 0x30 /**< General purpose 1 */
-#define MIDI_CTL_LSB_GENERAL_PURPOSE2 0x31 /**< General purpose 2 */
-#define MIDI_CTL_LSB_GENERAL_PURPOSE3 0x32 /**< General purpose 3 */
-#define MIDI_CTL_LSB_GENERAL_PURPOSE4 0x33 /**< General purpose 4 */
-#define MIDI_CTL_SUSTAIN 0x40 /**< Sustain pedal */
+#define MIDI_CTL_LSB_GENERAL_PURPOSE1 0x30 /**< General Purpose 1 */
+#define MIDI_CTL_LSB_GENERAL_PURPOSE2 0x31 /**< General Purpose 2 */
+#define MIDI_CTL_LSB_GENERAL_PURPOSE3 0x32 /**< General Purpose 3 */
+#define MIDI_CTL_LSB_GENERAL_PURPOSE4 0x33 /**< General Purpose 4 */
+#define MIDI_CTL_SUSTAIN 0x40 /**< Sustain Pedal */
#define MIDI_CTL_PORTAMENTO 0x41 /**< Portamento */
#define MIDI_CTL_SOSTENUTO 0x42 /**< Sostenuto */
-#define MIDI_CTL_SOFT_PEDAL 0x43 /**< Soft pedal */
-#define MIDI_CTL_LEGATO_FOOTSWITCH 0x44 /**< Legato foot switch */
+#define MIDI_CTL_SOFT_PEDAL 0x43 /**< Soft Pedal */
+#define MIDI_CTL_LEGATO_FOOTSWITCH 0x44 /**< Legato Foot Switch */
#define MIDI_CTL_HOLD2 0x45 /**< Hold2 */
#define MIDI_CTL_SC1_SOUND_VARIATION 0x46 /**< SC1 Sound Variation */
#define MIDI_CTL_SC2_TIMBRE 0x47 /**< SC2 Timbre */
@@ -103,11 +78,11 @@
#define MIDI_CTL_SC8 0x4D /**< SC8 */
#define MIDI_CTL_SC9 0x4E /**< SC9 */
#define MIDI_CTL_SC10 0x4F /**< SC10 */
-#define MIDI_CTL_GENERAL_PURPOSE5 0x50 /**< General purpose 5 */
-#define MIDI_CTL_GENERAL_PURPOSE6 0x51 /**< General purpose 6 */
-#define MIDI_CTL_GENERAL_PURPOSE7 0x52 /**< General purpose 7 */
-#define MIDI_CTL_GENERAL_PURPOSE8 0x53 /**< General purpose 8 */
-#define MIDI_CTL_PORTAMENTO_CONTROL 0x54 /**< Portamento control */
+#define MIDI_CTL_GENERAL_PURPOSE5 0x50 /**< General Purpose 5 */
+#define MIDI_CTL_GENERAL_PURPOSE6 0x51 /**< General Purpose 6 */
+#define MIDI_CTL_GENERAL_PURPOSE7 0x52 /**< General Purpose 7 */
+#define MIDI_CTL_GENERAL_PURPOSE8 0x53 /**< General Purpose 8 */
+#define MIDI_CTL_PORTAMENTO_CONTROL 0x54 /**< Portamento Control */
#define MIDI_CTL_E1_REVERB_DEPTH 0x5B /**< E1 Reverb Depth */
#define MIDI_CTL_E2_TREMOLO_DEPTH 0x5C /**< E2 Tremolo Depth */
#define MIDI_CTL_E3_CHORUS_DEPTH 0x5D /**< E3 Chorus Depth */
@@ -115,18 +90,41 @@
#define MIDI_CTL_E5_PHASER_DEPTH 0x5F /**< E5 Phaser Depth */
#define MIDI_CTL_DATA_INCREMENT 0x60 /**< Data Increment */
#define MIDI_CTL_DATA_DECREMENT 0x61 /**< Data Decrement */
-#define MIDI_CTL_NONREG_PARM_NUM_LSB 0x62 /**< Non-registered parameter number */
-#define MIDI_CTL_NONREG_PARM_NUM_MSB 0x63 /**< Non-registered parameter number */
-#define MIDI_CTL_REGIST_PARM_NUM_LSB 0x64 /**< Registered parameter number */
-#define MIDI_CTL_REGIST_PARM_NUM_MSB 0x65 /**< Registered parameter number */
-#define MIDI_CTL_ALL_SOUNDS_OFF 0x78 /**< All sounds off */
+#define MIDI_CTL_NONREG_PARM_NUM_LSB 0x62 /**< Non-registered Parameter Number */
+#define MIDI_CTL_NONREG_PARM_NUM_MSB 0x63 /**< Non-registered Parameter Number */
+#define MIDI_CTL_REGIST_PARM_NUM_LSB 0x64 /**< Registered Parameter Number */
+#define MIDI_CTL_REGIST_PARM_NUM_MSB 0x65 /**< Registered Parameter Number */
+#define MIDI_CTL_ALL_SOUNDS_OFF 0x78 /**< All Sounds Off */
#define MIDI_CTL_RESET_CONTROLLERS 0x79 /**< Reset Controllers */
-#define MIDI_CTL_LOCAL_CONTROL_SWITCH 0x7A /**< Local control switch */
-#define MIDI_CTL_ALL_NOTES_OFF 0x7B /**< All notes off */
-#define MIDI_CTL_OMNI_OFF 0x7C /**< Omni off */
-#define MIDI_CTL_OMNI_ON 0x7D /**< Omni on */
+#define MIDI_CTL_LOCAL_CONTROL_SWITCH 0x7A /**< Local Control Switch */
+#define MIDI_CTL_ALL_NOTES_OFF 0x7B /**< All Notes Off */
+#define MIDI_CTL_OMNI_OFF 0x7C /**< Omni Off */
+#define MIDI_CTL_OMNI_ON 0x7D /**< Omni On */
#define MIDI_CTL_MONO1 0x7E /**< Mono1 */
#define MIDI_CTL_MONO2 0x7F /**< Mono2 */
+
+// Commands
+#define MIDI_CMD_NOTE_OFF 0x80 /**< Note Off */
+#define MIDI_CMD_NOTE_ON 0x90 /**< Note On */
+#define MIDI_CMD_NOTE_PRESSURE 0xA0 /**< Key Pressure */
+#define MIDI_CMD_CONTROL 0xB0 /**< Control Change */
+#define MIDI_CMD_PGM_CHANGE 0xC0 /**< Program Change */
+#define MIDI_CMD_CHANNEL_PRESSURE 0xD0 /**< Channel Pressure */
+#define MIDI_CMD_BENDER 0xE0 /**< Pitch Bender */
+#define MIDI_CMD_COMMON_SYSEX 0xF0 /**< Sysex (System Exclusive) Begin */
+#define MIDI_CMD_COMMON_MTC_QUARTER 0xF1 /**< MTC Quarter Frame */
+#define MIDI_CMD_COMMON_SONG_POS 0xF2 /**< Song Position */
+#define MIDI_CMD_COMMON_SONG_SELECT 0xF3 /**< Song Select */
+#define MIDI_CMD_COMMON_TUNE_REQUEST 0xF6 /**< Tune Request */
+#define MIDI_CMD_COMMON_SYSEX_END 0xF7 /**< End of Sysex */
+#define MIDI_CMD_COMMON_CLOCK 0xF8 /**< Clock */
+#define MIDI_CMD_COMMON_TICK 0xF9 /**< Tick */
+#define MIDI_CMD_COMMON_START 0xFA /**< Start */
+#define MIDI_CMD_COMMON_CONTINUE 0xFB /**< Continue */
+#define MIDI_CMD_COMMON_STOP 0xFC /**< Stop */
+#define MIDI_CMD_COMMON_SENSING 0xFE /**< Active Sensing */
+#define MIDI_CMD_COMMON_RESET 0xFF /**< Reset */
+
//@}
diff --git a/raul/midi_names.h b/raul/midi_names.h
new file mode 100644
index 0000000..9b5eff6
--- /dev/null
+++ b/raul/midi_names.h
@@ -0,0 +1,233 @@
+/* Names of standard MIDI events and controllers.
+ * Copyright (C) 2007 Dave Robillard <http://drobilla.net>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef RAUL_MIDINAMES_H
+#define RAUL_MIDINAMES_H
+
+#include "midi_events.h"
+
+namespace Raul {
+
+/** \group midi
+ */
+
+static const uint8_t X_MIDI_CMD_NOTE_OFF = 0x80;
+
+/** Pass this a symbol defined in midi_events.h (e.g. MIDI_CTL_PAN) to get the
+ * short name of a MIDI event/controller according to General MIDI.
+ */
+static const char* midi_name(uint8_t status)
+{
+ switch (status) {
+
+ case MIDI_CMD_NOTE_OFF:
+ return "Note Off"; break;
+ case MIDI_CMD_NOTE_ON:
+ return "Note On"; break;
+ case MIDI_CMD_NOTE_PRESSURE:
+ return "Key Pressure"; break;
+ case MIDI_CMD_CONTROL:
+ return "Control Change"; break;
+ case MIDI_CMD_PGM_CHANGE:
+ return "Program Change"; break;
+ case MIDI_CMD_CHANNEL_PRESSURE:
+ return "Channel Pressure"; break;
+ case MIDI_CMD_BENDER:
+ return "Pitch Bender"; break;
+
+ case MIDI_CMD_COMMON_SYSEX:
+ return "Sysex (System Exclusive) Begin"; break;
+ case MIDI_CMD_COMMON_MTC_QUARTER:
+ return "MTC Quarter Frame"; break;
+ case MIDI_CMD_COMMON_SONG_POS:
+ return "Song Position"; break;
+ case MIDI_CMD_COMMON_SONG_SELECT:
+ return "Song Select"; break;
+ case MIDI_CMD_COMMON_TUNE_REQUEST:
+ return "Tune Request"; break;
+ case MIDI_CMD_COMMON_SYSEX_END:
+ return "End of Sysex"; break;
+ case MIDI_CMD_COMMON_CLOCK:
+ return "Clock"; break;
+ case MIDI_CMD_COMMON_TICK:
+ return "Tick"; break;
+ case MIDI_CMD_COMMON_START:
+ return "Start"; break;
+ case MIDI_CMD_COMMON_CONTINUE:
+ return "Continue"; break;
+ case MIDI_CMD_COMMON_STOP:
+ return "Stop"; break;
+ case MIDI_CMD_COMMON_SENSING:
+ return "Active Sensing"; break;
+ case MIDI_CMD_COMMON_RESET:
+ return "Reset"; break;
+
+ case MIDI_CTL_MSB_BANK:
+ return "Bank Selection"; break;
+ case MIDI_CTL_MSB_MODWHEEL:
+ return "Modulation"; break;
+ case MIDI_CTL_MSB_BREATH:
+ return "Breath"; break;
+ case MIDI_CTL_MSB_FOOT:
+ return "Foot"; break;
+ case MIDI_CTL_MSB_PORTAMENTO_TIME:
+ return "Portamento Time"; break;
+ case MIDI_CTL_MSB_DATA_ENTRY:
+ return "Data Entry"; break;
+ case MIDI_CTL_MSB_MAIN_VOLUME:
+ return "Main Volume"; break;
+ case MIDI_CTL_MSB_BALANCE:
+ return "Balance"; break;
+ case MIDI_CTL_MSB_PAN:
+ return "Panpot"; break;
+ case MIDI_CTL_MSB_EXPRESSION:
+ return "Expression"; break;
+ case MIDI_CTL_MSB_EFFECT1:
+ return "Effect1"; break;
+ case MIDI_CTL_MSB_EFFECT2:
+ return "Effect2"; break;
+ case MIDI_CTL_MSB_GENERAL_PURPOSE1:
+ return "General Purpose 1"; break;
+ case MIDI_CTL_MSB_GENERAL_PURPOSE2:
+ return "General Purpose 2"; break;
+ case MIDI_CTL_MSB_GENERAL_PURPOSE3:
+ return "General Purpose 3"; break;
+ case MIDI_CTL_MSB_GENERAL_PURPOSE4:
+ return "General Purpose 4"; break;
+ case MIDI_CTL_LSB_BANK:
+ return "Bank Selection"; break;
+ case MIDI_CTL_LSB_MODWHEEL:
+ return "Modulation"; break;
+ case MIDI_CTL_LSB_BREATH:
+ return "Breath"; break;
+ case MIDI_CTL_LSB_FOOT:
+ return "Foot"; break;
+ case MIDI_CTL_LSB_PORTAMENTO_TIME:
+ return "Portamento Time"; break;
+ case MIDI_CTL_LSB_DATA_ENTRY:
+ return "Data Entry"; break;
+ case MIDI_CTL_LSB_MAIN_VOLUME:
+ return "Main Volume"; break;
+ case MIDI_CTL_LSB_BALANCE:
+ return "Balance"; break;
+ case MIDI_CTL_LSB_PAN:
+ return "Panpot"; break;
+ case MIDI_CTL_LSB_EXPRESSION:
+ return "Expression"; break;
+ case MIDI_CTL_LSB_EFFECT1:
+ return "Effect1"; break;
+ case MIDI_CTL_LSB_EFFECT2:
+ return "Effect2"; break;
+ case MIDI_CTL_LSB_GENERAL_PURPOSE1:
+ return "General Purpose 1"; break;
+ case MIDI_CTL_LSB_GENERAL_PURPOSE2:
+ return "General Purpose 2"; break;
+ case MIDI_CTL_LSB_GENERAL_PURPOSE3:
+ return "General Purpose 3"; break;
+ case MIDI_CTL_LSB_GENERAL_PURPOSE4:
+ return "General Purpose 4"; break;
+ case MIDI_CTL_SUSTAIN:
+ return "Sustain Pedal"; break;
+ case MIDI_CTL_PORTAMENTO:
+ return "Portamento"; break;
+ case MIDI_CTL_SOSTENUTO:
+ return "Sostenuto"; break;
+ case MIDI_CTL_SOFT_PEDAL:
+ return "Soft Pedal"; break;
+ case MIDI_CTL_LEGATO_FOOTSWITCH:
+ return "Legato Foot Switch"; break;
+ case MIDI_CTL_HOLD2:
+ return "Hold2"; break;
+ case MIDI_CTL_SC1_SOUND_VARIATION:
+ return "SC1 Sound Variation"; break;
+ case MIDI_CTL_SC2_TIMBRE:
+ return "SC2 Timbre"; break;
+ case MIDI_CTL_SC3_RELEASE_TIME:
+ return "SC3 Release Time"; break;
+ case MIDI_CTL_SC4_ATTACK_TIME:
+ return "SC4 Attack Time"; break;
+ case MIDI_CTL_SC5_BRIGHTNESS:
+ return "SC5 Brightness"; break;
+ case MIDI_CTL_SC6:
+ return "SC6"; break;
+ case MIDI_CTL_SC7:
+ return "SC7"; break;
+ case MIDI_CTL_SC8:
+ return "SC8"; break;
+ case MIDI_CTL_SC9:
+ return "SC9"; break;
+ case MIDI_CTL_SC10:
+ return "SC10"; break;
+ case MIDI_CTL_GENERAL_PURPOSE5:
+ return "General Purpose 5"; break;
+ case MIDI_CTL_GENERAL_PURPOSE6:
+ return "General Purpose 6"; break;
+ case MIDI_CTL_GENERAL_PURPOSE7:
+ return "General Purpose 7"; break;
+ case MIDI_CTL_GENERAL_PURPOSE8:
+ return "General Purpose 8"; break;
+ case MIDI_CTL_PORTAMENTO_CONTROL:
+ return "Portamento Control"; break;
+ case MIDI_CTL_E1_REVERB_DEPTH:
+ return "E1 Reverb Depth"; break;
+ case MIDI_CTL_E2_TREMOLO_DEPTH:
+ return "E2 Tremolo Depth"; break;
+ case MIDI_CTL_E3_CHORUS_DEPTH:
+ return "E3 Chorus Depth"; break;
+ case MIDI_CTL_E4_DETUNE_DEPTH:
+ return "E4 Detune Depth"; break;
+ case MIDI_CTL_E5_PHASER_DEPTH:
+ return "E5 Phaser Depth"; break;
+ case MIDI_CTL_DATA_INCREMENT:
+ return "Data Increment"; break;
+ case MIDI_CTL_DATA_DECREMENT:
+ return "Data Decrement"; break;
+ case MIDI_CTL_NONREG_PARM_NUM_LSB:
+ return "Non-registered Parameter Number"; break;
+ case MIDI_CTL_NONREG_PARM_NUM_MSB:
+ return "Non-registered Narameter Number"; break;
+ case MIDI_CTL_REGIST_PARM_NUM_LSB:
+ return "Registered Parameter Number"; break;
+ case MIDI_CTL_REGIST_PARM_NUM_MSB:
+ return "Registered Parameter Number"; break;
+ case MIDI_CTL_ALL_SOUNDS_OFF:
+ return "All Sounds Off"; break;
+ case MIDI_CTL_RESET_CONTROLLERS:
+ return "Reset Controllers"; break;
+ case MIDI_CTL_LOCAL_CONTROL_SWITCH:
+ return "Local Control Switch"; break;
+ case MIDI_CTL_ALL_NOTES_OFF:
+ return "All Notes Off"; break;
+ case MIDI_CTL_OMNI_OFF:
+ return "Omni Off"; break;
+ case MIDI_CTL_OMNI_ON:
+ return "Omni On"; break;
+ case MIDI_CTL_MONO1:
+ return "Mono 1"; break;
+ case MIDI_CTL_MONO2:
+ return "Mono 2"; break;
+ default:
+ return "Unnamed"; break;
+ }
+}
+
+
+} // namespace Raul
+
+#endif /* RAUL_MIDINAMES_H */
diff --git a/tests/midi_ringbuffer_test.cpp b/tests/midi_ringbuffer_test.cpp
index bb20ea7..bb9f079 100644
--- a/tests/midi_ringbuffer_test.cpp
+++ b/tests/midi_ringbuffer_test.cpp
@@ -1,5 +1,6 @@
#include <iostream>
#include "raul/MIDIRingBuffer.h"
+#include "raul/midi_names.h"
using namespace std;
using namespace Raul;