#[repr(u8)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[allow(missing_docs)]
#[derive(Default)]
pub enum GeneralMidi {
#[default]
AcousticGrandPiano = 1,
BrightAcousticPiano = 2,
ElectricGrandPiano = 3,
HonkyTonkPiano = 4,
ElectricPiano1 = 5,
ElectricPiano2 = 6,
Harpsichord = 7,
Clavi = 8,
Celesta = 9,
Glockenspiel = 10,
MusicBox = 11,
Vibraphone = 12,
Marimba = 13,
Xylophone = 14,
TubularBells = 15,
Dulcimer = 16,
DrawbarOrgan = 17,
PercussiveOrgan = 18,
RockOrgan = 19,
ChurchOrgan = 20,
ReedOrgan = 21,
Accordion = 22,
Harmonica = 23,
TangoAccordion = 24,
AcousticGuitarNylon = 25,
AcousticGuitarSteel = 26,
ElectricGuitarJazz = 27,
ElectricGuitarClean = 28,
ElectricGuitarMuted = 29,
OverdrivenGuitar = 30,
DistortionGuitar = 31,
GuitarHarmonics = 32,
AcousticBass = 33,
ElectricBassFinger = 34,
ElectricBassPick = 35,
FretlessBass = 36,
SlapBass1 = 37,
SlapBass2 = 38,
SynthBass1 = 39,
SynthBass2 = 40,
Violin = 41,
Viola = 42,
Cello = 43,
Contrabass = 44,
TremoloStrings = 45,
PizzicatoStrings = 46,
OrchestralHarp = 47,
Timpani = 48,
StringEnsemble1 = 49,
StringEnsemble2 = 50,
SynthStrings1 = 51,
SynthStrings2 = 52,
ChoirAahs = 53,
VoiceOohs = 54,
SynthVoice = 55,
OrchestraHit = 56,
Trumpet = 57,
Trombone = 58,
Tuba = 59,
MutedTrumpet = 60,
FrenchHorn = 61,
BrassSection = 62,
SynthBrass1 = 63,
SynthBrass2 = 64,
SopranoSax = 65,
AltoSax = 66,
TenorSax = 67,
BaritoneSax = 68,
Oboe = 69,
EnglishHorn = 70,
Bassoon = 71,
Clarinet = 72,
Piccolo = 73,
Flute = 74,
Recorder = 75,
PanFlute = 76,
BlownBottle = 77,
Shakuhachi = 78,
Whistle = 79,
Ocarina = 80,
Lead1Square = 81,
Lead2Sawtooth = 82,
Lead3Calliope = 83,
Lead4Chiff = 84,
Lead5Charang = 85,
Lead6Voice = 86,
Lead7Fifths = 87,
Lead8BassPlusLead = 88,
Pad1Newage = 89,
Pad2Warm = 90,
Pad3Polysynth = 91,
Pad4Choir = 92,
Pad5Bowed = 93,
Pad6Metallic = 94,
Pad7Halo = 95,
Pad8Sweep = 96,
Fx1Rain = 97,
Fx2Soundtrack = 98,
Fx3Crystal = 99,
Fx4Atmosphere = 100,
Fx5Brightness = 101,
Fx6Goblins = 102,
Fx7Echoes = 103,
Fx8SciFi = 104,
Sitar = 105,
Banjo = 106,
Shamisen = 107,
Koto = 108,
Kalimba = 109,
Bagpipe = 110,
Fiddle = 111,
Shanai = 112,
TinkleBell = 113,
Agogo = 114,
SteelDrums = 115,
Woodblock = 116,
TaikoDrum = 117,
MelodicTom = 118,
SynthDrum = 119,
ReverseCymbal = 120,
GuitarFretNoise = 121,
BreathNoise = 122,
Seashore = 123,
BirdTweet = 124,
TelephoneRing = 125,
Helicopter = 126,
Applause = 127,
Gunshot = 128,
}
impl From<u8> for GeneralMidi {
fn from(value: u8) -> Self {
match value {
x if GeneralMidi::AcousticGrandPiano as u8 == x => GeneralMidi::AcousticGrandPiano,
x if GeneralMidi::BrightAcousticPiano as u8 == x => GeneralMidi::BrightAcousticPiano,
x if GeneralMidi::ElectricGrandPiano as u8 == x => GeneralMidi::ElectricGrandPiano,
x if GeneralMidi::HonkyTonkPiano as u8 == x => GeneralMidi::HonkyTonkPiano,
x if GeneralMidi::ElectricPiano1 as u8 == x => GeneralMidi::ElectricPiano1,
x if GeneralMidi::ElectricPiano2 as u8 == x => GeneralMidi::ElectricPiano2,
x if GeneralMidi::Harpsichord as u8 == x => GeneralMidi::Harpsichord,
x if GeneralMidi::Clavi as u8 == x => GeneralMidi::Clavi,
x if GeneralMidi::Celesta as u8 == x => GeneralMidi::Celesta,
x if GeneralMidi::Glockenspiel as u8 == x => GeneralMidi::Glockenspiel,
x if GeneralMidi::MusicBox as u8 == x => GeneralMidi::MusicBox,
x if GeneralMidi::Vibraphone as u8 == x => GeneralMidi::Vibraphone,
x if GeneralMidi::Marimba as u8 == x => GeneralMidi::Marimba,
x if GeneralMidi::Xylophone as u8 == x => GeneralMidi::Xylophone,
x if GeneralMidi::TubularBells as u8 == x => GeneralMidi::TubularBells,
x if GeneralMidi::Dulcimer as u8 == x => GeneralMidi::Dulcimer,
x if GeneralMidi::DrawbarOrgan as u8 == x => GeneralMidi::DrawbarOrgan,
x if GeneralMidi::PercussiveOrgan as u8 == x => GeneralMidi::PercussiveOrgan,
x if GeneralMidi::RockOrgan as u8 == x => GeneralMidi::RockOrgan,
x if GeneralMidi::ChurchOrgan as u8 == x => GeneralMidi::ChurchOrgan,
x if GeneralMidi::ReedOrgan as u8 == x => GeneralMidi::ReedOrgan,
x if GeneralMidi::Accordion as u8 == x => GeneralMidi::Accordion,
x if GeneralMidi::Harmonica as u8 == x => GeneralMidi::Harmonica,
x if GeneralMidi::TangoAccordion as u8 == x => GeneralMidi::TangoAccordion,
x if GeneralMidi::AcousticGuitarNylon as u8 == x => GeneralMidi::AcousticGuitarNylon,
x if GeneralMidi::AcousticGuitarSteel as u8 == x => GeneralMidi::AcousticGuitarSteel,
x if GeneralMidi::ElectricGuitarJazz as u8 == x => GeneralMidi::ElectricGuitarJazz,
x if GeneralMidi::ElectricGuitarClean as u8 == x => GeneralMidi::ElectricGuitarClean,
x if GeneralMidi::ElectricGuitarMuted as u8 == x => GeneralMidi::ElectricGuitarMuted,
x if GeneralMidi::OverdrivenGuitar as u8 == x => GeneralMidi::OverdrivenGuitar,
x if GeneralMidi::DistortionGuitar as u8 == x => GeneralMidi::DistortionGuitar,
x if GeneralMidi::GuitarHarmonics as u8 == x => GeneralMidi::GuitarHarmonics,
x if GeneralMidi::AcousticBass as u8 == x => GeneralMidi::AcousticBass,
x if GeneralMidi::ElectricBassFinger as u8 == x => GeneralMidi::ElectricBassFinger,
x if GeneralMidi::ElectricBassPick as u8 == x => GeneralMidi::ElectricBassPick,
x if GeneralMidi::FretlessBass as u8 == x => GeneralMidi::FretlessBass,
x if GeneralMidi::SlapBass1 as u8 == x => GeneralMidi::SlapBass1,
x if GeneralMidi::SlapBass2 as u8 == x => GeneralMidi::SlapBass2,
x if GeneralMidi::SynthBass1 as u8 == x => GeneralMidi::SynthBass1,
x if GeneralMidi::SynthBass2 as u8 == x => GeneralMidi::SynthBass2,
x if GeneralMidi::Violin as u8 == x => GeneralMidi::Violin,
x if GeneralMidi::Viola as u8 == x => GeneralMidi::Viola,
x if GeneralMidi::Cello as u8 == x => GeneralMidi::Cello,
x if GeneralMidi::Contrabass as u8 == x => GeneralMidi::Contrabass,
x if GeneralMidi::TremoloStrings as u8 == x => GeneralMidi::TremoloStrings,
x if GeneralMidi::PizzicatoStrings as u8 == x => GeneralMidi::PizzicatoStrings,
x if GeneralMidi::OrchestralHarp as u8 == x => GeneralMidi::OrchestralHarp,
x if GeneralMidi::Timpani as u8 == x => GeneralMidi::Timpani,
x if GeneralMidi::StringEnsemble1 as u8 == x => GeneralMidi::StringEnsemble1,
x if GeneralMidi::StringEnsemble2 as u8 == x => GeneralMidi::StringEnsemble2,
x if GeneralMidi::SynthStrings1 as u8 == x => GeneralMidi::SynthStrings1,
x if GeneralMidi::SynthStrings2 as u8 == x => GeneralMidi::SynthStrings2,
x if GeneralMidi::ChoirAahs as u8 == x => GeneralMidi::ChoirAahs,
x if GeneralMidi::VoiceOohs as u8 == x => GeneralMidi::VoiceOohs,
x if GeneralMidi::SynthVoice as u8 == x => GeneralMidi::SynthVoice,
x if GeneralMidi::OrchestraHit as u8 == x => GeneralMidi::OrchestraHit,
x if GeneralMidi::Trumpet as u8 == x => GeneralMidi::Trumpet,
x if GeneralMidi::Trombone as u8 == x => GeneralMidi::Trombone,
x if GeneralMidi::Tuba as u8 == x => GeneralMidi::Tuba,
x if GeneralMidi::MutedTrumpet as u8 == x => GeneralMidi::MutedTrumpet,
x if GeneralMidi::FrenchHorn as u8 == x => GeneralMidi::FrenchHorn,
x if GeneralMidi::BrassSection as u8 == x => GeneralMidi::BrassSection,
x if GeneralMidi::SynthBrass1 as u8 == x => GeneralMidi::SynthBrass1,
x if GeneralMidi::SynthBrass2 as u8 == x => GeneralMidi::SynthBrass2,
x if GeneralMidi::SopranoSax as u8 == x => GeneralMidi::SopranoSax,
x if GeneralMidi::AltoSax as u8 == x => GeneralMidi::AltoSax,
x if GeneralMidi::TenorSax as u8 == x => GeneralMidi::TenorSax,
x if GeneralMidi::BaritoneSax as u8 == x => GeneralMidi::BaritoneSax,
x if GeneralMidi::Oboe as u8 == x => GeneralMidi::Oboe,
x if GeneralMidi::EnglishHorn as u8 == x => GeneralMidi::EnglishHorn,
x if GeneralMidi::Bassoon as u8 == x => GeneralMidi::Bassoon,
x if GeneralMidi::Clarinet as u8 == x => GeneralMidi::Clarinet,
x if GeneralMidi::Piccolo as u8 == x => GeneralMidi::Piccolo,
x if GeneralMidi::Flute as u8 == x => GeneralMidi::Flute,
x if GeneralMidi::Recorder as u8 == x => GeneralMidi::Recorder,
x if GeneralMidi::PanFlute as u8 == x => GeneralMidi::PanFlute,
x if GeneralMidi::BlownBottle as u8 == x => GeneralMidi::BlownBottle,
x if GeneralMidi::Shakuhachi as u8 == x => GeneralMidi::Shakuhachi,
x if GeneralMidi::Whistle as u8 == x => GeneralMidi::Whistle,
x if GeneralMidi::Ocarina as u8 == x => GeneralMidi::Ocarina,
x if GeneralMidi::Lead1Square as u8 == x => GeneralMidi::Lead1Square,
x if GeneralMidi::Lead2Sawtooth as u8 == x => GeneralMidi::Lead2Sawtooth,
x if GeneralMidi::Lead3Calliope as u8 == x => GeneralMidi::Lead3Calliope,
x if GeneralMidi::Lead4Chiff as u8 == x => GeneralMidi::Lead4Chiff,
x if GeneralMidi::Lead5Charang as u8 == x => GeneralMidi::Lead5Charang,
x if GeneralMidi::Lead6Voice as u8 == x => GeneralMidi::Lead6Voice,
x if GeneralMidi::Lead7Fifths as u8 == x => GeneralMidi::Lead7Fifths,
x if GeneralMidi::Lead8BassPlusLead as u8 == x => GeneralMidi::Lead8BassPlusLead,
x if GeneralMidi::Pad1Newage as u8 == x => GeneralMidi::Pad1Newage,
x if GeneralMidi::Pad2Warm as u8 == x => GeneralMidi::Pad2Warm,
x if GeneralMidi::Pad3Polysynth as u8 == x => GeneralMidi::Pad3Polysynth,
x if GeneralMidi::Pad4Choir as u8 == x => GeneralMidi::Pad4Choir,
x if GeneralMidi::Pad5Bowed as u8 == x => GeneralMidi::Pad5Bowed,
x if GeneralMidi::Pad6Metallic as u8 == x => GeneralMidi::Pad6Metallic,
x if GeneralMidi::Pad7Halo as u8 == x => GeneralMidi::Pad7Halo,
x if GeneralMidi::Pad8Sweep as u8 == x => GeneralMidi::Pad8Sweep,
x if GeneralMidi::Fx1Rain as u8 == x => GeneralMidi::Fx1Rain,
x if GeneralMidi::Fx2Soundtrack as u8 == x => GeneralMidi::Fx2Soundtrack,
x if GeneralMidi::Fx3Crystal as u8 == x => GeneralMidi::Fx3Crystal,
x if GeneralMidi::Fx4Atmosphere as u8 == x => GeneralMidi::Fx4Atmosphere,
x if GeneralMidi::Fx5Brightness as u8 == x => GeneralMidi::Fx5Brightness,
x if GeneralMidi::Fx6Goblins as u8 == x => GeneralMidi::Fx6Goblins,
x if GeneralMidi::Fx7Echoes as u8 == x => GeneralMidi::Fx7Echoes,
x if GeneralMidi::Fx8SciFi as u8 == x => GeneralMidi::Fx8SciFi,
x if GeneralMidi::Sitar as u8 == x => GeneralMidi::Sitar,
x if GeneralMidi::Banjo as u8 == x => GeneralMidi::Banjo,
x if GeneralMidi::Shamisen as u8 == x => GeneralMidi::Shamisen,
x if GeneralMidi::Koto as u8 == x => GeneralMidi::Koto,
x if GeneralMidi::Kalimba as u8 == x => GeneralMidi::Kalimba,
x if GeneralMidi::Bagpipe as u8 == x => GeneralMidi::Bagpipe,
x if GeneralMidi::Fiddle as u8 == x => GeneralMidi::Fiddle,
x if GeneralMidi::Shanai as u8 == x => GeneralMidi::Shanai,
x if GeneralMidi::TinkleBell as u8 == x => GeneralMidi::TinkleBell,
x if GeneralMidi::Agogo as u8 == x => GeneralMidi::Agogo,
x if GeneralMidi::SteelDrums as u8 == x => GeneralMidi::SteelDrums,
x if GeneralMidi::Woodblock as u8 == x => GeneralMidi::Woodblock,
x if GeneralMidi::TaikoDrum as u8 == x => GeneralMidi::TaikoDrum,
x if GeneralMidi::MelodicTom as u8 == x => GeneralMidi::MelodicTom,
x if GeneralMidi::SynthDrum as u8 == x => GeneralMidi::SynthDrum,
x if GeneralMidi::ReverseCymbal as u8 == x => GeneralMidi::ReverseCymbal,
x if GeneralMidi::GuitarFretNoise as u8 == x => GeneralMidi::GuitarFretNoise,
x if GeneralMidi::BreathNoise as u8 == x => GeneralMidi::BreathNoise,
x if GeneralMidi::Seashore as u8 == x => GeneralMidi::Seashore,
x if GeneralMidi::BirdTweet as u8 == x => GeneralMidi::BirdTweet,
x if GeneralMidi::TelephoneRing as u8 == x => GeneralMidi::TelephoneRing,
x if GeneralMidi::Helicopter as u8 == x => GeneralMidi::Helicopter,
x if GeneralMidi::Applause as u8 == x => GeneralMidi::Applause,
x if GeneralMidi::Gunshot as u8 == x => GeneralMidi::Gunshot,
_ => GeneralMidi::default(),
}
}
}
impl From<GeneralMidi> for u8 {
fn from(gm: GeneralMidi) -> Self {
gm as u8
}
}