PROTOCOLES / 01 · ANATOMIE · FR

MIDI INTÉGRAL

le protocole qui a survécu quarante ans, de l'octet à MIDI 2.0
MIDI est le plus vieux protocole numérique encore en usage quotidien dans la musique. Quarante ans après sa publication, son cœur n'a pas changé : les mêmes octets qu'en 1983 circulent encore entre un clavier et un ordinateur.

Cette fiche décortique le protocole couche par couche — de l'octet de statut jusqu'à l'Universal MIDI Packet de MIDI 2.0 — et montre pourquoi une norme délibérément simple a survécu à toutes les révolutions du matériel. La dernière section sort MIDI de la musique : le même protocole pilote des lumières, des moteurs, des LED, des installations entières.
Récupérer cette fiche en PDF — A4 imprimable, lecture continue.
/ 00

ENTRÉE EN MATIÈRE

un protocole de communication, pas un signal audio
MIDI n'est pas un format audio. Aucun son ne transite par un câble MIDI. C'est un protocole de communication — un format de messages et leurs règles d'échange — du même ordre qu'USB ou HTTP : ce qui passe sur le fil, ce sont des octets adressés, lus par les machines qui les reçoivent.

Le déclic se joue ici. Entre un clavier MIDI et un ordinateur, aucun son ne voyage. Ce qui voyage, c'est l'ordre : joue la note 60 à intensité 100, monte le volume à 127, sélectionne le programme 4. La machine qui reçoit interprète l'ordre et fabrique le son chez elle. Un câble MIDI est plus proche d'un fil de télégraphe que d'un câble d'enceinte.

Ce qu'on peut transmettre par ces ordres couvre tout ce qui pilote une machine sonore : déclencher et relâcher des notes, modifier en continu un paramètre — vibrato, filtre, volume — synchroniser des tempos, sélectionner des sons, envoyer des réglages fins. Tout ce qui peut être commandé peut l'être en MIDI ; le résultat sonore, lui, sort ailleurs.

La portée dépasse vite la musique. Le protocole décrit des messages adressés et des règles d'échange — il ne dit jamais que la cible doit être un instrument. Synthétiseurs et stations de travail audio en sont la cible historique, mais le même protocole pilote aujourd'hui des installations lumière, des séquences vidéo, des bras robotisés, des œuvres génératives (§12). Tout ce qui se commande par message peut se commander en MIDI.
midi est un protocole, pas un signal. ce qui circule, ce sont des ordres.
Schéma
Audio vs MIDI : deux manières d’obtenir du sonDeux chaînes parallèles. En haut : une source audio envoie une tension électrique variable par câble à une enceinte qui la convertit en onde acoustique. En bas : un clavier ou une DAW envoie des ordres MIDI montrés en hex (90 3C 64 = joue do central à vélocité 100 ; B0 07 7F = volume au maximum) à un synthétiseur qui les transforme en son. Les deux produisent du son à l’arrivée, mais seul le câble audio transporte le son lui-même, sous forme électrique.AUDIO vs MIDI — DEUX MANIÈRES D’OBTENIR DU SONAUDIOSOURCE AUDIOgénère un signalENCEINTEconvertit en sonSONune tension électrique qui varie traverse le câble — l’enceinte la convertit en onde acoustiqueMIDICLAVIER / DAWémet des ordres« joue DO central,vélocité 100 »« volume aumaximum »[90 3C 64][B0 07 7F]SYNTHÉfabrique le sonSONdes ordres traversent le câble — le synthé les transforme en soncâble audio : le son est PORTÉ. câble MIDI : il est PRODUIT à l’arrivée.
/ 01

GENÈSE

1983 — un accord entre concurrents
En 1981, Dave Smith, fondateur de Sequential Circuits, présente devant l'Audio Engineering Society l'idée d'une interface universelle entre synthétiseurs — la Universal Synthesizer Interface. L'enjeu est concret : à l'époque, faire dialoguer deux machines de marques différentes relève du bricolage propriétaire. Smith s'associe à Ikutaro Kakehashi, fondateur de Roland, et l'idée devient une norme commune. La spécification MIDI 1.0 paraît en août 1983.

La première démonstration publique a lieu au Winter NAMM de janvier 1983 : un Prophet-600 de Sequential et un Jupiter-6 de Roland — deux instruments concurrents — échangent des notes par un simple câble. Le pari tient en une phrase : des fabricants rivaux acceptent une norme ouverte, libre de droits, que chacun implémente sans payer personne.

C'est cette décision économique, autant que technique, qui explique la longévité. MIDI ne coûte rien, reste volontairement minimal, et se contente d'être suffisant. Smith et Kakehashi reçoivent un Technical Grammy en 2013 pour une norme qui, entre-temps, a équipé la quasi-totalité de la musique enregistrée.
une norme libre de droits, acceptée par des fabricants concurrents — c'est ce pari économique qui l'a fait survivre quarante ans.
Schéma
Une frise de l’histoire de MIDI de 1981 à 2020 en sept jalons.Frise : 1981 proposition par Dave Smith de Sequential ; 1983 MIDI 1.0 première démo au NAMM (surligné) ; 1988 SMF le fichier .mid ; 1991 General MIDI et MSC ; 1999 USB-MIDI ; 2018 MPE ; 2020 MIDI 2.0 dialogue (surligné). Quarante ans de rétro-compatibilité jamais rompue.GENÈSE — QUARANTE ANS EN SEPT JALONS1981proposition · D. Smith1983MIDI 1.0 · démo NAMM1988SMF · le .mid1991General MIDI · MSC1999USB-MIDI2018MPE2020MIDI 2.0 · le dialoguequarante ans, une rétro-compatibilité jamais rompue :un Note On de 1983 joue encore aujourd’hui.
/ 02

LE BUS MIDI

une voie de transmission, pas un fil — et qui porte seize canaux
Quand un clavier MIDI envoie un message à un ordinateur, l'ordre voyage sur un bus. Le bus est la voie de transmission — la connexion physique partagée par tous les messages qui transitent entre les machines. Sur cette même voie circulent jusqu'à seize canaux logiques distincts : seize étiquettes que chaque message porte dans son octet de statut (§3), permettant aux messages de partager la connexion sans se mélanger. Le bus n'est pas un canal — c'est l'ensemble qui en porte seize.

Le bus de 1983 prend la forme d'un câble DIN à cinq broches, unidirectionnel : un connecteur OUT côté émetteur, un connecteur IN côté récepteur. Pour relier plusieurs instruments à un même séquenceur, chaque machine dispose d'un troisième connecteur THRU qui réémet bit pour bit ce qu'elle reçoit. C'est le mécanisme de la daisy chain : émetteur → IN d'A → THRU d'A → IN de B → THRU de B → … À chaque maillon, la latence électronique s'accumule, typiquement 0,3 ms par THRU. Au-delà de seize instruments, plusieurs reçoivent forcément sur le même canal et perdent l'adressage indépendant. Un bus DIN sature donc autour de seize instruments — exactement le nombre de canaux qu'il porte.

Avec l'arrivée des séquenceurs logiciels et des grands setups studio, les interfaces multi-ports apparaissent. Une seule boîte — MOTU MIDI Express, Emagic Unitor, Steinberg MIDEX — offre huit, seize, voire trente-deux connecteurs MIDI indépendants, reliée à l'ordinateur par un seul câble propriétaire. Chaque port est un bus séparé, qui porte ses propres seize canaux. La topologie passe de la chaîne à l'étoile. Huit ports = 8 × 16 = 128 canaux indépendants. La contrainte des seize recule sans disparaître : elle reste vraie par bus, mais le système entier en compte plusieurs.

USB MIDI, normalisé en 1999 et largement déployé à partir des années 2000, abolit le problème de fond. Chaque appareil connecté à l'ordinateur par USB porte son propre bus MIDI complet, avec ses propres seize canaux. Plus de chaînage, plus de latence cumulative, plus de partage forcé. Un setup contemporain — un ordinateur, quatre contrôleurs USB, deux synthés USB — totalise six bus indépendants, soit 6 × 16 = 96 canaux, sans aucun câble MIDI traditionnel.

On entend encore régulièrement la formule « MIDI est limité à seize canaux ». Elle décrit la limite d'un bus, jamais celle d'un système. Le seize-canaux est devenu une cellule de base : ce qui passait pour un plafond en 1983 sert d'unité de comptage aujourd'hui. Cette confusion est l'angle mort le plus répandu sur le protocole, et la raison pour laquelle MIDI 2.0 élargit la limite par bus à 256 canaux par groupe (§11) plutôt que d'empiler des couches au-dessus de seize.
un câble usb porte un bus complet de 16 canaux par machine. la pénurie de 1983 n'existe plus.
Schéma
Évolution du bus MIDI : daisy chain, étoile, USBTrois topologies empilées. 1983 : une chaîne d’instruments derrière un master, qui partagent un seul bus de 16 canaux. Années 90 : une étoile autour d’une interface multi-ports, chaque port un bus séparé de 16 canaux. Aujourd’hui : USB, chaque appareil portant son propre bus complet de 16 canaux, sans chaînage.ÉVOLUTION DU BUS — TROIS TOPOLOGIES, UN MÊME CONCEPT1983DIN · daisy chainMASTERINSTRINSTRINSTR...(max 16)1 BUS16 canaux partagés→ saturation à 16années 90STAR · multi-portsORDIINTERFACEINSTRINSTRINSTRINSTRn BUSindépendants16 ch × naujourd’huiUSB · 1 bus/appareilORDISYNTHÉCONTRÔL.SYNTHÉn BUSzéro chaînage16 ch × n appareils16 canaux = la cellule de base d’un système, plus son plafond.
Les trois prises DIN MIDI : IN reçoit, THRU recopie l’IN, OUT émet ce que l’appareil génère.Un appareil MIDI avec trois prises. IN (bleu) reçoit le flux entrant. THRU (vert) est une recopie exacte de l’IN, pour relayer vers l’appareil suivant. OUT (or) émet ce que l’appareil génère lui-même depuis son moteur. Le piège : THRU recopie l’IN, pas l’OUT.LES TROIS PRISES · IN / OUT / THRUAPPAREIL(synthé, clavier, interface)moteurINTHRUOUTflux entrantrecopiegénéré→ IN suivant→ IN suivantIN — reçoit le flux entrantTHRU — recopie exacte de l’IN (jamais l’OUT)OUT — émet ce que l’appareil génèrele piège : THRU recopie l’IN, pas l’OUT.pour relayer ce qu’on reçoit, c’est THRU — pas OUT.
/ 03

L'OCTET

l'unité atomique du protocole
MIDI est un protocole série asynchrone : il transmet des octets l'un après l'autre, sur un seul fil, sans horloge commune. Tout le reste se construit sur une distinction unique, portée par le bit de poids fort de chaque octet. Quand ce bit vaut 1 — une valeur de 0x80 à 0xFF — l'octet est un octet de statut : il annonce la nature du message. Quand le bit vaut 0 — de 0x00 à 0x7F — l'octet est un octet de données : il porte une valeur.

Cette frontière à un seul bit se propage dans tout MIDI. Une donnée ne dispose que de sept bits : d'où le 0 à 127 omniprésent — numéro de note, velocity, valeur de contrôleur, numéro de programme. Le huitième bit ne code jamais de donnée ; il sépare un ordre d'une valeur. C'est le prix d'un flux décodable sans ambiguïté, octet par octet, même quand on en a manqué le début.

L'octet de statut se lit en deux quartets. Les quatre bits de poids fort désignent le type de message ; les quatre bits de poids faible désignent le canal, de 0 à 15. Sept types s'adressent ainsi à un canal — les Channel Voice :

- Note Off — 0x8n — relâche une note : numéro de note, puis velocity de relâche.
- Note On — 0x9n — déclenche une note : numéro de note, puis velocity.
- Polyphonic Key Pressure — 0xAn — la pression appliquée à une note précise après l'attaque.
- Control Change — 0xBn — un contrôleur change : numéro de contrôleur, puis valeur (§7).
- Program Change — 0xCn — change de son : un seul octet, le numéro de programme.
- Channel Pressure — 0xDn — la pression globale du canal : un seul octet.
- Pitch Bend — 0xEn — la hauteur fléchit : deux octets de données.

Un message complet n'est donc pas un octet, mais un petit groupe : l'octet de statut suivi de zéro, un ou deux octets de données selon le type. Un Note On occupe trois octets — statut, note, velocity ; un Program Change en occupe deux ; certains messages système, un seul. L'octet est l'unité que le protocole sait lire ; le message est ce qu'elle compose.

Le numéro de note couvre 0 à 127 par demi-tons. Le 60 correspond au do central — sa désignation d'octave (C3, C4 ou C5) varie selon les fabricants, mais le numéro ne bouge pas. La velocity, sur sept bits elle aussi, code la vitesse d'enfoncement de la touche, donc le plus souvent l'intensité de la frappe. Une convention règle un détail d'économie : un Note On de velocity 0 vaut un Note Off. L'équivalence permet d'enchaîner des notes sans réémettre l'octet de statut à chaque fois — c'est le ressort du running status (§5).

Le pitch bend fait exception à la grille des sept bits. Il assemble deux octets de données — poids faible puis poids fort — en une valeur de quatorze bits : 16384 paliers, centrés sur 8192, le point de repos. La résolution accrue n'est pas un luxe : l'oreille perçoit immédiatement l'escalier d'un glissando trop grossièrement quantifié. C'est la seule donnée Channel Voice nativement sur quatorze bits — partout ailleurs, MIDI 1.0 vit avec ses 128 crans. Cette limite tient quarante ans ; c'est elle que MIDI 2.0 fera sauter en portant les contrôleurs à 32 bits (§11).
tout ce qui circule dans MIDI 1.0 tient sur sept bits. zéro à 127, pour une note comme pour un volume.
Schéma
L'octet MIDI décortiqué : un message Note On de trois octetsLe message Note On se compose de trois octets — statut 0x90, note 60, velocity 100. L'octet de statut est décomposé en huit bits 1001 0000 : le quartet de poids fort code le type (Note On), le quartet de poids faible code le canal (1). Le bit de poids fort à 1 marque un octet de statut.UN MESSAGE · NOTE ON · TROIS OCTETSOCTET DE STATUTOCTET DE DONNÉEOCTET DE DONNÉE0x9060100Note On / canal 1DO centralvélocité 100/127STATUT, BIT À BIT10010000poids fort = 1TYPE · 1001 · NOTE ONCANAL · 0000 · CH. 1le huitième bit ne code jamais de donnée — il sépare un ordre d'une valeur.→ LA NOTE CORRESPONDANTEDODO central · note 60 · C3 sous Ableton (C4 en convention scientifique)
/ 04

LES MESSAGES

sept types Channel Voice — un piège par type
Les messages Channel Voice forment la famille principale de MIDI : tout ce qui passe par un canal, par opposition aux messages System (§6). Leur octet de statut suit toujours la même structure : un quartet haut qui désigne le type (parmi sept valeurs, de 0x8n à 0xEn) et un quartet bas qui porte le numéro du canal (§3). Les sept types couvrent tout ce qu'un instrument peut recevoir comme ordre — déclencher une note, la relâcher, exprimer une pression, sélectionner un son, déplacer la hauteur, transmettre une valeur de contrôleur. C'est le vocabulaire complet de MIDI 1.0 à l'échelle d'un canal.

Note On (0x9n) déclenche une note. Trois octets : statut, numéro de note (0-127 — note 60 = do central, §3), et vélocité (0-127 — la vitesse à laquelle la touche est enfoncée, qui se traduit chez la plupart des instruments par un volume initial et un caractère de timbre). C'est le message le plus fréquent du protocole : une exécution musicale en émet des centaines par minute.

Note Off (0x8n) relâche une note. Trois octets : statut, numéro de note, release velocity (la vitesse de relâchement). En pratique, presque aucun appareil ni DAW ne lit la release velocity — Ableton Live l'ignore, Logic l'ignore, FL Studio l'ignore. Elle est codée dans le message mais reste un trou de réception.

Et c'est ici qu'apparaît le piège le plus pratique de la famille. Une convention historique transforme un Note On de vélocité 0 en Note Off implicite. Quand un séquenceur joue une séquence de notes successives, il économise un octet de statut par note relâchée en envoyant « Note On vel=0 » au lieu de « Note Off vel=X » ; le récepteur interprète vel=0 comme une demande de relâchement. C'est l'astuce qui rend le running status (§5) efficace sur une mélodie : une longue séquence ne contient que des « Note On » répétés, avec vel>0 pour déclencher et vel=0 pour relâcher. Conséquence : observer un trafic MIDI en pratique, on voit beaucoup de Note On vel=0 et très peu de vrais 0x8n. Et conséquence pour qui code en Max for Live ou Max/MSP : un patch qui guette uniquement les 0x8n manquera la moitié des relâchements. Le bon réflexe est de traiter « Note On vel=0 » comme un Note Off à part entière.

Poly Aftertouch (0xAn), aussi appelé Poly Key Pressure, transmet la pression appliquée à une touche déjà enfoncée, note par note. Trois octets : statut, numéro de note, valeur de pression (0-127). C'est le message le plus rare en pratique. Implémenter le Poly AT exige un capteur de pression sous chaque touche — coût matériel qui ne s'est généralisé que sur les contrôleurs MPE (Roli Seaboard, LinnStrument, Lightpad) et quelques claviers haut de gamme (Native Instruments Kontrol S88, Polyend Tracker+). Sur un clavier standard, c'est le Channel Aftertouch (0xDn) qui s'y substitue. Côté récepteur, beaucoup d'instruments ignorent le Poly AT même s'ils le reçoivent : ils ne savent pas mapper « pression sur cette note précise » à un paramètre sonore par-note.

Control Change (0xBn) est le fourre-tout du protocole : 128 adresses de contrôleur, deux octets de données (numéro du CC 0-127, valeur 0-127). Le 1 = molette de modulation, le 7 = volume de canal, le 10 = panoramique, le 64 = pédale de sustain, etc. C'est par les CC que passent tous les contrôleurs continus (modulation, panoramique, sustain, expression…) et plusieurs commandes structurelles (Bank Select, mode de canal, reset). Le détail complet — la carte 0-127, les couples MSB/LSB pour 14 bits, le mode de canal, les RPN/NRPN — est l'objet de l'§7.

Program Change (0xCn) sélectionne un son. C'est le plus court des sept : deux octets, statut + numéro de programme (0-127). Pas de paramètre supplémentaire. Une bibliothèque de 128 sons (souvent appelés patches ou presets) couvrait largement les besoins en 1983. Aujourd'hui, on étend cette plage avec Bank Select (CC 0 pour le MSB de banque, CC 32 pour le LSB, envoyés juste avant le Program Change) — théoriquement 128 × 128 × 128 = plus de deux millions de combinaisons, en pratique limité par ce que chaque appareil expose réellement.

Deuxième piège classique : l'off-by-one. Le protocole numérote les programmes de 0 à 127, mais la plupart des manuels et interfaces utilisateurs les affichent de 1 à 128. Sélectionner « le programme 1 » dans une DAW envoie en réalité le Program Change 0 sur le câble. Quand un séquenceur ne trouve pas le bon son, c'est presque toujours ce décalage qui est en cause.

Channel Aftertouch (0xDn), aussi appelé Channel Pressure, transmet la pression appliquée au clavier dans son ensemble. Deux octets : statut + valeur (0-127). À la différence du Poly AT, il n'individualise pas les notes : la pression du doigt sur n'importe quelle touche tenue déclenche un seul message qui s'applique à toutes les notes en cours sur ce canal. C'est l'aftertouch standard sur 95 % des claviers maître parce qu'il ne demande qu'un capteur unique pour toute la mécanique du clavier. Mappé typiquement à vibrato, ouverture de filtre, ou volume.

Pitch Bend (0xEn) déplace en continu la hauteur de toutes les notes en cours sur le canal. Trois octets : statut, LSB de valeur, MSB de valeur. Combinés, les deux octets forment une valeur sur 14 bits — 16 384 positions — centrée sur 8 192, qui signifie « pas de déplacement ». Cette précision élevée vient du besoin musical : une molette de pitch bend doit pouvoir interpoler de façon parfaitement lisse, sans escaliers audibles. La plage par défaut est de ±2 demi-tons, mais elle est paramétrable par le RPN 0 (Registered Parameter Number, §7) jusqu'à ±24 demi-tons sur la plupart des instruments. Le piège : on oublie facilement que le centre est 8192 et pas 0 — un patch qui envoie 0 comme « valeur neutre » met la hauteur deux tons en-dessous.

Sept messages, sept octets de statut, deux familles d'usage : les notes (On, Off, Poly AT) et les paramètres (CC, Program Change, Channel AT, Pitch Bend). C'est la totalité du vocabulaire Channel Voice de MIDI 1.0. Tout le reste — clock, transport, SysEx — est System (§6), adressé hors-canal. Connaître la table des sept et leurs pièges est le socle qui permet de lire un flux MIDI sans confusion.
sept types, sept pièges. un note on de vélocité 0 vaut note off — le plus connu en cache six autres.
Schéma
Les sept messages Channel Voice de MIDI 1.0Tableau des sept types de messages Channel Voice en MIDI 1.0. Colonnes : nom, octet de statut (hex), nombre d’octets, rôle, et un piège typique pour chaque type. Note On 0x9n : 3 octets, déclenche une note, vélocité 0 est un Note Off déguisé. Note Off 0x8n : 3 octets, relâche une note, release velocity rarement lue. Poly Aftertouch 0xAn : 3 octets, pression par note, rare, supplanté par Channel AT. Control Change 0xBn : 3 octets, contrôleurs continus, 128 adresses, détaillé en §7. Program Change 0xCn : 2 octets, sélectionne un son, off-by-one 0-127 vs 1-128. Channel AT 0xDn : 2 octets, pression globale, ne distingue pas les notes. Pitch Bend 0xEn : 3 octets, hauteur continue, centre 8192 pas 0.LES SEPT MESSAGES CHANNEL VOICETYPESTATUTOCTETSRÔLEPIÈGENote On0x9n3déclencher une notevélocité 0 = Note Off déguiséNote Off0x8n3relâcher une noterelease velocity rarement luePoly AT0xAn3pression par noterare, supplanté par Channel ATControl Change0xBn3contrôleurs continus128 adresses → §7Program Change0xCn2sélectionner un sonoff-by-one 0-127 ↔ 1-128Channel AT0xDn2pression globalene distingue pas les notesPitch Bend0xEn3hauteur continuecentre = 8192, pas 0ces sept couvrent tout ce qui passe par un canal.clock, transport et sysex sont SYSTEM (§6).
Le cycle de vie d’une note MIDI : Note On la déclenche, elle sonne, Note Off la termine. La durée est l’intervalle.Un axe de temps. Au début, NOTE ON 0x90 avec vélocité 100 déclenche la note. La note reste active (DO sonne) pendant une durée. Puis NOTE OFF 0x80 avec relâché la termine. La durée égale l’intervalle entre On et Off — jamais transmise comme telle. Un Note Off manquant laisse une note bloquée.CYCLE DE VIE D’UNE NOTE — ON, TENUE, OFFtempsnote active (DO sonne)NOTE ON0x90 · vélocité 100NOTE OFF0x80 · relâchédurée = intervalle On → Offla durée n’est jamais transmise — c’est l’écart entre deux messages.un Note Off manquant = une note bloquée (hanging note).
Aftertouch : le channel aftertouch envoie une valeur de pression pour tout le canal, le poly une par touche.À gauche, channel aftertouch (0xDn) : trois touches pressées convergent vers une seule jauge de pression — une valeur pour tout le canal. À droite, poly aftertouch (0xAn) : chaque touche pressée a sa jauge à un niveau différent — une valeur par touche, indépendantes. Channel utilise un capteur global (répandu) ; poly un capteur par touche (rare, cher, très expressif).AFTERTOUCH — CANAL vs POLYPHONIQUECHANNEL · 0xDn1 valeur · tout le canalPOLY · 0xAn1 valeur par touche · indépendanteschannel = un capteur global (répandu). poly = un capteur par touche(rare, cher, très expressif). même idée, ressenti très différent.
/ 05

LES CANAUX

le modèle d'adressage et ses limites
L'octet de statut d'un Channel Voice (§3) loge le canal dans son quartet de poids faible : quatre bits, donc seize valeurs, de 0 à 15. À l'écran ces canaux s'affichent 1 à 16 ; dans l'octet ils valent 0 à 15. Seize adresses logiques sur un seul câble — c'est tout l'adressage de MIDI 1.0.

Un canal n'est pas un fil physique. C'est une étiquette portée par chaque message, que les appareils lisent pour décider si un ordre les concerne. Plusieurs instruments branchés en chaîne reçoivent le même flux ; chacun ne réagit qu'aux messages de son canal et ignore les autres. La séparation est logique, pas matérielle.

La manière dont un appareil écoute ces canaux dépend de son mode de réception. Deux axes se combinent. Le premier, Omni, décide s'il écoute tous les canaux indistinctement (Omni On) ou seulement le sien (Omni Off). Le second, Poly contre Mono, décide s'il joue plusieurs notes à la fois (Poly) ou une seule (Mono). Les quatre combinaisons donnent les quatre modes historiques de la norme — Omni On/Poly, Omni On/Mono, Omni Off/Poly, Omni Off/Mono — sélectionnés par les Channel Mode messages vus à l'§7 (CC 124 à 127).

C'est ici que se distinguent les deux familles partageant le statut 0xBn. En dessous du CC 120, ce sont des Channel Voice — des contrôleurs continus qui agissent sur le son. À partir du CC 120, ce sont des Channel Mode — des ordres qui agissent sur la manière dont le canal écoute. Même octet de statut, deux rôles, séparés par un seuil dans le numéro de contrôleur.

Le canal porte aussi une économie. Comme l'octet de statut ne change pas tant que s'enchaînent des messages de même type sur le même canal, la norme autorise à l'omettre : c'est le running status. Après un premier Note On, une suite de paires note/velocity suffit — chaque nouvelle paire est interprétée comme un Note On tant qu'aucun autre statut n'arrive. Couplé à la convention « Note On de velocity 0 vaut Note Off » (§3), le running status réduit nettement le débit : un flux dense de notes tient sur deux octets par événement au lieu de trois.

Seize canaux permettent la multitimbralité : un seul appareil qui joue plusieurs sons distincts, un par canal — un piano sur le canal 1, une basse sur le 2, une batterie sur le 10. Un expandeur multitimbral est, de ce point de vue, seize instruments dans une boîte, adressés par un seul câble.

Mais seize est un plafond bas. Dès qu'une expression par note est recherchée — un pitch bend propre à chaque doigt sur un clavier, par exemple — le modèle coince : le pitch bend, les contrôleurs et la pression s'appliquent au canal entier, donc à toutes ses notes en même temps. Contourner cette limite a d'abord donné MPE, qui détourne les canaux en en dédiant un par note (§10), puis MIDI 2.0, qui fait sauter le plafond en passant à 256 canaux et en rendant les contrôleurs natifs par note (§11). Les seize canaux de 1983 n'ont pas disparu ; ils sont devenus la cellule de base d'un adressage bien plus large.
le canal n'est pas un fil. c'est une étiquette que chaque message porte, et que chaque appareil lit pour savoir si l'ordre le concerne.
Schéma
Un bus MIDI, seize canaux, messages systèmeUn grand cercle bordé d’or représente le bus MIDI. À l’intérieur, seize cercles numérotés 1 à 16 représentent les canaux. Un cercle violet au centre étiqueté MESSAGES SYSTÈME représente la famille de messages qui ne portent pas d’adresse de canal.BUS · 16 CANAUX · MESSAGES SYSTÈME(tous partagent le même fil physique)← le bus12345678910111213141516MESSAGESSYSTÈMEncanal (1-16)message système (sans canal)le bus est l’enveloppe physique partagée.les canaux sont des étiquettes — les messages système n’en portent aucune.
Running status : l’octet de statut répété omisTrois Note On enchaînés. Forme complète : neuf octets, le statut 0x90 répété à chaque fois. Running status : sept octets, l’octet de statut omis sur les deuxième et troisième notes puisque type et canal ne changent pas.RUNNING STATUS · TROIS NOTES ENCHAÎNÉESFORME COMPLÈTE · 9 OCTETS903C40903E40904040RUNNING STATUS · 7 OCTETS903C40·omis3E40·omis4040le quartet bas de l’octet de statut porte le canal : 0 à 15.tant que type et canal ne changent pas, l’octet de statut peut être omis.
Multitimbralité : un port MIDI porte 16 canaux, un synthé multitimbral donne à chacun un son différent.Un port MIDI (or, 16 canaux) se relie par un seul câble à un synthé multitimbral. À l’intérieur, chaque canal reçoit un son différent : canal 1 piano, canal 2 basse, canal 3 cordes, canal 10 batterie, etc. jusqu’au canal 16 lead. Un seul jeu pilote tout un orchestre.MULTITIMBRALITÉ — UN PORT, 16 TIMBRES1 port MIDI16 canauxsynthé multitimbralch1 · pianoch2 · bassech3 · cordesch10 · batteriech16 · leadun seul câble porte 16 canaux — un synthé multitimbralaffecte un son différent à chacun. un seul jeu, tout un orchestre.
/ 06

LES MESSAGES SYSTÈME

une classe de messages adressés à aucun canal
Quand on appuie sur PLAY dans Ableton et que le synthé externe démarre exactement à l'instant, qu'un sampleur reste synchronisé pendant toute la session, qu'un firmware se met à jour par câble MIDI, qu'une bibliothèque de patches est sauvegardée depuis un vieux DX7 sur disque dur — tout ça passe par les messages System. C'est la deuxième super-famille de MIDI, en face des Channel Voice (§4). La différence tient en une caractéristique : ces messages s'adressent au système entier, jamais à un instrument particulier.

Techniquement, ils se reconnaissent à leur octet de statut. Dès que le quartet haut atteint 0xF — les valeurs 0xF0 à 0xFF — la convention canal disparaît. Le quartet bas, qui dans les Channel Voice portait le numéro de canal de 0 à 15 (§3), devient à la place un sous-type. C'est pour ça qu'un message System n'a pas de canal : la place est prise par autre chose. Seize statuts disponibles, partagés entre trois familles bien distinctes.

System Common (0xF1 à 0xF6) regroupe les messages adressés au système entier mais ponctuellement, pas en continu. Quatre cas pratiques utilisés en production :

- MIDI Time Code Quarter Frame (0xF1) — composante d'une horloge SMPTE transmise par MIDI. Permet de synchroniser une bande, un séquenceur vidéo, ou une session DAW au time code d'un autre système (§9 pour le détail).
- Song Position Pointer (0xF2) — indique où en est-on dans la séquence courante, exprimé en seizièmes de note depuis le début. Pratique pour qu'un sampleur sache reprendre au bon endroit après un saut de l'utilisateur dans la timeline.
- Song Select (0xF3) — sélectionne une chanson par numéro (0-127) parmi celles stockées dans un séquenceur. Très utilisé dans les setups live à base de séquenceurs hardware.
- Tune Request (0xF6) — demande à tous les synthés analogiques sur le bus de se réaccorder. Hérité d'une époque où les VCO dérivaient avec la température.

Les valeurs 0xF4 et 0xF5 sont réservées par la spécification — jamais émises en pratique. Le 0xF7 a un usage particulier (fin de SysEx, voir plus bas).

System Real-Time (0xF8 à 0xFF) est l'horlogerie du protocole. Six messages d'un seul octet chacun (statut, sans données), parce qu'ils doivent traverser le bus avec une latence négligeable :

- Timing Clock (0xF8) — 24 impulsions par noire. C'est l'horloge maître qui maintient le tempo synchronisé entre tous les appareils du bus.
- Start (0xFA) — démarre la séquence depuis le début.
- Continue (0xFB) — reprend la séquence là où elle était arrêtée.
- Stop (0xFC) — arrête la séquence.
- Active Sensing (0xFE) — heartbeat optionnel envoyé toutes les 300 ms, qui permet au récepteur de détecter une déconnexion du câble. Rarement utilisé en pratique.
- Reset (0xFF) — réinitialise tout au démarrage.

Le cas pratique typique : quand on appuie sur PLAY dans Ableton Live configuré comme master de transport, ce sont d'abord un Start (0xFA) puis un flux continu de Clock (0xF8) à 24 ppqn qui sortent vers les appareils esclaves. Le synthé branché en aval reçoit le Start et démarre à l'instant exact, puis chaque pulse maintient le tempo aligné sur la DAW.

LE PIÈGE — priorité absolue. Les Real-Time peuvent s'insérer en plein milieu d'un autre message Channel Voice. Si un Note On de trois octets est en cours d'émission et qu'une Clock survient parce qu'on est sur un battement, la Clock passe entre deux octets du Note On. Le récepteur doit savoir que tout statut de 0xF8 à 0xFF est à traiter immédiatement, sans interrompre le parsing du message en cours. Un parseur naïf qui lit octet par octet sans cette logique va prendre la Clock pour une donnée du Note On et corrompre tout son flux. C'est l'une des subtilités qui rend l'écriture d'un parseur MIDI robuste plus délicate qu'elle n'en a l'air.

System Exclusive (SysEx) commence par 0xF0 et se termine par 0xF7. Entre les deux, tout est permis. C'est la trappe ouverte du protocole pour ce qui ne rentre dans aucune autre catégorie : édition par sysex sur les anciens synthés (DX7, Juno-106, Wavestation, MicroKorg), banks de patches sauvegardées sur disque, firmware updates, requêtes propriétaires, communication interne entre modules d'un même fabricant.

La structure minimale d'un message SysEx :

- 0xF0 — début
- 1 à 3 octets d'identifiant fabricant (Roland = 0x41, Yamaha = 0x43, Sequential = 0x01, Moog = 0x04, Korg = 0x42, etc. — assigné par le MIDI Manufacturers Association)
- N octets de payload, chacun ≤ 0x7F pour ne pas être confondu avec un statut
- 0xF7 — fin

Le payload n'est pas standardisé. Chaque fabricant invente son protocole interne, et un dump de patches d'un Korg n'a aucune chance d'être interprété par un Yamaha. C'est wild west — l'interopérabilité du SysEx est nulle par construction. La spécification SysEx Universal (identifiants 0x7E pour non-real-time, 0x7F pour real-time) ajoute une couche standardisée par-dessus : MTC Full Frame, GM Mode On/Off, Master Volume, Master Balance. Mais ces standards Universal restent l'exception, et 95 % du SysEx en circulation est propriétaire.

LE DEUXIÈME PIÈGE — le 0xF7 fait double emploi. Marqueur de fin de SysEx, mais aussi statut System Common théoriquement réservé. En pratique, le 0xF7 isolé n'est jamais émis par un appareil — il sert toujours à fermer une trame SysEx ouverte. Cette ambiguïté est l'une des cicatrices d'un protocole qui a manqué d'octets de statut dès 1983 et qui a dû recycler ce qu'il avait.

System = trois familles, seize statuts, une caractéristique commune : aucune notion de canal. Common pour le ponctuel, Real-Time pour l'horlogerie temps-réel, Exclusive pour l'illimité-fabricant. C'est le complément structurel des sept messages Channel Voice (§4). Ensemble — sept Channel Voice + seize System — ils forment l'intégralité du vocabulaire de MIDI 1.0 à l'octet près.
quand le statut atteint 0xf, le quartet bas cesse d'être un canal et devient un sous-type. trois familles vivent là — common, real-time, sysex.
Schéma
Carte des statuts MIDI System 0xF0 à 0xFFUne grille de 16 cellules couvrant les octets de statut de 0xF0 à 0xFF. Ces octets n’ont pas de quartet canal : leur quartet bas encode un sous-type. Groupes de couleur : violet pour les délimiteurs SysEx (0xF0 début et 0xF7 fin EOX), bleu pour System Common (0xF1 MTC Quarter Frame, 0xF2 Song Position, 0xF3 Song Select, 0xF6 Tune Request), rouge pour System Real-Time (0xF8 Clock, 0xFA Start, 0xFB Continue, 0xFC Stop, 0xFE Active Sense, 0xFF Reset). Les cellules grises (0xF4, 0xF5, 0xF9, 0xFD) sont réservées/non définies.LES SEIZE OCTETS DE STATUT 0xF0–0xFF0xF0SysEx0xF1MTC Quarter0xF2Song Pos0xF3Song Sel0xF40xF50xF6Tune Req0xF7EOX0xF8Clock0xF90xFAStart0xFBContinue0xFCStop0xFD0xFEAct. Sense0xFFResetSysExSystem CommonSystem Real-Timeréservé0xF = pas de canal. ces messages parlent au système, pas à un instrument.
Anatomie d’un message SysEx : F0, ID fabricant, payload, F7.Un message SysEx a quatre parties : F0 le démarre, un ID fabricant (Roland 0x41, Yamaha 0x43, Korg 0x42, Universel 0x7E ou 0x7F), un payload propriétaire de longueur libre, et F7 le termine (EOX). Entre F0 et F7 le fabricant fait ce qu’il veut : dumps de sons, réglages, firmware.ANATOMIE D’UN MESSAGE SYSEXF0début SysEx41 / 43 / 42ID fabricant... data ...payload propriétaireF7fin (EOX)(longueur libre — bornée seulement par F7)IDs fabricant0x41Roland0x43Yamaha0x42Korg0x7E/7FUniverselentre F0 et F7, le fabricant fait ce qu’il veut —dumps de sons, réglages, firmware : un canal privé.
L’horloge MIDI bat 24 fois par noire via des messages F8.Une ligne de temps montre des ticks. Chaque tick est un message F8 Clock ; il y a 24 ticks par noire. Des repères or tombent sur chaque temps. Vingt-quatre ticks font une noire — c’est le tempo partagé. Start FA, Stop FC, Continue FB pilotent le transport.L’HORLOGE MIDI — 24 IMPULSIONS PAR NOIREnoire 1noire 2noire 3chaque tick = un F8 (Clock)24 ticks = 1 noireF8 bat 24 fois par noire — c’est le tempo partagé.Start (FA), Stop (FC), Continue (FB) pilotent le transport.
/ 07

FOCUS · LES CONTROL CHANGES

128 contrôleurs, à moitié normalisés
Le Control Change est le message 0xBn : un octet de statut, puis deux octets de données — le numéro de contrôleur (0 à 127) et sa valeur (0 à 127). Sous cette forme unique se cache la zone la plus vaste et la plus disparate de MIDI 1.0 : 128 adresses où passe tout ce qui n'est ni une note, ni un changement de programme, ni un message système. Modulation, volume, panoramique, pédales, sélection de banque, réglages fins de synthèse — tout transite par le même format, distingué seulement par son numéro.

La carte des 128 numéros n'est pas uniforme. Une partie est normalisée par la spécification MIDI : un appareil qui reçoit le CC 7 sait qu'il s'agit du volume, d'où qu'il vienne. Une autre partie est laissée libre, à la discrétion des fabricants. C'est cette moitié ouverte qui fait la richesse — et le désordre — de l'écosystème : deux synthétiseurs peuvent assigner le même numéro à deux paramètres sans rapport.

Quelques numéros structurent l'usage courant :

- CC 1 — la molette de modulation. Le contrôleur expressif par défaut, presque toujours câblé sur un vibrato ou une ouverture de filtre.
- CC 7 — le volume du canal. Le niveau global, celui que touche un fader de console.
- CC 10 — le panoramique. La position dans le champ stéréo, 0 à gauche, 64 au centre, 127 à droite.
- CC 11 — l'expression. Un second volume, relatif, pensé pour les nuances à l'intérieur d'une phrase sans toucher au niveau global du CC 7.
- CC 64 — la pédale de sustain. Au-delà de 63, la pédale est enfoncée ; en deçà, relâchée.

Le problème des sept bits (§3) frappe ici aussi : 128 crans suffisent rarement pour un balayage de filtre ou un fondu lent, où l'escalier s'entend. La norme prévoit donc un mécanisme de résolution 14 bits par appariement. Les CC 0 à 31 sont les octets de poids fort ; les CC 32 à 63 sont leurs octets de poids faible correspondants. Émettre le CC 1 puis le CC 33 compose une valeur de modulation sur 14 bits — 16384 crans au lieu de 128. En pratique, peu d'appareils implémentent le poids faible : la moitié basse de la carte reste souvent inutilisée.

Une paire sert presque toujours : Bank Select. Le CC 0 et le CC 32 sélectionnent une banque de sons avant qu'un Program Change (§3) ne choisisse le programme à l'intérieur. Sans cette paire, le Program Change ne donne accès qu'aux 128 premiers sons ; avec elle, l'espace s'ouvre à des milliers.

Le haut de la carte est réservé. Les CC 120 à 127 ne sont pas des contrôleurs continus mais des Channel Mode messages — des ordres adressés au canal lui-même :

- CC 120 — All Sound Off : coupe immédiatement tout son en cours.
- CC 121 — Reset All Controllers : remet les contrôleurs à leur valeur par défaut.
- CC 123 — All Notes Off : relâche toutes les notes tenues.
- CC 124 à 127 — les modes Omni et Mono/Poly, qui définissent comment le canal écoute (§5).

Reste le mécanisme le plus indirect : les Registered et Non-Registered Parameter Numbers. Plutôt que d'occuper un numéro de contrôleur par paramètre, RPN et NRPN en utilisent quelques-uns comme adressage. Un paramètre est sélectionné d'abord — CC 101 et 100 pour un RPN, paramètre normalisé comme la sensibilité du pitch bend ; CC 99 et 98 pour un NRPN, paramètre propre au fabricant — puis sa valeur est éditée par le Data Entry, CC 6 et CC 38. Un protocole dans le protocole, qui ouvre un espace d'adressage quasi illimité au prix d'une séquence de plusieurs messages.

Cette double nature — une moitié normalisée, une moitié libre — est la grande affaire des Control Changes. Elle explique qu'un même mouvement de molette pilote un filtre sur un synthétiseur et rien du tout sur un autre. La norme a fixé l'indispensable et laissé le reste ouvert ; quarante ans d'usage ont rempli les blancs de conventions parfois contradictoires.
un control change, c'est une adresse et une valeur. ce que l'adresse veut dire ne voyage jamais avec elle.
Schéma
La carte des 128 numéros de Control ChangeUn message Control Change : octet de statut 0xB0, numéro de contrôleur, valeur 0-127. Les 128 numéros se répartissent en zones : 0-31 poids fort, 32-63 poids faible (appariés pour une résolution 14 bits), 64-119 interrupteurs et contrôleurs continus, 120-127 channel mode.CONTROL CHANGE · UN NUMÉRO, UNE VALEUROCTET DE STATUTN° DE CONTRÔLEURVALEUR0xB00164type | canalmodulation0 à 127LES 128 NUMÉROSPOIDS FORTPOIDS FAIBLEINTERRUPTEURS · CONTINUSMODE03264120127APPARIÉS → 14 BITS · 16384 CRANSCC STANDARDS1 mod · 7 volume · 10 pan · 11 expression · 64 sustainla moitié des numéros est normalisée ; l’autre, laissée aux fabricants.
MSB et LSB : deux CC 7 bits se combinent en une valeur 14 bits de 16384 paliers.Deux control changes se combinent pour la haute résolution. CC n est le MSB (grossier, 7 bits, ex. CC 0). CC n+32 est le LSB (fin, 7 bits, ex. CC 32). Combinés en MSB fois 128 plus LSB, ils forment une valeur 14 bits : 16384 paliers au lieu de 128, pour des mouvements fins sans l’escalier.MSB / LSB — DEUX CC POUR 14 BITSCC n (MSB)grossier · 7 bitsex. CC 0CC n+32 (LSB)fin · 7 bitsex. CC 32+valeur 14 bits(MSB × 128) + LSB0-1270-127une paire de CC (n et n+32) se combine en 14 bits : 16 384 paliersau lieu de 128. des mouvements fins sans l’escalier.
Choisir un son : Bank Select MSB (CC0), Bank Select LSB (CC32), puis Program Change choisissent un son précis dans une banque précise.Trois étapes en séquence. Étape 1 : CC 0, Bank Select MSB (banque, gros). Étape 2 : CC 32, Bank Select LSB (banque, fin). Étape 3 : Program Change, le son 0-127. Le Program Change seul atteint 128 sons ; envoyer Bank Select d’abord débloque 16384 banques fois 128, plus de deux millions de sons adressables.CHOISIR UN SON — BANK SELECT + PROGRAM CHANGECC 0Bank MSBbanque (gros)étape 1CC 32Bank LSBbanque (fin)étape 2PC nProgram Changele son · 0-127étape 3un son précis, dans une banque précise(MSB × 128 + LSB) → banque · PC → sonle Program Change seul atteint 128 sons. Bank Select d’aborddébloque 16384 banques × 128 = plus de deux millions de sons adressables.
/ 08

LE TRANSPORT

cinq supports physiques portent un même protocole
Quand on branche un câble MIDI, on a souvent l'impression qu'il existe « le » câble MIDI. En réalité, cinq supports physiques différents portent aujourd'hui le même protocole, et le choix entre eux change tout — la latence audible, la distance maximale, la fiabilité en scène, le plug-and-play. Le bus MIDI (§2) est logique et invariant ; ce sont ses incarnations matérielles qui varient en bas niveau. Connaître les cinq et leurs particularités évite des heures perdues à chercher pourquoi un câble ne « passe pas ».

Note importante — on parle ici du transport physique, les supports matériels qui portent les octets. À ne pas confondre avec le transport du séquenceur (Play, Stop, Record, Locate, Rewind), qui est une famille de commandes au niveau message, traitée dans l'§9 (MMC). Même mot, deux univers complètement distincts.

DIN-5 (depuis 1983) est le standard d'origine. Un connecteur rond à cinq broches, dont trois utilisées : broches 4 et 5 pour les données, broche 2 pour la masse de blindage. À l'intérieur de chaque récepteur, une opto-isolation par diode infrarouge découple électriquement émetteur et récepteur — aucun courant ne traverse, aucune boucle de masse possible. C'est cette opto-isolation qui a fait la robustesse du protocole en scène pendant quarante ans. Débit : 31 250 bauds (31,25 kbps), choisi en 1983 pour être atteignable avec l'électronique abordable de l'époque. Latence par octet : 0,32 ms environ (un octet = 10 bits avec start et stop, soit 320 µs à 31,25 kbps). Longueur max théorique : 15 mètres avant dégradation du signal, souvent moins en pratique selon la qualité du câble. Connecteurs unidirectionnels (IN, OUT, THRU séparés — voir §2 sur la daisy chain), encombrants à transporter mais quasi-indestructibles à l'usage. La plupart des claviers de scène et synthés rack haut de gamme conservent du DIN-5 précisément pour cette robustesse.

TRS 3,5 mm (depuis 2014-2015) est apparu avec la miniaturisation des contrôleurs — Korg Volca, Arturia BeatStep, Make Noise 0-Coast, Teenage Engineering OP-1. Le mini-jack stéréo (Tip / Ring / Sleeve, trois broches) remplace le DIN-5 quand l'encombrement devient prohibitif. Même opto-isolation, même débit 31 250 bauds, même latence. Connecteur petit, courant en audio, bon marché.

LE PIÈGE TRS — deux câblages incompatibles circulent depuis le début, sans norme officielle pendant des années :
- Type A : Tip = data, Ring = +5V — standardisé officiellement par le MIDI Manufacturers Association en 2018 ; adopté par Korg, Make Noise, Novation (après 2018), Empress
- Type B : Tip = +5V, Ring = data — câblage historique utilisé avant 2018 par Novation, Arturia, Akai

Brancher un câble TRS standard entre un appareil Type A et un appareil Type B donne un silence complet. L'opto-isolation protège contre tout dégât matériel, mais aucune communication ne passe. Solutions : utiliser un adaptateur TRS-DIN spécifique au type, un câble réversible (Befaco notamment fabrique ces câbles croisés), ou vérifier les specs avant achat. Beaucoup de matériel d'avant 2018 reste en Type B sans mise à jour — toujours vérifier le manuel.

USB-MIDI (depuis 1999) est devenu le standard de fait pour la connexion entre ordinateur et matériel MIDI. La spécification USB Audio Class 1.0 inclut MIDI dès 1999 ; la classe Class Compliant garantit qu'aucun driver propriétaire n'est nécessaire — l'OS reconnaît directement le périphérique au branchement, sur Windows, macOS, Linux, iOS, Android. Latence USB typique : 1 à 3 millisecondes, négligeable musicalement. Débit : très supérieur au strict besoin MIDI, ce qui permet de multiplexer plusieurs bus sur un seul câble — un seul connecteur USB peut porter, virtuellement, plusieurs ports MIDI indépendants (§2 sur le sujet des bus). Distance maximale d'un câble USB passif : 5 mètres ; au-delà, hub actif ou extender nécessaire. Alimentation possible par USB pour les contrôleurs sans alim externe — pratique pour les setups mobiles.

BLE-MIDI (depuis 2014) transporte MIDI sur Bluetooth Low Energy. Spécification publiée par Apple en 2014 avec iOS 8, supportée nativement par macOS El Capitan en 2015, puis par Windows plus tard. Sur Android, l'arrivée a été plus tardive et fragmentée selon les fabricants. Plus de câble, mobilité maximale, appairage en quelques secondes.

LE PIÈGE BLE — latence variable et imprévisible. Contrairement aux supports filaires où la latence est constante et basse, BLE-MIDI a typiquement entre 5 et 15 millisecondes de latence en conditions idéales, et peut monter à 30 ms ou plus en présence d'interférences (Wi-Fi 2,4 GHz qui partage la même bande, autres appareils Bluetooth, distance, obstacles). Cette variabilité rend BLE-MIDI inutilisable pour qui joue en temps réel avec un sampleur strict, un séquenceur précis, ou tout setup qui demande une synchronisation au millième près. Acceptable pour les contrôleurs lents (pédales d'expression, fader controllers, claviers d'étude), inacceptable pour la performance live qui demande une précision rythmique stricte.

RTP-MIDI / AppleMIDI (depuis 2005) transporte MIDI sur un réseau IP. Apparu dans macOS Tiger en 2005 sous le nom AppleMIDI, normalisé sous les RFC 4695 et 6295 du IETF en tant que RTP-MIDI. Utilise UDP sur le port 5004. Sur LAN local, latence de 1 à 5 ms — comparable à USB. Sur Wi-Fi ou via WAN distant, dépendante de la qualité du réseau. Distance théoriquement illimitée tant qu'on reste sur le même réseau (ou via VPN). Permet de connecter une machine Mac à une autre par Ethernet, Wi-Fi, ou Internet — pratique pour distribuer un setup entre plusieurs machines, ou contrôler à distance depuis un autre lieu. Sur Windows, le driver rtpMIDI de Tobias Erichsen est l'équivalent, gratuit, largement utilisé en pratique. Configuration : découverte Bonjour automatique entre machines Apple, ou saisie d'IP explicite sinon. Moins plug-and-play qu'USB mais ouvre des architectures de setup impossibles autrement.

Cinq supports, un même protocole. Ce qui circule sur le câble — les octets MIDI eux-mêmes (§3, §4, §6) — est identique partout, à l'octet près. Mais le choix du support détermine tout le reste : la latence audible (de 0,3 ms pour DIN-5 à 30 ms pour BLE en interférence), la portée (15 m pour DIN-5, illimitée pour RTP-MIDI sur LAN), la fiabilité en scène (DIN-5 est increvable, BLE peut décrocher à la moindre interférence), l'expérience plug-and-play (USB sans config, BLE avec appairage, RTP avec config réseau). Le bon réflexe : choisir le support pour son usage, pas l'inverse — DIN-5 pour la scène robuste, USB pour le studio, TRS pour les petits contrôleurs (en vérifiant A versus B), BLE pour la mobilité non-stricte, RTP pour les setups distribués.
cinq supports physiques portent le même protocole. ce qui change : la latence, la distance, le piège.
Schéma
Les cinq couches physiques qui portent MIDI : DIN-5, TRS 3.5mm, USB-MIDI, BLE-MIDI, RTP-MIDITableau comparatif des cinq supports physiques portant le protocole MIDI. Colonnes : support, connecteur, débit, latence, distance, piège. DIN-5 : 5 broches 180 degrés, 31250 bauds, 0,3 ms par octet, 15 m max, encombrant. TRS 3,5 mm : mini-jack, 31250 bauds, 0,3 ms par octet, 1-2 m, Type A et Type B incompatibles. USB-MIDI : USB A/B/C, débit très élevé, 1-3 ms, 5 m, hub actif au-delà. BLE-MIDI : Bluetooth LE, radio 2,4 GHz, 5-30 ms, 10 m, latence variable. RTP-MIDI : RJ45 ou Wi-Fi, débit LAN, 1-5 ms, distance illimitée, configuration réseau requise.CINQ SUPPORTS, UN PROTOCOLE — LES COUCHES PHYSIQUESSUPPORTCONNECTEURDÉBITLATENCEDISTANCEPIÈGEDIN-55-broches 180°31250 bauds0,3 ms/oct15 m maxencombrantTRS 3.5mmmini-jack31250 bauds0,3 ms/oct1-2 mType A vs Type BUSB-MIDIUSB A/B/Ctrès élevé1-3 ms5 mhub actif au-delàBLE-MIDIBluetooth LEradio 2.4G5-30 ms10 mlatence variableRTP-MIDIRJ45 / Wi-FiLAN1-5 msillimitéeconfig réseauce qui circule (les octets) est identique partout.ce qui change : la latence, la distance, le piège.
Mini-jack TRS MIDI : le Type A met data sur Tip, le Type B sur Ring ; les deux sont incompatibles.Deux câblages de mini-jack TRS. Type A (or, 2018+, Korg Make Noise Novation) : data sur Tip, +5V sur Ring. Type B (rouge, pré-2018, Arturia Akai Novation anciens) : data sur Ring, +5V sur Tip. Même connecteur, deux câblages — brancher A sur B donne un silence total, sans dégât et sans signal.MINI-JACK TRS — TYPE A vs TYPE BTRSTYPE Adata = Tip · +5V = Ring2018+ · Korg, Make Noise, Novation+TRSTYPE Bdata = Ring · +5V = Tippré-2018 · Arturia, Akai, Novation anciensincompatibles — silencemême connecteur, deux câblages. data sur Tip (A) ou Ring (B) —brancher A sur B = silence total (pas de dégât, pas de signal).
Latence des transports comparée : DIN-5 et USB environ 1-2 ms, RTP environ 4 ms, BLE environ 15 ms avec jitter.Barres horizontales de latence. DIN-5 environ 1 ms et USB-MIDI environ 2 ms (vert, court, stable). RTP-MIDI environ 4 ms (or) avec un peu de jitter. BLE-MIDI environ 15 ms (rouge) avec une large plage de jitter pointillée. Le filaire est court et stable ; le sans-fil BLE est long et variable, et le jitter est ce qui désynchronise un jeu serré.LATENCE DES TRANSPORTS — FILAIRE vs SANS-FILDIN-5~1 msUSB-MIDI~2 msRTP-MIDI± jitter~4 msBLE-MIDI± jitter~15 ms0 ms510152025filaire = court et stable. sans-fil (BLE) = long et variable —le jitter (pointillé) est ce qui désynchronise un jeu serré.
/ 09

LES COUCHES POSÉES DESSUS

sept conventions ajoutées par-dessus MIDI 1.0 pour le rendre interopérable
MIDI 1.0 (§2 à §8) transporte des octets entre machines. Mais une fois l'octet arrivé : que signifie-t-il ? Program Change 0 — quel son joue exactement ? Comment caler un séquenceur sur une bande vidéo au quart d'image près ? Comment archiver une session pour la rejouer demain sur une autre machine ? MIDI 1.0 ne répond à aucune de ces questions. Sept conventions ont été posées par-dessus, à des époques différentes, par le MIDI Manufacturers Association (organisme standard) ou par des constructeurs concurrents (Roland, Yamaha). Aucune n'est obligatoire — mais sans elles, MIDI reste un protocole de transport stupide, incapable de garantir qu'un fichier produit ici jouera là, qu'une horloge externe synchronisera la session, qu'un magnéto distant obéira au PLAY.

GENERAL MIDI — GM (1991, MMA) : le contrat minimum d'interopérabilité sonore. 128 programmes standardisés numérotés 0 à 127 : Program 0 = Acoustic Grand Piano, Program 24 = Acoustic Guitar (Nylon), Program 56 = Trumpet, Program 80 = Lead Square Wave, etc. Canal 10 réservé pour les kits de batterie avec correspondance note ↔ instrument percussif (note 36 = Bass Drum 1, note 38 = Acoustic Snare, note 49 = Crash Cymbal 1). Polyphonie minimale garantie : 24 voix. Support obligatoire de All Notes Off (CC 123, §7) pour reset propre. GM se branche sur MIDI 1.0 par le simple Program Change (§4) — pas de mécanisme nouveau, juste un dictionnaire partagé.

LE PIÈGE GM, le plus connu — c'est un contrat minimum. GM fixe les NOMS et POSITIONS, jamais le rendu sonore. Program 0 = "Acoustic Grand Piano" mais le piano d'un Roland Sound Canvas SC-55 (1991) sonne radicalement différent de celui d'un Yamaha MU100 (1997), et les deux n'ont rien à voir avec un FluidSynth moderne tournant sur une banque SoundFont libre. GM garantit "ça joue un piano sur le canal 1", pas "ça sonne pareil". C'est le malentendu classique avec les fichiers .mid qui circulent sur Internet depuis vingt-cinq ans.

GENERAL MIDI 2 — GM2 (1999, MMA) : extension propre du GM par la même autorité. 256 programmes au lieu de 128, accessibles via Bank Select (CC 0 grossier + CC 32 fin, §7) suivi du Program Change. Polyphonie minimale relevée à 32 voix. CC supplémentaires standardisés : Filter Cutoff (CC 74), Resonance (CC 71), Attack (CC 73), Release (CC 72), Vibrato Rate/Depth/Delay. RPN et NRPN standardisés. Drum kits supplémentaires. Rétro-compatible : un fichier GM joue correctement sur du matériel GM2. En pratique : peu utilisé. La majorité des .mid qui circulent sont GM ; GM2 reste confiné aux DAW et workstations qui l'implémentent par scrupule.

GS (Roland, 1991) et XG (Yamaha, 1994) : les sur-ensembles propriétaires. Apparus presque simultanément avec GM, dans la guerre commerciale des workstations grand public des années 90 (les fameux modules sonores SC-55, SC-88, MU80, MU100). Chacun étend GM avec ses propres banques étendues, ses propres CC, ses propres SysEx — et ils ne sont pas compatibles entre eux. Un fichier .mid étiqueté GS jouera correctement sur un Roland Sound Canvas mais perdra toutes ses fioritures sur un Yamaha MU. Inversement pour XG.

GS étend GM par Bank Select MSB Roland-spécifique combiné aux SysEx Roland (identifiant fabricant 0x41, §6). XG fait pareil avec ses propres valeurs Bank Select et ses SysEx Yamaha (0x43). En pratique aujourd'hui : reliquat historique. GS et XG survivent via émulateurs (Roland SC-VA, Yamaha SYXG50) et collections de SoundFont GS/XG. Aucun nouveau matériel ne les implémente. Bonnes connaissances historiques pour comprendre un vieux .mid de 1996 ; pas d'usage productif aujourd'hui.

MTC — MIDI TIME CODE (1987, MMA) : le timecode SMPTE encapsulé dans MIDI. SMPTE est le timecode vidéo/film standardisé (heures:minutes:secondes:images), traditionnellement transmis sur un câble audio dédié (LTC, Linear Time Code) entre magnétos analogiques et tables de mixage. MTC le porte sur le bus MIDI via deux mécanismes : Quarter-Frame Messages (statut 0xF1, §6) émis 4 fois par image SMPTE pour le suivi en lecture continue, et Full Frame Messages (SysEx Universal) pour le saut/locate ponctuel. Permet de synchroniser un séquenceur MIDI à une bande vidéo, un magnéto multipiste, ou aujourd'hui une DAW à un déliveur de timecode externe. Précision pratique : 1/4 d'image (~10 ms à 25 images/seconde, plus fin à 30 fps). Encore très utilisé en post-production audio-vidéo et en synchro studio professionnelle.

MMC — MIDI MACHINE CONTROL (1992, MMA) : le contrôle de transport au sens séquenceur. Ici "transport" désigne les commandes de défilement d'une session (Play, Stop, Record, Locate, Rewind, Fast Forward) — à NE PAS CONFONDRE avec le transport physique de l'§8 (DIN, USB, BLE, RTP) qui désigne les supports matériels portant les octets. Même mot, deux univers complètement distincts. Encodé en SysEx Universal Real-Time (F0 7F <ID> 06 <commande> F7), donc dans le réservoir SysEx Universal (§6). Permet à une machine maître (DAW) de contrôler le transport d'une machine esclave (magnéto multipiste, autre DAW, hardware sequencer). Encore très utilisé pour piloter de l'extérieur des stations Pro Tools, Logic, Cubase, ou pour synchroniser plusieurs DAW entre elles.

SMF — STANDARD MIDI FILE (1988, MMA) : le format de stockage sur disque. Extension .mid (ou parfois .smf). Permet d'archiver une performance MIDI complète — toutes les notes, tous les CC, le tempo, les changements de mesure, les noms de pistes — dans un fichier transportable, échangeable, rejouable. Trois formats coexistent dans la spec :

- Format 0 : toutes les voix fusionnées dans une seule piste. Léger, simple, mais perte définitive de la séparation logique. Utilisé pour la diffusion (karaoké, sonneries d'antan, fichiers .mid sur le web).
- Format 1 : plusieurs pistes nommées, une piste de tempo dédiée. Format standard des DAW pour les exports/imports. C'est ce qu'on récupère quand on exporte un .mid depuis Logic, Cubase, Ableton, Reaper.
- Format 2 : plusieurs sessions indépendantes dans le même fichier. Conceptuellement utile pour des suites de morceaux. En pratique quasi-jamais utilisé — la plupart des lecteurs et DAW ignorent ou rejettent ce format.

LE PIÈGE SMF : la conversion format 0 → format 1 ne récupère pas la séparation perdue. La fusion est définitive. C'est pour ça qu'on exporte généralement en format 1 et qu'on réserve le format 0 pour la diffusion finale uniquement. SMF stocke aussi des meta-events (texte non sonore) : noms de pistes, copyright, paroles, marqueurs de mesure, signature rythmique, signature de tonalité. Ces meta-events ne sont JAMAIS transmis sur un câble MIDI réel — ils existent seulement dans le fichier .mid, c'est de la métadonnée d'archive.

Sept couches, sept réponses à sept besoins que MIDI 1.0 laissait ouverts. GM, GM2, GS, XG disent quel son joue. MTC dit quel temps il est. MMC dit comment piloter le défilement à distance. SMF dit comment archiver. Aucune n'était obligatoire à la conception de MIDI 1.0 en 1983 ; toutes sont devenues incontournables en production. Quand on charge un .mid GM dans une DAW, qu'on synchronise une session sur un timecode SMPTE entrant, qu'on contrôle un magnéto par PLAY/STOP distant — on utilise ces couches sans toujours le savoir. Elles tiennent debout depuis trente ans précisément parce qu'elles répondent à des besoins que MIDI 1.0 seul ne couvre pas.
midi 1.0 transporte les octets. ces couches donnent du sens — quel son, quel temps, quel fichier.
Schéma
Sept conventions ajoutées au-dessus de MIDI 1.0 pour l’interopérabilitéTableau des sept conventions ajoutées par-dessus MIDI 1.0. GM 1991 MMA par Program Change. GM2 1999 MMA par Bank Select plus Program Change. GS 1991 Roland par SysEx 0x41. XG 1994 Yamaha par SysEx 0x43. MTC 1987 MMA par Quarter-Frame statut 0xF1. MMC 1992 MMA par SysEx Universal. SMF 1988 MMA fichier seulement.SEPT COUCHES POSÉES PAR-DESSUS MIDI 1.0NOMANNÉEAUTEURAPPORTMÉCANISMEGM1991MMA128 sons standardisés, ch.10 batterieProgram ChangeGM21999MMA256 sons, polyphonie 32, CC standardsBank Select + PCGS1991Rolandextension propriétaire RolandSysEx 0x41XG1994Yamahaextension propriétaire YamahaSysEx 0x43MTC1987MMASMPTE sur MIDI (h:m:s:f)Quarter-Frame 0xF1MMC1992MMAtransport séquenceur (Play/Stop)SysEx UniversalSMF1988MMAfichier .mid (formats 0/1/2)fichier seulementMIDI 1.0 transporte les octets. ces couches donnent du sens —quel son, quel temps, quel fichier.
Une pile : les extensions GS, XG, GM2 s’appuient sur General MIDI, qui s’appuie sur MIDI 1.0. MTC, MMC, SMF sont à côté pour la sync et le stockage.Un diagramme en pile. À la base, MIDI 1.0 (or) : notes, CC, SysEx, 16 canaux. Au-dessus, General MIDI : le contrat minimum de sons. Au-dessus, trois extensions concurrentes : GS (Roland), XG (Yamaha), GM2 (MMA). À côté, un encadré pointillé : MTC, MMC, SMF pour la sync et le stockage, qui ne touchent pas aux sons.LA PILE — CE QUI S’APPUIE SUR MIDI 1.0MIDI 1.0notes · CC · SysEx · 16 canauxGENERAL MIDIcontrat minimum de sonsGS(Roland)XG(Yamaha)GM2(MMA)MTC · MMCSMFsync & stockagene touchent pasaux sonsles dialectes sonores s’empilent sur GM, qui s’appuie sur MIDI 1.0.au-dessus : le son. à côté : la sync et le fichier.
Les trois formats de Standard MIDI File : 0 flux unique, 1 multipiste synchrone, 2 patterns indépendants.Trois panneaux. Format 0 (vert) : une seule piste, tout fusionné en un flux unique. Format 1 (or) : plusieurs pistes synchrones partageant une horloge — le format du quotidien. Format 2 (bleu) : plusieurs patterns indépendants. Le format 1 est le plus courant.STANDARD MIDI FILE — FORMATS 0 / 1 / 2FORMAT 0un seul flux1 piste · tout mêléFORMAT 1multipiste synchronepistes, une horlogeFORMAT 2patterns séparéspatterns indépendantsle format 1 est celui du quotidien : pistes synchrones, nommées.le format 0 aplatit tout ; le format 2 garde des patterns indépendants.
/ 10

MPE

un canal par note — l'expression devient polyphonique
Dans MIDI 1.0, le Pitch Bend (statut 0xE, §4) et le Channel Aftertouch (0xD) portent sur le canal entier. Quand on joue un accord de trois notes sur un canal et qu'un pitch bend arrive, les trois notes plient ensemble, de la même quantité. Même chose pour la pression : le Channel Aftertouch applique une valeur unique à toutes les notes actives du canal. C'est une limite structurelle, pas un défaut : le canal est l'unité d'adressage de l'expression continue (§5). Pour un piano ou un orgue, peu importe — ces instruments n'ont pas d'expression continue par-note. Mais pour qui veut jouer comme sur un instrument acoustique expressif — bender une seule corde d'un accord de guitare, poser un vibrato sur une seule voix d'un chœur — MIDI 1.0 ne suit pas. Historiquement on trichait : un canal assigné à la main par note (mode "mono per channel"), réglages fastidieux, aucune standardisation.

MPE (MIDI Polyphonic Expression), standardisé par le MIDI Manufacturers Association en janvier 2018 (spec CA-034), résout le problème par une idée simple : router chaque note jouée sur un canal différent, en rotation. Une note = un canal. À partir du moment où chaque note vit sur son propre canal, le Pitch Bend, le Channel Aftertouch et les CC redeviennent par-note — puisqu'ils portent sur un canal qui ne contient qu'une seule note. L'expression par-canal de MIDI 1.0 devient, mécaniquement, de l'expression par-note. Aucun nouveau type de message n'a été inventé : MPE est une convention d'usage des canaux existants, pas une extension du protocole. C'est ce qui la rend rétro-compatible avec tout le transport MIDI 1.0 (§2 à §8).

La zone MPE. MPE organise les 16 canaux en zones. Une zone a un Master Channel et des Member Channels. La Lower Zone utilise le canal 1 comme master et les canaux 2 et suivants comme members (jusqu'à 15 members, soit les canaux 2 à 16). La Upper Zone utilise le canal 16 comme master et les canaux 15 et précédents comme members. Les deux zones peuvent coexister (master 1 + master 16, members répartis au milieu), permettant deux contrôleurs ou deux sons indépendants sur le même port. Le Master Channel porte les messages globaux qui s'appliquent à toutes les notes de la zone : sustain (CC 64), pitch bend d'ensemble, modulation globale. Les Member Channels portent chacun une note avec son expression individuelle.

Le handshake — MCM. Pour que le récepteur sache qu'il reçoit du MPE et combien de member channels la zone utilise, l'émetteur envoie un MPE Configuration Message (MCM) : un RPN spécifique (RPN 6, §7) sur le master channel, dont la valeur est le nombre de member channels de la zone. RPN 6 = 7 signifie "Lower Zone avec 7 members" (canaux 2 à 8). RPN 6 = 0 désactive la zone. C'est le handshake qui dit au synthé "prépare-toi à recevoir une note par canal". Sans MCM correctement reçu et interprété, le synthé traite le flux comme du multi-canaux ordinaire.

Les cinq dimensions d'expression. MPE capte cinq dimensions par note, dont la terminologie popularisée par Roli est largement adoptée :

- Strike — la vélocité de Note On, vitesse d'enfoncement initiale. Un instant, capté à l'attaque.
- Press (pression) — le Channel Aftertouch du canal de la note, donc la pression maintenue après l'attaque. Continu.
- Slide — le CC 74 (brillance / timbre), typiquement le mouvement vertical du doigt sur la surface. Continu.
- Glide — le Pitch Bend du canal de la note, typiquement le mouvement horizontal du doigt. Continu.
- Lift — la vélocité de Note Off (release velocity, §4), vitesse de relâché. Un instant, capté au relâché.

Trois sont continues (Press, Slide, Glide) — elles évoluent tant que la note dure. Deux sont des instants (Strike à l'attaque, Lift au relâché). Ensemble elles transforment chaque note en un geste expressif complet, du toucher au relâché.

Les contrôleurs. Le matériel MPE a précédé puis accompagné la standardisation. Le Roli Seaboard (RISE, GRAND, BLOCK) propose une surface en silicone continue, sans touches discrètes, où l'on glisse et appuie. Le LinnStrument (Roger Linn, créateur de la MPC) est une grille de pads sensibles à la pression et au glissé, en layout de quartes. Le Haken Continuum et son petit frère le ContinuuMini, surface continue haut de gamme, ont été pionniers de l'expression par-note avant même MPE. L'Expressive E Osmose mêle un clavier à touches familier au continu augmenté. Eigenharp, Joué Play, Sensel Morph explorent d'autres surfaces. Côté son, les synthés et plugins compatibles se sont multipliés : Equator et Equator2 (Roli), Pigments (Arturia), Diva et Repro (u-he), Serum 2, les instruments natifs de Bitwig, et ceux d'Ableton Live et de Logic.

Compatibilité et piège central. Côté DAW, le support natif est arrivé progressivement : Bitwig très tôt, puis Logic Pro 10.5 (2020), Ableton Live 11 (2021), Cubase 11. LE PIÈGE : l'allocation de canaux n'est pas magique. Une zone configurée avec 7 member channels joue 7 notes vraiment indépendantes. La 8e note simultanée doit recycler un canal déjà occupé — et hérite alors de l'expression de la note qui s'y trouvait, ou écrase la sienne. Résultat : des bends ou des pressions qui "sautent" d'une note à l'autre de façon imprévisible dès qu'on dépasse la polyphonie de la zone. Plus subtil encore : le contrôleur émetteur et le synthé récepteur doivent être configurés sur la même zone et le même nombre de members. Le MCM est censé l'annoncer, mais tous les appareils ne se reconfigurent pas automatiquement. Un mismatch et ça joue, mais l'expression part en vrille — un member channel côté émetteur tombe sur un canal interprété autrement côté récepteur.

MPE n'est pas universel. Un synthé sans support MPE — la plupart du hardware d'avant 2018, et beaucoup de matériel d'entrée de gamme encore aujourd'hui — reçoit le flux MPE comme du multi-canaux ordinaire. Deux comportements possibles, tous deux faux : soit il ignore les member channels et joue tout sur le canal 1 (l'expression par-note est perdue, mais ça joue), soit il traite chaque canal comme une voix multitimbrale séparée et sur-consomme sa polyphonie (chaque note prend un slot de voix sur un canal différent). Avant de brancher un Seaboard sur un synthé hardware, vérifier qu'il annonce le support MPE — sinon prévoir un repli mono-canal.

MPE ne réinvente rien : il détourne intelligemment l'adressage par canal de MIDI 1.0 pour obtenir de l'expression par note, sans toucher au protocole de transport. Une note, un canal, cinq dimensions. Le clavier cesse d'être un commutateur on/off et devient un instrument continu, où chaque doigt sculpte sa propre voix du toucher au relâché. C'est la dernière grande idée construite sur MIDI 1.0 — et le pont conceptuel vers MIDI 2.0 (§11), qui élèvera l'expression par-note au rang de propriété native du protocole, sans plus avoir besoin de la ruse des canaux.
midi 1.0 : pitch bend par canal. mpe : pitch bend par note. l'instrument cesse d'être on/off.
Schéma
Le mode Poly permet à un canal de jouer plusieurs notes à la fois ; le mode Mono une note à la fois. C’est un mode de canal, pas la polyphonie.À gauche, mode Poly : trois touches pressées alimentent un seul canal — plusieurs notes à la fois. À droite, mode Mono : une seule note alimente le canal — une note à la fois. C’est un mode de canal fixé par CC 124-127, pas un nombre de voix. MPE repose dessus : chaque member channel tourne en Mono pour qu’une note porte toute son expression.MODE POLY vs MODE MONO — PAS LA POLYPHONIEMODE POLYcanal 1un canal, plusieurs notes à la foisMODE MONOcanal 1un canal, une note à la foisun mode de canal (CC 124-127), pas un nombre de voix. MPE repose dessus :chaque member channel tourne en Mono — une note, toute son expression.
En MIDI 1.0 le pitch bend porte sur le canal entier ; toutes les notes d’un accord plient ensemble.Une boîte étiquetée CANAL 1 contient trois notes DO, MI, SOL. Un seul message Pitch Bend 0xE1 entre dans le canal par la gauche. Trois flèches bleues montantes identiques au-dessus de la boîte montrent que les trois notes plient de la même quantité — impossible de bender une seule note de l’accord en MIDI 1.0.MIDI 1.0 — LE PITCH BEND AGIT SUR LE CANAL ENTIERtoutes plient pareilCANAL 1PITCH BEND 0xE1DOMISOLle pitch bend porte sur le canal. les trois notes plient ensemble —impossible de bender une seule note de l’accord.
MPE route chaque note sur son propre canal, l’expression devient par-note.Un master channel (canal 1, bordure or épaisse) porte les messages globaux, indiqués par une flèche descendante qui y entre. Sept member channels ch2 à ch8 suivent. Quatre notes déposées en rotation : note 1 sur ch2, 2 sur ch3, 3 sur ch4, 4 sur ch5. Au-dessus de chaque note, trois flèches montantes émanent, montrant l’expression par-note qui s’élève depuis la note : glide bleu, press rouge, slide vert.MPE — UN CANAL PAR NOTE, EXPRESSION INDÉPENDANTEsustain · all-notes-off (toute la zone)MASTERch1ch2ch3ch4ch5ch6ch7ch81note2note3note4noterotationglide (bend)pressslide (timbre)chaque note jouée occupe son propre canal en rotation.pitch, pression, timbre deviennent indépendants par note.
Les cinq dimensions d’expression MPE par note.Tableau des cinq dimensions MPE : Strike depuis Note On velocity (instant), Press depuis Channel Aftertouch (continu), Slide depuis CC 74 timbre (continu), Glide depuis Pitch Bend (continu), Lift depuis Note Off velocity (instant).LES CINQ DIMENSIONS D’EXPRESSION, PAR NOTEDIMENSIONGESTESOURCE MIDITYPESTRIKEvitesse d’enfoncementNote On velocityinstantPRESSpression maintenueChannel AftertouchcontinuSLIDEglissé verticalCC 74 (timbre)continuGLIDEglissé horizontalPitch BendcontinuLIFTvitesse de relâchéNote Off velocityinstanttrois sont continues (press, slide, glide), elles évoluent tant que la note dure.deux sont des instants : strike à l’attaque, lift au relâché.
/ 11

MIDI 2.0

le protocole apprend à dialoguer — résolution, expression par-note, 256 canaux
MIDI 1.0 (§2 à §10) est un monologue. L'émetteur envoie ses octets, le récepteur les encaisse, et personne ne répond jamais. Un clavier ne sait rien du synthé branché en face — combien de sons il a, quels CC il comprend, comment ses presets s'appellent. La résolution est de 7 bits : 128 paliers pour la vélocité, 128 pour chaque CC. L'expression est par-canal (§5), d'où la ruse MPE (§10) pour la rendre par-note. Seize canaux, point final. Ces limites datent de 1983 — un compromis brillant pour l'électronique de l'époque, mais un compromis. Quarante ans plus tard on bute encore dessus : escalier audible sur un filtre balayé lentement, impossibilité d'afficher automatiquement les noms de patches d'un synthé dans la DAW, expression par-note bricolée.

MIDI 2.0, annoncé en janvier 2020 par le MIDI Manufacturers Association et son homologue japonais l'AMEI, ne jette rien. C'est une extension rétro-compatible : un appareil MIDI 2.0 sait parler MIDI 1.0 à un vieux synthé, et deux appareils 2.0 entre eux débloquent les nouveautés. La philosophie tient en un mot : dialogue. Là où MIDI 1.0 envoyait à l'aveugle, MIDI 2.0 fait que les appareils se présentent, négocient et se répondent. Tout le reste — résolution, canaux, expression par-note — découle de cette capacité nouvelle à converser.

MIDI-CI — la pierre angulaire. MIDI Capability Inquiry est le handshake. Quand deux appareils se connectent, l'un demande à l'autre : « tu parles MIDI 2.0 ? quels profils supportes-tu ? quels paramètres exposes-tu ? ». MIDI-CI voyage dans des messages SysEx Universal (§6) — donc compatible avec n'importe quel transport MIDI 1.0 existant. C'est la poignée de main qui conditionne tout : sans MIDI-CI, pas de MIDI 2.0. Et fait crucial, la conversation commence toujours en MIDI 1.0. Si l'un des deux ne répond pas ou ne comprend pas, on reste simplement en 1.0 — c'est la dégradation gracieuse, le filet de sécurité qui garantit que rien ne casse jamais.

Les trois piliers de MIDI-CI. MIDI-CI couvre trois domaines distincts :

- Profiles — un appareil s'annonce comme implémentant un profil connu : « je suis un orgue à tirettes », « je suis un General MIDI 2 ». Le profil fixe la signification des contrôleurs : le récepteur sait alors que tel CC pilote telle tirette, sans configuration manuelle. Brancher et jouer, avec les bons mappings d'emblée.
- Property Exchange — les appareils échangent des métadonnées structurées, en JSON, via SysEx. Noms de patches, liste des presets, état des contrôleurs, configuration. C'est ce qui permet à une DAW d'afficher automatiquement les noms des sons d'un synthé matériel, au lieu d'une liste anonyme « Program 0, Program 1… ».
- Protocol Negotiation — le mécanisme qui décide quel protocole, 1.0 ou 2.0, le lien utilise, et bascule de l'un à l'autre.

UMP et Groups. MIDI 2.0 introduit un nouveau conteneur : l'Universal MIDI Packet (UMP). Là où MIDI 1.0 envoyait un flux d'octets de longueur variable (§3), l'UMP est un paquet de taille fixe — 32, 64, 96 ou 128 bits selon le type de message. Un même flux UMP transporte indifféremment des messages MIDI 1.0 et MIDI 2.0. L'UMP organise tout en Groups : 16 Groups, chacun contenant 16 canaux. Seize fois seize : 256 canaux par connexion. Chaque Group peut tourner en protocole 1.0 ou 2.0 indépendamment. Le « canal 10 = batterie » de jadis devient « Group 0, canal 10 » — l'adressage gagne une dimension.

La résolution explose. La vélocité passe de 7 bits (128 valeurs) à 16 bits (65 536 valeurs). Les Control Change passent de 7 bits à 32 bits. Le pitch bend de 14 bits à 32 bits. Concrètement : un filtre balayé lentement ne fait plus entendre l'escalier des paliers — le mouvement redevient continu, comme sur un instrument analogique. La nuance d'un musicien sur un contrôleur expressif n'est plus quantifiée grossièrement. C'est la fin du zipper noise, ce bruit de fermeture éclair qu'on entend sur les automations MIDI 1.0 trop lentes.

L'expression par-note devient native. MIDI 2.0 intègre directement ce que MPE bricolait avec la ruse des canaux (§10). Per-Note Pitch Bend, Per-Note Controllers, articulation par note : chaque note porte sa propre expression sans avoir à sacrifier un canal. Là où MPE configurait une zone de 15 member channels pour 15 notes indépendantes au maximum, MIDI 2.0 donne l'expression par-note à toutes les notes d'un seul canal. La ruse devient inutile — l'expression par-note est désormais une propriété native du protocole. Les Registered Controllers (héritiers des RPN, §7) et Assignable Controllers (héritiers des NRPN) gagnent eux aussi en résolution et en adressage propre.

LE PIÈGE — MIDI 2.0 n'est pas un câble. Il n'existe pas de « câble MIDI 2.0 ». Le DIN-5 historique (§8) reste du MIDI 1.0 : unidirectionnel, et trop lent pour le full-duplex que MIDI-CI réclame. MIDI 2.0 se transporte principalement sur USB-MIDI 2.0 (full-duplex natif) et sur réseau. Acheter un appareil estampillé « MIDI 2.0 » ne suffit pas : il faut que toute la chaîne — l'OS, le pilote, la DAW, l'autre appareil — supporte MIDI 2.0 de bout en bout. Si un maillon ne suit pas, MIDI-CI fait gracieusement retomber tout le monde en MIDI 1.0. C'est voulu, c'est le filet de sécurité — mais ça signifie qu'on peut croire utiliser MIDI 2.0 tout en étant en réalité resté en 1.0.

Adoption lente, et bidirectionnalité. La spec sort en 2020 ; le support réel arrive au compte-gouttes. macOS intègre l'UMP dans CoreMIDI dès Big Sur (2020). Linux gagne le support MIDI 2.0 dans ALSA avec le kernel 6.5 (2023). Windows déploie ses MIDI Services 2.0 progressivement à partir de 2024-2025. Côté matériel, quelques claviers et contrôleurs (le Roland A-88MKII parmi les pionniers) exposent MIDI-CI, mais beaucoup de produits « MIDI 2.0-ready » n'implémentent en pratique que MIDI-CI et les Profiles, sans la pleine résolution 32 bits. Vérifier ce qui est réellement implémenté, pas le logo sur la boîte. Autre bascule mentale : MIDI 2.0 est bidirectionnel. MIDI 1.0 sur DIN était unidirectionnel — un câble par sens (§2). MIDI-CI suppose un canal retour. Sur USB c'est natif et transparent ; mais la topologie héritée du DIN, « j'envoie, point », ne tient plus.

MIDI 2.0 ne remplace pas MIDI 1.0 : il l'enveloppe et le prolonge. Le même héritage — notes, canaux, CC, SysEx — mais avec le dialogue en plus, la résolution en plus, l'expression par-note native, 256 canaux. La rétro-compatibilité garantit qu'aucun des dix organes précédents ne devient caduc : un Note On reste un Note On. Ce qui change, c'est que deux appareils peuvent enfin se parler au lieu d'émettre dans le vide. Après quarante ans de monologue, MIDI apprend la conversation. Reste un dernier territoire : ce que les musiciens font du protocole quand ils en détournent les règles — l'§12.
midi 1.0 parle. midi 2.0 dialogue. même héritage, deux appareils qui se répondent enfin.
Schéma
MIDI 1.0 est un monologue à sens unique, MIDI 2.0 un dialogue bidirectionnel via MIDI-CI.Côté gauche, MIDI 1.0 : une boîte ÉMETTEUR avec une flèche unique vers une boîte RÉCEPTEUR, aucune réponse possible. Côté droit, MIDI 2.0 : appareils A et B en or avec une double flèche entre eux, MIDI-CI leur permet de demander « tu parles 2.0 ? » et de négocier.MIDI 1.0 PARLE · MIDI 2.0 DIALOGUEMIDI 1.0 — monologueÉMETTEURRÉCEPTEURaucune réponse possibleMIDI 2.0 — dialogueABMIDI-CI : « tu parles 2.0 ? »l’un envoie, l’autre encaisse. vs. les deux se présentent et négocient.
Comparaison de résolution : escalier 7 bits contre rampe lisse 32 bits.À gauche : un escalier grossier de 8 marches représentant la résolution 7 bits, 128 paliers, escalier audible. À droite : une rampe lisse en diagonale représentant la résolution 32 bits, environ 4 milliards de paliers, mouvement continu. Un filtre balayé lentement fait entendre l’escalier en 7 bits mais bouge en continu en 32 bits, mettant fin au zipper noise.RÉSOLUTION — 7 BITS vs 32 BITS7 bits · 128 paliersescalier audible32 bits · ~4 milliardscontinule balayage lent d’un filtre : escalier audible en 7 bits,mouvement continu en 32 bits. fin du zipper noise.
UMP organise 16 Groups de 16 canaux chacun, soit 256 canaux.Une boîte connexion UMP contient 16 cellules Group en ligne, G0 à G15, avec G0 surligné en or. Une ligne pointillée zoome G0 dans une boîte de détail montrant ses 16 canaux numérotés 1 à 16. Seize Groups fois seize canaux égale 256 canaux. L’expression par-note est native, aucun canal à sacrifier comme en MPE.UMP — 16 GROUPS × 16 CANAUX = 256 CANAUXUMP — une connexion full-duplexG0G1G2G3G4G5G6G7G8G9G10G11G12G13G14G15Group 012345678910111213141516chaque Group = 16 canaux (protocole 1.0 ou 2.0)l’adressage gagne une dimension : Group + canal.l’expression par-note est native — aucun canal sacrifié (cf MPE).
Handshake MIDI-CI : A fait une découverte, B répond ses capacités, ils négocient le protocole.Un diagramme de séquence entre l’appareil A et l’appareil B. Étape 1 : A envoie Discovery, qui es-tu. Étape 2 : B répond ses profils et propriétés. Étape 3 : ils négocient le protocole. Résultat : si les deux sont OK ils basculent en MIDI 2.0, sinon ils restent en 1.0 gracieusement. Tout commence en MIDI 1.0 et rien ne casse.MIDI-CI — LA SÉQUENCE DU HANDSHAKEAPPAREIL AAPPAREIL B1 · Discovery — qui es-tu ?2 · Reply — profils, propriétés3 · Negotiate — bascule protocoleles deux OK → MIDI 2.0 · sinon → reste en 1.0 (gracieux)tout commence en MIDI 1.0. le dialogue ne s’engage que si les deux répondent.sinon, tout le monde reste en 1.0 — rien ne casse.
/ 12

DÉTOURNEMENTS

ce que les artistes font de MIDI quand ils sortent de la musique
Toute la fiche a montré comment MIDI fonctionne. Cette dernière section montre ce que les artistes en font quand ils sortent de la musique. Le ressort est simple : MIDI est un protocole de messages discrets et temporisés — un note on, un note off, un control change, des valeurs de 0 à 127 (§3, §4). Cette simplicité même le rend universellement détournable : tout ce qui obéit à un événement (« vas-y maintenant ») ou à une valeur (« règle ce paramètre à tant ») peut être piloté en MIDI. Lumière, moteurs, vidéo, réseaux, installations. La musique n'est qu'un de ses usages — historiquement le premier, pas le seul. C'est le territoire le plus libre du protocole.

MIDI Show Control (MSC), standardisé par le MMA en 1991, est le premier détournement officiel. Conçu pour piloter un spectacle entier — éclairage, machinerie, projection vidéo, son, pyrotechnie — depuis une régie unique. Encodé en SysEx Universal Real-Time (§6), avec des commandes comme GO, STOP, RESUME, TIMED_GO, LOAD. Une console lumière (ETC Eos, ChamSys MagicQ, grandMA), un serveur média, un système de machinerie reçoivent leurs cues d'un même flux. MSC tient les grands spectacles depuis trente ans : Broadway, Cirque du Soleil, parcs Disney et Universal, où des centaines de cues lumière, son et mouvement se déclenchent au quart de seconde.

MIDI vers la lumière (DMX512). DMX512 est le protocole standard de l'éclairage scénique : 512 canaux par univers, chacun de 0 à 255, pour piloter projecteurs, gradateurs, machines à fumée, lyres asservies. MIDI s'y relie par des passerelles MIDI vers DMX (Enttec DMX USB Pro, modules dédiés) ou par des logiciels (QLC+, Lightjams, ChamSys MagicQ, Chataigne). Une note déclenche un cue, un CC pilote une intensité ou un fondu. C'est le pont historique entre la régie son et la régie lumière : le pad électronique qui déclenche un flash, le set Ableton Live qui pilote tout l'éclairage via un Max for Live device ou un plugin de show control. Le musicien devient son propre éclairagiste.

MIDI vers le visuel. Le VJing et l'art vidéo temps réel reposent largement sur MIDI pour le déclenchement et le contrôle. Resolume (VJ), TouchDesigner (Derivative — environnement node-based pour installations, data viz et projection mapping), Max/Jitter (Cycling ’74 — la partie vidéo et matrices de Max : traitement d’image temps réel, génératif, OpenGL), MadMapper (mapping de surfaces), Notch, VDMX, Millumin, Isadora (performance scénique) reçoivent tous le MIDI nativement : une note lance un clip vidéo, un CC pilote un effet, un fader contrôle le mix des couches. TouchDesigner convertit le MIDI entrant en CHOP, qu'on route ensuite vers n'importe quel paramètre visuel. Le contrôleur de musique devient contrôleur d'image — un même APC40, Launchpad ou Push pilote indifféremment des samples ou des projections.

MIDI vers le réseau créatif (OSC). Quand MIDI atteint ses limites de résolution ou de structure, on le relaie vers OSC (Open Sound Control) : un protocole réseau plus riche — adresses hiérarchiques, valeurs flottantes, haute résolution, transport UDP/TCP. MIDI déclenche, OSC distribue. Les environnements de creative coding font le pont : Max/MSP (Cycling '74) avec ses objets midiin, notein, ctlin ; Pure Data (l'équivalent open-source) ; Processing (bibliothèque TheMidiBus) ; openFrameworks ; vvvv ; et surtout Chataigne, orchestrateur multi-protocoles gratuit (MIDI, OSC, DMX, Art-Net, NDI, HTTP) devenu central dans les installations interactives. MIDI entre, se traduit, se route, ressort en OSC vers une grappe de machines, un moteur de jeu (Unity, Unreal Engine), un serveur de rendu.

Le hardware hacking. MIDI est le langage favori des makers parce qu'il est trivial à émettre depuis un microcontrôleur. Arduino (avec la MIDI Library ou un MIDI shield), et surtout Teensy (PJRC) qui s'annonce nativement comme un périphérique USB-MIDI Class Compliant — aucun pilote, l'OS le reconnaît au branchement (§8) — sont les outils de base. On y branche n'importe quel capteur : accéléromètre, capteur de flexion, photorésistance, distance ultrason, surface capacitive, potentiomètre. Le geste physique devient note ou CC. Bela offre une plateforme temps réel à latence ultra-basse pour l'instrument augmenté ; un Raspberry Pi fait tourner Pure Data ou RNBO (l'export C++ de Max, embarquable sur Pi, VST, web). Le contrôleur DIY, l'instrument augmenté, l'interface gestuelle sur mesure : tout passe par MIDI parce que tout logiciel musical le comprend déjà, sans configuration.

MIDI vers le monde physique. Au bout de la chaîne, des actionneurs : solénoïdes qui frappent, moteurs pas-à-pas, servomoteurs, relais qui commutent. Une note devient un coup de marteau, un CC une position d'axe. C'est la musique robotique et l'installation cinétique : les player-pianos modernes (Yamaha Disklavier), les ensembles d'automates de la Logos Foundation (Godfried-Willem Raes), les machines musicales de Felix Thorn (Felix's Machines), d'innombrables sculptures sonores pilotées en MIDI. Une note égale un actionneur. Le protocole pensé pour des synthétiseurs pilote désormais des objets qui frappent, tournent, s'allument, soufflent.

MIDI comme matériau. Le protocole lui-même devient sujet de l'œuvre. Générativité : des algorithmes — chaînes de Markov, automates cellulaires, L-systems — produisent des flux MIDI qu'aucun humain ne jouerait. Live coding : Sonic Pi, TidalCycles, Orca (Hundred Rabbits — séquenceur ésotérique qui pilote MIDI, OSC et UDP depuis une grille de caractères) génèrent le MIDI en direct, à la frappe. Sonification : des données — météo, cours de bourse, capteurs environnementaux, trafic réseau — deviennent MIDI, donc son ou image. Et le détournement esthétique du protocole lui-même : feedback loops MIDI rebouclés, glitch volontaire, saturation du flux comme matière brute.

Trois pièges de terrain reviennent dès qu'on détourne MIDI hors de la musique. D'abord le débit et la résolution, hérités de 1983 : 31250 bauds (§8) saturent vite sous un contrôle dense, et le 7 bits (128 paliers, §3 et 11) est grossier pour un fondu lumière lent ou un mouvement fin de moteur. D'où la règle de terrain : MIDI reste le déclencheur — « vas-y maintenant » — et pour la charge lourde et continue, on relaie vers OSC ou Art-Net en aval. Ensuite, le note on vélocité 0 égale note off (§4) ressurgit cruellement : un solénoïde censé frapper qui reçoit une vélocité 0 ne fait rien, le message étant lu comme un relâché. Piège classique du débutant en hardware MIDI — l'actionneur « ne répond jamais » alors que le message arrive bien. Enfin la latence et le jitter : pour une installation son, vidéo et lumière calée à l'image, le jitter d'un transport sans fil (BLE, §8) désynchronise tout. Filaire (DIN, USB) pour le critique, jamais de sans-fil.

MIDI a été pensé en 1983 pour faire dialoguer des synthétiseurs. Quarante ans plus tard, il pilote des projecteurs, des moteurs, des images, des réseaux, des sculptures — parce que sa grammaire de messages discrets et temporisés est assez simple pour s'appliquer à presque tout ce qui obéit à un événement ou à une valeur. C'est le paradoxe de sa longévité : ses limites mêmes — débit modeste, résolution faible, messages élémentaires — en ont fait un langage universel de déclenchement, increvable et omniprésent. La musique n'était que le début. Tout ce qui s'allume, tourne, frappe ou s'affiche peut écouter du MIDI — et des artistes, partout, lui font dire ce pour quoi il n'avait jamais été conçu.
midi pilote tout ce qui obéit à un événement ou une valeur. la musique n'est qu'un de ses usages.
Schéma
MIDI comme hub de déclenchement : une note ou un CC pilote lumière, visuel, actionneurs physiques, réseaux et son.Un hub MIDI central (note ou CC, or) se ramifie vers cinq cibles : LUMIÈRE via DMX512, VISUEL via TouchDesigner, PHYSIQUE via Arduino et solénoïdes, RÉSEAU via OSC Max et Pd, et SON via un synthé en gris comme usage normal. Le même message pilote des mondes différents.MIDI — UN HUB DE DÉCLENCHEMENT POUR TOUTLUMIÈREDMX512VISUELTouchDesigner, JitterPHYSIQUEArduino, solénoïdeRÉSEAUOSC · Max · PdSONsynthé (usage normal)MIDInote / CCun message — note ou CC — pilote des mondes différents. la musique n’est qu’un.
Six détournements de MIDI hors de la musique : spectacle, lumière, visuel, réseau, physique, génératif.Tableau de six détournements MIDI : Spectacle via MIDI Show Control 1991 ; Lumière via passerelle MIDI vers DMX512 ; Visuel via TouchDesigner et Resolume ; Réseau via OSC Max Pd Chataigne ; Physique via Arduino Teensy solénoïdes ; Génératif via Orca Sonic Pi live coding. MIDI reste le déclencheur ; la charge lourde relaie vers OSC ou Art-Net.SIX DÉTOURNEMENTS DE MIDI HORS DE LA MUSIQUEDOMAINEPONT / OUTILMIDI PILOTEPIÈGESPECTACLEMIDI Show Control (1991)cues lumière, machinerie, vidéoSysEx = latenceLUMIÈREpasserelle MIDI→DMX512intensité, cues, fondus7 bits grossierVISUELTouchDesigner, Resolumeclips, paramètres VJ, mappingjitter = désyncRÉSEAUOSC · Max, Pd, Chataigneroute, traduit, distribuePHYSIQUEArduino, Teensy, solénoïdemoteurs, relais, actionneursnote-on vel 0 = rienGÉNÉRATIFOrca, Sonic Pi, live codingflux algorithmique31250 satureMIDI reste le déclencheur — « vas-y maintenant ».la charge lourde et continue relaie vers OSC / Art-Net.
Division du travail : MIDI est le déclencheur léger, OSC et Art-Net portent la charge lourde, continue et haute résolution.Une source (contrôleur ou séquenceur) envoie une fine flèche MIDI (léger, go now) vers un relais (Max, Pd, Chataigne). Le relais envoie une grosse flèche OSC / Art-Net (dense, haute résolution) vers des charges lourdes : lumière dense, vidéo multi-paramètres, grappe de machines. MIDI dit QUAND déclencher ; OSC et Art-Net portent COMBIEN, en continu et en haute résolution.DIVISION DU TRAVAIL — MIDI DÉCLENCHE, OSC PORTESOURCEcontrôleur / séqMIDIléger · go nowRELAISMax · Pd · ChataigneOSC / Art-Netdense · HDCHARGES LOURDESlumière densevidéo multi-paramgrappe machinesdéclencheur léger → charge lourde et continueMIDI dit QUAND déclencher. OSC / Art-Net portent COMBIEN —dense, continu, haute résolution. chacun fait ce qu’il sait faire.