Après avoir découvert la norme MIDI dans le précédent article, explorons-en ici les possibilités plus en détail.
Et avant tout, examinons rapidement les différents modes que les dispositifs MIDI peuvent adopter pour communiquer entre eux.
Les modes MIDI
En mode « Mono », une machine MIDI reçoit et retransmet les informations sur tous les canaux. La retransmission ne se fait toutefois qu’en mode monodique.
En mode « Omni », une machine MIDI reçoit sur tous les canaux, mais n’émet que sur un seul canal. En mode « Poly », une machine reçoit sur un seul canal et émet sur plusieurs.
Le mode « Multi » est adapté aux machines multitimbrales, car elles peuvent répondre sur plusieurs canaux différents.
Enfin, le mode General MIDI, apparu dans les années 90 avec le développement des cartes sons et des jeux vidéos sur ordinateurs utilisant des bandes-son MIDI, est une normalisation de l’ordre des sonorités sur les systèmes multitimbraux, afin d’assurer une similarité de reproduction des fichiers MIDI d’une machine à l’autre. Certains fabricants, tels que Roland ou Yamaha ont développé leurs propres modes (GS, XG, etc.) à partir de la norme GM.
Les principaux messages MIDI
Comme nous l’avons vu dans le précédent article, la norme MIDI sert à transmettre — entre deux dispositifs compatibles — des commandes dont nous allons détailler les principales ici.
Pour illustrer notre propos, nous allons considérer un synthétiseur dont le clavier et les différents contrôles ne piloteront pas les sonorités internes, mais celles d’un module externe. Entre les deux, nous aurons connecté, via une interface MIDI, un ordinateur faisant tourner un séquenceur logiciel afin d’enregistrer et de consigner les ordres transmis. À noter que dans notre exemple, nous aurions pu remplacer le synthétiseur « pilotant » par un simple clavier maître dépourvu de fonctions de production sonore. La suite de commandes MIDI émises par le clavier de contrôle sera la suivante :
« Active l’enregistrement de la séquence MIDI sur l’ordinateur. À partir du clavier de mon synthétiseur commandant le module externe, joue le mi de la quatrième octave modérément fort en utilisant le son du préset 245 de la banque 3 du module externe. Tout en maintenant la touche enfoncée, augmente la fréquence de coupure du filtre selon la pression exercée sur ladite touche, et modifie la résonance du filtre grâce à la rotation du potentiomètre concerné. Toujours en maintenant la touche enfoncée, fais évoluer la hauteur de la note grâce à la molette de pitch bend. Arrête la note. »
Voici de quoi il s’agit…
« Active l’enregistrement de la séquence MIDI sur l’ordinateur. » : Horloge MIDI et commandes de transport
Le message d’horloge MIDI permet de synchroniser plusieurs dispositifs MIDI entre eux. Les messages dits de transport permettent de commander le démarrage, l’arrêt et la reprise de la lecture d’une séquence ou d’un fichier MIDI. La commande d’enregistrement n’a été « midifiée » sur les séquenceurs qu’à partir de 1992 et l’apparition du standard MMC (Midi Machine Control) permettant l’extension de la midification des commandes de transport de base.
« À partir du clavier de mon synthétiseur commandant le module externe… » : Contrôle clavier local ou déporté (Mode Local On ou Off)
Ce type de commande permet de définir si le clavier (ou tout autre périphérique de jeu, tels des pads par exemple) de l’instrument va piloter les sonorités internes de celui-ci ou celles d’un autre appareil branché à la prise MIDI OUT. Dans notre exemple, c’est la deuxième option qui est choisie.
« … joue… » : Note On
Le message de Note-On indique au système qu’une note a été activée.
« … le mi de la quatrième octave… » : Numéro de note
Chaque note, en MIDI, est identifiée par un numéro. Ici, il s’agit du numéro 52.
« … modérément fort… » : Vélocité
Cela peut sembler étrange d’associer le volume du son produit avec la vélocité, mais nous allons voir que c’est en fait très logique. En effet, le système mesure la vitesse avec laquelle une touche passe de la position de repos à celle d’enfoncement. Plus on joue « fort », plus cette vitesse est élevée. Un jeu « modérément fort » se traduirait par des valeurs MIDI de vélocité situées entre 60 et 70.
« … en utilisant le son du préset 245… » : Changement de programme (Program Change)
Les messages de changement de programme intiment l’ordre au dispositif récepteur de modifier le préset courant afin de changer de sonorité — ou d’effet dans le cas d’un processeur d’effets.
« … de la banque 3 du module externe. » : Sélection de banque (Bank Select)
Ce message sert à la sélection de banques quand le dispositif concerné possède plus de 128 présets, nombre maximal pouvant être contenu dans une banque.
« Tout en maintenant la touche enfoncée, augmente la fréquence de coupure du filtre selon la pression exercée sur ladite touche, … » : Pression de touche par canal ou pression de touche polyphonique (Channel aftertouch ou Polyphonic aftertouch)
Cette fonction permet de moduler un paramètre – ici la fréquence de coupure du filtre — en fonction de la pression (ne pas confondre avec la vélocité !) exercée sur les touches du clavier après l’enfoncement de ces dernières. La plupart du temps, la pression sur une seule touche provoque l’envoi d’une même valeur pour l’ensemble du clavier. On parle alors de « pression de touche par canal ». Toutefois, certains appareils MIDI permettent de différencier les valeurs de pression en fonction de chaque touche. On parle alors de « pression de touche polyphonique ».
« … et modifie la résonance du filtre grâce à la rotation du potentiomètre concerné. » : Changement de contrôle (Control change — CC)
Le message de changement de contrôle indique qu’un contrôleur continu (potentiomètre, fader, molette) est en cours d’utilisation. Ce type de messages peut consommer une grande partie des capacités de transmission du canal MIDI concerné. C’est pourquoi, comme déjà précisé dans le précédent article, ce genre de contrôles bénéficie très souvent de son propre port MIDI de 16 canaux sur des contrôleurs MIDI proposant clavier et contrôle de paramètres, afin de ne pas créer de conflit avec les flux de données MIDI concernant la gestion de notes.
« Toujours en maintenant la touche enfoncée, fais évoluer la hauteur de la note grâce à la molette de pitchbend. » : Pitch Bend
Ce message commande la modification de hauteur de la note grâce – généralement – à la molette du même nom. Ce type de messages est un peu particulier puisque contrairement aux autres, il est codé sur 14 bits et permet donc d’étendre à 16 384 le nombre de degrés de modification, au lieu des 128 degrés habituels du MIDI. La molette de modulation souvent située à côté de celle de pitch bend envoie quant à elle des messages CC traditionnels sur 128 degrés.
« Arrête la note. » : Note-off
Lors du relâchement de la touche sur le clavier, un message de Note Off est envoyé afin de commander au système de couper le son précédemment activé. Certains dispositifs possèdent également un bouton « Panic » ou « All-notes-off » qui permet de couper d’autorité des notes qui seraient restées « coincées » après le relâchement de la touche, ce qui peut arriver de temps en temps.
Certains dispositifs reconnaissent également une vélocité de relâchement, ce qui permet de modifier la manière dont un son va se terminer en fonction de la vitesse à laquelle la touche va être relâchée.
Pour aller plus loin
En plus des messages standards détaillés plus haut, la norme MIDI propose différents moyens de dépasser ses propres contraintes.
Le premier est l’utilisation de messages dits « système exclusif » (SysEx). Les messages de ce type ont été prévus pour transmettre toutes les données propres au fonctionnement d’une machine en particulier. L’un des usages les plus courants est la récupération au sein d’un séquenceur des listes de présets d’une machine. Mais ils peuvent servir également à dépasser les contraintes du MIDI en termes de musique non tempérée (utilisation de microtons, etc.).
L’autre moyen passe par les « numéros de paramètres enregistrés » ou NPE (Registered Parameter Numbers ou RPN en anglais) et « non-enregistrés » ou NPNE (Non-Registered Parameter Numbers ou NRPN en anglais). Les NPE sont pour l’instant au nombre de 5 : sensibilité du pitch bend, accordage « grossier » par demi-tons ou « fin » par centièmes de tons, profondeur de la modulation (cf prochain article) et remise à zéro des NPE et NPNE. Tout comme le paramètre de pitch bend, ils sont codés sur 16 384 degrés. Les NPNE se différencient des NPE en ce qu’ils sont librement assignables à n’importe quel paramètre. Toutefois, tous les dispositifs MIDI ne sont pas en mesure de traiter ce genre de données.