#ifndef __gmnames__
#define __gmnames__

extern char* GmNames[];
extern char* GmCategories[];
extern char* GmDrumSets[];

const long kNumGmCategories = 17;

char* GmCategories[kNumGmCategories] =
{
	"Piano",
	"Percussion",
	"Organ",
	"Guitar",
	"Bass",
	"Strings",
	"Ensemble",
	"Brass",
	"Reed",
	"Pipe",
	"Synth Lead",
	"SynthPad",
	"Synth Effects",
	"Ethnic",
	"Percussive",
	"Effects",
	"DrumSets"
};

short GmCategoriesFirstIndices [kNumGmCategories + 1] =
{
	0, 7, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128
};

char* GmNames [128] =
{
	// Piano
	"Acoustic Grand Piano",
	"Bright Acoustic Piano",
	"Electric Grand Piano",
	"Honky-tonk Piano",
	"Electric Piano 1",
	"Electric Piano 2",
	"Harpsichord",

	// Percussion
	"Clavi",					// 7
	"Celesta",
	"Glockenspiel",
	"Music Box",
	"Vibraphone",
	"Marimba",
	"Xylophone",
	"Tubular Bells",
	"Dulcimer",

	// Organ
	"Drawbar Organ",			// 16
	"Percussive Organ",
	"Rock Organ",
	"Church Organ",
	"Reed Organ",
	"Accordion",
	"Harmonica",
	"Tango Accordion",

	// Gitar
	"Acoustic Guitar (nylon)",	// 24
	"Acoustic Guitar (steel)",
	"Electric Guitar (jazz)",
	"Electric Guitar (clean)",
	"Electric Guitar (muted)",
	"Overdriven Guitar",
	"Distortion Guitar",
	"Guitar harmonics",

	// Bass
	"Acoustic Bass",			// 32
	"Electric Bass (finger)",
	"Electric Bass (pick)",
	"Fretless Bass",
	"Slap Bass 1",
	"Slap Bass 2",
	"Synth Bass 1",
	"Synth Bass 2",

	// strings
	"Violin",					// 40
	"Viola",
	"Cello",
	"Contrabass",
	"Tremolo Strings",
	"Pizzicato Strings",
	"Orchestral Harp",
	"Timpani",

	// Ensemble
	"String Ensemble 1",		// 48
	"String Ensemble 2",
	"SynthStrings 1",
	"SynthStrings 2",
	"Choir Aahs",
	"Voice Oohs",
	"Synth Voice",
	"Orchestra Hit",

	// Brass
	"Trumpet",					// 56
	"Trombone",
	"Tuba",
	"Muted Trumpet",
	"French Horn",
	"Brass Section",
	"SynthBrass 1",
	"SynthBrass 2",

	// Reed
	"Soprano Sax",				// 64
	"Alto Sax",
	"Tenor Sax",
	"Baritone Sax",
	"Oboe",
	"English Horn",
	"Bassoon",
	"Clarinet",

	// Pipe
	"Piccolo",					// 72
	"Flute",
	"Recorder",
	"Pan Flute",
	"Blown Bottle",
	"Shakuhachi",
	"Whistle",
	"Ocarina",

	// Synth Lead
	"Lead 1 (square)",			// 80
	"Lead 2 (sawtooth)",
	"Lead 3 (calliope)",
	"Lead 4 (chiff)",
	"Lead 5 (charang)",
	"Lead 6 (voice)",
	"Lead 7 (fifths)",
	"Lead 8 (bass + lead)",

	// Synth Pad
	"Pad 1 (new age)",			// 88
	"Pad 2 (warm)",
	"Pad 3 (polysynth)",
	"Pad 4 (choir)",
	"Pad 5 (bowed)",
	"Pad 6 (metallic)",
	"Pad 7 (halo)",
	"Pad 8 (sweep)",

	// Synth Fx
	"FX 1 (rain)",				// 96
	"FX 2 (soundtrack)",
	"FX 3 (crystal)",
	"FX 4 (atmosphere)",
	"FX 5 (brightness)",
	"FX 6 (goblins)",
	"FX 7 (echoes)",
	"FX 8 (sci-fi)",

	// Ethnic
	"Sitar",					// 104
	"Banjo",
	"Shamisen",
	"Koto",
	"Kalimba",
	"Bag pipe",
	"Fiddle",
	"Shanai",

	// Percussive
	"Tinkle Bell",				// 112
	"Agogo",
	"Steel Drums",
	"Woodblock",
	"Taiko Drum",
	"Melodic Tom",
	"Synth Drum",
	"Reverse Cymbal",

	// Effects
	"Guitar Fret Noise",		// 120
	"Breath Noise",
	"Seashore",
	"Bird Tweet",
	"Telephone Ring",
	"Helicopter",
	"Applause",
	"Gunshot"
};

char* GmDrumSets[11] =
{
	"Standard",
	"Room",
	"Power",
	"Electronic",
	"Analog",
	"Jazz",
	"Brush",
	"Orchestra",
	"Clavinova",
	"RX",
	"C/M"
};

#endif
