* MIDI control lanes: Set Interpolationtype according to Parameter
[ardour.git] / libs / midi++2 / midi++ / names.h
1 /* Names of standard MIDI events and controllers.
2  * Copyright (C) 2007-2008 Dave 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 __midinames_h__
21 #define __midinames_h__
22
23 #include "events.h"
24
25
26 /** \group midi
27  */
28
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.
31  */
32 inline static const char* midi_name(uint8_t status)
33 {
34         switch (status) {
35         
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;
48         case MIDI_CMD_BENDER:
49                 return "Pitch Bender"; break;
50
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:
66                 return "Tick"; break;
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:
72                 return "Stop"; break;
73         case MIDI_CMD_COMMON_SENSING:
74                 return "Active Sensing"; break;
75         case MIDI_CMD_COMMON_RESET:
76                 return "Reset"; break;
77
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;
152         case MIDI_CTL_HOLD2:
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;
164         case MIDI_CTL_SC6:
165                 return "Sound Control 6"; break;
166         case MIDI_CTL_SC7:
167                 return "Sound Control 7"; break;
168         case MIDI_CTL_SC8:
169                 return "Sound Control 8"; break;
170         case MIDI_CTL_SC9:
171                 return "Sound Control 9"; break;
172         case MIDI_CTL_SC10:
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;
218         case MIDI_CTL_MONO:
219                 return "Monophonic Mode"; break;
220         case MIDI_CTL_POLY:
221                 return "Polyphonic Mode"; break;
222         default:
223                 return "Unnamed"; break;
224         }
225 }
226
227 #endif /* __midinames_h__ */
228