1 /* Names of standard MIDI events and controllers.
2 * Copyright (C) 2007-2008 Dave 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__
29 /** Pass this a symbol defined in events.h (e.g. MIDI_CTL_PAN) to get the
30 * short name of a MIDI event/controller according to General MIDI.
32 inline static const char* midi_name(uint8_t status)
36 case MIDI_CMD_NOTE_OFF:
37 return "Note Off"; break;
38 case MIDI_CMD_NOTE_ON:
39 return "Note On"; break;
40 case MIDI_CMD_NOTE_PRESSURE:
41 return "Key Pressure"; break;
42 case MIDI_CMD_CONTROL:
43 return "Control Change"; break;
44 case MIDI_CMD_PGM_CHANGE:
45 return "Program Change"; break;
46 case MIDI_CMD_CHANNEL_PRESSURE:
47 return "Channel Pressure"; break;
49 return "Pitch Bender"; break;
51 case MIDI_CMD_COMMON_SYSEX:
52 return "Sysex (System Exclusive) Begin"; break;
53 case MIDI_CMD_COMMON_MTC_QUARTER:
54 return "MTC Quarter Frame"; break;
55 case MIDI_CMD_COMMON_SONG_POS:
56 return "Song Position"; break;
57 case MIDI_CMD_COMMON_SONG_SELECT:
58 return "Song Select"; break;
59 case MIDI_CMD_COMMON_TUNE_REQUEST:
60 return "Tune Request"; break;
61 case MIDI_CMD_COMMON_SYSEX_END:
62 return "End of Sysex"; break;
63 case MIDI_CMD_COMMON_CLOCK:
64 return "Clock"; break;
65 case MIDI_CMD_COMMON_TICK:
67 case MIDI_CMD_COMMON_START:
68 return "Start"; break;
69 case MIDI_CMD_COMMON_CONTINUE:
70 return "Continue"; break;
71 case MIDI_CMD_COMMON_STOP:
73 case MIDI_CMD_COMMON_SENSING:
74 return "Active Sensing"; break;
75 case MIDI_CMD_COMMON_RESET:
76 return "Reset"; break;
78 case MIDI_CTL_MSB_BANK:
79 return "Bank Select (Coarse)"; break;
80 case MIDI_CTL_MSB_MODWHEEL:
81 return "Modulation (Coarse)"; break;
82 case MIDI_CTL_MSB_BREATH:
83 return "Breath (Coarse)"; break;
84 case MIDI_CTL_MSB_FOOT:
85 return "Foot (Coarse)"; break;
86 case MIDI_CTL_MSB_PORTAMENTO_TIME:
87 return "Portamento Time (Coarse)"; break;
88 case MIDI_CTL_MSB_DATA_ENTRY:
89 return "Data Entry (Coarse)"; break;
90 case MIDI_CTL_MSB_MAIN_VOLUME:
91 return "Main Volume (Coarse)"; break;
92 case MIDI_CTL_MSB_BALANCE:
93 return "Balance (Coarse)"; break;
94 case MIDI_CTL_MSB_PAN:
95 return "Pan (Coarse)"; break;
96 case MIDI_CTL_MSB_EXPRESSION:
97 return "Expression (Coarse)"; break;
98 case MIDI_CTL_MSB_EFFECT1:
99 return "Effect 1 (Coarse)"; break;
100 case MIDI_CTL_MSB_EFFECT2:
101 return "Effect 2 (Coarse)"; break;
102 case MIDI_CTL_MSB_GENERAL_PURPOSE1:
103 return "General Purpose 1 (Coarse)"; break;
104 case MIDI_CTL_MSB_GENERAL_PURPOSE2:
105 return "General Purpose 2 (Coarse)"; break;
106 case MIDI_CTL_MSB_GENERAL_PURPOSE3:
107 return "General Purpose 3 (Coarse)"; break;
108 case MIDI_CTL_MSB_GENERAL_PURPOSE4:
109 return "General Purpose 4 (Coarse)"; break;
110 case MIDI_CTL_LSB_BANK:
111 return "Bank Select (Fine)"; break;
112 case MIDI_CTL_LSB_MODWHEEL:
113 return "Modulation (Fine)"; break;
114 case MIDI_CTL_LSB_BREATH:
115 return "Breath (Fine)"; break;
116 case MIDI_CTL_LSB_FOOT:
117 return "Foot (Fine)"; break;
118 case MIDI_CTL_LSB_PORTAMENTO_TIME:
119 return "Portamento Time (Fine)"; break;
120 case MIDI_CTL_LSB_DATA_ENTRY:
121 return "Data Entry (Fine)"; break;
122 case MIDI_CTL_LSB_MAIN_VOLUME:
123 return "Main Volume (Fine)"; break;
124 case MIDI_CTL_LSB_BALANCE:
125 return "Balance (Fine)"; break;
126 case MIDI_CTL_LSB_PAN:
127 return "Pan (Fine)"; break;
128 case MIDI_CTL_LSB_EXPRESSION:
129 return "Expression (Fine)"; break;
130 case MIDI_CTL_LSB_EFFECT1:
131 return "Effect 1 (Fine)"; break;
132 case MIDI_CTL_LSB_EFFECT2:
133 return "Effect 2 (Fine)"; break;
134 case MIDI_CTL_LSB_GENERAL_PURPOSE1:
135 return "General Purpose 1 (Fine)"; break;
136 case MIDI_CTL_LSB_GENERAL_PURPOSE2:
137 return "General Purpose 2 (Fine)"; break;
138 case MIDI_CTL_LSB_GENERAL_PURPOSE3:
139 return "General Purpose 3 (Fine)"; break;
140 case MIDI_CTL_LSB_GENERAL_PURPOSE4:
141 return "General Purpose 4 (Fine)"; break;
142 case MIDI_CTL_SUSTAIN:
143 return "Sustain Pedal"; break;
144 case MIDI_CTL_PORTAMENTO:
145 return "Portamento"; break;
146 case MIDI_CTL_SOSTENUTO:
147 return "Sostenuto"; break;
148 case MIDI_CTL_SOFT_PEDAL:
149 return "Soft Pedal"; break;
150 case MIDI_CTL_LEGATO_FOOTSWITCH:
151 return "Legato Foot Switch"; break;
153 return "Hold2"; break;
154 case MIDI_CTL_SC1_SOUND_VARIATION:
155 return "Sound Variation"; break;
156 case MIDI_CTL_SC2_TIMBRE:
157 return "Sound Timbre"; break;
158 case MIDI_CTL_SC3_RELEASE_TIME:
159 return "Sound Release Time"; break;
160 case MIDI_CTL_SC4_ATTACK_TIME:
161 return "Sound Attack Time"; break;
162 case MIDI_CTL_SC5_BRIGHTNESS:
163 return "Sound Brightness"; break;
165 return "Sound Control 6"; break;
167 return "Sound Control 7"; break;
169 return "Sound Control 8"; break;
171 return "Sound Control 9"; break;
173 return "Sound Control 10"; break;
174 case MIDI_CTL_GENERAL_PURPOSE5:
175 return "General Purpose 5"; break;
176 case MIDI_CTL_GENERAL_PURPOSE6:
177 return "General Purpose 6"; break;
178 case MIDI_CTL_GENERAL_PURPOSE7:
179 return "General Purpose 7"; break;
180 case MIDI_CTL_GENERAL_PURPOSE8:
181 return "General Purpose 8"; break;
182 case MIDI_CTL_PORTAMENTO_CONTROL:
183 return "Portamento Control"; break;
184 case MIDI_CTL_E1_REVERB_DEPTH:
185 return "Reverb Depth"; break;
186 case MIDI_CTL_E2_TREMOLO_DEPTH:
187 return "Tremolo Depth"; break;
188 case MIDI_CTL_E3_CHORUS_DEPTH:
189 return "Chorus Depth"; break;
190 case MIDI_CTL_E4_DETUNE_DEPTH:
191 return "Detune Depth"; break;
192 case MIDI_CTL_E5_PHASER_DEPTH:
193 return "Phaser Depth"; break;
194 case MIDI_CTL_DATA_INCREMENT:
195 return "Data Increment"; break;
196 case MIDI_CTL_DATA_DECREMENT:
197 return "Data Decrement"; break;
198 case MIDI_CTL_NONREG_PARM_NUM_LSB:
199 return "Non-registered Parameter Number"; break;
200 case MIDI_CTL_NONREG_PARM_NUM_MSB:
201 return "Non-registered Narameter Number"; break;
202 case MIDI_CTL_REGIST_PARM_NUM_LSB:
203 return "Registered Parameter Number"; break;
204 case MIDI_CTL_REGIST_PARM_NUM_MSB:
205 return "Registered Parameter Number"; break;
206 case MIDI_CTL_ALL_SOUNDS_OFF:
207 return "All Sounds Off"; break;
208 case MIDI_CTL_RESET_CONTROLLERS:
209 return "Reset Controllers"; break;
210 case MIDI_CTL_LOCAL_CONTROL_SWITCH:
211 return "Local Keyboard on/off"; break;
212 case MIDI_CTL_ALL_NOTES_OFF:
213 return "All Notes Off"; break;
214 case MIDI_CTL_OMNI_OFF:
215 return "Omni Off"; break;
216 case MIDI_CTL_OMNI_ON:
217 return "Omni On"; break;
219 return "Monophonic Mode"; break;
221 return "Polyphonic Mode"; break;
223 return "Unnamed"; break;
227 #endif /* __midinames_h__ */