Le protocole MIDI - Messages MIDI

Leggi questa pagina in Italiano Read this page in English Read this page in English
CDROM Cours Audio Multimédia Ce cours te plaît?
Télécharge la version complète!

Comme déjà souligné, un message MIDI est composé d'une série de bit placés selon un schéma qui est commun à tous les messages. La figure suivante nous montre un message typiquement MIDI:

Le protocole MIDI - Exemple de message MIDI

Exemple de message MIDI

Comme on peut l'observer, le message est composé de trois byte délimités par deux bit, l'un au début (start), et l'autre à la fin (stop). Le premier des 3 byte est appelé status byte et a pour fonction d'indiquer le type de message. Un status byte est toujours caractérisé par le premier bit égal à 1. Les bit 2, 3 et 4 indiquent le type de message; étant donné qu'il y a 3 bit, en fait 8 (23) types différents de message sont disponibles. Les derniers 4 bit du premier byte identifient le canal MIDI, donc on a 16 canaux disponibles. A noter que le nibble (un nibble est une séquence de 4 bit) 0000 identifie le canal 1 et le nibble 1111 (qui équivaut à la valeur 15 décimales) identifie le canal 16. Dans le cas du message cité en exemple, on est en train de transmettre des données sur le canal 3. Après le status byte nous avons deux data byte autrement dit deux byte qui transportent des informations numériques relatives au message défini dans le status byte. Un data byte a toujours le premier bit égal à 0. Les derniers 7 bit du premier data byte décrivent la note jouée, avec 7 bit on peut distinguer 128 (27) notes (ce qui est généralement suffisant si on pense qu'un piano, qui est un des instruments à plus grande extension, a 88 notes). Dans le cas de l'exemple en question on est en train de jouer la note 64 (1000000). Le deuxième data byte indique la vitesse de la note, soit l'intensité avec laquelle elle a été jouée. Tous les claviers de récente fabrication pourvus d'interface MIDI possèdent un contrôle appelé soft touch qui transforme en une valeur l'intensité avec laquelle on a appuyé sur une touche spécifique. De cette façon, il est possible de reproduire la pression de la main sur les touches et exécuter différemment les morceaux joués par exemple en "pianissimo" ou "forte". La valeur de l'intensité est associée à la vitesse avec laquelle on a appuyé sur une touche, en supposant que plus grande est la vitesse, plus grande en est l'intensité. Dans le cas en question la valeur de la vitesse est égale à 90 (1011010). Naturellement, la signification des données contenues dans les data byte varie selon le type du status byte que nous sommes en train de traiter.

Voyons maintenant les différents types de message MIDI.

20.4.1. Channel voice messages

  1. Note off: interrompt l'exécution d'une note. Son format est le suivant:

    Les trois bit qui identifient ce type de message sont: 000

    [1 0 0 0 c c c c ] [0 n n n n n n n] [0 v v v v v v v]

    où c = canal MIDI (4 bit), n = note jouée (7 bit), v = vitesse (7 bit)

  2. Note on: active l'exécution d'une note. Ci-après son format:

    Les 3 bit qui identifient ce type de message sont: 001

    [1 0 0 1 c c c c ] [0 n n n n n n n] [0 v v v v v v v]

    où c = canal MIDI (4 bit), n = note jouée (7 bit), v = vitesse (7 bit)

  3. Polyfonic aftertouch (key pressure): après qu'une touche a été appuyée, elle peut encore être "chatouillée" pour créer un effet vibratoire. Ce message transporte des informations relatives à ce mouvement. On n'y a rarement recours parce qu'il nécessite un capteur pour chaque touche et revient donc assez cher.

    Les 3 bit qui identifient ce type de message sont: 010

    [1 0 1 0 c c c c ] [0 n n n n n n n] [0 p p p p p p p]

    où c = canal MIDI (4 bit), n = note jouée (7 bit), p = pression (7 bit)

  4. Channel pressure (aftertouch): comme le précédent sauf qu'on installe un seul capteur pour tout le clavier-synthétiseur. Un mouvement sur une touche provoquera une vibration sur toutes les notes jouées à ce moment-là sur le canal en question. Le contrôle peut être aussi appliqué à d'autres grandeurs (appliqué à la fréquence, agira comme un trémolo) ou également à la fréquence de coupure d'un filtre.

    Les trois bit qui identifient ce type de message sont: 011

    [1 0 1 1 c c c c ] [0 n n n n n n n] [0 p p p p p p p]

    où: c = canal MIDI (4 bit), n = note jouée (7 bit), p = pression (7 bit)

  5. Program change: au moyen de cette commande, on peut changer le son attribué à un canal par un autre son.

    Les trois bit qui identifient ce type de message sont: 100

    [1 1 0 0 c c c c ] [0 p p p p p p p] [0 - - - - - - -]

    où c = canal MIDI (4 bit), p = programme - son (7 bit)

  6. Control change: utilisé pour contrôler les paramètres relatifs au canal en question comme le volume, la modulation (appliquée par le joystick présent sur plusieurs claviers), le pan. Par exemple, pour réaliser un volume croissant sur un instrument joué sur un certain canal, on peut envoyer une série de ces messages avec des valeurs de volume toujours croissantes.

    Les trois bit qui identifient ce type de message sont: 101

    [1 1 0 1 c c c c ] [0 n n n n n n n] [0 v v v v v v v]

    où c = canal MIDI (4 bit), n = code de contrôle (volume, pan, etc.) (7 bit), v = valeur (7 bit)

  7. Pitch Bending: permet d'effectuer le bend d'une note (si vous ignorez ce que c'est, demandez-le à votre guitariste de confiance). Dans ce cas, 128 nuances de bending différentes sont limitées, surtout dans un bending lent, et pourraient produire un effet "de marches". C'est pour cela que sont employés aussi les 7 bit du deuxième data byte portant la résolution du bending à 14 bit soit à 16384 degrés différents.

    Les trois bit qui identifient ce type de message sont: 110

    [1 1 1 0 c c c c ] [0 B B B B B B B] [0 b b b b b b b]

    où c = canal MIDI (4 bit), B = premiers 7 bit de la valeur du bending, b = les derniers 7 bit



20.4.2. Channel mode messages

A propos du Channel Voice Message de type 6 (control change) on peut avoir 127 codes différents (ce sont les 7 bit du premier data byte). Les 120 premiers se réfèrent aux paramètres communs, comme le volume, le pan, etc. Les 7 derniers sont des messages qui agissent sur la modalité de fonctionnement d'un canal, qui sont:

121 - Reset all controllers: tous les paramètres des dispositifs sont remis à leurs valeur initiales (celles définies à l'allumage du dispositif)

122 - Local control on/off: pour mieux comprendre le fonctionnement de ce type de message, voyons la figure suivante:

Le protocole MIDI - Local control

Local control

Sur un clavier-synthétiseur, l'appui sur une touche agit sur un circuit qui accède à un son existant dans la mémoire et le transfère à la sortie où il devient un son réel. Le signal produit par la touche vers le circuit du clavier-synthétiseur prend le nom de local control. Si le clavier-synthétiseur est en plus relié via MIDI, en appuyant sur une touche, une copie du signal indiquant la touche appuyée est expédiée en passant par la porte MIDI Out. Ce signal, toutefois, rentre de nouveau dans le clavier-synthétiseur par l'entrée MIDI In agissant de nouveau sur la mémoire des sons. Ceci produit un effet écho désagréable à cause de l'exécution d'une note qui est produite par deux évènements différents: un signal généré à partir de la pression de la touche du clavier-synthétiseur, et un même signal qui cependant fait le tour en passant par l'interface MIDI du séquenceur (installé sur l'ordinateur). Comme on peut le voir dans l'illustration, dans une connection MIDI le signal local control est désactivé, éliminant ainsi le problème.

123 - All notes off: on l'appelle aussi "panic" ou "reset devices" sur certains séquenceurs. Il se peut que certains messages MIDI ne soient pas reçus correctement et, par exemple, qu'un message de "note off" ne soit pas reçu, laissant une note jouer à l'infini. Ce message envoie un signal de type "note off" à toutes les notes.

124-125-126-127: les 4 derniers messages définissent ce qu'on appelle le MIDI mode, soit le mode où le clavier-synthétiseur interprète les commandes MIDI.

124-125 Omni mode off-on: ces deux messages activent ou désactivent la modalité Omni. Cette modalité, quand elle est activée, fait en sorte que dans les messages MIDI l'information relative au canal soit ignorée, et donc chaque message est appliqué à tous les canaux. En revanche, quand la modalité est désactivée, chaque message est appliqué au canal indiqué dans le status byte.

126-127 Mono On - Poly On: la modalité Mono On impose la possibilité d'exécuter une seule note à la fois sur le canal. La modalité Poly On permet d'exécuter plusieurs notes en même temps sur un seul canal[51 ].



20.4.3. System messages

Messages de système

Ces messages sont envoyés en même temps sur tous les canaux MIDI. Le message a la forme suivante:

[1 1 1 1 t t t t ] [0 d d d d d d d] [0 d d d d d d d]

où t= type de message de système (4 bit), d= données

Il existe trois types de message de système:

20.4.3.1. System common

Ceux-ci comprennent:

  • MTC: Midi Time Code (temporisation), pour la description détaillée de cet argument se référer à la section relative à la synchronisation [MTC - MIDI Time Code ]

  • Song Position Pointer : référence temporelle d'un endroit du morceau musical

  • Song select: sélection d'un morceau musical dans la mémoire du dispositif

  • End of exclusive: fin de la transmission des données de système (on en reparlera par la suite)


20.4.3.2. System Real Time

Ce sont des messages brefs (1 byte) qui sont envoyés, mélangés aux messages communs. Ils servent à maintenir la synchronisation entre les systèmes reliés via MIDI. Ces messages sont envoyés continuellement au rythme de 24 à chaque quart de note, ce qui fait que le nombre de messages envoyés dans l'unité de temps augmente avec le bpm du morceau. Si la masse des données MIDI à transférer est considérable, il serait mieux d'envoyer les messages de temporisation sur une sortie MIDI séparée.


20.4.3.3. System Exclusive

Ces messages transportent des données spécifiques du dispositif utilisé. Chaque dispositif professionnel MIDI est pourvu de cette fonction qui permet d'en télécharger via MIDI toute la mémoire (comme on dit: exécuter un dump[52 ]). De cette manière toutes les configurations effectuées sur le dispositif dans un certain but, sont expédiées par exemple à un ordinateur où elles sont mémorisées. Quand on a besoin d'appliquer au dispositif des configurations tout à fait différentes, il s'avère pratique d'utiliser les configurations mémorisées sur ordinateur en les rechargeant sur le dispositif toujours via MIDI.






[51 ] a vaut la peine de souligner la différence entre les termes polyphonique et multitimbral qui indiquent les différentes caractéristiques d'un clavier-synthétiseur MIDI. On entend par le terme polyphonique que le clavier-synthétiseur est en mesure de jouer plusieurs notes à la fois sur le même canal MIDI. Multitimbral signifie qu'un clavier-synthétiseur est en mesure de jouer plusieurs instruments à la fois (il va de soi sur différentes canaux MIDI) alors que monotimbral signifie que ne peut être joué qu'un instrument à la fois.

[52 ] En informatique ce terme indique la production d'une copie de réserve des données.








curve 

Lire tout sur l'intégration Audiosonica-Wikipedia Approfondissements sur Wikipédia

curve 

Derniers commentaires

curve 

Derniers articles

curve 

Les plus visitées