Français

Aide-mémoire des messages MIDI : tous les types, octets d'état et plages

Télécharger InputConfig dans le Mac App StoreCette 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

  1. Lisez le premier octet du message en hexadécimal.
  2. 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.
  3. S'il va de F0 à FF, c'est un message système sans canal, donc cherchez-le dans le tableau système.
  4. Lisez les octets de données qui suivent, chacun de 0 à 127, avec le tableau des messages de canal.
  5. 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 1Octet de données 2Pour aller plus loin
Note Off80 à 8FNuméro de note, 0 à 127Vélocité de relâchement, 0 à 127numéros de notes
Note On90 à 9FNuméro de note, 0 à 127Vélocité, 0 à 127 (0 agit comme un Note Off)vélocité
Pression polyphonique de toucheA0 à AFNuméro de note, 0 à 127Pression, 0 à 127aftertouch
Control ChangeB0 à BFContrôleur, 0 à 119Valeur, 0 à 127liste des CC
Program ChangeC0 à CFProgramme, 0 à 127Aucunprogram change
Pression de canalD0 à DFPression, 0 à 127Aucunaftertouch
Pitch BendE0 à EFMoitié fine (LSB), 0 à 127Moitié grossière (MSB), 0 à 127pitch 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ôleurNomCe que ça fait
120All Sound OffCoupe toutes les voix d'un coup
121Reset All ControllersRemet les contrôleurs à leur état par défaut
122Local Control0 est désactivé, 127 est activé : si les touches jouent le son propre du synthétiseur
123All Notes OffRelâche toutes les notes tenues
124 et 125Omni Mode Off et OnSi l'appareil écoute sur un canal ou sur tous
126 et 127Mono Mode On et Poly Mode OnUne 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)MessageDonnéesPour aller plus loin
F0System ExclusiveIdentifiant du fabricant, puis un nombre quelconque d'octets de données, jusqu'à F7SysEx
F1Quart de trame MIDI Time CodeUn octet : un morceau du code temporel
F2Song Position PointerDeux octets : un compte sur 14 bits de temps depuis le début, où un temps vaut 6 impulsions d'horloge
F3Song SelectUn octet : quel morceau ou quelle séquence
F6Tune RequestAucune. Demande aux synthétiseurs analogiques d'accorder leurs oscillateurs
F7End of ExclusiveAucune. Termine un message SysEx
F8Timing ClockAucune. Envoyé 24 fois par noirehorloge MIDI
FA, FB, FCStart, Continue, StopAucunehorloge MIDI
FEActive SensingAucune. Facultatif, au moins toutes les 300 ms une fois qu'un appareil commence à l'envoyer
FFResetAucune. 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.

CCNomPour aller plus loin
0 et 32Bank Select, MSB et LSBMSB et LSB
1Molette de modulationliste des CC
2Contrôleur de souffle
4Contrôleur au pied
6 et 38Data Entry, MSB et LSBNRPN et RPN
7Volume du canal
10Pan
11Expression
64Pédale de sustain (étouffoir) : 0 à 63 désactivée, 64 à 127 activéepédale de sustain
65, 66, 67Portamento, Sostenuto et pédale douce, activés ou non
98 et 99Numéro NRPN, LSB et MSBNRPN et RPN
100 et 101Numéro RPN, LSB et MSBNRPN 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.

MessageAffecter en entréeEnvoyer en sortie
Note On et OffOui, comme un bouton maintenuOui, à la vélocité réglée dans la ligne
Control ChangeOui, comme un interrupteur, un cadran ou une rotationOui, une valeur fixe ou la position d'un stick ou d'une gâchette
Pitch BendOui, plus et moins comme un stickOui, depuis un axe de stick ou un bouton
AftertouchOuiNon
Program ChangeOui, et il peut activer un préréglageOui
Start, Continue, StopOuiOui
Timing ClockNonNon
System ExclusiveNonNon
NRPN et RPNNonNon, 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é.

Le Live Visualizer d'InputConfig dans sa vue MIDI avec le préréglage MIDI: Knob Deck, montrant un clavier, des cadrans et les derniers messages.
Figure 1. Le Live Visualizer nomme chaque bouton par son numéro de CC, donc les CC 7, 10, 64, 71 et 1 ici se lisent directement dans le tableau ci-dessus.
L'éditeur d'InputConfig avec des lignes de croix qui envoient chacune un Program Change, l'une avec un Bank Select avant.
Figure 2. Le CC 0 et le Program Change qui travaillent ensemble. Haut sur la croix envoie un Bank Select, puis un Program Change, en un seul appui.

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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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

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, Русский, ไทย, 繁體中文, 简体中文

Télécharger InputConfig dans le Mac App StoreGratuit. macOS 14 ou ultérieur. Sans compte, rien ne quitte votre Mac. Open source sur GitHub.