#pragma once

#include <string>
#include <map>
#include <vector>
#include "track_type.h"
#include "../protobuf/midi.pb.h"

// START OF NAMESPACE
namespace mmm {

std::map<midi::GM_TYPE,std::vector<int>> GM = {
	{midi::GM_TYPE::any,{0,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}},
	{midi::GM_TYPE::piano,{0,1,2,3,4,5,6,7}},
	{midi::GM_TYPE::chromatic_perc,{9,10,11,12,13,14,15}},
	{midi::GM_TYPE::organ,{16,17,18,19,20,21,22,23}},
	{midi::GM_TYPE::guitar,{24,25,26,27,28,29,30,31}},
	{midi::GM_TYPE::bass,{32,33,34,35,36,37,38,39}},
	{midi::GM_TYPE::strings,{40,41,42,43,44,45,46,47}},
	{midi::GM_TYPE::ensemble,{48,49,50,51,52,53,54,55}},
	{midi::GM_TYPE::brass,{56,57,58,59,60,61,62,63}},
	{midi::GM_TYPE::reed,{64,65,66,67,68,69,70,71}},
	{midi::GM_TYPE::pipe,{72,73,74,75,76,77,78,79}},
	{midi::GM_TYPE::synth_lead,{80,81,82,83,84,85,86,87}},
	{midi::GM_TYPE::synth_pad,{88,89,90,91,92,93,94,95}},
	{midi::GM_TYPE::synth_effects,{96,97,98,99,100,101,102,103}},
	{midi::GM_TYPE::ethnic,{104,105,106,107,108,109,110,111}},
	{midi::GM_TYPE::percussive,{112,113,114,115,116,117,118,119}},
	{midi::GM_TYPE::sound_fx,{120,121,122,123,124,125,126,127}},
	{midi::GM_TYPE::no_drums,{0,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}},
	{midi::GM_TYPE::drums,{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}},
	{midi::GM_TYPE::acoustic_grand_piano,{0}},
	{midi::GM_TYPE::bright_acoustic_piano,{1}},
	{midi::GM_TYPE::electric_grand_piano,{2}},
	{midi::GM_TYPE::honky_tonk_piano,{3}},
	{midi::GM_TYPE::electric_piano_1,{4}},
	{midi::GM_TYPE::electric_piano_2,{5}},
	{midi::GM_TYPE::harpsichord,{6}},
	{midi::GM_TYPE::clavi,{7}},
	{midi::GM_TYPE::celesta,{8}},
	{midi::GM_TYPE::glockenspiel,{9}},
	{midi::GM_TYPE::music_box,{10}},
	{midi::GM_TYPE::vibraphone,{11}},
	{midi::GM_TYPE::marimba,{12}},
	{midi::GM_TYPE::xylophone,{13}},
	{midi::GM_TYPE::tubular_bells,{14}},
	{midi::GM_TYPE::dulcimer,{15}},
	{midi::GM_TYPE::drawbar_organ,{16}},
	{midi::GM_TYPE::percussive_organ,{17}},
	{midi::GM_TYPE::rock_organ,{18}},
	{midi::GM_TYPE::church_organ,{19}},
	{midi::GM_TYPE::reed_organ,{20}},
	{midi::GM_TYPE::accordion,{21}},
	{midi::GM_TYPE::harmonica,{22}},
	{midi::GM_TYPE::tango_accordion,{23}},
	{midi::GM_TYPE::acoustic_guitar_nylon,{24}},
	{midi::GM_TYPE::acoustic_guitar_steel,{25}},
	{midi::GM_TYPE::electric_guitar_jazz,{26}},
	{midi::GM_TYPE::electric_guitar_clean,{27}},
	{midi::GM_TYPE::electric_guitar_muted,{28}},
	{midi::GM_TYPE::overdriven_guitar,{29}},
	{midi::GM_TYPE::distortion_guitar,{30}},
	{midi::GM_TYPE::guitar_harmonics,{31}},
	{midi::GM_TYPE::acoustic_bass,{32}},
	{midi::GM_TYPE::electric_bass_finger,{33}},
	{midi::GM_TYPE::electric_bass_pick,{34}},
	{midi::GM_TYPE::fretless_bass,{35}},
	{midi::GM_TYPE::slap_bass_1,{36}},
	{midi::GM_TYPE::slap_bass_2,{37}},
	{midi::GM_TYPE::synth_bass_1,{38}},
	{midi::GM_TYPE::synth_bass_2,{39}},
	{midi::GM_TYPE::violin,{40}},
	{midi::GM_TYPE::viola,{41}},
	{midi::GM_TYPE::cello,{42}},
	{midi::GM_TYPE::contrabass,{43}},
	{midi::GM_TYPE::tremolo_strings,{44}},
	{midi::GM_TYPE::pizzicato_strings,{45}},
	{midi::GM_TYPE::orchestral_harp,{46}},
	{midi::GM_TYPE::timpani,{47}},
	{midi::GM_TYPE::string_ensemble_1,{48}},
	{midi::GM_TYPE::string_ensemble_2,{49}},
	{midi::GM_TYPE::synth_strings_1,{50}},
	{midi::GM_TYPE::synth_strings_2,{51}},
	{midi::GM_TYPE::choir_aahs,{52}},
	{midi::GM_TYPE::voice_oohs,{53}},
	{midi::GM_TYPE::synth_voice,{54}},
	{midi::GM_TYPE::orchestra_hit,{55}},
	{midi::GM_TYPE::trumpet,{56}},
	{midi::GM_TYPE::trombone,{57}},
	{midi::GM_TYPE::tuba,{58}},
	{midi::GM_TYPE::muted_trumpet,{59}},
	{midi::GM_TYPE::french_horn,{60}},
	{midi::GM_TYPE::brass_section,{61}},
	{midi::GM_TYPE::synth_brass_1,{62}},
	{midi::GM_TYPE::synth_brass_2,{63}},
	{midi::GM_TYPE::soprano_sax,{64}},
	{midi::GM_TYPE::alto_sax,{65}},
	{midi::GM_TYPE::tenor_sax,{66}},
	{midi::GM_TYPE::baritone_sax,{67}},
	{midi::GM_TYPE::oboe,{68}},
	{midi::GM_TYPE::english_horn,{69}},
	{midi::GM_TYPE::bassoon,{70}},
	{midi::GM_TYPE::clarinet,{71}},
	{midi::GM_TYPE::piccolo,{72}},
	{midi::GM_TYPE::flute,{73}},
	{midi::GM_TYPE::recorder,{74}},
	{midi::GM_TYPE::pan_flute,{75}},
	{midi::GM_TYPE::blown_bottle,{76}},
	{midi::GM_TYPE::shakuhachi,{77}},
	{midi::GM_TYPE::whistle,{78}},
	{midi::GM_TYPE::ocarina,{79}},
	{midi::GM_TYPE::lead_1_square,{80}},
	{midi::GM_TYPE::lead_2_sawtooth,{81}},
	{midi::GM_TYPE::lead_3_calliope,{82}},
	{midi::GM_TYPE::lead_4_chiff,{83}},
	{midi::GM_TYPE::lead_5_charang,{84}},
	{midi::GM_TYPE::lead_6_voice,{85}},
	{midi::GM_TYPE::lead_7_fifths,{86}},
	{midi::GM_TYPE::lead_8_bass__lead,{87}},
	{midi::GM_TYPE::pad_1_new_age,{88}},
	{midi::GM_TYPE::pad_2_warm,{89}},
	{midi::GM_TYPE::pad_3_polysynth,{90}},
	{midi::GM_TYPE::pad_4_choir,{91}},
	{midi::GM_TYPE::pad_5_bowed,{92}},
	{midi::GM_TYPE::pad_6_metallic,{93}},
	{midi::GM_TYPE::pad_7_halo,{94}},
	{midi::GM_TYPE::pad_8_sweep,{95}},
	{midi::GM_TYPE::fx_1_rain,{96}},
	{midi::GM_TYPE::fx_2_soundtrack,{97}},
	{midi::GM_TYPE::fx_3_crystal,{98}},
	{midi::GM_TYPE::fx_4_atmosphere,{99}},
	{midi::GM_TYPE::fx_5_brightness,{100}},
	{midi::GM_TYPE::fx_6_goblins,{101}},
	{midi::GM_TYPE::fx_7_echoes,{102}},
	{midi::GM_TYPE::fx_8_sci_fi,{103}},
	{midi::GM_TYPE::sitar,{104}},
	{midi::GM_TYPE::banjo,{105}},
	{midi::GM_TYPE::shamisen,{106}},
	{midi::GM_TYPE::koto,{107}},
	{midi::GM_TYPE::kalimba,{108}},
	{midi::GM_TYPE::bag_pipe,{109}},
	{midi::GM_TYPE::fiddle,{110}},
	{midi::GM_TYPE::shanai,{111}},
	{midi::GM_TYPE::tinkle_bell,{112}},
	{midi::GM_TYPE::agogo,{113}},
	{midi::GM_TYPE::steel_drums,{114}},
	{midi::GM_TYPE::woodblock,{115}},
	{midi::GM_TYPE::taiko_drum,{116}},
	{midi::GM_TYPE::melodic_tom,{117}},
	{midi::GM_TYPE::synth_drum,{118}},
	{midi::GM_TYPE::reverse_cymbal,{119}},
	{midi::GM_TYPE::guitar_fret_noise,{120}},
	{midi::GM_TYPE::breath_noise,{121}},
	{midi::GM_TYPE::seashore,{122}},
	{midi::GM_TYPE::bird_tweet,{123}},
	{midi::GM_TYPE::telephone_ring,{124}},
	{midi::GM_TYPE::helicopter,{125}},
	{midi::GM_TYPE::applause,{126}},
	{midi::GM_TYPE::gunshot,{127}},
	{midi::GM_TYPE::drum_0,{128}},
	{midi::GM_TYPE::drum_1,{129}},
	{midi::GM_TYPE::drum_2,{130}},
	{midi::GM_TYPE::drum_3,{131}},
	{midi::GM_TYPE::drum_4,{132}},
	{midi::GM_TYPE::drum_5,{133}},
	{midi::GM_TYPE::drum_6,{134}},
	{midi::GM_TYPE::drum_7,{135}},
	{midi::GM_TYPE::drum_8,{136}},
	{midi::GM_TYPE::drum_9,{137}},
	{midi::GM_TYPE::drum_10,{138}},
	{midi::GM_TYPE::drum_11,{139}},
	{midi::GM_TYPE::drum_12,{140}},
	{midi::GM_TYPE::drum_13,{141}},
	{midi::GM_TYPE::drum_14,{142}},
	{midi::GM_TYPE::drum_15,{143}},
	{midi::GM_TYPE::drum_16,{144}},
	{midi::GM_TYPE::drum_17,{145}},
	{midi::GM_TYPE::drum_18,{146}},
	{midi::GM_TYPE::drum_19,{147}},
	{midi::GM_TYPE::drum_20,{148}},
	{midi::GM_TYPE::drum_21,{149}},
	{midi::GM_TYPE::drum_22,{150}},
	{midi::GM_TYPE::drum_23,{151}},
	{midi::GM_TYPE::drum_24,{152}},
	{midi::GM_TYPE::drum_25,{153}},
	{midi::GM_TYPE::drum_26,{154}},
	{midi::GM_TYPE::drum_27,{155}},
	{midi::GM_TYPE::drum_28,{156}},
	{midi::GM_TYPE::drum_29,{157}},
	{midi::GM_TYPE::drum_30,{158}},
	{midi::GM_TYPE::drum_31,{159}},
	{midi::GM_TYPE::drum_32,{160}},
	{midi::GM_TYPE::drum_33,{161}},
	{midi::GM_TYPE::drum_34,{162}},
	{midi::GM_TYPE::drum_35,{163}},
	{midi::GM_TYPE::drum_36,{164}},
	{midi::GM_TYPE::drum_37,{165}},
	{midi::GM_TYPE::drum_38,{166}},
	{midi::GM_TYPE::drum_39,{167}},
	{midi::GM_TYPE::drum_40,{168}},
	{midi::GM_TYPE::drum_41,{169}},
	{midi::GM_TYPE::drum_42,{170}},
	{midi::GM_TYPE::drum_43,{171}},
	{midi::GM_TYPE::drum_44,{172}},
	{midi::GM_TYPE::drum_45,{173}},
	{midi::GM_TYPE::drum_46,{174}},
	{midi::GM_TYPE::drum_47,{175}},
	{midi::GM_TYPE::drum_48,{176}},
	{midi::GM_TYPE::drum_49,{177}},
	{midi::GM_TYPE::drum_50,{178}},
	{midi::GM_TYPE::drum_51,{179}},
	{midi::GM_TYPE::drum_52,{180}},
	{midi::GM_TYPE::drum_53,{181}},
	{midi::GM_TYPE::drum_54,{182}},
	{midi::GM_TYPE::drum_55,{183}},
	{midi::GM_TYPE::drum_56,{184}},
	{midi::GM_TYPE::drum_57,{185}},
	{midi::GM_TYPE::drum_58,{186}},
	{midi::GM_TYPE::drum_59,{187}},
	{midi::GM_TYPE::drum_60,{188}},
	{midi::GM_TYPE::drum_61,{189}},
	{midi::GM_TYPE::drum_62,{190}},
	{midi::GM_TYPE::drum_63,{191}},
	{midi::GM_TYPE::drum_64,{192}},
	{midi::GM_TYPE::drum_65,{193}},
	{midi::GM_TYPE::drum_66,{194}},
	{midi::GM_TYPE::drum_67,{195}},
	{midi::GM_TYPE::drum_68,{196}},
	{midi::GM_TYPE::drum_69,{197}},
	{midi::GM_TYPE::drum_70,{198}},
	{midi::GM_TYPE::drum_71,{199}},
	{midi::GM_TYPE::drum_72,{200}},
	{midi::GM_TYPE::drum_73,{201}},
	{midi::GM_TYPE::drum_74,{202}},
	{midi::GM_TYPE::drum_75,{203}},
	{midi::GM_TYPE::drum_76,{204}},
	{midi::GM_TYPE::drum_77,{205}},
	{midi::GM_TYPE::drum_78,{206}},
	{midi::GM_TYPE::drum_79,{207}},
	{midi::GM_TYPE::drum_80,{208}},
	{midi::GM_TYPE::drum_81,{209}},
	{midi::GM_TYPE::drum_82,{210}},
	{midi::GM_TYPE::drum_83,{211}},
	{midi::GM_TYPE::drum_84,{212}},
	{midi::GM_TYPE::drum_85,{213}},
	{midi::GM_TYPE::drum_86,{214}},
	{midi::GM_TYPE::drum_87,{215}},
	{midi::GM_TYPE::drum_88,{216}},
	{midi::GM_TYPE::drum_89,{217}},
	{midi::GM_TYPE::drum_90,{218}},
	{midi::GM_TYPE::drum_91,{219}},
	{midi::GM_TYPE::drum_92,{220}},
	{midi::GM_TYPE::drum_93,{221}},
	{midi::GM_TYPE::drum_94,{222}},
	{midi::GM_TYPE::drum_95,{223}},
	{midi::GM_TYPE::drum_96,{224}},
	{midi::GM_TYPE::drum_97,{225}},
	{midi::GM_TYPE::drum_98,{226}},
	{midi::GM_TYPE::drum_99,{227}},
	{midi::GM_TYPE::drum_100,{228}},
	{midi::GM_TYPE::drum_101,{229}},
	{midi::GM_TYPE::drum_102,{230}},
	{midi::GM_TYPE::drum_103,{231}},
	{midi::GM_TYPE::drum_104,{232}},
	{midi::GM_TYPE::drum_105,{233}},
	{midi::GM_TYPE::drum_106,{234}},
	{midi::GM_TYPE::drum_107,{235}},
	{midi::GM_TYPE::drum_108,{236}},
	{midi::GM_TYPE::drum_109,{237}},
	{midi::GM_TYPE::drum_110,{238}},
	{midi::GM_TYPE::drum_111,{239}},
	{midi::GM_TYPE::drum_112,{240}},
	{midi::GM_TYPE::drum_113,{241}},
	{midi::GM_TYPE::drum_114,{242}},
	{midi::GM_TYPE::drum_115,{243}},
	{midi::GM_TYPE::drum_116,{244}},
	{midi::GM_TYPE::drum_117,{245}},
	{midi::GM_TYPE::drum_118,{246}},
	{midi::GM_TYPE::drum_119,{247}},
	{midi::GM_TYPE::drum_120,{248}},
	{midi::GM_TYPE::drum_121,{249}},
	{midi::GM_TYPE::drum_122,{250}},
	{midi::GM_TYPE::drum_123,{251}},
	{midi::GM_TYPE::drum_124,{252}},
	{midi::GM_TYPE::drum_125,{253}},
	{midi::GM_TYPE::drum_126,{254}},
	{midi::GM_TYPE::drum_127,{255}},
};

std::map<midi::GM_TYPE,std::vector<int>> GM_MOD = {
	{midi::GM_TYPE::any,{0,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,0,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}},
	{midi::GM_TYPE::piano,{0,1,2,3,4,5,6,7}},
	{midi::GM_TYPE::chromatic_perc,{9,10,11,12,13,14,15}},
	{midi::GM_TYPE::organ,{16,17,18,19,20,21,22,23}},
	{midi::GM_TYPE::guitar,{24,25,26,27,28,29,30,31}},
	{midi::GM_TYPE::bass,{32,33,34,35,36,37,38,39}},
	{midi::GM_TYPE::strings,{40,41,42,43,44,45,46,47}},
	{midi::GM_TYPE::ensemble,{48,49,50,51,52,53,54,55}},
	{midi::GM_TYPE::brass,{56,57,58,59,60,61,62,63}},
	{midi::GM_TYPE::reed,{64,65,66,67,68,69,70,71}},
	{midi::GM_TYPE::pipe,{72,73,74,75,76,77,78,79}},
	{midi::GM_TYPE::synth_lead,{80,81,82,83,84,85,86,87}},
	{midi::GM_TYPE::synth_pad,{88,89,90,91,92,93,94,95}},
	{midi::GM_TYPE::synth_effects,{96,97,98,99,100,101,102,103}},
	{midi::GM_TYPE::ethnic,{104,105,106,107,108,109,110,111}},
	{midi::GM_TYPE::percussive,{112,113,114,115,116,117,118,119}},
	{midi::GM_TYPE::sound_fx,{120,121,122,123,124,125,126,127}},
	{midi::GM_TYPE::no_drums,{0,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}},
	{midi::GM_TYPE::drums,{0,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}},
	{midi::GM_TYPE::acoustic_grand_piano,{0}},
	{midi::GM_TYPE::bright_acoustic_piano,{1}},
	{midi::GM_TYPE::electric_grand_piano,{2}},
	{midi::GM_TYPE::honky_tonk_piano,{3}},
	{midi::GM_TYPE::electric_piano_1,{4}},
	{midi::GM_TYPE::electric_piano_2,{5}},
	{midi::GM_TYPE::harpsichord,{6}},
	{midi::GM_TYPE::clavi,{7}},
	{midi::GM_TYPE::celesta,{8}},
	{midi::GM_TYPE::glockenspiel,{9}},
	{midi::GM_TYPE::music_box,{10}},
	{midi::GM_TYPE::vibraphone,{11}},
	{midi::GM_TYPE::marimba,{12}},
	{midi::GM_TYPE::xylophone,{13}},
	{midi::GM_TYPE::tubular_bells,{14}},
	{midi::GM_TYPE::dulcimer,{15}},
	{midi::GM_TYPE::drawbar_organ,{16}},
	{midi::GM_TYPE::percussive_organ,{17}},
	{midi::GM_TYPE::rock_organ,{18}},
	{midi::GM_TYPE::church_organ,{19}},
	{midi::GM_TYPE::reed_organ,{20}},
	{midi::GM_TYPE::accordion,{21}},
	{midi::GM_TYPE::harmonica,{22}},
	{midi::GM_TYPE::tango_accordion,{23}},
	{midi::GM_TYPE::acoustic_guitar_nylon,{24}},
	{midi::GM_TYPE::acoustic_guitar_steel,{25}},
	{midi::GM_TYPE::electric_guitar_jazz,{26}},
	{midi::GM_TYPE::electric_guitar_clean,{27}},
	{midi::GM_TYPE::electric_guitar_muted,{28}},
	{midi::GM_TYPE::overdriven_guitar,{29}},
	{midi::GM_TYPE::distortion_guitar,{30}},
	{midi::GM_TYPE::guitar_harmonics,{31}},
	{midi::GM_TYPE::acoustic_bass,{32}},
	{midi::GM_TYPE::electric_bass_finger,{33}},
	{midi::GM_TYPE::electric_bass_pick,{34}},
	{midi::GM_TYPE::fretless_bass,{35}},
	{midi::GM_TYPE::slap_bass_1,{36}},
	{midi::GM_TYPE::slap_bass_2,{37}},
	{midi::GM_TYPE::synth_bass_1,{38}},
	{midi::GM_TYPE::synth_bass_2,{39}},
	{midi::GM_TYPE::violin,{40}},
	{midi::GM_TYPE::viola,{41}},
	{midi::GM_TYPE::cello,{42}},
	{midi::GM_TYPE::contrabass,{43}},
	{midi::GM_TYPE::tremolo_strings,{44}},
	{midi::GM_TYPE::pizzicato_strings,{45}},
	{midi::GM_TYPE::orchestral_harp,{46}},
	{midi::GM_TYPE::timpani,{47}},
	{midi::GM_TYPE::string_ensemble_1,{48}},
	{midi::GM_TYPE::string_ensemble_2,{49}},
	{midi::GM_TYPE::synth_strings_1,{50}},
	{midi::GM_TYPE::synth_strings_2,{51}},
	{midi::GM_TYPE::choir_aahs,{52}},
	{midi::GM_TYPE::voice_oohs,{53}},
	{midi::GM_TYPE::synth_voice,{54}},
	{midi::GM_TYPE::orchestra_hit,{55}},
	{midi::GM_TYPE::trumpet,{56}},
	{midi::GM_TYPE::trombone,{57}},
	{midi::GM_TYPE::tuba,{58}},
	{midi::GM_TYPE::muted_trumpet,{59}},
	{midi::GM_TYPE::french_horn,{60}},
	{midi::GM_TYPE::brass_section,{61}},
	{midi::GM_TYPE::synth_brass_1,{62}},
	{midi::GM_TYPE::synth_brass_2,{63}},
	{midi::GM_TYPE::soprano_sax,{64}},
	{midi::GM_TYPE::alto_sax,{65}},
	{midi::GM_TYPE::tenor_sax,{66}},
	{midi::GM_TYPE::baritone_sax,{67}},
	{midi::GM_TYPE::oboe,{68}},
	{midi::GM_TYPE::english_horn,{69}},
	{midi::GM_TYPE::bassoon,{70}},
	{midi::GM_TYPE::clarinet,{71}},
	{midi::GM_TYPE::piccolo,{72}},
	{midi::GM_TYPE::flute,{73}},
	{midi::GM_TYPE::recorder,{74}},
	{midi::GM_TYPE::pan_flute,{75}},
	{midi::GM_TYPE::blown_bottle,{76}},
	{midi::GM_TYPE::shakuhachi,{77}},
	{midi::GM_TYPE::whistle,{78}},
	{midi::GM_TYPE::ocarina,{79}},
	{midi::GM_TYPE::lead_1_square,{80}},
	{midi::GM_TYPE::lead_2_sawtooth,{81}},
	{midi::GM_TYPE::lead_3_calliope,{82}},
	{midi::GM_TYPE::lead_4_chiff,{83}},
	{midi::GM_TYPE::lead_5_charang,{84}},
	{midi::GM_TYPE::lead_6_voice,{85}},
	{midi::GM_TYPE::lead_7_fifths,{86}},
	{midi::GM_TYPE::lead_8_bass__lead,{87}},
	{midi::GM_TYPE::pad_1_new_age,{88}},
	{midi::GM_TYPE::pad_2_warm,{89}},
	{midi::GM_TYPE::pad_3_polysynth,{90}},
	{midi::GM_TYPE::pad_4_choir,{91}},
	{midi::GM_TYPE::pad_5_bowed,{92}},
	{midi::GM_TYPE::pad_6_metallic,{93}},
	{midi::GM_TYPE::pad_7_halo,{94}},
	{midi::GM_TYPE::pad_8_sweep,{95}},
	{midi::GM_TYPE::fx_1_rain,{96}},
	{midi::GM_TYPE::fx_2_soundtrack,{97}},
	{midi::GM_TYPE::fx_3_crystal,{98}},
	{midi::GM_TYPE::fx_4_atmosphere,{99}},
	{midi::GM_TYPE::fx_5_brightness,{100}},
	{midi::GM_TYPE::fx_6_goblins,{101}},
	{midi::GM_TYPE::fx_7_echoes,{102}},
	{midi::GM_TYPE::fx_8_sci_fi,{103}},
	{midi::GM_TYPE::sitar,{104}},
	{midi::GM_TYPE::banjo,{105}},
	{midi::GM_TYPE::shamisen,{106}},
	{midi::GM_TYPE::koto,{107}},
	{midi::GM_TYPE::kalimba,{108}},
	{midi::GM_TYPE::bag_pipe,{109}},
	{midi::GM_TYPE::fiddle,{110}},
	{midi::GM_TYPE::shanai,{111}},
	{midi::GM_TYPE::tinkle_bell,{112}},
	{midi::GM_TYPE::agogo,{113}},
	{midi::GM_TYPE::steel_drums,{114}},
	{midi::GM_TYPE::woodblock,{115}},
	{midi::GM_TYPE::taiko_drum,{116}},
	{midi::GM_TYPE::melodic_tom,{117}},
	{midi::GM_TYPE::synth_drum,{118}},
	{midi::GM_TYPE::reverse_cymbal,{119}},
	{midi::GM_TYPE::guitar_fret_noise,{120}},
	{midi::GM_TYPE::breath_noise,{121}},
	{midi::GM_TYPE::seashore,{122}},
	{midi::GM_TYPE::bird_tweet,{123}},
	{midi::GM_TYPE::telephone_ring,{124}},
	{midi::GM_TYPE::helicopter,{125}},
	{midi::GM_TYPE::applause,{126}},
	{midi::GM_TYPE::gunshot,{127}},
	{midi::GM_TYPE::drum_0,{0}},
	{midi::GM_TYPE::drum_1,{1}},
	{midi::GM_TYPE::drum_2,{2}},
	{midi::GM_TYPE::drum_3,{3}},
	{midi::GM_TYPE::drum_4,{4}},
	{midi::GM_TYPE::drum_5,{5}},
	{midi::GM_TYPE::drum_6,{6}},
	{midi::GM_TYPE::drum_7,{7}},
	{midi::GM_TYPE::drum_8,{8}},
	{midi::GM_TYPE::drum_9,{9}},
	{midi::GM_TYPE::drum_10,{10}},
	{midi::GM_TYPE::drum_11,{11}},
	{midi::GM_TYPE::drum_12,{12}},
	{midi::GM_TYPE::drum_13,{13}},
	{midi::GM_TYPE::drum_14,{14}},
	{midi::GM_TYPE::drum_15,{15}},
	{midi::GM_TYPE::drum_16,{16}},
	{midi::GM_TYPE::drum_17,{17}},
	{midi::GM_TYPE::drum_18,{18}},
	{midi::GM_TYPE::drum_19,{19}},
	{midi::GM_TYPE::drum_20,{20}},
	{midi::GM_TYPE::drum_21,{21}},
	{midi::GM_TYPE::drum_22,{22}},
	{midi::GM_TYPE::drum_23,{23}},
	{midi::GM_TYPE::drum_24,{24}},
	{midi::GM_TYPE::drum_25,{25}},
	{midi::GM_TYPE::drum_26,{26}},
	{midi::GM_TYPE::drum_27,{27}},
	{midi::GM_TYPE::drum_28,{28}},
	{midi::GM_TYPE::drum_29,{29}},
	{midi::GM_TYPE::drum_30,{30}},
	{midi::GM_TYPE::drum_31,{31}},
	{midi::GM_TYPE::drum_32,{32}},
	{midi::GM_TYPE::drum_33,{33}},
	{midi::GM_TYPE::drum_34,{34}},
	{midi::GM_TYPE::drum_35,{35}},
	{midi::GM_TYPE::drum_36,{36}},
	{midi::GM_TYPE::drum_37,{37}},
	{midi::GM_TYPE::drum_38,{38}},
	{midi::GM_TYPE::drum_39,{39}},
	{midi::GM_TYPE::drum_40,{40}},
	{midi::GM_TYPE::drum_41,{41}},
	{midi::GM_TYPE::drum_42,{42}},
	{midi::GM_TYPE::drum_43,{43}},
	{midi::GM_TYPE::drum_44,{44}},
	{midi::GM_TYPE::drum_45,{45}},
	{midi::GM_TYPE::drum_46,{46}},
	{midi::GM_TYPE::drum_47,{47}},
	{midi::GM_TYPE::drum_48,{48}},
	{midi::GM_TYPE::drum_49,{49}},
	{midi::GM_TYPE::drum_50,{50}},
	{midi::GM_TYPE::drum_51,{51}},
	{midi::GM_TYPE::drum_52,{52}},
	{midi::GM_TYPE::drum_53,{53}},
	{midi::GM_TYPE::drum_54,{54}},
	{midi::GM_TYPE::drum_55,{55}},
	{midi::GM_TYPE::drum_56,{56}},
	{midi::GM_TYPE::drum_57,{57}},
	{midi::GM_TYPE::drum_58,{58}},
	{midi::GM_TYPE::drum_59,{59}},
	{midi::GM_TYPE::drum_60,{60}},
	{midi::GM_TYPE::drum_61,{61}},
	{midi::GM_TYPE::drum_62,{62}},
	{midi::GM_TYPE::drum_63,{63}},
	{midi::GM_TYPE::drum_64,{64}},
	{midi::GM_TYPE::drum_65,{65}},
	{midi::GM_TYPE::drum_66,{66}},
	{midi::GM_TYPE::drum_67,{67}},
	{midi::GM_TYPE::drum_68,{68}},
	{midi::GM_TYPE::drum_69,{69}},
	{midi::GM_TYPE::drum_70,{70}},
	{midi::GM_TYPE::drum_71,{71}},
	{midi::GM_TYPE::drum_72,{72}},
	{midi::GM_TYPE::drum_73,{73}},
	{midi::GM_TYPE::drum_74,{74}},
	{midi::GM_TYPE::drum_75,{75}},
	{midi::GM_TYPE::drum_76,{76}},
	{midi::GM_TYPE::drum_77,{77}},
	{midi::GM_TYPE::drum_78,{78}},
	{midi::GM_TYPE::drum_79,{79}},
	{midi::GM_TYPE::drum_80,{80}},
	{midi::GM_TYPE::drum_81,{81}},
	{midi::GM_TYPE::drum_82,{82}},
	{midi::GM_TYPE::drum_83,{83}},
	{midi::GM_TYPE::drum_84,{84}},
	{midi::GM_TYPE::drum_85,{85}},
	{midi::GM_TYPE::drum_86,{86}},
	{midi::GM_TYPE::drum_87,{87}},
	{midi::GM_TYPE::drum_88,{88}},
	{midi::GM_TYPE::drum_89,{89}},
	{midi::GM_TYPE::drum_90,{90}},
	{midi::GM_TYPE::drum_91,{91}},
	{midi::GM_TYPE::drum_92,{92}},
	{midi::GM_TYPE::drum_93,{93}},
	{midi::GM_TYPE::drum_94,{94}},
	{midi::GM_TYPE::drum_95,{95}},
	{midi::GM_TYPE::drum_96,{96}},
	{midi::GM_TYPE::drum_97,{97}},
	{midi::GM_TYPE::drum_98,{98}},
	{midi::GM_TYPE::drum_99,{99}},
	{midi::GM_TYPE::drum_100,{100}},
	{midi::GM_TYPE::drum_101,{101}},
	{midi::GM_TYPE::drum_102,{102}},
	{midi::GM_TYPE::drum_103,{103}},
	{midi::GM_TYPE::drum_104,{104}},
	{midi::GM_TYPE::drum_105,{105}},
	{midi::GM_TYPE::drum_106,{106}},
	{midi::GM_TYPE::drum_107,{107}},
	{midi::GM_TYPE::drum_108,{108}},
	{midi::GM_TYPE::drum_109,{109}},
	{midi::GM_TYPE::drum_110,{110}},
	{midi::GM_TYPE::drum_111,{111}},
	{midi::GM_TYPE::drum_112,{112}},
	{midi::GM_TYPE::drum_113,{113}},
	{midi::GM_TYPE::drum_114,{114}},
	{midi::GM_TYPE::drum_115,{115}},
	{midi::GM_TYPE::drum_116,{116}},
	{midi::GM_TYPE::drum_117,{117}},
	{midi::GM_TYPE::drum_118,{118}},
	{midi::GM_TYPE::drum_119,{119}},
	{midi::GM_TYPE::drum_120,{120}},
	{midi::GM_TYPE::drum_121,{121}},
	{midi::GM_TYPE::drum_122,{122}},
	{midi::GM_TYPE::drum_123,{123}},
	{midi::GM_TYPE::drum_124,{124}},
	{midi::GM_TYPE::drum_125,{125}},
	{midi::GM_TYPE::drum_126,{126}},
	{midi::GM_TYPE::drum_127,{127}},
};

std::map<int,midi::GM_TYPE> GM_REV = {
	{0,midi::GM_TYPE::acoustic_grand_piano},
	{1,midi::GM_TYPE::bright_acoustic_piano},
	{2,midi::GM_TYPE::electric_grand_piano},
	{3,midi::GM_TYPE::honky_tonk_piano},
	{4,midi::GM_TYPE::electric_piano_1},
	{5,midi::GM_TYPE::electric_piano_2},
	{6,midi::GM_TYPE::harpsichord},
	{7,midi::GM_TYPE::clavi},
	{8,midi::GM_TYPE::celesta},
	{9,midi::GM_TYPE::glockenspiel},
	{10,midi::GM_TYPE::music_box},
	{11,midi::GM_TYPE::vibraphone},
	{12,midi::GM_TYPE::marimba},
	{13,midi::GM_TYPE::xylophone},
	{14,midi::GM_TYPE::tubular_bells},
	{15,midi::GM_TYPE::dulcimer},
	{16,midi::GM_TYPE::drawbar_organ},
	{17,midi::GM_TYPE::percussive_organ},
	{18,midi::GM_TYPE::rock_organ},
	{19,midi::GM_TYPE::church_organ},
	{20,midi::GM_TYPE::reed_organ},
	{21,midi::GM_TYPE::accordion},
	{22,midi::GM_TYPE::harmonica},
	{23,midi::GM_TYPE::tango_accordion},
	{24,midi::GM_TYPE::acoustic_guitar_nylon},
	{25,midi::GM_TYPE::acoustic_guitar_steel},
	{26,midi::GM_TYPE::electric_guitar_jazz},
	{27,midi::GM_TYPE::electric_guitar_clean},
	{28,midi::GM_TYPE::electric_guitar_muted},
	{29,midi::GM_TYPE::overdriven_guitar},
	{30,midi::GM_TYPE::distortion_guitar},
	{31,midi::GM_TYPE::guitar_harmonics},
	{32,midi::GM_TYPE::acoustic_bass},
	{33,midi::GM_TYPE::electric_bass_finger},
	{34,midi::GM_TYPE::electric_bass_pick},
	{35,midi::GM_TYPE::fretless_bass},
	{36,midi::GM_TYPE::slap_bass_1},
	{37,midi::GM_TYPE::slap_bass_2},
	{38,midi::GM_TYPE::synth_bass_1},
	{39,midi::GM_TYPE::synth_bass_2},
	{40,midi::GM_TYPE::violin},
	{41,midi::GM_TYPE::viola},
	{42,midi::GM_TYPE::cello},
	{43,midi::GM_TYPE::contrabass},
	{44,midi::GM_TYPE::tremolo_strings},
	{45,midi::GM_TYPE::pizzicato_strings},
	{46,midi::GM_TYPE::orchestral_harp},
	{47,midi::GM_TYPE::timpani},
	{48,midi::GM_TYPE::string_ensemble_1},
	{49,midi::GM_TYPE::string_ensemble_2},
	{50,midi::GM_TYPE::synth_strings_1},
	{51,midi::GM_TYPE::synth_strings_2},
	{52,midi::GM_TYPE::choir_aahs},
	{53,midi::GM_TYPE::voice_oohs},
	{54,midi::GM_TYPE::synth_voice},
	{55,midi::GM_TYPE::orchestra_hit},
	{56,midi::GM_TYPE::trumpet},
	{57,midi::GM_TYPE::trombone},
	{58,midi::GM_TYPE::tuba},
	{59,midi::GM_TYPE::muted_trumpet},
	{60,midi::GM_TYPE::french_horn},
	{61,midi::GM_TYPE::brass_section},
	{62,midi::GM_TYPE::synth_brass_1},
	{63,midi::GM_TYPE::synth_brass_2},
	{64,midi::GM_TYPE::soprano_sax},
	{65,midi::GM_TYPE::alto_sax},
	{66,midi::GM_TYPE::tenor_sax},
	{67,midi::GM_TYPE::baritone_sax},
	{68,midi::GM_TYPE::oboe},
	{69,midi::GM_TYPE::english_horn},
	{70,midi::GM_TYPE::bassoon},
	{71,midi::GM_TYPE::clarinet},
	{72,midi::GM_TYPE::piccolo},
	{73,midi::GM_TYPE::flute},
	{74,midi::GM_TYPE::recorder},
	{75,midi::GM_TYPE::pan_flute},
	{76,midi::GM_TYPE::blown_bottle},
	{77,midi::GM_TYPE::shakuhachi},
	{78,midi::GM_TYPE::whistle},
	{79,midi::GM_TYPE::ocarina},
	{80,midi::GM_TYPE::lead_1_square},
	{81,midi::GM_TYPE::lead_2_sawtooth},
	{82,midi::GM_TYPE::lead_3_calliope},
	{83,midi::GM_TYPE::lead_4_chiff},
	{84,midi::GM_TYPE::lead_5_charang},
	{85,midi::GM_TYPE::lead_6_voice},
	{86,midi::GM_TYPE::lead_7_fifths},
	{87,midi::GM_TYPE::lead_8_bass__lead},
	{88,midi::GM_TYPE::pad_1_new_age},
	{89,midi::GM_TYPE::pad_2_warm},
	{90,midi::GM_TYPE::pad_3_polysynth},
	{91,midi::GM_TYPE::pad_4_choir},
	{92,midi::GM_TYPE::pad_5_bowed},
	{93,midi::GM_TYPE::pad_6_metallic},
	{94,midi::GM_TYPE::pad_7_halo},
	{95,midi::GM_TYPE::pad_8_sweep},
	{96,midi::GM_TYPE::fx_1_rain},
	{97,midi::GM_TYPE::fx_2_soundtrack},
	{98,midi::GM_TYPE::fx_3_crystal},
	{99,midi::GM_TYPE::fx_4_atmosphere},
	{100,midi::GM_TYPE::fx_5_brightness},
	{101,midi::GM_TYPE::fx_6_goblins},
	{102,midi::GM_TYPE::fx_7_echoes},
	{103,midi::GM_TYPE::fx_8_sci_fi},
	{104,midi::GM_TYPE::sitar},
	{105,midi::GM_TYPE::banjo},
	{106,midi::GM_TYPE::shamisen},
	{107,midi::GM_TYPE::koto},
	{108,midi::GM_TYPE::kalimba},
	{109,midi::GM_TYPE::bag_pipe},
	{110,midi::GM_TYPE::fiddle},
	{111,midi::GM_TYPE::shanai},
	{112,midi::GM_TYPE::tinkle_bell},
	{113,midi::GM_TYPE::agogo},
	{114,midi::GM_TYPE::steel_drums},
	{115,midi::GM_TYPE::woodblock},
	{116,midi::GM_TYPE::taiko_drum},
	{117,midi::GM_TYPE::melodic_tom},
	{118,midi::GM_TYPE::synth_drum},
	{119,midi::GM_TYPE::reverse_cymbal},
	{120,midi::GM_TYPE::guitar_fret_noise},
	{121,midi::GM_TYPE::breath_noise},
	{122,midi::GM_TYPE::seashore},
	{123,midi::GM_TYPE::bird_tweet},
	{124,midi::GM_TYPE::telephone_ring},
	{125,midi::GM_TYPE::helicopter},
	{126,midi::GM_TYPE::applause},
	{127,midi::GM_TYPE::gunshot},
	{128,midi::GM_TYPE::drum_0},
	{129,midi::GM_TYPE::drum_1},
	{130,midi::GM_TYPE::drum_2},
	{131,midi::GM_TYPE::drum_3},
	{132,midi::GM_TYPE::drum_4},
	{133,midi::GM_TYPE::drum_5},
	{134,midi::GM_TYPE::drum_6},
	{135,midi::GM_TYPE::drum_7},
	{136,midi::GM_TYPE::drum_8},
	{137,midi::GM_TYPE::drum_9},
	{138,midi::GM_TYPE::drum_10},
	{139,midi::GM_TYPE::drum_11},
	{140,midi::GM_TYPE::drum_12},
	{141,midi::GM_TYPE::drum_13},
	{142,midi::GM_TYPE::drum_14},
	{143,midi::GM_TYPE::drum_15},
	{144,midi::GM_TYPE::drum_16},
	{145,midi::GM_TYPE::drum_17},
	{146,midi::GM_TYPE::drum_18},
	{147,midi::GM_TYPE::drum_19},
	{148,midi::GM_TYPE::drum_20},
	{149,midi::GM_TYPE::drum_21},
	{150,midi::GM_TYPE::drum_22},
	{151,midi::GM_TYPE::drum_23},
	{152,midi::GM_TYPE::drum_24},
	{153,midi::GM_TYPE::drum_25},
	{154,midi::GM_TYPE::drum_26},
	{155,midi::GM_TYPE::drum_27},
	{156,midi::GM_TYPE::drum_28},
	{157,midi::GM_TYPE::drum_29},
	{158,midi::GM_TYPE::drum_30},
	{159,midi::GM_TYPE::drum_31},
	{160,midi::GM_TYPE::drum_32},
	{161,midi::GM_TYPE::drum_33},
	{162,midi::GM_TYPE::drum_34},
	{163,midi::GM_TYPE::drum_35},
	{164,midi::GM_TYPE::drum_36},
	{165,midi::GM_TYPE::drum_37},
	{166,midi::GM_TYPE::drum_38},
	{167,midi::GM_TYPE::drum_39},
	{168,midi::GM_TYPE::drum_40},
	{169,midi::GM_TYPE::drum_41},
	{170,midi::GM_TYPE::drum_42},
	{171,midi::GM_TYPE::drum_43},
	{172,midi::GM_TYPE::drum_44},
	{173,midi::GM_TYPE::drum_45},
	{174,midi::GM_TYPE::drum_46},
	{175,midi::GM_TYPE::drum_47},
	{176,midi::GM_TYPE::drum_48},
	{177,midi::GM_TYPE::drum_49},
	{178,midi::GM_TYPE::drum_50},
	{179,midi::GM_TYPE::drum_51},
	{180,midi::GM_TYPE::drum_52},
	{181,midi::GM_TYPE::drum_53},
	{182,midi::GM_TYPE::drum_54},
	{183,midi::GM_TYPE::drum_55},
	{184,midi::GM_TYPE::drum_56},
	{185,midi::GM_TYPE::drum_57},
	{186,midi::GM_TYPE::drum_58},
	{187,midi::GM_TYPE::drum_59},
	{188,midi::GM_TYPE::drum_60},
	{189,midi::GM_TYPE::drum_61},
	{190,midi::GM_TYPE::drum_62},
	{191,midi::GM_TYPE::drum_63},
	{192,midi::GM_TYPE::drum_64},
	{193,midi::GM_TYPE::drum_65},
	{194,midi::GM_TYPE::drum_66},
	{195,midi::GM_TYPE::drum_67},
	{196,midi::GM_TYPE::drum_68},
	{197,midi::GM_TYPE::drum_69},
	{198,midi::GM_TYPE::drum_70},
	{199,midi::GM_TYPE::drum_71},
	{200,midi::GM_TYPE::drum_72},
	{201,midi::GM_TYPE::drum_73},
	{202,midi::GM_TYPE::drum_74},
	{203,midi::GM_TYPE::drum_75},
	{204,midi::GM_TYPE::drum_76},
	{205,midi::GM_TYPE::drum_77},
	{206,midi::GM_TYPE::drum_78},
	{207,midi::GM_TYPE::drum_79},
	{208,midi::GM_TYPE::drum_80},
	{209,midi::GM_TYPE::drum_81},
	{210,midi::GM_TYPE::drum_82},
	{211,midi::GM_TYPE::drum_83},
	{212,midi::GM_TYPE::drum_84},
	{213,midi::GM_TYPE::drum_85},
	{214,midi::GM_TYPE::drum_86},
	{215,midi::GM_TYPE::drum_87},
	{216,midi::GM_TYPE::drum_88},
	{217,midi::GM_TYPE::drum_89},
	{218,midi::GM_TYPE::drum_90},
	{219,midi::GM_TYPE::drum_91},
	{220,midi::GM_TYPE::drum_92},
	{221,midi::GM_TYPE::drum_93},
	{222,midi::GM_TYPE::drum_94},
	{223,midi::GM_TYPE::drum_95},
	{224,midi::GM_TYPE::drum_96},
	{225,midi::GM_TYPE::drum_97},
	{226,midi::GM_TYPE::drum_98},
	{227,midi::GM_TYPE::drum_99},
	{228,midi::GM_TYPE::drum_100},
	{229,midi::GM_TYPE::drum_101},
	{230,midi::GM_TYPE::drum_102},
	{231,midi::GM_TYPE::drum_103},
	{232,midi::GM_TYPE::drum_104},
	{233,midi::GM_TYPE::drum_105},
	{234,midi::GM_TYPE::drum_106},
	{235,midi::GM_TYPE::drum_107},
	{236,midi::GM_TYPE::drum_108},
	{237,midi::GM_TYPE::drum_109},
	{238,midi::GM_TYPE::drum_110},
	{239,midi::GM_TYPE::drum_111},
	{240,midi::GM_TYPE::drum_112},
	{241,midi::GM_TYPE::drum_113},
	{242,midi::GM_TYPE::drum_114},
	{243,midi::GM_TYPE::drum_115},
	{244,midi::GM_TYPE::drum_116},
	{245,midi::GM_TYPE::drum_117},
	{246,midi::GM_TYPE::drum_118},
	{247,midi::GM_TYPE::drum_119},
	{248,midi::GM_TYPE::drum_120},
	{249,midi::GM_TYPE::drum_121},
	{250,midi::GM_TYPE::drum_122},
	{251,midi::GM_TYPE::drum_123},
	{252,midi::GM_TYPE::drum_124},
	{253,midi::GM_TYPE::drum_125},
	{254,midi::GM_TYPE::drum_126},
	{255,midi::GM_TYPE::drum_127},
};

std::map<midi::GM_TYPE,midi::TRACK_TYPE> GM_TO_TRACK_TYPE = {
	{midi::GM_TYPE::any,midi::TRACK_TYPE::STANDARD_BOTH},
	{midi::GM_TYPE::piano,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::chromatic_perc,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::organ,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::guitar,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::bass,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::strings,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::ensemble,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::brass,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::reed,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pipe,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_lead,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_pad,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_effects,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::ethnic,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::percussive,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::sound_fx,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::no_drums,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::drums,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::acoustic_grand_piano,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::bright_acoustic_piano,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_grand_piano,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::honky_tonk_piano,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_piano_1,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_piano_2,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::harpsichord,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::clavi,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::celesta,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::glockenspiel,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::music_box,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::vibraphone,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::marimba,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::xylophone,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::tubular_bells,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::dulcimer,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::drawbar_organ,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::percussive_organ,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::rock_organ,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::church_organ,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::reed_organ,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::accordion,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::harmonica,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::tango_accordion,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::acoustic_guitar_nylon,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::acoustic_guitar_steel,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_guitar_jazz,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_guitar_clean,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_guitar_muted,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::overdriven_guitar,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::distortion_guitar,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::guitar_harmonics,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::acoustic_bass,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_bass_finger,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::electric_bass_pick,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fretless_bass,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::slap_bass_1,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::slap_bass_2,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_bass_1,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_bass_2,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::violin,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::viola,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::cello,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::contrabass,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::tremolo_strings,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pizzicato_strings,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::orchestral_harp,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::timpani,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::string_ensemble_1,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::string_ensemble_2,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_strings_1,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_strings_2,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::choir_aahs,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::voice_oohs,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_voice,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::orchestra_hit,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::trumpet,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::trombone,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::tuba,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::muted_trumpet,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::french_horn,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::brass_section,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_brass_1,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_brass_2,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::soprano_sax,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::alto_sax,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::tenor_sax,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::baritone_sax,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::oboe,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::english_horn,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::bassoon,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::clarinet,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::piccolo,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::flute,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::recorder,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pan_flute,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::blown_bottle,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::shakuhachi,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::whistle,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::ocarina,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_1_square,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_2_sawtooth,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_3_calliope,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_4_chiff,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_5_charang,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_6_voice,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_7_fifths,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::lead_8_bass__lead,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_1_new_age,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_2_warm,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_3_polysynth,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_4_choir,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_5_bowed,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_6_metallic,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_7_halo,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::pad_8_sweep,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_1_rain,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_2_soundtrack,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_3_crystal,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_4_atmosphere,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_5_brightness,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_6_goblins,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_7_echoes,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fx_8_sci_fi,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::sitar,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::banjo,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::shamisen,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::koto,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::kalimba,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::bag_pipe,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::fiddle,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::shanai,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::tinkle_bell,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::agogo,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::steel_drums,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::woodblock,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::taiko_drum,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::melodic_tom,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::synth_drum,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::reverse_cymbal,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::guitar_fret_noise,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::breath_noise,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::seashore,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::bird_tweet,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::telephone_ring,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::helicopter,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::applause,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::gunshot,midi::TRACK_TYPE::STANDARD_TRACK},
	{midi::GM_TYPE::drum_0,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_1,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_2,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_3,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_4,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_5,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_6,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_7,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_8,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_9,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_10,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_11,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_12,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_13,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_14,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_15,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_16,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_17,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_18,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_19,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_20,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_21,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_22,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_23,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_24,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_25,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_26,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_27,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_28,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_29,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_30,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_31,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_32,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_33,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_34,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_35,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_36,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_37,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_38,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_39,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_40,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_41,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_42,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_43,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_44,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_45,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_46,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_47,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_48,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_49,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_50,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_51,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_52,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_53,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_54,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_55,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_56,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_57,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_58,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_59,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_60,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_61,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_62,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_63,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_64,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_65,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_66,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_67,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_68,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_69,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_70,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_71,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_72,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_73,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_74,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_75,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_76,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_77,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_78,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_79,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_80,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_81,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_82,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_83,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_84,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_85,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_86,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_87,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_88,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_89,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_90,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_91,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_92,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_93,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_94,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_95,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_96,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_97,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_98,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_99,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_100,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_101,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_102,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_103,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_104,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_105,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_106,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_107,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_108,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_109,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_110,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_111,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_112,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_113,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_114,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_115,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_116,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_117,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_118,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_119,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_120,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_121,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_122,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_123,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_124,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_125,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_126,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
	{midi::GM_TYPE::drum_127,midi::TRACK_TYPE::STANDARD_DRUM_TRACK},
};

}
// END OF NAMESPACE
