vignette|Logo MIDI de la MIDI Manufacturers Association. vignette|Exemple de musique créée à partir de commandes MIDI.

Le MIDI (abréviation de ) est un protocole de communication et un format de fichier destinés à la musique, et utilisés pour la communication entre instruments électroniques, contrôleurs, séquenceurs, et logiciels de musique.

Ce protocole naît de la volonté de l'industrie de normaliser les échanges entre les instruments électroniques de musique au début des années 1980 et s'impose rapidement comme un standard incontournable dans le matériel électronique de musique.

Histoire Dans les années 1970 et 1980, le développement de l'industrie des synthétiseurs et autres appareils associés pose le problème de l'interopérabilité des machines, notamment d'une marque à l'autre, chaque constructeur étant tenté de développer son propre protocole autour des technologies numériques émergentes. L'enjeu est de définir une norme commune qu'utiliseraient tous les constructeurs afin de pouvoir facilement commander plusieurs synthétiseurs, de marques différentes, à partir d'un même clavier ou d'un séquenceur numérique, par exemple. Les concepteurs de synthétiseurs Dave Smith (Sequential Circuits), Ikutarō Kakehashi (Roland), et Tom Oberheim (Oberheim) se concertent lors du NAMM de et réfléchissent à une standardisation des communications..

La collaboration entre les concurrents est fructueuse et la norme est mise au point en 1982. La première démonstration publique a lieu lors du NAMM de 1983, entre un Jupiter-6 (de Roland) et un Prophet-600 (de ), par leurs deux représentants et fondateurs, Ikutarō Kakehashi et Dave Smith. Ces deux instruments ainsi que le Yamaha DX9 sont les premiers synthétiseurs MIDI commercialisés.

Lancé en 1985, l'ordinateur Atari ST popularise la norme MIDI auprès des musiciens, notamment en raison de ses prises MIDI intégrées et de la qualité des séquenceurs logiciels, comme ceux développés par Steinberg. Le standard est géré par une association, International MIDI Association (IMA), la position des constructeurs étant défendue par la MIDI Manufacturers Association (MMA). En 1991, une déclinaison nommée General MIDI voit le jour. En , la norme MPE est ajoutée. Cette norme (en , expression polyphonique MIDI), permet de moduler les sons par note et non plus par canal..

En , la norme TRS est ajoutée, permettant d'utiliser un jack 2,5 ou , plus compact que le connecteur DIN 41524 du standard utilisé jusqu'alors.

Connexion physique Bus Les informations d'un bus MIDI sont codées de manière numérique, proche du signal série RS-232 dont, bien que différent, il reprend certains principes. Les premiers modules MIDI utilisaient pour cette raison des puces UART de type 16550 ou 8250, tandis que de nos jours, ces fonctions intégrées au cœur des processeurs sont utilisées.. La limite de longueur du câble est établie à . Il a les caractéristiques suivantes. :

Les informations sont transmises par modulation d'amplitude, avec l'état 1 à et l'état 0 à ; Le signal est transmis à une vitesse de . Chaque octet transmis est précédé d'un bit de start et est suivi d'un bit de stop, sans bit de parité, soit un total de 10 bits transmis. Aucun signal d’établissement de liaison n'est utilisé.

Connectique classique (DIN) vignette|Triplet classique de ports MIDI IN, OUT et THRU au format DIN .

La liaison classique définie par la norme est une connexion série symétrique à 31,25 kbit/s, transmise via des connecteurs DIN 41524, de type , placés sur 180°. La liaison est unidirectionnelle, donc deux connectiques distinctes sont nécessaires pour l'entrée (notée MIDI IN) et la sortie (notée MIDI OUT). Les appareils connectés sont isolés par un photocoupleur..

Le protocole MIDI permet à un contrôleur maître de commander plusieurs instruments, qui doivent alors être branchés en réseau. Il existe pour cela des appareils d'interconnexion intermédiaires permettant des formes de réseaux variées. Dans la pratique, les instruments sont souvent branchés en cascade (réseau linéaire type ), les appareils MIDI possédant généralement une sortie dupliquant ce qui a été reçu. Cette sortie peut être la prise MIDI OUT si elle duplique ce que l'appareil reçoit en MIDI IN, ou sinon une prise particulière, notée MIDI THRU, permettant de récupérer une copie directe du MIDI IN, sans modification ni temps de latence induite par les traitements internes. Le signal THRU est cependant déformé à travers un photocoupleur, déformation qui peut devenir problématique dans le cas d'une chaîne comportant plusieurs copies MIDI THRU successives.

Fichier:MIDI IN OUT schematic.svg

Autres connectiques Certains constructeurs utilisent des connecteurs de type jack (TRS de et ) en fournissant des adaptateurs vers le DIN classique profitant ainsi d'un encombrement moindre. Depuis le le câblage de cette connectique est standardisé par le MMA qui préconise de privilégier le pour éviter les confusions avec les connectiques audio classiques. Diverses interfaces permettent d'échanger des messages MIDI à travers de nombreuses technologies (Universal Serial Bus, Firewire, Ethernet, Bluetooth). Les anciennes cartes son possédant un connecteur DB-15 femelle (interface « joystick » analogique) peuvent gérer les signaux MIDI grâce à la norme MPU-401.

Depuis les années 2000, l'USB se généralise sur les ordinateurs, et les appareils dédiés à la MAO se voient munis de port USB Type-B. L'ordinateur et l'appareil MIDI peuvent alors échanger des messages MIDI de manière native si l'appareil respecte le standard .

Il existe également des connexions purement logicielles (par exemple JACK Audio Connection Kit) pour relier des instruments virtuels.

Messages Le protocole MIDI ne transmet pas de signal audio, mais uniquement des messages de commandes. La plupart des messages contiennent un identifiant de canal, cela donne la possibilité de multiplexer pour commander plusieurs instruments distinctement à travers un même câble.

Notes de musique vignette|upright|Correspondance entre les notes et le code MIDI associés.

Le protocole définit les messages et pour déclencher et arrêter chaque note. Une vélocité est associée à chaque note déclenchée. La vélocité correspond à la vitesse d'enfoncement de la touche du clavier et peut sur certains instruments contrôler plusieurs paramètres. Les destinations les plus courantes sont le volume de la note (plus ou moins fort) et son niveau du filtrage (timbre plus ou moins riche). Au message d'extinction de la note () est également associée une vélocité de relâchement, mais les instruments qui reconnaissent cette vélocité particulière et en permettent l'usage sont très rares.

Les notes de l'échelle chromatique sont représentées par un nombre entier codé sur ., ce qui permet de couvrir plus de 10 octaves : du C-1Le C-1 est situé en dessous du C4 situé sous la partition en clé de sol, soit . () au G9Le G9 correspond au sol au-dessus du sol moyen soit . () par pas d'un demi-ton. Les hauteurs intermédiaires entre les notes peuvent être atteintes au moyen du message .

Le MIDI peut être utilisé pour jouer des gammes non tempérées. Aucune standardisation n’existe ; cependant certains constructeurs d’instruments MIDI proposent des fonctions microtonales plus ou moins développées à l’aide de messages propriétaires que l’on peut enregistrer et transmettre avec les messages «système exclusif » (SysEx).

Commandes de modulation La modulation de la hauteur (du type bend) se commande grâce à un message dédié appelé . Grâce au message (CC), le protocole permet de commander 128 paramètres de jeu (comme le volume, l'intensité du souffle, le réglage d'effets) avec une résolution de 0 à 127.

La norme recommande une correspondance entre plusieurs paramètres courants et une partie des 128 numéros de . Dans les faits, même si la correspondance varie suivant le matérielLe constructeur fournit alors un tableau de correspondance (souvent appelé « MIDI » en anglais)., les paramètres les plus importants sont respectés, notamment le volume (#7), le panoramique (#10), et la position de la pédale de maintien (#64). Certains sont destinés à des commandes plus techniques. Par exemple la sélection de banque de son (#0 et #32), l'arrêt de toute note (#123), et l'accès à des paramètres supplémentaires RPN et NRPN (#98 à #101).

L'ajout de la norme MPE () assigne un canal à chaque note, permettant d'appliquer ces modulations à chaque note.

Changement de programme Le message (changement de programme) permet de sélectionner une sonorité pré-programmée dans une banque de sons.

Le standard MIDI définit de base 128 (numérotés de 0 à 127) qui correspondent à autant d'emplacements mémoire sur les instruments. Les sonorités, qu'elles soient fournies d'usine par le constructeur ou programmées par l'utilisateur sont normalement indépendantes de l'emplacement où elles sont mémorisées (numéro de programme).

Cas particulier du General MIDI

Cependant, avec le nombre croissant d'instruments MIDI grand public contenant de larges banques de sons d'usine non modifiables () et directement utilisables, le besoin de normalisation s'est fait sentir dans ce cas, afin par exemple qu'un son de « clavecin » sur telle machine ait le même numéro de programme que le son de « clavecin » équivalent proposé sur telle autre machine. C'est ainsi qu'est née une extension du protocole appelée General MIDI qui normalise la correspondance du avec le type de sonorité. Ce protocole permet lors de la lecture d'un fichier MIDI écrit au standard General Midi d'obtenir à peu près le même résultat sur n'importe quel instrument respectant la norme GM. En informatique, la norme a un certain succès, mais en musique proprement dite sa portée est plus limitée. MS Windows version 3 était livré avec une application permettant de changer à la volée des numéros de canaux afin d’harmoniser des instruments n’étant pas au standard General Midi. Le General MIDI connaîtra à son tour deux extensions : le GS de Roland et le XG de Yamaha. Ces deux extensions sont la propriété de leur fabricant et permettent d’ajouter des effets supplémentaires aux séquences MIDI ou de choisir des sons alternatifs à ceux proposés de base en General MIDI. Les appareils estampillés GS ou XG sont compatibles General MIDI. En 1999, la du General MIDI est officiellement lancée, augmentant le nombre de sons et de contrôles. Elle reste compatible avec la .

Synchronisation Le protocole permet de synchroniser le tempo des appareils, dit esclaves, à une horloge maître. Pour cela le maître envoie sur le bus MIDI un message MIDI clock régulièrement au rythme de 24 messages par noire.

Les appareils esclaves écoutent ces tops de synchronisation pour adapter leur vitesse. Ceci permet, d'exécuter plus ou moins rapidement une séquence mémorisée par exemple sur un séquenceur matériel en changeant la valeur de l'horloge dans le maître.

Il faut configurer physiquement chaque instrument midi qui gère le temps de sorte à n'avoir sur un bus MIDI, qu'un seul maître émettant les tops d'horloge. Si cette règle n'est pas respectée, les instruments répondront soit de manière chaotique soit resteront bloqués.

Des messages de navigation (Start, Stop, Continue, et Song Position Pointer) permettent aux différents appareils d'arrêter puis reprendre une séquence ensemble.

Contrôleur MIDI Un contrôleur MIDI est un appareil que le musicien manipule pour générer des signaux MIDI. Ce n'est pas un périphérique de synthèse ni de traitement du son, mais uniquement une interface physique produisant des données MIDI. Leurs formes peuvent être très variées, du simple clavier à la harpe laser. Ils sont appréciés pour leur utilisation intuitive.

Les événements sortant par un port MIDI OUT peuvent commander un instrument, ou être enregistrés dans un séquenceur ou un logiciel d'écriture de partition.

Clavier maître vignette|Clavier maître.