# General MIDI

General MIDI est une norme visant à assurer une compatibilité entre certains instruments MIDI gérant des banques de sons génériques fixes et prêts à l'emploi (preset). Elle établit entre autres une numérotation des programmes de timbres que peut jouer l'instrument et leur classification par familles d'instruments (les claviers, guitares, cuivres, nappes,etc.). Il est donc possible d'échanger des fichiers General MIDI sans connaître le matériel dont dispose le destinataire, ce qui permet le respect des timbres choisis pour chaque piste MIDI par le programmeur du fichier, à condition que le matériel en question soit à la norme General MIDI..

## General MIDI niveau 1
### Historique

En septembre 1991, la MIDI Manufacturers Association (ou MMA) et le Japan MIDI Standards Committee (JMSC) ont adopté la norme « General MIDI niveau 1 », aussi connue sous l'acronyme GM1. Elle visait à obtenir une compatibilité minimale entre les instruments MIDI.

### Contraintes

Un instrument GM1 (synthétiseur, expandeur, carte son, etc.) doit répondre aux critères suivants :
* 24 voix de polyphonie pour la mélodie et les percussions, ou 16 voix pour la mélodie et 8 pour les percussions. Toutes ces voix doivent être sensibles à la vélocité ;
* 16 canaux MIDI pouvant chacun jouer un type d'instrument différent, le canal 10 étant dédié aux percussions ;
* 16 instruments doivent pouvoir être joués simultanément. Au moins 128 instruments et 47 percussions doivent être disponibles et leur numérotation est normalisée ;
* les messages de contrôle continus 1, 7, 10, 11, 64, 121 et 123, les RPN 0, 1 et 2, la pression et le pitch bend doivent être gérés ;
* certains messages système doivent être interprétés, parmi lesquels ceux d'accordage et les messages système GM1.

### Numérotation des instruments GM

La correspondance entre numéros et instruments est strictement définie dans la norme GM1.
Pour que cette correspondance soit effective, il faut que l'appareil qui restitue les sons (synthétiseur, expandeur, etc.) soit également configuré en mode General MIDI. Les tableaux ci-dessous qui définissent la correspondance (mapping) ne seront pas forcément garantis si l'appareil a été configuré dans un autre mode (ex. : MT_32, CM).
Cette remarque concerne aussi la nature des fichiers MIDI. Si on prend un fichier MIDI GM, certaines séquences peuvent être émises sur des canaux qui sont muets à cause de la configuration non GM de l'équipement de destination. Il n'y a pas d'erreur mais le son n'est pas émis.

#### Classement par familles d'instruments

On regroupe ici les instruments où une note peut être jouée à différentes hauteurs, contrairement aux instruments de percussion.
Pour faire entendre un son, on indiquera à l'équipement MIDI, quel programme il doit utiliser (ex. : « piano électrique » – code MIDI program change 04), quelle hauteur de note il doit jouer (ex. : A4 ou la à 440 Hz - code MIDI pitch 69) avec quelle intensité (code MIDI velocity).
Voici le classement par familles d'instruments. Les chiffres ci-dessous sont les valeurs décimales puis hexadécimales des numéros de programme (message MIDI Program Change) de 0 à 127 en interne, mais les appareils MIDI les affichent souvent numérotés de 1 à 128 (il faut alors ajouter 1 aux valeurs données ici) :
* Piano
* 000 00 Grand piano acoustique
* 001 01 Piano acoustique
* 002 02 Grand piano électrique
* 003 03 Piano bastringue
* 004 04 Rhodes
* 005 05 Piano avec effet chorus
* 006 06 Clavecin
* 007 07 Clavinet
* Percussions chromatiques
* 008 08 Célesta
* 009 09 Glockenspiel
* 010 0A Boîte à musique
* 011 0B Vibraphone
* 012 0C Marimba
* 013 0D Xylophone
* 014 0E Cloches tubulaires
* 015 0F Dulcimer
* Orgues
* 016 10 Orgue Hammond
* 017 11 Orgue percussif
* 018 12 Orgue rock
* 019 13 Orgue d'église
* 020 14 Harmonium
* 021 15 Accordéon
* 022 16 Harmonica
* 023 17 Bandonéon
* Guitares
* 024 18 Guitare classique
* 025 19 Guitare folk
* 026 1A Guitare électrique - Jazz
* 027 1B Guitare électrique - son clair
* 028 1C Guitare électrique - sourdine
* 029 1D Guitare avec overdrive
* 030 1E Guitare avec distorsion
* 031 1F Harmoniques de guitare
* Basses
* 032 20 Basse acoustique sans frettes
* 033 21 Basse électrique jouée au doigt
* 034 22 Basse électrique jouée au médiator
* 035 23 Basse sans frettes
* 036 24 Basse slapée 1
* 037 25 Basse slapée 2
* 038 26 Synthétiseur basse 1
* 039 27 Synthétiseur basse 2
* Cordes, et instruments classiques
* 040 28 Violon
* 041 29 Violon alto
* 042 2A Violoncelle
* 043 2B Contrebasse
* 044 2C Cordes en trémolo
* 045 2D Cordes en pizzicato
* 046 2E Harpe
* 047 2F Timbales
* Ensembles
* 048 30 Ensemble acoustique à Cordes 1
* 049 31 Ensemble acoustique à Cordes 2
* 050 32 Synthétiseur de cordes 1
* 051 33 Synthétiseur de cordes 2
* 052 34 Chœur - Aah
* 053 35 Chœur - Ooh
* 054 36 Voix synthétique
* 055 37 Coup d'orchestre
* Cuivres
* 056 38 Trompette
* 057 39 Trombone
* 058 3A Tuba
* 059 3B Trompette en sourdine
* 060 3C Cor d'harmonie
* 061 3D Section de cuivres
* 062 3E Synthétiseur de Cuivres 1
* 063 3F Synthétiseur de Cuivres 2
* Bois (instruments à anches)
* 064 40 Saxophone soprano
* 065 41 Saxophone alto
* 066 42 Saxophone ténor
* 067 43 Saxophone baryton
* 068 44 Hautbois
* 069 45 Cor anglais
* 070 46 Basson
* 071 47 Clarinette
* Flûtes
* 072 48 Piccolo
* 073 49 Flûte
* 074 4A Flûte à bec
* 075 4B Flûte de Pan
* 076 4C Bouteille soufflée
* 077 4D Shakuhachi
* 078 4E Sifflet
* 079 4F Ocarina
* Synthé - Solo
* 080 50 Signal carré (Lead 1 (square))
* 081 51 Signal en dents de scie (Lead 2 (sawtooth))
* 082 52 Orgue à vapeur (Lead 3 (calliope lead))
* 083 53 Chiffer (Lead 4 (chiff lead))
* 084 54 Charang (Lead 5 (charang))
* 085 55 Voix solo (Lead 6 (voice))
* 086 56 Signal en dents de scie en quinte (Lead 7 (fifths))
* 087 57 Basse & Solo (Lead 8 (bass + lead))
* Synthé - Ensembles
* 088 58 Fantaisie (Pad 1 (new age))
* 089 59 Son chaleureux (Pad 2 (warm))
* 090 5A Polysynthé (Pad 3 (polysynth))
* 091 5B Chœur (Pad 4 (choir))
* 092 5C Archet (Pad 5 (bowed))
* 093 5D Son métallique (Pad 6 (metallic))
* 094 5E Halo (Pad 7 (halo))
* 095 5F Balai (Pad 8 (sweep))
* Synthé - Effets
* 096 60 Pluie de glace
* 097 61 Trames sonores
* 098 62 Cristal
* 099 63 Atmosphère
* 100 64 Brillance
* 101 65 Gobelins (Goblins)
* 102 66 Échos
* 103 67 Espace (Sci-Fi)
* Instruments ethniques
* 104 68 Sitar
* 105 69 Banjo
* 106 6A Shamisen
* 107 6B Koto
* 108 6C Kalimba
* 109 6D Cornemuse
* 110 6E Viole
* 111 6F Shehnai
* Percussions
* 112 70 Clochettes
* 113 71 Agogo
* 114 72 Steel drum
* 115 73 Wood-block
* 116 74 Timbales
* 117 75 Tom mélodique
* 118 76 Tambour synthétique
* 119 77 Cymbale inversée
* Bruitages
* 120 78 Guitare - bruit de frette
* 121 79 Respiration
* 122 7A Rivage
* 123 7B Gazouillis
* 124 7C Sonnerie de téléphone
* 125 7D Hélicoptère
* 126 7E Applaudissements
* 127 7F Coup de feu

#### Liste des percussions

À la différence des instruments mélodiques, les instruments de percussion MIDI émettent toujours le même son (ex. : tambourin) et on ne peut pas modifier la hauteur de note.
Chaque instrument de percussion est associé à une touche différente (note) du clavier. Si on prend le cas de deux timbales d'orchestre, elles sont accordées différemment et il leur correspondra donc deux numéros différents.
Les valeurs décimales ci-dessous sont les numéros de note des claviers de piano ; 27 correspond au ré dièse du premier octave (D#1), 28 à E1, 36 à C2 et ainsi de suite jusqu'à 84 (=C6).
La touche 69 (=A4) correspond au la 440.
* 27 : Balais
* 28 : Roulement de balais
* 29 : Roulement de caisse claire
* 30 : Castagnettes
* 31 : Caisse claire 0
* 32 : Coup de baguette
* 33 : Grosse caisse 0
* 34 : Caisse claire avec rimshot
* 35 : Grosse caisse médium
* 36 : Grosse caisse haute
* 37 : Coup de métronome
* 38 : Caisse claire 1
* 39 : Claquement de main
* 40 : Caisse claire 2
* 41 : Tom basse grave
* 42 : Charley frappé
* 43 : Tom basse aigu
* 44 : Charley au pied
* 45 : Tom médium 4
* 46 : Charley ouvert
* 47 : Tom médium 3
* 48 : Tom médium 2
* 49 : Cymbale crash
* 50 : Tom aigu
* 51 : Cymbale ride
* 52 : Cymbale china
* 53 : Cymbale ride/cup
* 54 : Tambourin
* 55 : Cymbale splash
* 56 : Cencerro ou Cowbell
* 57 : Cymbale crash 2
* 58 : Vibraslap
* 59 : Cymbale ride aigue
* 60 : Bongo aigu
* 61 : Bongo grave
* 62 : Congas aigu sourd
* 63 : Congas aigu ouvert
* 64 : Congas grave
* 65 : Timbales aigu
* 66 : Timbales grave
* 67 : Cloche agogo aiguë
* 68 : Cloche agogo grave
* 69 : Cabasa
* 70 : Maracas
* 71 : Sifflet aigu
* 72 : Sifflet grave
* 73 : Güiro court
* 74 : Güiro long
* 75 : Claves
* 76 : Woodblock aigu
* 77 : Woodblock grave
* 78 : Cuica assourdie
* 79 : Cuica ouverte
* 80 : Triangle tenu
* 81 : Triangle libre
* 82 : Shaker
* 83 : Grappe de clochettes
* 84 : Arbre à cloches

## General MIDI niveau 2
### Historique

General MIDI 2 a été normalisé en 1999. C'est un groupe d'extensions de GM1 augmentant le nombre de sons (128 à 256) et de contrôles disponibles. Tous les appareils compatibles GM2 sont compatibles GM1.

### Définitions
#### Banques d'instruments

Les instruments mélodiques peuvent être regroupés en classes de 128 éléments maximum, appelées « variation », « banque » ou « page ». Le changement de banque permet en général de modifier la couleur de l'instrument en le remplaçant par un instrument voisin de la même famille. Ainsi, selon la banque choisie, une même note (ex. : Fa4) pourra être reconnue comme venant d'une guitare électrique ou bien d'une guitare hawaïenne.
Pour faire entendre un son de guitare hawaïenne, on indiquera donc à l'équipement MIDI sur un canal mélodique, quelle banque il doit utiliser (numéro de banque), quel instrument il doit représenter (numéro de programme) et quelle note il doit jouer (29=F1= fa de l'octave 1).
À la mise sous tension des équipements MIDI, les instruments disponibles par défaut sont ceux décrits dans les tableaux ci-dessus (variation dite « capitale ») mais il est ensuite possible de les réaffecter sur une autre banque. La liste de ces instruments supplémentaires est variable selon les constructeurs (consulter la table d'implémentation MIDI fournie avec l'instrument).

#### Kits de percussion

De la même manière que les instruments mélodiques, les instruments de percussion peuvent également être regroupés en classes appelées « kit » ou « set » (ex. : Standard Set, Room Set, Power Set, Brush Set, Orchestra Set, SFX Set) et seront choisis pour donner un caractère particulier au morceau (ambiance percussions latines, orchestre classique, musique électronique, etc.).
Les kits sont identifiés par des commandes de changement de programme émises sur le canal MIDI de percussion.
Ainsi pour faire entendre un Roulement de caisse claire, on indiquera à l'équipement MIDI sur ce canal, quel kit il doit utiliser (Standard Set = numéro de programme 1) et quelle note il doit jouer (29=F1= fa de l'octave 1).
À la mise sous tension des équipements MIDI, le kit de percussion disponible par défaut est celui du « Standard set » mais il est ensuite possible de le réaffecter.
La liste des kits de percussion disponibles est variable selon les constructeurs (consulter la table d'implémentation MIDI fournie avec l'instrument).

#### Exclusion d'instruments

Il est à remarquer que certaines implémentations (surtout pour les percussions) gèrent des ensembles d'instruments exclusifs : le choix d'un instrument du même groupe d'exclusion coupe automatiquement la résonance d'un autre démarré antérieurement. L'effet obtenu est ainsi très « pro ». Exemple : open hit-hat et closed hit-hat, qui correspondent à deux notes différentes, ne peuvent pas jouer ensemble.

### Messages MIDI

On retiendra les messages déjà évoqués :
* de sélection de banque ;
* de sélection d'instrument dans la banque ;
* de note : hauteur, durée, vélocité, etc.
À cela s'ajoutent les messages qui permettent de configurer l'appareil MIDI (voir la documentation constructeur) :
* Registered Parameter Number (RPN) : liste de paramètres modifiables.
Les messages de caractéristique du son sont :
* le panoramique : pour positionner un instrument dans l'espace (complètement à gauche ou à droite, ou au milieu, ou n'importe où dans l'intervalle ;
* le chorus : permet d'enrichir le son en lui donnant un effet de chœur ;
* la réverbération : apporte un écho discret ; exemple : réverbération d'église, opéra, théatre, salle de bal, pièce, plaque métallique, salle de bains.
Les messages system exclusive (SYSEX) sont des messages spécifiques à un constructeur. Ils contiennent son identité (marque), le type d'appareil, etc. Ils peuvent être utilisés pour vider la mémoire de l'appareil (system dump) dans un but de sauvegarde externe ou dans un mode rechargement pour réinitialiser la mémoire de l'appareil avec des données sauvegardées.

### Contraintes

Un instrument GM2 doit répondre aux contraintes suivantes :
* disposer de seize canaux MIDI, seize instruments mélodiques simultanés (tous canaux), deux kits de percussion simultanés (canaux 10 et 11) ;
* répondre à de nombreux messages de contrôle, parmi lesquels : sélection de banque, modulation, temps de portamento, sostuento, temps d'attaque, réglages de vibrato, réglages de chorus, réglages de réverbération ;
* disposer des instruments et des kits de percussion GM2.

## General MIDI Lite
### Historique

General MIDI Lite est une norme publiée en 2001. Elle cible des instruments n'ayant pas les capacités techniques pour répondre à toutes les contraintes de la norme GM1.

### Contraintes

Un instrument GM Lite doit répondre aux contraintes suivantes :
* polyphonie de seize notes ;
* jusqu'à quinze instruments simultanés ;
* un kit de percussions (canal 10) ;
* compatibilité avec quelques types de messages, parmi lesquels : modulation, volume, balance, expression, pitch bend ;
* disposer des instruments et percussions GM1.