Français
Aide-mémoire des messages MIDI : tous les types, octets d'état et plages
Cette app est entièrement gratuite. Pas besoin de créer un compte. Pas d'abonnement, pas de téléchargement compliqué, et rien n'est verrouillé. Optimisée pour Apple Silicon.
Un message MIDI 1.0 est un octet d'état, qui dit de quel message il s'agit, suivi de zéro, un ou deux octets de données. Il y a sept messages de canal, de Note Off à 80 hex jusqu'à Pitch Bend à E0, chacun portant son canal dans le dernier chiffre, et un ensemble de messages système de F0 à FF qui n'ont aucun canal. Les tableaux ci-dessous les couvrent tous, avec les plages que prend chaque octet de données, et chaque ligne renvoie vers la page de ce site qui explique ce message en détail.
Les valeurs viennent du résumé des messages MIDI 1.0 de la MIDI Association elle-même et de sa liste des Control Change, que j'ai lus le 27 octobre 2026. Je fais InputConfig, une app Mac gratuite qui lit et envoie du MIDI, donc un tableau dit lesquels de ces messages elle gère.
Étapes
- Lisez le premier octet du message en hexadécimal.
- S'il va de 80 à EF, le premier chiffre nomme le message et le second est le canal, de 0 pour le canal 1 jusqu'à F pour le canal 16.
- S'il va de F0 à FF, c'est un message système sans canal, donc cherchez-le dans le tableau système.
- Lisez les octets de données qui suivent, chacun de 0 à 127, avec le tableau des messages de canal.
- Pour un Control Change, cherchez le numéro de contrôleur dans le tableau des CC.
Distinguer un octet d'état d'un octet de données
Chaque octet en MIDI 1.0 est soit un octet d'état, soit un octet de données, et le bit de poids fort décide lequel. Dans le tableau de la MIDI Association, chaque octet d'état s'écrit en binaire en commençant par 1 et chaque octet de données par 0.
- Octets d'état. De 80 à FF hex, de 128 à 255. Ils commencent un message.
- Octets de données. De 00 à 7F hex, de 0 à 127. C'est pourquoi presque chaque valeur en MIDI s'arrête à 127.
- Le canal. Dans un message de canal, le second chiffre hex est le canal, de 0 à F, que les apps affichent comme les canaux 1 à 16. Donc 90 est un Note On sur le canal 1 et 9F est un Note On sur le canal 16.
- Valeurs sur 14 bits. Quand 128 pas ne suffisent pas, deux octets de données s'unissent : la moitié fine, le LSB, et la moitié grossière, le MSB. Ensemble ils vont de 0 à 16383, et le Pitch Bend place son centre à 8192, 2000 hex.
Un octet de 128 ou plus commence un message, et un octet sous 128 porte une valeur. Les canaux MIDI et MSB et LSB vont plus loin sur les deux.
Lire les messages de canal
Ces sept portent la musique : notes, pression, boutons, changements de son et molette de hauteur. La colonne d'état est en hex, avec le chiffre bas fixé par le canal.
| Message | État (hex) | Octet de données 1 | Octet de données 2 | Pour aller plus loin |
|---|---|---|---|---|
| Note Off | 80 à 8F | Numéro de note, 0 à 127 | Vélocité de relâchement, 0 à 127 | numéros de notes |
| Note On | 90 à 9F | Numéro de note, 0 à 127 | Vélocité, 0 à 127 (0 agit comme un Note Off) | vélocité |
| Pression polyphonique de touche | A0 à AF | Numéro de note, 0 à 127 | Pression, 0 à 127 | aftertouch |
| Control Change | B0 à BF | Contrôleur, 0 à 119 | Valeur, 0 à 127 | liste des CC |
| Program Change | C0 à CF | Programme, 0 à 127 | Aucun | program change |
| Pression de canal | D0 à DF | Pression, 0 à 127 | Aucun | aftertouch |
| Pitch Bend | E0 à EF | Moitié fine (LSB), 0 à 127 | Moitié grossière (MSB), 0 à 127 | pitch bend |
Un Note On avec une vélocité de 0 compte comme un Note Off, ce que le guide Arduino de la MIDI Association utilise lui-même pour terminer une note. Le numéro de contrôleur du Control Change s'arrête à 119 parce que 120 à 127 sont pris par les messages de mode de canal ci-dessous. L'étendue du Pitch Bend en demi-tons n'est pas du tout dans le message : c'est le récepteur qui la décide, et le tableau MIDI note qu'elle peut se régler avec le RPN 0. Le Program Change et la pression de canal portent un octet de données, et les cinq autres en portent deux.
Connaître les messages de mode de canal
Les messages de mode de canal utilisent l'octet d'état du Control Change, de B0 à BF, avec les numéros de contrôleur 120 à 127. Ils changent le comportement du canal plutôt que son son.
| Contrôleur | Nom | Ce que ça fait |
|---|---|---|
| 120 | All Sound Off | Coupe toutes les voix d'un coup |
| 121 | Reset All Controllers | Remet les contrôleurs à leur état par défaut |
| 122 | Local Control | 0 est désactivé, 127 est activé : si les touches jouent le son propre du synthétiseur |
| 123 | All Notes Off | Relâche toutes les notes tenues |
| 124 et 125 | Omni Mode Off et On | Si l'appareil écoute sur un canal ou sur tous |
| 126 et 127 | Mono Mode On et Poly Mode On | Une note par canal, ou des accords |
La liste de la MIDI Association note que 124 à 127 coupent aussi toutes les notes. Un bouton panic, c'est surtout le CC 123 et le CC 120 envoyés sur les 16 canaux. Le panic MIDI liste les octets exacts.
Lire les messages système
Les messages système commencent par F et ne portent aucun canal, donc chaque appareil sur le câble peut les lire. F0 à F7 sont des messages système communs et F8 à FF sont des messages temps réel, les seuls autorisés au milieu d'un message SysEx.
| État (hex) | Message | Données | Pour aller plus loin |
|---|---|---|---|
| F0 | System Exclusive | Identifiant du fabricant, puis un nombre quelconque d'octets de données, jusqu'à F7 | SysEx |
| F1 | Quart de trame MIDI Time Code | Un octet : un morceau du code temporel | |
| F2 | Song Position Pointer | Deux octets : un compte sur 14 bits de temps depuis le début, où un temps vaut 6 impulsions d'horloge | |
| F3 | Song Select | Un octet : quel morceau ou quelle séquence | |
| F6 | Tune Request | Aucune. Demande aux synthétiseurs analogiques d'accorder leurs oscillateurs | |
| F7 | End of Exclusive | Aucune. Termine un message SysEx | |
| F8 | Timing Clock | Aucune. Envoyé 24 fois par noire | horloge MIDI |
| FA, FB, FC | Start, Continue, Stop | Aucune | horloge MIDI |
| FE | Active Sensing | Aucune. Facultatif, au moins toutes les 300 ms une fois qu'un appareil commence à l'envoyer | |
| FF | Reset | Aucune. Remet les récepteurs dans leur état de mise sous tension |
F4, F5, F9 et FD ne sont pas définis. Clock, Start et Stop sont des messages système, donc ils ne portent jamais de canal. Pour les dumps SysEx et les apps qui les envoient, voyez la page bibliothécaire SysEx pour Mac.
Repérer les numéros de CC utiles à connaître
Beaucoup des 120 numéros de Control Change restent non définis, mais quelques-uns ont un nom dans la norme MIDI que les synthétiseurs et les apps suivent. Ceux-ci viennent de la liste des Control Change de la MIDI Association.
| CC | Nom | Pour aller plus loin |
|---|---|---|
| 0 et 32 | Bank Select, MSB et LSB | MSB et LSB |
| 1 | Molette de modulation | liste des CC |
| 2 | Contrôleur de souffle | |
| 4 | Contrôleur au pied | |
| 6 et 38 | Data Entry, MSB et LSB | NRPN et RPN |
| 7 | Volume du canal | |
| 10 | Pan | |
| 11 | Expression | |
| 64 | Pédale de sustain (étouffoir) : 0 à 63 désactivée, 64 à 127 activée | pédale de sustain |
| 65, 66, 67 | Portamento, Sostenuto et pédale douce, activés ou non | |
| 98 et 99 | Numéro NRPN, LSB et MSB | NRPN et RPN |
| 100 et 101 | Numéro RPN, LSB et MSB | NRPN et RPN |
Les contrôleurs 32 à 63 sont les moitiés fines, les LSB, des contrôleurs 0 à 31, ce qui fait que Bank Select devient le CC 0 plus le CC 32. Le CC 64 est un interrupteur, donc toute valeur à partir de 64 veut dire que la pédale est enfoncée. La liste des CC MIDI liste chaque numéro.
Voir ce qu'InputConfig lit et envoie
InputConfig transforme le MIDI d'un clavier, d'un contrôleur de pads ou d'une station audio numérique en touches, en clics, en volume du Mac et plus encore, et il envoie du MIDI depuis une manette ou un clavier par un port virtuel nommé InputConfig. Voici la liste honnête, message par message.
| Message | Affecter en entrée | Envoyer en sortie |
|---|---|---|
| Note On et Off | Oui, comme un bouton maintenu | Oui, à la vélocité réglée dans la ligne |
| Control Change | Oui, comme un interrupteur, un cadran ou une rotation | Oui, une valeur fixe ou la position d'un stick ou d'une gâchette |
| Pitch Bend | Oui, plus et moins comme un stick | Oui, depuis un axe de stick ou un bouton |
| Aftertouch | Oui | Non |
| Program Change | Oui, et il peut activer un préréglage | Oui |
| Start, Continue, Stop | Oui | Oui |
| Timing Clock | Non | Non |
| System Exclusive | Non | Non |
| NRPN et RPN | Non | Non, il envoie des messages isolés |
Deux détails piègent les gens. Les boutons ne sont pas sensibles à la vélocité, donc chaque sortie MIDI Note joue à la vélocité réglée dans sa ligne, de 1 à 127, et une gâchette sur le CC 11 est le moyen d'obtenir des nuances. Et un bouton en mode Switch se déclenche une fois que la valeur dépasse la moitié, ce qui transforme une pédale de sustain en interrupteur activé et désactivé.


Si une commande envoie une note, un CC, un pitch bend ou un Program Change, InputConfig peut l'affecter. Du MIDI vers une touche et la sortie MIDI couvrent la configuration.
Si un message n'est pas celui que vous attendiez
La plupart des surprises viennent de la numérotation, pas d'un matériel en panne. Montez cette échelle, en commençant par la plus petite étape :
- Vérifiez le compte des canaux. L'octet dit 0 à 15 et l'app dit 1 à 16. Un appareil sur le canal 10 envoie 99 pour un Note On.
- Vérifiez le compte des programmes. Le message porte 0 à 127, et beaucoup de listes de sons montrent 1 à 128, donc le son 1 est envoyé comme 0.
- Cherchez un Note Off caché. Un Note On de vélocité 0 termine la note, donc un journal plein de Note On peut quand même relâcher des touches.
- Décodez les octets bruts. Collez-les dans le décodeur de messages MIDI, ou regardez-les arriver dans le testeur MIDI.
Le décalage d'une unité est le bogue MIDI le plus courant qui soit.
Aller plus loin sur un message
- Notes. La vélocité, les numéros de notes et la carte des percussions General MIDI.
- Pression. L'aftertouch de canal et polyphonique.
- Contrôleurs. La pédale de sustain, MSB et LSB, NRPN et RPN et le MIDI learn.
- Sons. Le Program Change.
- Hauteur. Le Pitch Bend.
- Synchronisation et sécurité. L'horloge MIDI, le panic MIDI et le MIDI Thru.
- Données. Le SysEx.
Chaque page ici prend une ligne des tableaux et l'explique avec des exemples. Si tout cela est nouveau pour vous, commencez par ce qu'est le MIDI.
En bref
- L'état d'abord. Un octet de 80 hex ou plus commence un message, et les octets suivants sont des valeurs de 0 à 127.
- Messages de canal. De 80 à EF, avec le canal dans le dernier chiffre.
- Messages système. De F0 à FF, sans canal : SysEx, horloge, Start, Stop et le reste.
- Grands nombres. Deux octets de données font 0 à 16383, comme dans le Pitch Bend.
Lisez le premier chiffre de l'octet d'état et vous savez de quel genre de message il s'agit.
Questions
Combien de types de messages MIDI y a-t-il ?
Le MIDI 1.0 a sept messages de canal (Note Off, Note On, pression polyphonique, Control Change, Program Change, pression de canal et Pitch Bend), les messages de mode de canal sur les CC 120 à 127, et les messages système de F0 à FF.
Qu'est-ce qu'un octet d'état MIDI ?
Le premier octet d'un message, de 80 à FF hex. Il dit de quel message il s'agit et, pour les messages de canal, sur lequel des 16 canaux il se trouve.
Quelle est la différence entre un CC et un NRPN ?
Un CC est un seul message avec un numéro de contrôleur et une valeur de 0 à 127. Un NRPN choisit un paramètre avec les CC 99 et 98 et le règle avec Data Entry sur les CC 6 et 38, donc un changement prend trois ou quatre messages.
Quels messages MIDI InputConfig prend-il en charge ?
Il affecte les notes, le Control Change, le pitch bend, l'aftertouch, le Program Change et Start, Continue et Stop, et il envoie les notes, le Control Change, le pitch bend, le Program Change et le transport. Il ne gère pas l'horloge, le SysEx ni le NRPN.
L'horloge MIDI est-elle un message de canal ?
Non. Le Timing Clock, F8, est un message système temps réel sans canal, envoyé 24 fois par noire.
À lire aussi, en français
Guides détaillés, en anglais
Qui écrit. Ryleigh Newman développe InputConfig et pilote son propre Mac chaque jour avec une manette, parce que ses mains fonctionnent mal. Cette page est traduite de l'anglais. Les principaux boutons et menus de l'app s'affichent en français quand le Mac est réglé en français ; cette page les nomme ainsi, avec le nom anglais entre parenthèses. Le reste de l'app et du site est en anglais.
Cette page dans d'autres langues : English, Deutsch, Español, Italiano, 日本語, 한국어, Polski, Português, Русский, ไทย, 繁體中文, 简体中文
Gratuit. macOS 14 ou ultérieur. Sans compte, rien ne quitte votre Mac. Open source sur GitHub.