RAUL  0.8.0
midi_names.h
1 /* Names of standard MIDI events and controllers.
2  * Copyright (C) 2007-2009 David Robillard <http://drobilla.net>
3  *
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.
8  *
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.
13  *
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
17  *
18  */
19 
20 #ifndef RAUL_MIDI_NAMES_H
21 #define RAUL_MIDI_NAMES_H
22 
23 #include "raul/midi_events.h"
24 
25 #ifdef __cplusplus
26 namespace Raul {
27 extern "C" {
28 #endif
29 
30 
35 inline static const char* midi_name(uint8_t status)
36 {
37  switch (status) {
38 
39  case MIDI_CMD_NOTE_OFF:
40  return "Note Off"; break;
41  case MIDI_CMD_NOTE_ON:
42  return "Note On"; break;
44  return "Key Pressure"; break;
45  case MIDI_CMD_CONTROL:
46  return "Control Change"; break;
48  return "Program Change"; break;
50  return "Channel Pressure"; break;
51  case MIDI_CMD_BENDER:
52  return "Pitch Bender"; break;
53 
55  return "Sysex (System Exclusive) Begin"; break;
57  return "MTC Quarter Frame"; break;
59  return "Song Position"; break;
61  return "Song Select"; break;
63  return "Tune Request"; break;
65  return "End of Sysex"; break;
67  return "Clock"; break;
69  return "Tick"; break;
71  return "Start"; break;
73  return "Continue"; break;
75  return "Stop"; break;
77  return "Active Sensing"; break;
79  return "Reset"; break;
80 
81  case MIDI_CTL_MSB_BANK:
82  return "Bank Select (Coarse)"; break;
84  return "Modulation (Coarse)"; break;
86  return "Breath (Coarse)"; break;
87  case MIDI_CTL_MSB_FOOT:
88  return "Foot (Coarse)"; break;
90  return "Portamento Time (Coarse)"; break;
92  return "Data Entry (Coarse)"; break;
94  return "Main Volume (Coarse)"; break;
96  return "Balance (Coarse)"; break;
97  case MIDI_CTL_MSB_PAN:
98  return "Pan (Coarse)"; break;
100  return "Expression (Coarse)"; break;
102  return "Effect 1 (Coarse)"; break;
104  return "Effect 2 (Coarse)"; break;
106  return "General Purpose 1 (Coarse)"; break;
108  return "General Purpose 2 (Coarse)"; break;
110  return "General Purpose 3 (Coarse)"; break;
112  return "General Purpose 4 (Coarse)"; break;
113  case MIDI_CTL_LSB_BANK:
114  return "Bank Select (Fine)"; break;
116  return "Modulation (Fine)"; break;
117  case MIDI_CTL_LSB_BREATH:
118  return "Breath (Fine)"; break;
119  case MIDI_CTL_LSB_FOOT:
120  return "Foot (Fine)"; break;
122  return "Portamento Time (Fine)"; break;
124  return "Data Entry (Fine)"; break;
126  return "Main Volume (Fine)"; break;
128  return "Balance (Fine)"; break;
129  case MIDI_CTL_LSB_PAN:
130  return "Pan (Fine)"; break;
132  return "Expression (Fine)"; break;
134  return "Effect 1 (Fine)"; break;
136  return "Effect 2 (Fine)"; break;
138  return "General Purpose 1 (Fine)"; break;
140  return "General Purpose 2 (Fine)"; break;
142  return "General Purpose 3 (Fine)"; break;
144  return "General Purpose 4 (Fine)"; break;
145  case MIDI_CTL_SUSTAIN:
146  return "Sustain Pedal"; break;
147  case MIDI_CTL_PORTAMENTO:
148  return "Portamento"; break;
149  case MIDI_CTL_SOSTENUTO:
150  return "Sostenuto"; break;
151  case MIDI_CTL_SOFT_PEDAL:
152  return "Soft Pedal"; break;
154  return "Legato Foot Switch"; break;
155  case MIDI_CTL_HOLD2:
156  return "Hold2"; break;
158  return "Sound Variation"; break;
159  case MIDI_CTL_SC2_TIMBRE:
160  return "Sound Timbre"; break;
162  return "Sound Release Time"; break;
164  return "Sound Attack Time"; break;
166  return "Sound Brightness"; break;
167  case MIDI_CTL_SC6:
168  return "Sound Control 6"; break;
169  case MIDI_CTL_SC7:
170  return "Sound Control 7"; break;
171  case MIDI_CTL_SC8:
172  return "Sound Control 8"; break;
173  case MIDI_CTL_SC9:
174  return "Sound Control 9"; break;
175  case MIDI_CTL_SC10:
176  return "Sound Control 10"; break;
178  return "General Purpose 5"; break;
180  return "General Purpose 6"; break;
182  return "General Purpose 7"; break;
184  return "General Purpose 8"; break;
186  return "Portamento Control"; break;
188  return "Reverb Depth"; break;
190  return "Tremolo Depth"; break;
192  return "Chorus Depth"; break;
194  return "Detune Depth"; break;
196  return "Phaser Depth"; break;
198  return "Data Increment"; break;
200  return "Data Decrement"; break;
202  return "Non-registered Parameter Number"; break;
204  return "Non-registered Narameter Number"; break;
206  return "Registered Parameter Number"; break;
208  return "Registered Parameter Number"; break;
210  return "All Sounds Off"; break;
212  return "Reset Controllers"; break;
214  return "Local Control Switch"; break;
216  return "All Notes Off"; break;
217  case MIDI_CTL_OMNI_OFF:
218  return "Omni Off"; break;
219  case MIDI_CTL_OMNI_ON:
220  return "Omni On"; break;
221  case MIDI_CTL_MONO1:
222  return "Mono 1"; break;
223  case MIDI_CTL_MONO2:
224  return "Mono 2"; break;
225  default:
226  return "Unnamed"; break;
227  }
228 }
229 
230 
231 #ifdef __cplusplus
232 } // extern "C"
233 } // namespace Raul
234 #endif
235 
236 
237 #endif /* RAUL_MIDI_NAMES_H */