Vous êtes sur la page 1sur 21

La spécification des messages MIDI (ou

"protocole MIDI") est probablement la


partie la plus importante du MIDI.

Le MIDI est un langage de description


musicale sous forme numérique (binaire).
Il a été conçu pour être utilisé avec des
instruments de musique à clavier, de sorte
que la structure des messages est
orientée vers des événements
d'exécution, tels que la sélection d'une
note et sa frappe, ou le réglage de
paramètres typiques disponibles sur les
claviers électroniques. Par exemple, pour
faire sonner une note en MIDI, vous
envoyez un message "Note On", puis
vous attribuez à cette note une "vélocité",
qui détermine l'intensité du son par
rapport aux autres notes. Vous pouvez
également régler l'intensité sonore globale
de toutes les notes avec un message
"Channel Volume". D'autres messages
MIDI permettent de sélectionner les sons
d'instruments à utiliser, le panoramique
stéréo, etc.
La première spécification (1983) ne
définissait pas tous les "mots" possibles
pouvant être prononcés en MIDI, pas plus
qu'elle ne définissait toutes les
instructions musicales pouvant être
souhaitées dans une performance
électronique. C'est pourquoi, au cours des
20 dernières années, les entreprises ont
amélioré la spécification MIDI originale en
définissant des messages de contrôle de
performance supplémentaires et en créant
des spécifications complémentaires :

le contrôle de la machine MIDI


Contrôle du spectacle MIDI
Code temporel MIDI
MIDI général
Sons téléchargeables
Polyphonie évolutive MIDI

Applications alternatives

MIDI Machine Control et MIDI Show


Control sont des extensions intéressantes
car, au lieu de s'adresser aux instruments
de musique, elles s'adressent aux
équipements d'enregistrement de studio
(magnétophones, etc.) et au contrôle
théâtral (lumières, machines à fumée,
etc.).

Le MIDI est également utilisé pour le


contrôle de dispositifs pour lesquels des
messages standard n'ont pas été définis
par le MMA, comme dans le cas de
l'automatisation des consoles de mixage
audio.

Les différents types de messages MIDI

Un message MIDI est composé d'un octet


d'état de huit bits, généralement suivi d'un
ou deux octets de données. Il existe un
certain nombre de types différents de
messages MIDI. Au niveau le plus élevé,
les messages MIDI sont classés comme
étant des messages de canal ou des
messages de système. Les messages de
canal sont ceux qui s'appliquent à un
canal spécifique, et le numéro du canal
est inclus dans l'octet d'état de ces
messages. Les messages de système ne
sont pas spécifiques à un canal, et aucun
numéro de canal n'est indiqué dans leurs
octets d'état.

Les messages de canal peuvent être


classés en deux catégories : les
messages vocaux de canal et les
messages de mode. Les messages
vocaux de canal transportent des
données de performance musicale, et ces
messages constituent la majeure partie du
trafic dans un flux de données MIDI
typique. Les messages Channel Mode
affectent la manière dont un instrument
récepteur répondra aux messages
Channel Voice.

Messages vocaux de canal

Les messages Channel Voice sont utilisés


pour envoyer des informations sur les
performances musicales. Les messages
de cette catégorie sont les messages
Note On, Note Off, Polyphonic Key
Pressure, Channel Pressure, Pitch Bend
Change, Program Change et Control
Change.

Note On / Note Off / Vélocité

Dans les systèmes MIDI, l'activation d'une


note particulière et le relâchement de
cette même note sont considérés comme
deux événements distincts. Lorsqu'une
touche est enfoncée sur un instrument à
clavier MIDI ou un contrôleur à clavier
MIDI, le clavier envoie un message Note
On sur le port MIDI OUT. Le clavier peut
être configuré pour transmettre sur l'un
des seize canaux MIDI logiques, et l'octet
d'état du message Note On indique le
numéro du canal sélectionné. L'octet
d'état Note On est suivi de deux octets de
données, qui spécifient le numéro de
touche (indiquant quelle touche a été
pressée) et la vélocité (la force avec
laquelle la touche a été pressée).
Le numéro de touche est utilisé dans le
synthétiseur récepteur pour sélectionner
la note à jouer, et la vélocité est
normalement utilisée pour contrôler
l'amplitude de la note. Lorsque la touche
est relâchée, l'instrument à clavier ou le
contrôleur envoie un message Note Off.
Le message Note Off comprend
également des octets de données pour le
numéro de la touche et pour la vélocité
avec laquelle la touche a été relâchée.
Les informations relatives à la vitesse de
la Note Off sont normalement ignorées.

Aftertouch

Certains instruments à clavier MIDI ont la


capacité de détecter la pression exercée
sur les touches lorsqu'elles sont
enfoncées. Cette information de pression,
communément appelée "aftertouch", peut
être utilisée pour contrôler certains
aspects du son produit par le synthétiseur
(vibrato, par exemple). Si le clavier est
équipé d'un capteur de pression pour
chaque touche, l'information "aftertouch
polyphonique" résultante est envoyée
sous la forme de messages de pression
de touche polyphonique. Ces messages
comprennent des octets de données
distincts pour le numéro de touche et la
quantité de pression. Il est actuellement
plus courant pour les instruments à clavier
de ne détecter qu'un seul niveau de
pression pour l'ensemble du clavier. Cette
information "Channel aftertouch" est
envoyée à l'aide du message Channel
Pressure, qui ne nécessite qu'un seul
octet de données pour spécifier la valeur
de la pression.

Pitch Bend

Le message Pitch Bend Change est


normalement envoyé par un instrument à
clavier en réponse aux changements de
position de la molette de pitch bend. Les
informations de pitch bend sont utilisées
pour modifier la hauteur des sons joués
sur un canal donné. Le message Pitch
Bend comprend deux octets de données
pour spécifier la valeur du pitch bend.
Deux octets sont nécessaires pour
permettre une résolution suffisamment
fine pour que les changements de hauteur
résultant du mouvement de la molette de
pitch bend semblent se produire de
manière continue plutôt que par étapes.

Changement de programme

Le message de changement de
programme est utilisé pour spécifier le
type d'instrument qui doit être utilisé pour
jouer des sons sur un canal donné. Ce
message ne nécessite qu'un seul octet de
données qui spécifie le nouveau numéro
de programme.

Changement de contrôle

Les messages de changement de


contrôle MIDI sont utilisés pour contrôler
une grande variété de fonctions dans un
synthétiseur. Les messages de
changement de contrôle, comme les
autres messages de canal MIDI, ne
doivent affecter que le numéro de canal
indiqué dans l'octet de statut. L'octet
d'état de changement de contrôle est suivi
d'un octet de données indiquant le
"numéro de contrôleur", et d'un second
octet qui spécifie la "valeur de contrôle".
Le numéro de contrôleur identifie la
fonction du synthétiseur qui doit être
contrôlée par le message. Une liste
complète des contrôleurs assignés se
trouve dans la spécification détaillée MIDI
1.0.

- Sélection de banque

Le numéro de contrôleur zéro (avec 32


comme LSB) est défini comme la
sélection de banque. La fonction de
sélection de banque est utilisée dans
certains synthétiseurs en conjonction avec
le message de changement de
programme MIDI pour étendre le nombre
de sons d'instruments différents qui
peuvent être spécifiés (le message de
changement de programme seul permet
de sélectionner un des 128 numéros de
programme possibles). Les sons
supplémentaires sont sélectionnés en
faisant précéder le message de
changement de programme d'un message
de changement de contrôle qui spécifie
une nouvelle valeur pour le contrôleur
zéro et le contrôleur 32, permettant ainsi
16 384 banques de 128 sons chacune.

Comme la spécification MIDI ne décrit pas


la manière dont les banques d'un
synthétiseur doivent être mappées aux
messages de sélection de banque, il
n'existe pas de moyen standard pour
qu'un message de sélection de banque
sélectionne une banque de synthétiseur
spécifique. Certains fabricants, tels que
Roland (avec "GS") et Yamaha (avec
"XG"), ont adopté leurs propres pratiques
pour assurer une certaine normalisation
au sein de leurs propres lignes de
produits.

- RPN / NRPN

Le contrôleur numéro 6 (Data Entry),


associé aux contrôleurs numéros 96 (Data
Increment), 97 (Data Decrement), 98
(Non-Registered Parameter Number
LSB), 99 (Non-Registered Parameter
Number MSB), 100 (Registered
Parameter Number LSB) et 101
(Registered Parameter Number MSB),
étend le nombre de contrôleurs
disponibles via MIDI. Les données de
paramètre sont transférées en
sélectionnant d'abord le numéro du
paramètre à éditer à l'aide des contrôleurs
98 et 99 ou 100 et 101, puis en ajustant la
valeur des données pour ce paramètre à
l'aide du contrôleur numéro 6, 96 ou 97.

RPN et NRPN sont généralement utilisés


pour envoyer des données de paramètres
à un synthétiseur afin d'éditer des patches
de sons ou d'autres données. Les
paramètres enregistrés sont ceux qui se
sont vus attribuer une fonction particulière
par la MIDI Manufacturers Association
(MMA) et le Japan MIDI Standards
Committee (JMSC). Par exemple, des
numéros de paramètres enregistrés sont
attribués pour contrôler la sensibilité du
pitch bend et l'accordage principal d'un
synthétiseur. Les paramètres non
enregistrés n'ont pas reçu de fonctions
spécifiques et peuvent être utilisés pour
différentes fonctions par différents
fabricants. Là encore, Roland et Yamaha,
entre autres, ont adopté leurs propres
pratiques pour assurer une certaine
normalisation.

Messages de mode de canal

Les messages Channel Mode (numéros


de contrôleur MIDI 121 à 127) affectent la
manière dont un synthétiseur répond aux
données MIDI. Le contrôleur numéro 121
est utilisé pour réinitialiser tous les
contrôleurs. Le contrôleur numéro 122 est
utilisé pour activer ou désactiver le
contrôle local (dans un synthétiseur MIDI
qui possède son propre clavier, les
fonctions du contrôleur du clavier et du
synthétiseur peuvent être isolées en
désactivant le contrôle local). Les
numéros de contrôleur 124 à 127 sont
utilisés pour sélectionner le mode Omni
On ou Off, et pour sélectionner le mode
de fonctionnement Mono ou Poly.

Lorsque le mode Omni est activé, le


synthétiseur répond aux données MIDI
entrantes sur tous les canaux. Lorsque le
mode Omni est désactivé, le synthétiseur
ne répond aux messages MIDI que sur un
seul canal. Lorsque le mode Poly est
sélectionné, les messages Note On
entrants sont joués de manière
polyphonique. Cela signifie que lorsque
plusieurs messages Note On sont reçus,
chaque note se voit attribuer sa propre
voix (en fonction du nombre de voix
disponibles dans le synthétiseur). Le
résultat est que plusieurs notes sont
jouées en même temps. Lorsque le mode
Mono est sélectionné, une seule voix est
attribuée par canal MIDI. Cela signifie
qu'une seule note peut être jouée sur un
canal donné à un moment donné.

La plupart des synthétiseurs MIDI


modernes fonctionnent par défaut en
mode Omni On/Poly. Dans ce mode, le
synthétiseur joue les messages de note
reçus sur n'importe quel canal MIDI, et les
notes reçues sur chaque canal sont
jouées de manière polyphonique. En
mode de fonctionnement Omni Off/Poly, le
synthétiseur recevra les messages sur un
seul canal et jouera les notes reçues sur
ce canal de manière polyphonique. Ce
mode peut être utile lorsque plusieurs
synthétiseurs sont enchaînés en guirlande
en utilisant MIDI THRU. Dans ce cas,
chaque synthétiseur de la chaîne peut
être réglé pour jouer une partie (les
données MIDI sur un canal), et ignorer les
informations relatives aux autres parties.

Notez qu'un instrument MIDI possède un


canal MIDI qui est désigné comme son
"canal de base". L'affectation du canal de
base peut être câblée ou sélectionnable.
Les messages de mode ne peuvent être
reçus que par un instrument sur le canal
de base.

Messages système

Les messages du système MIDI sont


classés comme étant des messages
communs au système, des messages en
temps réel du système ou des messages
exclusifs au système. Les messages du
système commun sont destinés à tous les
récepteurs du système. Les messages du
système en temps réel sont utilisés pour
la synchronisation entre les composants
MIDI basés sur l'horloge. Les messages
exclusifs au système comprennent un
code d'identification du fabricant (ID) et
sont utilisés pour transférer un nombre
quelconque d'octets de données dans un
format spécifié par le fabricant référencé.

Messages communs du système

Les messages System Common


actuellement définis sont les suivants :
MTC Quarter Frame, Song Select, Song
Position Pointer, Tune Request et End Of
Exclusive (EOX). Le message MTC
Quarter Frame fait partie des informations
du code temporel MIDI utilisées pour la
synchronisation de l'équipement MIDI et
d'autres équipements, tels que les
magnétophones audio ou vidéo.

Le message Song Select est utilisé avec


les équipements MIDI, tels que les
séquenceurs ou les boîtes à rythmes, qui
peuvent stocker et rappeler un certain
nombre de morceaux différents. Le Song
Position Pointer est utilisé pour régler un
séquenceur afin qu'il commence la lecture
d'un morceau à un endroit autre que le
début. La valeur du Song Position Pointer
est liée au nombre d'horloges MIDI qui se
seraient écoulées entre le début du
morceau et le point souhaité dans le
morceau. Ce message ne peut être utilisé
qu'avec un équipement qui reconnaît les
messages en temps réel du système MIDI
(MIDI Sync).

Le message Tune Request est


généralement utilisé pour demander à un
synthétiseur analogique de réaccorder
ses oscillateurs internes. Ce message
n'est généralement pas nécessaire avec
les synthétiseurs numériques.

Le message EOX est utilisé pour signaler


la fin d'un message System Exclusive, qui
peut inclure un nombre variable d'octets
de données.

Messages de temps réel du système

Les messages de temps réel du système


MIDI sont utilisés pour synchroniser tous
les équipements basés sur l'horloge MIDI
dans un système, tels que les
séquenceurs et les boîtes à rythmes. La
plupart des messages System Real Time
sont normalement ignorés par les
instruments à clavier et les synthétiseurs.
Pour garantir un timing précis, les
messages System Real Time sont
prioritaires par rapport aux autres
messages, et ces messages d'un octet
peuvent apparaître n'importe où dans le
flux de données (un message Real Time
peut apparaître entre l'octet d'état et
l'octet de données d'un autre message
MIDI).

Les messages en temps réel du système


sont l'horloge de synchronisation, le
message Start, Continue, Stop, Active
Sensing et le message System Reset. Le
message Timing Clock est l'horloge
maîtresse qui définit le tempo pour la
lecture d'une séquence. Le message
Timing Clock est envoyé 24 fois par quart
de note. Les messages Start, Continue et
Stop sont utilisés pour contrôler la lecture
de la séquence.

Le signal Active Sensing est utilisé pour


aider à éliminer les "notes bloquées" qui
peuvent se produire si un câble MIDI est
déconnecté pendant la lecture d'une
séquence MIDI. Sans le signal Active
Sensing, si un câble est déconnecté
pendant la lecture, certaines notes
peuvent rester indéfiniment en lecture
parce qu'elles ont été activées par un
message Note On, mais le message Note
Off correspondant ne sera jamais reçu.

Le message System Reset, comme son


nom l'indique, est utilisé pour réinitialiser
et initialiser tout équipement qui reçoit le
message. Ce message n'est
généralement pas envoyé
automatiquement par les appareils
émetteurs et doit être déclenché
manuellement par un utilisateur.

Messages exclusifs au système


Les messages exclusifs au système
peuvent être utilisés pour envoyer des
données telles que des paramètres de
patch ou des données d'échantillon entre
des dispositifs MIDI. Les fabricants
d'équipements MIDI peuvent définir leurs
propres formats pour les données
exclusives au système. Les fabricants se
voient attribuer des numéros
d'identification (ID) uniques par le MMA ou
le JMSC, et le numéro d'identification du
fabricant est inclus dans le message
System Exclusive. L'ID du fabricant est
suivi d'un nombre quelconque d'octets de
données, et la transmission des données
se termine par le message EOX. Les
fabricants sont tenus de publier les détails
de leurs formats de données exclusifs au
système, et les autres fabricants peuvent
utiliser librement ces formats, à condition
qu'ils ne les modifient pas ou ne les
utilisent pas d'une manière contraire aux
spécifications du fabricant d'origine.

Certains numéros d'identification exclusifs


au système sont réservés à des
protocoles spéciaux. Parmi ceux-ci, citons
le MIDI Sample Dump Standard, qui est
un format de données exclusif au système
défini dans la spécification MIDI pour la
transmission de données d'échantillons
entre les dispositifs MIDI, ainsi que le
MIDI Show Control et le MIDI Machine
Control.

Vous aimerez peut-être aussi