1 /* Names of standard MIDI events and controllers.
2 * Copyright (C) 2007-2008 David Robillard <http://drobilla.net>
4 * This library is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as
6 * published by the Free Software Foundation; either version 2.1 of
7 * the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 #ifndef __midinames_h__
21 #define __midinames_h__
30 /** Pass this a symbol defined in events.h (e.g. MIDI_CTL_PAN) to get the
31 * short name of a MIDI event/controller according to General MIDI.
33 inline static const char* midi_name(uint8_t status)
37 case MIDI_CMD_NOTE_OFF:
38 return "Note Off"; break;
39 case MIDI_CMD_NOTE_ON:
40 return "Note On"; break;
41 case MIDI_CMD_NOTE_PRESSURE:
42 return "Key Pressure"; break;
43 case MIDI_CMD_CONTROL:
44 return "Control Change"; break;
45 case MIDI_CMD_PGM_CHANGE:
46 return "Program Change"; break;
47 case MIDI_CMD_CHANNEL_PRESSURE:
48 return "Channel Pressure"; break;
50 return "Pitch Bender"; break;
52 case MIDI_CMD_COMMON_SYSEX:
53 return "Sysex (System Exclusive) Begin"; break;
54 case MIDI_CMD_COMMON_MTC_QUARTER:
55 return "MTC Quarter Frame"; break;
56 case MIDI_CMD_COMMON_SONG_POS:
57 return "Song Position"; break;
58 case MIDI_CMD_COMMON_SONG_SELECT:
59 return "Song Select"; break;
60 case MIDI_CMD_COMMON_TUNE_REQUEST:
61 return "Tune Request"; break;
62 case MIDI_CMD_COMMON_SYSEX_END:
63 return "End of Sysex"; break;
64 case MIDI_CMD_COMMON_CLOCK:
65 return "Clock"; break;
66 case MIDI_CMD_COMMON_TICK:
68 case MIDI_CMD_COMMON_START:
69 return "Start"; break;
70 case MIDI_CMD_COMMON_CONTINUE:
71 return "Continue"; break;
72 case MIDI_CMD_COMMON_STOP:
74 case MIDI_CMD_COMMON_SENSING:
75 return "Active Sensing"; break;
76 case MIDI_CMD_COMMON_RESET:
77 return "Reset"; break;
79 case MIDI_CTL_MSB_BANK:
80 return "Bank Select (Coarse)"; break;
81 case MIDI_CTL_MSB_MODWHEEL:
82 return "Modulation (Coarse)"; break;
83 case MIDI_CTL_MSB_BREATH:
84 return "Breath (Coarse)"; break;
85 case MIDI_CTL_MSB_FOOT:
86 return "Foot (Coarse)"; break;
87 case MIDI_CTL_MSB_PORTAMENTO_TIME:
88 return "Portamento Time (Coarse)"; break;
89 case MIDI_CTL_MSB_DATA_ENTRY:
90 return "Data Entry (Coarse)"; break;
91 case MIDI_CTL_MSB_MAIN_VOLUME:
92 return "Main Volume (Coarse)"; break;
93 case MIDI_CTL_MSB_BALANCE:
94 return "Balance (Coarse)"; break;
95 case MIDI_CTL_MSB_PAN:
96 return "Pan (Coarse)"; break;
97 case MIDI_CTL_MSB_EXPRESSION:
98 return "Expression (Coarse)"; break;
99 case MIDI_CTL_MSB_EFFECT1:
100 return "Effect 1 (Coarse)"; break;
101 case MIDI_CTL_MSB_EFFECT2:
102 return "Effect 2 (Coarse)"; break;
103 case MIDI_CTL_MSB_GENERAL_PURPOSE1:
104 return "General Purpose 1 (Coarse)"; break;
105 case MIDI_CTL_MSB_GENERAL_PURPOSE2:
106 return "General Purpose 2 (Coarse)"; break;
107 case MIDI_CTL_MSB_GENERAL_PURPOSE3:
108 return "General Purpose 3 (Coarse)"; break;
109 case MIDI_CTL_MSB_GENERAL_PURPOSE4:
110 return "General Purpose 4 (Coarse)"; break;
111 case MIDI_CTL_LSB_BANK:
112 return "Bank Select (Fine)"; break;
113 case MIDI_CTL_LSB_MODWHEEL:
114 return "Modulation (Fine)"; break;
115 case MIDI_CTL_LSB_BREATH:
116 return "Breath (Fine)"; break;
117 case MIDI_CTL_LSB_FOOT:
118 return "Foot (Fine)"; break;
119 case MIDI_CTL_LSB_PORTAMENTO_TIME:
120 return "Portamento Time (Fine)"; break;
121 case MIDI_CTL_LSB_DATA_ENTRY:
122 return "Data Entry (Fine)"; break;
123 case MIDI_CTL_LSB_MAIN_VOLUME:
124 return "Main Volume (Fine)"; break;
125 case MIDI_CTL_LSB_BALANCE:
126 return "Balance (Fine)"; break;
127 case MIDI_CTL_LSB_PAN:
128 return "Pan (Fine)"; break;
129 case MIDI_CTL_LSB_EXPRESSION:
130 return "Expression (Fine)"; break;
131 case MIDI_CTL_LSB_EFFECT1:
132 return "Effect 1 (Fine)"; break;
133 case MIDI_CTL_LSB_EFFECT2:
134 return "Effect 2 (Fine)"; break;
135 case MIDI_CTL_LSB_GENERAL_PURPOSE1:
136 return "General Purpose 1 (Fine)"; break;
137 case MIDI_CTL_LSB_GENERAL_PURPOSE2:
138 return "General Purpose 2 (Fine)"; break;
139 case MIDI_CTL_LSB_GENERAL_PURPOSE3:
140 return "General Purpose 3 (Fine)"; break;
141 case MIDI_CTL_LSB_GENERAL_PURPOSE4:
142 return "General Purpose 4 (Fine)"; break;
143 case MIDI_CTL_SUSTAIN:
144 return "Sustain Pedal"; break;
145 case MIDI_CTL_PORTAMENTO:
146 return "Portamento"; break;
147 case MIDI_CTL_SOSTENUTO:
148 return "Sostenuto"; break;
149 case MIDI_CTL_SOFT_PEDAL:
150 return "Soft Pedal"; break;
151 case MIDI_CTL_LEGATO_FOOTSWITCH:
152 return "Legato Foot Switch"; break;
154 return "Hold2"; break;
155 case MIDI_CTL_SC1_SOUND_VARIATION:
156 return "Sound Variation"; break;
157 case MIDI_CTL_SC2_TIMBRE:
158 return "Sound Timbre"; break;
159 case MIDI_CTL_SC3_RELEASE_TIME:
160 return "Sound Release Time"; break;
161 case MIDI_CTL_SC4_ATTACK_TIME:
162 return "Sound Attack Time"; break;
163 case MIDI_CTL_SC5_BRIGHTNESS:
164 return "Sound Brightness"; break;
166 return "Sound Control 6"; break;
168 return "Sound Control 7"; break;
170 return "Sound Control 8"; break;
172 return "Sound Control 9"; break;
174 return "Sound Control 10"; break;
175 case MIDI_CTL_GENERAL_PURPOSE5:
176 return "General Purpose 5"; break;
177 case MIDI_CTL_GENERAL_PURPOSE6:
178 return "General Purpose 6"; break;
179 case MIDI_CTL_GENERAL_PURPOSE7:
180 return "General Purpose 7"; break;
181 case MIDI_CTL_GENERAL_PURPOSE8:
182 return "General Purpose 8"; break;
183 case MIDI_CTL_PORTAMENTO_CONTROL:
184 return "Portamento Control"; break;
185 case MIDI_CTL_E1_REVERB_DEPTH:
186 return "Reverb Depth"; break;
187 case MIDI_CTL_E2_TREMOLO_DEPTH:
188 return "Tremolo Depth"; break;
189 case MIDI_CTL_E3_CHORUS_DEPTH:
190 return "Chorus Depth"; break;
191 case MIDI_CTL_E4_DETUNE_DEPTH:
192 return "Detune Depth"; break;
193 case MIDI_CTL_E5_PHASER_DEPTH:
194 return "Phaser Depth"; break;
195 case MIDI_CTL_DATA_INCREMENT:
196 return "Data Increment"; break;
197 case MIDI_CTL_DATA_DECREMENT:
198 return "Data Decrement"; break;
199 case MIDI_CTL_NONREG_PARM_NUM_LSB:
200 return "Non-registered Parameter Number"; break;
201 case MIDI_CTL_NONREG_PARM_NUM_MSB:
202 return "Non-registered Narameter Number"; break;
203 case MIDI_CTL_REGIST_PARM_NUM_LSB:
204 return "Registered Parameter Number"; break;
205 case MIDI_CTL_REGIST_PARM_NUM_MSB:
206 return "Registered Parameter Number"; break;
207 case MIDI_CTL_ALL_SOUNDS_OFF:
208 return "All Sounds Off"; break;
209 case MIDI_CTL_RESET_CONTROLLERS:
210 return "Reset Controllers"; break;
211 case MIDI_CTL_LOCAL_CONTROL_SWITCH:
212 return "Local Keyboard on/off"; break;
213 case MIDI_CTL_ALL_NOTES_OFF:
214 return "All Notes Off"; break;
215 case MIDI_CTL_OMNI_OFF:
216 return "Omni Off"; break;
217 case MIDI_CTL_OMNI_ON:
218 return "Omni On"; break;
220 return "Monophonic Mode"; break;
222 return "Polyphonic Mode"; break;
231 #endif /* __midinames_h__ */