1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef SCI_SOUND_DRIVERS_MAP_MT32_TO_GM_H
24 #define SCI_SOUND_DRIVERS_MAP_MT32_TO_GM_H
25 
26 namespace Sci {
27 
28 #include "common/list.h"
29 
30 // Patch not mapped
31 #define MIDI_UNMAPPED 0xff
32 // Patch mapped to rhythm key
33 #define MIDI_MAPPED_TO_RHYTHM 0xfe
34 
35 struct Mt32ToGmMap {
36 	const char *name;
37 	uint8 gmInstr;
38 	uint8 gmRhythmKey;
39 };
40 
41 /*******************************************
42  * Fancy instrument mappings begin here... *
43  *******************************************/
44 
45 
46 static const Mt32ToGmMap Mt32PresetTimbreMaps[] = {
47 	/*000*/  {"AcouPiano1", 0, MIDI_UNMAPPED},
48 	/*001*/  {"AcouPiano2", 1, MIDI_UNMAPPED},
49 	/*002*/  {"AcouPiano3", 0, MIDI_UNMAPPED},
50 	/*003*/  {"ElecPiano1", 4, MIDI_UNMAPPED},
51 	/*004*/  {"ElecPiano2", 5, MIDI_UNMAPPED},
52 	/*005*/  {"ElecPiano3", 4, MIDI_UNMAPPED},
53 	/*006*/  {"ElecPiano4", 5, MIDI_UNMAPPED},
54 	/*007*/  {"Honkytonk ", 3, MIDI_UNMAPPED},
55 	/*008*/  {"Elec Org 1", 16, MIDI_UNMAPPED},
56 	/*009*/  {"Elec Org 2", 17, MIDI_UNMAPPED},
57 	/*010*/  {"Elec Org 3", 18, MIDI_UNMAPPED},
58 	/*011*/  {"Elec Org 4", 18, MIDI_UNMAPPED},
59 	/*012*/  {"Pipe Org 1", 19, MIDI_UNMAPPED},
60 	/*013*/  {"Pipe Org 2", 19, MIDI_UNMAPPED},
61 	/*014*/  {"Pipe Org 3", 20, MIDI_UNMAPPED},
62 	/*015*/  {"Accordion ", 21, MIDI_UNMAPPED},
63 	/*016*/  {"Harpsi 1  ", 6, MIDI_UNMAPPED},
64 	/*017*/  {"Harpsi 2  ", 6, MIDI_UNMAPPED},
65 	/*018*/  {"Harpsi 3  ", 6, MIDI_UNMAPPED},
66 	/*019*/  {"Clavi 1   ", 7, MIDI_UNMAPPED},
67 	/*020*/  {"Clavi 2   ", 7, MIDI_UNMAPPED},
68 	/*021*/  {"Clavi 3   ", 7, MIDI_UNMAPPED},
69 	/*022*/  {"Celesta 1 ", 8, MIDI_UNMAPPED},
70 	/*023*/  {"Celesta 2 ", 8, MIDI_UNMAPPED},
71 	/*024*/  {"Syn Brass1", 62, MIDI_UNMAPPED},
72 	/*025*/  {"Syn Brass2", 63, MIDI_UNMAPPED},
73 	/*026*/  {"Syn Brass3", 62, MIDI_UNMAPPED},
74 	/*027*/  {"Syn Brass4", 63, MIDI_UNMAPPED},
75 	/*028*/  {"Syn Bass 1", 38, MIDI_UNMAPPED},
76 	/*029*/  {"Syn Bass 2", 39, MIDI_UNMAPPED},
77 	/*030*/  {"Syn Bass 3", 38, MIDI_UNMAPPED},
78 	/*031*/  {"Syn Bass 4", 39, MIDI_UNMAPPED},
79 	/*032*/  {"Fantasy   ", 88, MIDI_UNMAPPED},
80 	/*033*/  {"Harmo Pan ", 89, MIDI_UNMAPPED},
81 	/*034*/  {"Chorale   ", 52, MIDI_UNMAPPED},
82 	/*035*/  {"Glasses   ", 98, MIDI_UNMAPPED},
83 	/*036*/  {"Soundtrack", 97, MIDI_UNMAPPED},
84 	/*037*/  {"Atmosphere", 99, MIDI_UNMAPPED},
85 	/*038*/  {"Warm Bell ", 89, MIDI_UNMAPPED},
86 	/*039*/  {"Funny Vox ", 85, MIDI_UNMAPPED},
87 	/*040*/  {"Echo Bell ", 39, MIDI_UNMAPPED},
88 	/*041*/  {"Ice Rain  ", 101, MIDI_UNMAPPED},
89 	/*042*/  {"Oboe 2001 ", 68, MIDI_UNMAPPED},
90 	/*043*/  {"Echo Pan  ", 87, MIDI_UNMAPPED},
91 	/*044*/  {"DoctorSolo", 86, MIDI_UNMAPPED},
92 	/*045*/  {"Schooldaze", 103, MIDI_UNMAPPED},
93 	/*046*/  {"BellSinger", 88, MIDI_UNMAPPED},
94 	/*047*/  {"SquareWave", 80, MIDI_UNMAPPED},
95 	/*048*/  {"Str Sect 1", 48, MIDI_UNMAPPED},
96 	/*049*/  {"Str Sect 2", 48, MIDI_UNMAPPED},
97 	/*050*/  {"Str Sect 3", 49, MIDI_UNMAPPED},
98 	/*051*/  {"Pizzicato ", 45, MIDI_UNMAPPED},
99 	/*052*/  {"Violin 1  ", 40, MIDI_UNMAPPED},
100 	/*053*/  {"Violin 2  ", 40, MIDI_UNMAPPED},
101 	/*054*/  {"Cello 1   ", 42, MIDI_UNMAPPED},
102 	/*055*/  {"Cello 2   ", 42, MIDI_UNMAPPED},
103 	/*056*/  {"Contrabass", 43, MIDI_UNMAPPED},
104 	/*057*/  {"Harp 1    ", 46, MIDI_UNMAPPED},
105 	/*058*/  {"Harp 2    ", 46, MIDI_UNMAPPED},
106 	/*059*/  {"Guitar 1  ", 24, MIDI_UNMAPPED},
107 	/*060*/  {"Guitar 2  ", 25, MIDI_UNMAPPED},
108 	/*061*/  {"Elec Gtr 1", 26, MIDI_UNMAPPED},
109 	/*062*/  {"Elec Gtr 2", 27, MIDI_UNMAPPED},
110 	/*063*/  {"Sitar     ", 104, MIDI_UNMAPPED},
111 	/*064*/  {"Acou Bass1", 32, MIDI_UNMAPPED},
112 	/*065*/  {"Acou Bass2", 33, MIDI_UNMAPPED},
113 	/*066*/  {"Elec Bass1", 34, MIDI_UNMAPPED},
114 	/*067*/  {"Elec Bass2", 39, MIDI_UNMAPPED},
115 	/*068*/  {"Slap Bass1", 36, MIDI_UNMAPPED},
116 	/*069*/  {"Slap Bass2", 37, MIDI_UNMAPPED},
117 	/*070*/  {"Fretless 1", 35, MIDI_UNMAPPED},
118 	/*071*/  {"Fretless 2", 35, MIDI_UNMAPPED},
119 	/*072*/  {"Flute 1   ", 73, MIDI_UNMAPPED},
120 	/*073*/  {"Flute 2   ", 73, MIDI_UNMAPPED},
121 	/*074*/  {"Piccolo 1 ", 72, MIDI_UNMAPPED},
122 	/*075*/  {"Piccolo 2 ", 72, MIDI_UNMAPPED},
123 	/*076*/  {"Recorder  ", 74, MIDI_UNMAPPED},
124 	/*077*/  {"Panpipes  ", 75, MIDI_UNMAPPED},
125 	/*078*/  {"Sax 1     ", 64, MIDI_UNMAPPED},
126 	/*079*/  {"Sax 2     ", 65, MIDI_UNMAPPED},
127 	/*080*/  {"Sax 3     ", 66, MIDI_UNMAPPED},
128 	/*081*/  {"Sax 4     ", 67, MIDI_UNMAPPED},
129 	/*082*/  {"Clarinet 1", 71, MIDI_UNMAPPED},
130 	/*083*/  {"Clarinet 2", 71, MIDI_UNMAPPED},
131 	/*084*/  {"Oboe      ", 68, MIDI_UNMAPPED},
132 	/*085*/  {"Engl Horn ", 69, MIDI_UNMAPPED},
133 	/*086*/  {"Bassoon   ", 70, MIDI_UNMAPPED},
134 	/*087*/  {"Harmonica ", 22, MIDI_UNMAPPED},
135 	/*088*/  {"Trumpet 1 ", 56, MIDI_UNMAPPED},
136 	/*089*/  {"Trumpet 2 ", 56, MIDI_UNMAPPED},
137 	/*090*/  {"Trombone 1", 57, MIDI_UNMAPPED},
138 	/*091*/  {"Trombone 2", 57, MIDI_UNMAPPED},
139 	/*092*/  {"Fr Horn 1 ", 60, MIDI_UNMAPPED},
140 	/*093*/  {"Fr Horn 2 ", 60, MIDI_UNMAPPED},
141 	/*094*/  {"Tuba      ", 58, MIDI_UNMAPPED},
142 	/*095*/  {"Brs Sect 1", 61, MIDI_UNMAPPED},
143 	/*096*/  {"Brs Sect 2", 61, MIDI_UNMAPPED},
144 	/*097*/  {"Vibe 1    ", 11, MIDI_UNMAPPED},
145 	/*098*/  {"Vibe 2    ", 11, MIDI_UNMAPPED},
146 	/*099*/  {"Syn Mallet", 15, MIDI_UNMAPPED},
147 	/*100*/  {"Wind Bell ", 88, MIDI_UNMAPPED},
148 	/*101*/  {"Glock     ", 9, MIDI_UNMAPPED},
149 	/*102*/  {"Tube Bell ", 14, MIDI_UNMAPPED},
150 	/*103*/  {"Xylophone ", 13, MIDI_UNMAPPED},
151 	/*104*/  {"Marimba   ", 12, MIDI_UNMAPPED},
152 	/*105*/  {"Koto      ", 107, MIDI_UNMAPPED},
153 	/*106*/  {"Sho       ", 111, MIDI_UNMAPPED},
154 	/*107*/  {"Shakuhachi", 77, MIDI_UNMAPPED},
155 	/*108*/  {"Whistle 1 ", 78, MIDI_UNMAPPED},
156 	/*109*/  {"Whistle 2 ", 78, MIDI_UNMAPPED},
157 	/*110*/  {"BottleBlow", 76, MIDI_UNMAPPED},
158 	/*111*/  {"BreathPipe", 121, MIDI_UNMAPPED},
159 	/*112*/  {"Timpani   ", 47, MIDI_UNMAPPED},
160 	/*113*/  {"MelodicTom", 117, MIDI_UNMAPPED},
161 	/*114*/  {"Deep Snare", MIDI_MAPPED_TO_RHYTHM, 38},
162 	/*115*/  {"Elec Perc1", 115, MIDI_UNMAPPED}, // ?
163 	/*116*/  {"Elec Perc2", 118, MIDI_UNMAPPED}, // ?
164 	/*117*/  {"Taiko     ", 116, MIDI_UNMAPPED},
165 	/*118*/  {"Taiko Rim ", 118, MIDI_UNMAPPED},
166 	/*119*/  {"Cymbal    ", MIDI_MAPPED_TO_RHYTHM, 51},
167 	/*120*/  {"Castanets ", MIDI_MAPPED_TO_RHYTHM, 75},	// approximation
168 	/*121*/  {"Triangle  ", 112, MIDI_UNMAPPED},
169 	/*122*/  {"Orche Hit ", 55, MIDI_UNMAPPED},
170 	/*123*/  {"Telephone ", 124, MIDI_UNMAPPED},
171 	/*124*/  {"Bird Tweet", 123, MIDI_UNMAPPED},
172 	/*125*/  {"OneNoteJam", 8, MIDI_UNMAPPED}, // approximation
173 	/*126*/  {"WaterBells", 98, MIDI_UNMAPPED},
174 	/*127*/  {"JungleTune", 75, MIDI_UNMAPPED} // approximation
175 };
176 
177 static const Mt32ToGmMap Mt32RhythmTimbreMaps[] = {
178 	/*00*/  {"Acou BD   ", MIDI_MAPPED_TO_RHYTHM, 35},
179 	/*01*/  {"Acou SD   ", MIDI_MAPPED_TO_RHYTHM, 38},
180 	/*02*/  {"Acou HiTom", 117, 50},
181 	/*03*/  {"AcouMidTom", 117, 47},
182 	/*04*/  {"AcouLowTom", 117, 41},
183 	/*05*/  {"Elec SD   ", MIDI_MAPPED_TO_RHYTHM, 40},
184 	/*06*/  {"Clsd HiHat", MIDI_MAPPED_TO_RHYTHM, 42},
185 	/*07*/  {"OpenHiHat1", MIDI_MAPPED_TO_RHYTHM, 46},
186 	/*08*/  {"Crash Cym ", MIDI_MAPPED_TO_RHYTHM, 49},
187 	/*09*/  {"Ride Cym  ", MIDI_MAPPED_TO_RHYTHM, 51},
188 	/*10*/  {"Rim Shot  ", MIDI_MAPPED_TO_RHYTHM, 37},
189 	/*11*/  {"Hand Clap ", MIDI_MAPPED_TO_RHYTHM, 39},
190 	/*12*/  {"Cowbell   ", MIDI_MAPPED_TO_RHYTHM, 56},
191 	/*13*/  {"Mt HiConga", MIDI_MAPPED_TO_RHYTHM, 62},
192 	/*14*/  {"High Conga", MIDI_MAPPED_TO_RHYTHM, 63},
193 	/*15*/  {"Low Conga ", MIDI_MAPPED_TO_RHYTHM, 64},
194 	/*16*/  {"Hi Timbale", MIDI_MAPPED_TO_RHYTHM, 65},
195 	/*17*/  {"LowTimbale", MIDI_MAPPED_TO_RHYTHM, 66},
196 	/*18*/  {"High Bongo", MIDI_MAPPED_TO_RHYTHM, 60},
197 	/*19*/  {"Low Bongo ", MIDI_MAPPED_TO_RHYTHM, 61},
198 	/*20*/  {"High Agogo", 113, 67},
199 	/*21*/  {"Low Agogo ", 113, 68},
200 	/*22*/  {"Tambourine", MIDI_MAPPED_TO_RHYTHM, 54},
201 	/*23*/  {"Claves    ", MIDI_MAPPED_TO_RHYTHM, 75},
202 	/*24*/  {"Maracas   ", MIDI_MAPPED_TO_RHYTHM, 70},
203 	/*25*/  {"SmbaWhis L", 78, 72},
204 	/*26*/  {"SmbaWhis S", 78, 71},
205 	/*27*/  {"Cabasa    ", MIDI_MAPPED_TO_RHYTHM, 69},
206 	/*28*/  {"Quijada   ", MIDI_MAPPED_TO_RHYTHM, 73},
207 	/*29*/  {"OpenHiHat2", MIDI_MAPPED_TO_RHYTHM, 44}
208 };
209 
210 static const uint8 Mt32PresetRhythmKeymap[] = {
211 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
212 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
213 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
214 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, 35, 36, 37, 38, 39,
215 	40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
216 	50, 51, MIDI_UNMAPPED, MIDI_UNMAPPED, 54, MIDI_UNMAPPED, 56, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
217 	60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
218 	70, 71, 72, 73, MIDI_UNMAPPED, 75, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
219 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
220 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
221 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
222 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED,
223 	MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED, MIDI_UNMAPPED
224 };
225 
226 /* +++ - Don't change unless you've got a good reason
227    ++  - Looks good, sounds ok
228    +   - Not too bad, but is it right?
229    ?   - Where do I map this one?
230    ??  - Any good ideas?
231    ??? - I'm clueless?
232    R   - Rhythm...
233 */
234 static const Mt32ToGmMap Mt32MemoryTimbreMaps[] = {
235 	{"AccPnoKA2 ", 1, MIDI_UNMAPPED},     // ++ (KQ1)
236 	{"Acou BD   ", MIDI_MAPPED_TO_RHYTHM, 35},   // R (PQ2)
237 	{"Acou SD   ", MIDI_MAPPED_TO_RHYTHM, 38},   // R (PQ2)
238 	{"AcouPnoKA ", 0, MIDI_UNMAPPED},     // ++ (KQ1)
239 	{"BASS      ", 32, MIDI_UNMAPPED},    // + (LSL3)
240 	{"BASSOONPCM", 70, MIDI_UNMAPPED},    // + (LB1)
241 	{"BEACH WAVE", 122, MIDI_UNMAPPED},   // + (LSL3)
242 	{"BagPipes  ", 109, MIDI_UNMAPPED},
243 	{"BassPizzMS", 45, MIDI_UNMAPPED},    // ++ (QFG1)
244 	{"BassoonKA ", 70, MIDI_UNMAPPED},    // ++ (KQ1)
245 	{"Bell    MS", 112, MIDI_UNMAPPED},   // ++ (Iceman)
246 	{"Bells   MS", 112, MIDI_UNMAPPED},   // + (QFG1)
247 	{"Big Bell  ", 14, MIDI_UNMAPPED},    // + (LB1)
248 	{"Bird Tweet", 123, MIDI_UNMAPPED},
249 	{"BrsSect MS", 61, MIDI_UNMAPPED},    // +++ (Iceman)
250 	{"CLAPPING  ", 126, MIDI_UNMAPPED},   // ++ (LSL3)
251 	{"Cabasa    ", MIDI_MAPPED_TO_RHYTHM, 69},   // R (Hoyle)
252 	{"Calliope  ", 82, MIDI_UNMAPPED},    // +++ (QFG1)
253 	{"CelticHarp", 46, MIDI_UNMAPPED},    // ++ (Camelot)
254 	{"Chicago MS", 1, MIDI_UNMAPPED},     // ++ (Iceman)
255 	{"Chop      ", 117, MIDI_UNMAPPED},
256 	{"Chorale MS", 52, MIDI_UNMAPPED},    // + (Camelot)
257 	{"ClarinetMS", 71, MIDI_UNMAPPED},
258 	{"Claves    ", MIDI_MAPPED_TO_RHYTHM, 75},   // R (PQ2)
259 	{"Claw    MS", 118, MIDI_UNMAPPED},    // + (QFG1)
260 	{"ClockBell ", 14, MIDI_UNMAPPED},    // + (LB1)
261 	{"ConcertCym", MIDI_MAPPED_TO_RHYTHM, 55},   // R ? (KQ1)
262 	{"Conga   MS", MIDI_MAPPED_TO_RHYTHM, 64},   // R (QFG1)
263 	{"CoolPhone ", 124, MIDI_UNMAPPED},   // ++ (LSL3)
264 	{"CracklesMS", 115, MIDI_UNMAPPED}, // ? (Camelot, QFG1)
265 	{"CreakyD MS", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ??? (KQ1)
266 	{"Cricket   ", 120, MIDI_UNMAPPED}, // ? (LB1)
267 	{"CrshCymbMS", MIDI_MAPPED_TO_RHYTHM, 57},   // R +++ (Iceman)
268 	{"CstlGateMS", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (QFG1)
269 	{"CymSwellMS", MIDI_MAPPED_TO_RHYTHM, 55},   // R ? (Camelot, QFG1)
270 	{"CymbRollKA", MIDI_MAPPED_TO_RHYTHM, 57},   // R ? (KQ1)
271 	{"Cymbal Lo ", MIDI_UNMAPPED, MIDI_UNMAPPED}, // R ? (LSL3)
272 	{"card      ", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (Hoyle)
273 	{"DirtGtr MS", 30, MIDI_UNMAPPED},    // + (Iceman)
274 	{"DirtGtr2MS", 29, MIDI_UNMAPPED},    // + (Iceman)
275 	{"E Bass  MS", 33, MIDI_UNMAPPED},    // + (SQ3)
276 	{"ElecBassMS", 33, MIDI_UNMAPPED},
277 	{"ElecGtr MS", 27, MIDI_UNMAPPED},    // ++ (Iceman)
278 	{"EnglHornMS", 69, MIDI_UNMAPPED},
279 	{"FantasiaKA", 88, MIDI_UNMAPPED},
280 	{"Fantasy   ", 99, MIDI_UNMAPPED},    // + (PQ2)
281 	{"Fantasy2MS", 99, MIDI_UNMAPPED},    // ++ (Camelot, QFG1)
282 	{"Filter  MS", 95, MIDI_UNMAPPED},    // +++ (Iceman)
283 	{"Filter2 MS", 95, MIDI_UNMAPPED},    // ++ (Iceman)
284 	{"Flame2  MS", 121, MIDI_UNMAPPED},   // ? (QFG1)
285 	{"Flames  MS", 121, MIDI_UNMAPPED},   // ? (QFG1)
286 	{"Flute   MS", 73, MIDI_UNMAPPED},    // +++ (QFG1)
287 	{"FogHorn MS", 58, MIDI_UNMAPPED},
288 	{"FrHorn1 MS", 60, MIDI_UNMAPPED},    // +++ (QFG1)
289 	{"FunnyTrmp ", 56, MIDI_UNMAPPED},    // ++ (LB1)
290 	{"GameSnd MS", 80, MIDI_UNMAPPED},
291 	{"Glock   MS", 9, MIDI_UNMAPPED},     // +++ (QFG1)
292 	{"Gunshot   ", 127, MIDI_UNMAPPED},   // +++ (LB1)
293 	{"Hammer  MS", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (QFG1)
294 	{"Harmonica2", 22, MIDI_UNMAPPED},    // +++ (LB1)
295 	{"Harpsi 1  ", 6, MIDI_UNMAPPED},     // + (Hoyle)
296 	{"Harpsi 2  ", 6, MIDI_UNMAPPED},     // +++ (LB1)
297 	{"Heart   MS", 116, MIDI_UNMAPPED},   // ? (Iceman)
298 	{"Horse1  MS", 115, MIDI_UNMAPPED},   // ? (Camelot, QFG1)
299 	{"Horse2  MS", 115, MIDI_UNMAPPED},   // ? (Camelot, QFG1)
300 	{"InHale  MS", 121, MIDI_UNMAPPED},   // ++ (Iceman)
301 	{"KNIFE     ", 120, MIDI_UNMAPPED},   // ? (LSL3)
302 	{"KenBanjo  ", 105, MIDI_UNMAPPED},   // +++ (LB1)
303 	{"Kiss    MS", 25, MIDI_UNMAPPED},    // ++ (QFG1)
304 	{"KongHit   ", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ??? (KQ1)
305 	{"Koto      ", 107, MIDI_UNMAPPED},   // +++ (PQ2)
306 	{"Laser   MS", 81, MIDI_UNMAPPED},    // ?? (QFG1)
307 	{"Meeps   MS", 62, MIDI_UNMAPPED},    // ? (QFG1)
308 	{"MTrak   MS", 62, MIDI_UNMAPPED},    // ?? (Iceman)
309 	{"MachGun MS", 127, MIDI_UNMAPPED},   // ? (Iceman)
310 	{"OCEANSOUND", 122, MIDI_UNMAPPED},   // + (LSL3)
311 	{"Oboe 2001 ", 68, MIDI_UNMAPPED},    // + (PQ2)
312 	{"Ocean   MS", 122, MIDI_UNMAPPED},   // + (Iceman)
313 	{"PPG 2.3 MS", 75, MIDI_UNMAPPED},    // ? (Iceman)
314 	{"PianoCrank", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (LB1)
315 	{"PicSnareMS", MIDI_MAPPED_TO_RHYTHM, 40},   // R ? (Iceman)
316 	{"PiccoloKA ", 72, MIDI_UNMAPPED},    // +++ (KQ1)
317 	{"PinkBassMS", 39, MIDI_UNMAPPED},
318 	{"Pizz2     ", 45, MIDI_UNMAPPED},    // ++ (LB1)
319 	{"Portcullis", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (KQ1)
320 	{"Raspbry MS", 81, MIDI_UNMAPPED},    // ? (QFG1)
321 	{"RatSqueek ", 72, MIDI_UNMAPPED},    // ? (LauraBow1, Camelot)
322 	{"Record78  ", MIDI_UNMAPPED, MIDI_UNMAPPED}, // +++ (LB1)
323 	{"RecorderMS", 74, MIDI_UNMAPPED},    // +++ (Camelot)
324 	{"Red Baron ", 125, MIDI_UNMAPPED},   // ? (LB1)
325 	{"ReedPipMS ", 20, MIDI_UNMAPPED},    // +++ (Camelot)
326 	{"RevCymb MS", 119, MIDI_UNMAPPED},
327 	{"RifleShot ", 127, MIDI_UNMAPPED},   // + (LB1)
328 	{"RimShot MS", MIDI_MAPPED_TO_RHYTHM, 37},   // R
329 	{"SHOWER    ", 52, MIDI_UNMAPPED},    // ? (LSL3)
330 	{"SQ Bass MS", 32, MIDI_UNMAPPED},    // + (SQ3)
331 	{"ShakuVibMS", 79, MIDI_UNMAPPED},    // + (Iceman)
332 	{"SlapBassMS", 36, MIDI_UNMAPPED},    // +++ (Iceman)
333 	{"Snare   MS", MIDI_MAPPED_TO_RHYTHM, 38},   // R (QFG1)
334 	{"Some Birds", 123, MIDI_UNMAPPED},   // + (LB1)
335 	{"Sonar   MS", 78, MIDI_UNMAPPED},    // ? (Iceman)
336 	{"Soundtrk2 ", 97, MIDI_UNMAPPED},    // +++ (LB1)
337 	{"Soundtrack", 97, MIDI_UNMAPPED},    // ++ (Camelot)
338 	{"SqurWaveMS", 80, MIDI_UNMAPPED},
339 	{"StabBassMS", 34, MIDI_UNMAPPED},    // + (Iceman)
340 	{"SteelDrmMS", 114, MIDI_UNMAPPED},   // +++ (Iceman)
341 	{"StrSect1MS", 48, MIDI_UNMAPPED},    // ++ (QFG1)
342 	{"String  MS", 45, MIDI_UNMAPPED},    // + (Camelot)
343 	{"Syn-Choir ", 91, MIDI_UNMAPPED},
344 	{"Syn Brass4", 63, MIDI_UNMAPPED},    // ++ (PQ2)
345 	{"SynBass MS", 38, MIDI_UNMAPPED},
346 	{"SwmpBackgr", 120, MIDI_UNMAPPED},    // ?? (LB1, QFG1)
347 	{"T-Bone2 MS", 57, MIDI_UNMAPPED},    // +++ (QFG1)
348 	{"Taiko     ", 116, 35},      // +++ (Camelot)
349 	{"Taiko Rim ", 118, 37},      // +++ (LSL3)
350 	{"Timpani1  ", 47, MIDI_UNMAPPED},    // +++ (LB1)
351 	{"Tom     MS", 117, 48},      // +++ (Iceman)
352 	{"Toms    MS", 117, 48},      // +++ (Camelot, QFG1)
353 	{"Tpt1prtl  ", 56, MIDI_UNMAPPED},    // +++ (KQ1)
354 	{"TriangleMS", 112, 81},      // R (Camelot)
355 	{"Trumpet 1 ", 56, MIDI_UNMAPPED},    // +++ (Camelot)
356 	{"Type    MS", MIDI_MAPPED_TO_RHYTHM, 39},   // + (Iceman)
357 	{"Warm Pad"  , 89, MIDI_UNMAPPED},	// ++ (PQ3)
358 	{"WaterBells", 98, MIDI_UNMAPPED},    // + (PQ2)
359 	{"WaterFallK", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (KQ1)
360 	{"Whiporill ", 123, MIDI_UNMAPPED},   // + (LB1)
361 	{"Wind      ", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (LB1)
362 	{"Wind    MS", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (QFG1, Iceman)
363 	{"Wind2   MS", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (Camelot)
364 	{"Woodpecker", 115, MIDI_UNMAPPED},   // ? (LB1)
365 	{"WtrFall MS", MIDI_UNMAPPED, MIDI_UNMAPPED}, // ? (Camelot, QFG1, Iceman)
366 	{0, 0, 0}
367 };
368 
369 	typedef Common::List<Mt32ToGmMap> Mt32ToGmMapList;
370 	extern Mt32ToGmMapList *Mt32dynamicMappings;
371 
372 } // End of namespace Sci
373 
374 #endif // SCI_SOUND_DRIVERS_MAP_MT32_TO_GM_H
375