General MIDI
General Midi, afgekort GM, is een protocol om ervoor te zorgen dat MIDI-aanstuurbare instrumenten zo goed mogelijk eenzelfde geluid voortbrengen als ze dezelfde MIDI-aansturingsdata ontvangen.  Hierbij wordt bijvoorbeeld afgesproken dat geluidsprogramma nummer 1 een concertvleugel weergeeft, zie als voorbeeld de lijst onderaan dit artikel. GM bestaat uit 128 geluiden (instrumenten) en een aantal drumsets, die op ieder GM-compatibel apparaat (ongeveer) hetzelfde klinken.
Het beoogde voordeel hiervan is dat MIDI-bestanden (via internet) uitwisselbaar zijn tussen verschillende gebruikers. Vele multitimbrale MIDI-modules en de meeste geluidskaarten met een geluidschip aan boord zijn uitgerust met General MIDI.

Voorwaarden 
De voorwaarden van General MIDI zijn:
 de module is 16-kanaals multitimbraal. Dit wil zeggen dat de module op alle 16 kanalen onafhankelijk en tegelijkertijd een klank kan verwerken;
 heeft een vastgestelde lijst van 128 klanken, te selecteren via program change;
 kanaal 10 wordt gebruikt voor drumklanken, waarbij iedere toets gekoppeld wordt aan een drumklank. De toets C1 activeert bijvoorbeeld de bass drum en de E1 de snaredrum.

Versies 
Er zijn van GM drie verschillende versies:
GM1, in september 1991 opgezet door de MIDI Manufacturers Association (MMA) en het Japan MIDI Standards Committee (JMSC).
GM2, of General MIDI Level 2, is een toevoeging aan de GM1 standaard en gebaseerd op de GS extensie. In 1999 officieel aangenomen door de MMA.
GML, ontworpen in 2001, is beter bekend als General MIDI Lite en is bedoeld voor apparaten die niet volledig GM-compatible hoeven te zijn, zoals mobiele telefoons.

Uitbreidingen 
Uitbreidingen op het GM-protocol zijn XG (eXtended General Midi) van Yamaha, en GS (General Standard) van Roland. Beide standaarden hebben een grotere klankenlijst (tot 600 of meer in plaats van 128) en de mogelijkheid om effecten aan te sturen. XG/GS en GM zijn beperkt wederzijds compatibel, dat wil zeggen dat een GM bestand feilloos afgespeeld kan worden op een XG/GS module, en omgekeerd blijft een XG/GS ook redelijk overeind op een GM module, zij het dat eventuele (geluids)effecten niet goed worden afgespeeld, of dat de uitgebreide klanken anders zullen klinken.

Lijst met programmanummers van standaardgeluiden 
Noot: de nummering van deze lijst loopt van 1 tot en met 128. Een nummering van 0 tot en met 127 komt ook voor. Dit verschil leidt echter niet tot problemen. De namen en categorieën zijn:

Klanken

Drums 
Drum kits (kanaal 10)
 1 Standard Kit
 9 Room Kit
 17 Rock Kit
 25 Electronic Kit
 26 Analog Kit
 33 Jazz Kit
 41 Brush Kit
 49 Classical Kit

Computerstandaard
Synthesizer