summaryrefslogtreecommitdiff
path: root/libs/midi++2/midi++/names.h
blob: e4fdd241dbaa66978d1874e8cab021dfbf2adce1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
/* Names of standard MIDI events and controllers.
 * Copyright (C) 2007-2008 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 __midinames_h__
#define __midinames_h__

#include "events.h"


/** \group midi
 */

/** Pass this a symbol defined in events.h (e.g. MIDI_CTL_PAN) to get the
 * short name of a MIDI event/controller according to General MIDI.
 */
inline 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 Select (Coarse)"; break;
	case MIDI_CTL_MSB_MODWHEEL:
		return "Modulation (Coarse)"; break;
	case MIDI_CTL_MSB_BREATH:
		return "Breath (Coarse)"; break;
	case MIDI_CTL_MSB_FOOT:
		return "Foot (Coarse)"; break;
	case MIDI_CTL_MSB_PORTAMENTO_TIME:
		return "Portamento Time (Coarse)"; break;
	case MIDI_CTL_MSB_DATA_ENTRY:
		return "Data Entry (Coarse)"; break;
	case MIDI_CTL_MSB_MAIN_VOLUME:
		return "Main Volume (Coarse)"; break;
	case MIDI_CTL_MSB_BALANCE:
		return "Balance (Coarse)"; break;
	case MIDI_CTL_MSB_PAN:
		return "Pan (Coarse)"; break;
	case MIDI_CTL_MSB_EXPRESSION:
		return "Expression (Coarse)"; break;
	case MIDI_CTL_MSB_EFFECT1:
		return "Effect 1 (Coarse)"; break;
	case MIDI_CTL_MSB_EFFECT2:
		return "Effect 2 (Coarse)"; break;
	case MIDI_CTL_MSB_GENERAL_PURPOSE1:
		return "General Purpose 1 (Coarse)"; break;
	case MIDI_CTL_MSB_GENERAL_PURPOSE2:
		return "General Purpose 2 (Coarse)"; break;
	case MIDI_CTL_MSB_GENERAL_PURPOSE3:
		return "General Purpose 3 (Coarse)"; break;
	case MIDI_CTL_MSB_GENERAL_PURPOSE4:
		return "General Purpose 4 (Coarse)"; break;
	case MIDI_CTL_LSB_BANK:
		return "Bank Select (Fine)"; break;
	case MIDI_CTL_LSB_MODWHEEL:
		return "Modulation (Fine)"; break;
	case MIDI_CTL_LSB_BREATH:
		return "Breath (Fine)"; break;
	case MIDI_CTL_LSB_FOOT:
		return "Foot (Fine)"; break;
	case MIDI_CTL_LSB_PORTAMENTO_TIME:
		return "Portamento Time (Fine)"; break;
	case MIDI_CTL_LSB_DATA_ENTRY:
		return "Data Entry (Fine)"; break;
	case MIDI_CTL_LSB_MAIN_VOLUME:
		return "Main Volume (Fine)"; break;
	case MIDI_CTL_LSB_BALANCE:
		return "Balance (Fine)"; break;
	case MIDI_CTL_LSB_PAN:
		return "Pan (Fine)"; break;
	case MIDI_CTL_LSB_EXPRESSION:
		return "Expression (Fine)"; break;
	case MIDI_CTL_LSB_EFFECT1:
		return "Effect 1 (Fine)"; break;
	case MIDI_CTL_LSB_EFFECT2:
		return "Effect 2 (Fine)"; break;
	case MIDI_CTL_LSB_GENERAL_PURPOSE1:
		return "General Purpose 1 (Fine)"; break;
	case MIDI_CTL_LSB_GENERAL_PURPOSE2:
		return "General Purpose 2 (Fine)"; break;
	case MIDI_CTL_LSB_GENERAL_PURPOSE3:
		return "General Purpose 3 (Fine)"; break;
	case MIDI_CTL_LSB_GENERAL_PURPOSE4:
		return "General Purpose 4 (Fine)"; 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 "Sound Variation"; break;
	case MIDI_CTL_SC2_TIMBRE:
		return "Sound Timbre"; break;
	case MIDI_CTL_SC3_RELEASE_TIME:
		return "Sound Release Time"; break;
	case MIDI_CTL_SC4_ATTACK_TIME:
		return "Sound Attack Time"; break;
	case MIDI_CTL_SC5_BRIGHTNESS:
		return "Sound Brightness"; break;
	case MIDI_CTL_SC6:
		return "Sound Control 6"; break;
	case MIDI_CTL_SC7:
		return "Sound Control 7"; break;
	case MIDI_CTL_SC8:
		return "Sound Control 8"; break;
	case MIDI_CTL_SC9:
		return "Sound Control 9"; break;
	case MIDI_CTL_SC10:
		return "Sound Control 10"; 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 "Reverb Depth"; break;
	case MIDI_CTL_E2_TREMOLO_DEPTH:
		return "Tremolo Depth"; break;
	case MIDI_CTL_E3_CHORUS_DEPTH:
		return "Chorus Depth"; break;
	case MIDI_CTL_E4_DETUNE_DEPTH:
		return "Detune Depth"; break;
	case MIDI_CTL_E5_PHASER_DEPTH:
		return "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 Keyboard on/off"; 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_MONO:
		return "Monophonic Mode"; break;
	case MIDI_CTL_POLY:
		return "Polyphonic Mode"; break;
	default:
		return "Unnamed"; break;
	}
}

#endif /* __midinames_h__ */