-
Notifications
You must be signed in to change notification settings - Fork 2
/
ass-midi.h
310 lines (307 loc) · 7.5 KB
/
ass-midi.h
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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
#define MIDI_PROGRAM(c, p) { REG_MIDIOUT = 0xC0 | (c); REG_MIDIOUT = (p); }
#define MIDI_CONTROL(c, p, v) { REG_MIDIOUT = 0xB0 | (c); REG_MIDIOUT = (p); REG_MIDIOUT = (v); }
#define MIDI_KEYON(c, p, v) { REG_MIDIOUT = 0x90 | (c); REG_MIDIOUT = (p); REG_MIDIOUT = (v); }
#define MIDI_KEYOFF(c, p, v) { REG_MIDIOUT = 0x80 | (c); REG_MIDIOUT = (p); REG_MIDIOUT = (v); }
#define MIDI_ACOUSTICGRANDPIANO 0
#define MIDI_BRIGHTACOUSTICPIANO 1
#define MIDI_ELECTRICGRANDPIANO 2
#define MIDI_HONKYTONKPIANO 3
#define MIDI_ELECTRICPIANO1 4
#define MIDI_ELECTRICPIANO2 5
#define MIDI_HARPSICHORD 6
#define MIDI_CLAVINET 7
#define MIDI_CELESTA 8
#define MIDI_GLOCKENSPIEL 9
#define MIDI_MUSICBOX 10
#define MIDI_VIBRAPHONE 11
#define MIDI_MARIMBA 12
#define MIDI_XYLOPHONE 13
#define MIDI_TUBULARBELLS 14
#define MIDI_DULCIMER 15
#define MIDI_DRAWBARORGAN 16
#define MIDI_PERCUSSIVEORGAN 17
#define MIDI_ROCKORGAN 18
#define MIDI_CHURCHORGAN 19
#define MIDI_REEDORGAN 20
#define MIDI_ACCORDION 21
#define MIDI_HARMONICA 22
#define MIDI_TANGOACCORDION 23
#define MIDI_ACOUSTICGUITARNYLON 24
#define MIDI_ACOUSTICGUITARSTEEL 25
#define MIDI_ELECTRICGUITARJAZZ 26
#define MIDI_ELECTRICGUITARCLEAN 27
#define MIDI_ELECTRICGUITARMUTED 28
#define MIDI_OVERDRIVENGUITAR 29
#define MIDI_DISTORTIONGUITAR 30
#define MIDI_GUITARHARMONICS 31
#define MIDI_ACOUSTICBASS 32
#define MIDI_ELECTRICBASSFINGER 33
#define MIDI_ELECTRICBASSPICK 34
#define MIDI_FRETLESSBASS 35
#define MIDI_SLAPBASS1 36
#define MIDI_SLAPBASS2 37
#define MIDI_SYNTHBASS1 38
#define MIDI_SYNTHBASS2 39
#define MIDI_VIOLIN 40
#define MIDI_VIOLA 41
#define MIDI_CELLO 42
#define MIDI_CONTRABASS 43
#define MIDI_TREMOLOSTRINGS 44
#define MIDI_PIZZICATOSTRINGS 45
#define MIDI_ORCHESTRALHARP 46
#define MIDI_TIMPANI 47
#define MIDI_STRINGENSEMBLE1 48
#define MIDI_STRINGENSEMBLE2 49
#define MIDI_SYNTHSTRINGS1 50
#define MIDI_SYNTHSTRINGS2 51
#define MIDI_CHOIRAAHS 52
#define MIDI_VOICEOOHS 53
#define MIDI_SYNTHVOICE 54
#define MIDI_ORCHESTRAHIT 55
#define MIDI_TRUMPET 56
#define MIDI_TROMBONE 57
#define MIDI_TUBA 58
#define MIDI_MUTEDTRUMPET 59
#define MIDI_FRENCHHORN 60
#define MIDI_BRASSSECTION 61
#define MIDI_SYNTHBRASS1 62
#define MIDI_SYNTHBRASS2 63
#define MIDI_SOPRANOSAX 64
#define MIDI_ALTOSAX 65
#define MIDI_TENORSAX 66
#define MIDI_BARITONESAX 67
#define MIDI_OBOE 68
#define MIDI_ENGLISHHORN 69
#define MIDI_BASSOON 70
#define MIDI_CLARINET 71
#define MIDI_PICCOLO 72
#define MIDI_FLUTE 73
#define MIDI_RECORDER 74
#define MIDI_PANFLUTE 75
#define MIDI_BLOWNBOTTLE 76
#define MIDI_SHAKUHACHI 77
#define MIDI_WHISTLE 78
#define MIDI_OCARINA 79
#define MIDI_LEAD1SQUARE 80
#define MIDI_LEAD2SAWTOOTH 81
#define MIDI_LEAD3CALLIOPE 82
#define MIDI_LEAD4CHIFF 83
#define MIDI_LEAD5CHARANG 84
#define MIDI_LEAD6VOICE 85
#define MIDI_LEAD7FIFTHS 86
#define MIDI_LEAD8BASSPLUSLEAD 87
#define MIDI_PAD1NEWAGE 88
#define MIDI_PAD2WARM 89
#define MIDI_PAD3POLYSYNTH 90
#define MIDI_PAD4CHOIR 91
#define MIDI_PAD5BOWED 92
#define MIDI_PAD6METALLIC 93
#define MIDI_PAD7HALO 94
#define MIDI_PAD8SWEEP 95
#define MIDI_FX1RAIN 96
#define MIDI_FX2SOUNDTRACK 97
#define MIDI_FX3CRYSTAL 98
#define MIDI_FX4ATMOSPHERE 99
#define MIDI_FX5BRIGHTNESS 100
#define MIDI_FX6GOBLINS 101
#define MIDI_FX7ECHOES 102
#define MIDI_FX8SCIFI 103
#define MIDI_SITAR 104
#define MIDI_BANJO 105
#define MIDI_SHAMISEN 106
#define MIDI_KOTO 107
#define MIDI_KALIMBA 108
#define MIDI_BAGPIPE 109
#define MIDI_FIDDLE 110
#define MIDI_SHANAI 111
#define MIDI_TINKLEBELL 112
#define MIDI_AGOGO 113
#define MIDI_STEELDRUMS 114
#define MIDI_WOODBLOCK 115
#define MIDI_TAIKODRUM 116
#define MIDI_MELODICTOM 117
#define MIDI_SYNTHDRUM 118
#define MIDI_REVERSECYMBAL 119
#define MIDI_GUITARFRETNOISE 120
#define MIDI_BREATHNOISE 121
#define MIDI_SEASHORE 122
#define MIDI_BIRDTWEET 123
#define MIDI_TELEPHONERING 124
#define MIDI_HELICOPTER 125
#define MIDI_APPLAUSE 126
#define MIDI_GUNSHOT 127
#define MIDI_Cn1 0
#define MIDI_Csn1 1
#define MIDI_Dn1 2
#define MIDI_Dsn1 3
#define MIDI_En1 4
#define MIDI_Fn1 5
#define MIDI_Fsn1 6
#define MIDI_Gn1 7
#define MIDI_Gsn1 8
#define MIDI_An1 9
#define MIDI_Asn1 10
#define MIDI_Bn1 11
#define MIDI_C0 12
#define MIDI_Cs0 13
#define MIDI_D0 14
#define MIDI_Ds0 15
#define MIDI_E0 16
#define MIDI_F0 17
#define MIDI_Fs0 18
#define MIDI_G0 19
#define MIDI_Gs0 20
#define MIDI_A0 21
#define MIDI_As0 22
#define MIDI_B0 23
#define MIDI_C1 24
#define MIDI_Cs1 25
#define MIDI_D1 26
#define MIDI_Ds1 27
#define MIDI_E1 28
#define MIDI_F1 29
#define MIDI_Fs1 30
#define MIDI_G1 31
#define MIDI_Gs1 32
#define MIDI_A1 33
#define MIDI_As1 34
#define MIDI_B1 35
#define MIDI_C2 36
#define MIDI_Cs2 37
#define MIDI_D2 38
#define MIDI_Ds2 39
#define MIDI_E2 40
#define MIDI_F2 41
#define MIDI_Fs2 42
#define MIDI_G2 43
#define MIDI_Gs2 44
#define MIDI_A2 45
#define MIDI_As2 46
#define MIDI_B2 47
#define MIDI_C3 48
#define MIDI_Cs3 49
#define MIDI_D3 50
#define MIDI_Ds3 51
#define MIDI_E3 52
#define MIDI_F3 53
#define MIDI_Fs3 54
#define MIDI_G3 55
#define MIDI_Gs3 56
#define MIDI_A3 57
#define MIDI_As3 58
#define MIDI_B3 59
#define MIDI_C4 60
#define MIDI_Cs4 61
#define MIDI_D4 62
#define MIDI_Ds4 63
#define MIDI_E4 64
#define MIDI_F4 65
#define MIDI_Fs4 66
#define MIDI_G4 67
#define MIDI_Gs4 68
#define MIDI_A4 69
#define MIDI_As4 70
#define MIDI_B4 71
#define MIDI_C5 72
#define MIDI_Cs5 73
#define MIDI_D5 74
#define MIDI_Ds5 75
#define MIDI_E5 76
#define MIDI_F5 77
#define MIDI_Fs5 78
#define MIDI_G5 79
#define MIDI_Gs5 80
#define MIDI_A5 81
#define MIDI_As5 82
#define MIDI_B5 83
#define MIDI_C6 84
#define MIDI_Cs6 85
#define MIDI_D6 86
#define MIDI_Ds6 87
#define MIDI_E6 88
#define MIDI_F6 89
#define MIDI_Fs6 90
#define MIDI_G6 91
#define MIDI_Gs6 92
#define MIDI_A6 93
#define MIDI_As6 94
#define MIDI_B6 95
#define MIDI_C7 96
#define MIDI_Cs7 97
#define MIDI_D7 98
#define MIDI_Ds7 99
#define MIDI_E7 100
#define MIDI_F7 101
#define MIDI_Fs7 102
#define MIDI_G7 103
#define MIDI_Gs7 104
#define MIDI_A7 105
#define MIDI_As7 106
#define MIDI_B7 107
#define MIDI_C8 108
#define MIDI_Cs8 109
#define MIDI_D8 110
#define MIDI_Ds8 111
#define MIDI_E8 112
#define MIDI_F8 113
#define MIDI_Fs8 114
#define MIDI_G8 115
#define MIDI_Gs8 116
#define MIDI_A8 117
#define MIDI_As8 118
#define MIDI_B8 119
#define MIDI_C9 120
#define MIDI_Cs9 121
#define MIDI_D9 122
#define MIDI_Ds9 123
#define MIDI_E9 124
#define MIDI_F9 125
#define MIDI_Fs9 126
#define MIDI_G9 127
#define MIDI_BASSDRUM2 35
#define MIDI_BASSDRUM1 36
#define MIDI_SIDESTICK 37
#define MIDI_SNAREDRUM1 38
#define MIDI_HANDCLAP 39
#define MIDI_SNAREDRUM2 40
#define MIDI_LOWTOM2 41
#define MIDI_CLOSEDHIHAT 42
#define MIDI_LOWTOM1 43
#define MIDI_PEDALHIHAT 44
#define MIDI_MIDTOM2 45
#define MIDI_OPENHIHAT 46
#define MIDI_MIDTOM1 47
#define MIDI_HIGHTOM2 48
#define MIDI_CRASHCYMBAL1 49
#define MIDI_HIGHTOM1 50
#define MIDI_RIDECYMBAL1 51
#define MIDI_CHINESECYMBAL 52
#define MIDI_RIDEBELL 53
#define MIDI_TAMBOURINE 54
#define MIDI_SPLASHCYMBAL 55
#define MIDI_COWBELL 56
#define MIDI_CRASHCYMBAL2 57
#define MIDI_VIBRASLAP 58
#define MIDI_RIDECYMBAL2 59
#define MIDI_HIGHBONGO 60
#define MIDI_LOWBONGO 61
#define MIDI_MUTEHIGHCONGA 62
#define MIDI_OPENHIGHCONGA 63
#define MIDI_LOWCONGA 64
#define MIDI_HIGHTIMBALE 65
#define MIDI_LOWTIMBALE 66
#define MIDI_HIGHAGOGO 67
#define MIDI_LOWAGOGO 68
#define MIDI_CABASA 69
#define MIDI_MARACAS 70
#define MIDI_SHORTWHISTLE 71
#define MIDI_LONGWHISTLE 72
#define MIDI_SHORTGUIRO 74
#define MIDI_LONGGUIRO 74
#define MIDI_CLAVES 75
#define MIDI_HIGHWOODBLOCK 76
#define MIDI_LOWWOODBLOCK 77
#define MIDI_MUTECUICA 78
#define MIDI_OPENCUICA 79
#define MIDI_MUTETRIANGLE 80
#define MIDI_OPENTRIANGLE 81