MIDI : Historique et technique

Introduction

Le MIDI (Musical Instrument Digital Interface) est un protocole numérique de communication « universel » créé pour les applications musicales, dont le lancement officiel remonte a 1983.

La norme MIDI est un protocole de communication (code MIDI) permettant de faire communiquer entre eux des instruments de musique électronique avec des ordinateurs ou d’autres machines (boite a rythme, expandeur, synthétiseur…)

Historique

Dans les années 70, certains constructeurs avaient imaginé pour leurs gammes de synthétiseurs différents moyens pour les faire jouer entre eux, c’était très expérimental, peu fiable et souvent monophonique car commandés par des tensions (bien que le standard CV eut un succès d’estime pour certains instruments plus ou moins compatibles). Il fallait en fait rester dans la même marque pour espérer faire communiquer certains instruments entre eux. C’était vraiment l’anarchie totale et quand on pense au prix de ces instruments à l’époque… mais c’était aussi la découverte d’un monde de la synthèse incroyable avec essais et expérimentations par des groupes mythiques Pop Rock tel Pink Floyd, Genesis, Kraftwerk, Emerson Lake & Palmer ou des artistes comme Wendy carlos, Klauss Shultz, Jean-michel Jarre… bref un véritable miroir ayant fait rêver de très nombreux musiciens amateurs.

Fin des années 1970, de multiples essais eurent lieu, cette fois ci avec des puces électroniques (assemblages de plusieurs composants sur le même substrat), c’était le balbutiement comme dans la micro informatique (naissance d’Apple et tant d’autres marques aujourd’hui disparues), sans pionniers il ne peut y avoir d’avancées…

C’est donc début des années 80 que les constructeurs d’instruments de musique décidèrent de créer un protocole de communication permettant tout d’abord de relier entre eux les synthétiseurs (grâce à l’émergence de puces un peu plus puissantes pouvant gérer des flux numériques). Certains constructeurs avaient déjà posé les fondations de ce protocole de communication (Dcb, Usi). Heureusement, en 1982, le nouveau standard MIDI naissait grâce à une collaboration « intelligente » de ces constructeurs très impliqués dans la constructions de synthétiseurs tournés vers l’analogique à commande « digitale » puis totalement numérique (Sequential circuit, Roland, Oberheim, Korg, Yamaha, E-mu, Kawaï entre autre).

Les premiers synthétiseurs MIDI furent le Prophet 600 (Sequential Circuits), le jupiter 6, le Jx3p (Roland) et le DX7 (Yamaha). Ce fut une véritable révolution !, par la suite d’autres instruments de musique furent équipés de cette interface tels des boite à rythmes, échantillonneurs, expandeurs, accordéons… C’est vraiment unique dans l’histoire de l’informatique musicale, car ce standard fut adopté par une multitude de marques et surtout codifié par la MMA (MIDI Manufacturers Association) voir : http://www.midi.org/(lien externe)

Rapidement, de nombreux synthétiseurs abordables apparurent ( Casio Cz10, Kawaï K1, Roland D5 / D10 / D20, Yamaha Dx9 / D11, Korg Poly 61…) démocratisant totalement l’utilisation de cette norme.

Le monde MIDI n’est pas réservé qu’aux clavier puisqu’il existe d’autres interfaces pouvant être reliés avec des capteurs / convertisseurs : Basse, Batterie, Guitare, Instrument à vent… harpe à rayon laser (véridique). Les possibilités sont infinies. Bien sur avec l’avènement de la MAO, d’autres boitiers « magiques » apparurent sur le marché tel des surfaces de contrôle, des tables de mixages ; même le monde de l’audiovisuel fut touché avec la gestion de la lumière…

Connectique

Les prises Midi se présentent sous la forme de connecteurs DIN 5 broches à 180°. Ce type de prise n’étant quasiment plus utilisé en audio, il devenait facile de brancher et de connecter plusieurs appareils ensemble sans se tromper (enfin presque !). Seules les broches 4 et 5 sont utilisés et un câble MIDI ne doit pas excéder une quinzaine de mètre (le courant véhiculé étant très faible, de l’ordre de 5 milliampère).

Il existe donc 3 prises MIDI :

  • La Prise MIDI Out qui permet d’envoyer des données
  • La Prise MIDI In qui permet de recevoir des données
  • La Prise MIDI Thru (à travers !) qui sert en fait de relais et n’est pas forcement implanté dans l’instrument (n’étant pas indispensable mais bien pratique parfois).

Schéma interface MIDI / port manette

Voici pour les « bidouilleurs » (dont je fais partie !)

Tous ces composants sont très courants et disponibles chez tous les revendeurs de composants électronique tel : http://www.selectronic.fr/ par exemple.

Faites chauffer les fers cool

Technique

L’interface MIDI est de type liaison série (les données sont transmises les une après les autres) et asynchrone (facile à mettre en œuvre et bien adaptée pour le jeu des musicien).

Son débit est de 31250 bauds (bits par seconde), l’interface transmet donc plus de 3000 octets par seconde.

Ce débit semble élevé mais il est pourtant possible de le saturer si l’on envoie trop d’informations.

Lors de la transmission, chaque octet (8 bits) est encadré d’un bit de start (départ) avec une valeur 0 et un bit de stop avec un valeur de 1 (ceci afin que le ou les récepteurs puissent détecter la présence d’ informations).
Ce qui donne ceci :
1 (bit de stop) (données sur 1 octet (exemple 01101100)]) 0 (bit de start)
Pour une information (notes, contrôle), on peut avoir besoin de plusieurs données, nous verrons plus loin le détail de certaines…

Dans le cas d’envoi de données en system exclusive (propre à chaque appareil), les informations peuvent être très longues (et parfois bloquer certains appareils).

Un appareil équipé d’une interface MIDI émet, sur 16 canaux différents et indépendants, ce qui permet de piloter 16 instruments différents ou 16 sons différents via le même instrument.

Des données binaires correspondant aux différentes actions effectuées par l’instrumentiste en jouant sont envoyées tel : l’enfoncement / relâchement de notes, la vélocité, le changement de programme, coup de molette ou de pitch bend, modulation, montée et descente du siège de l’instrumentiste :-) ….

Toutes ces données sont immédiatement interprétées par n’importe quel autre appareil MIDI, en temps réel, sans devoir traduire ou modifier quoi que ce soit à condition que l’instrument récepteur puissent accepter certaines données (certains instruments en début de gamme ou anciens ne pouvant interpréter toutes les données).

Le langage MIDI

Ce langage permet de traduire donc le jeu du musicien en évènements informatique compréhensible par la machine (cas d’un ordinateur) ou d’un instrument.

Nous avons donc le schéma suivant :

Musicien (ou musicienne :-) > capteurs (clavier, convertisseur) > logiciel de mise en forme (type matériel ou logiciel) > interface MIDI émettrice > interface MIDI réceptrice > logiciel de remise en forme ! ( type matériel ou logiciel) > instrument (matériel ou logiciel) > système d’écoute.

Statuts et données

Les informations MIDI sont divisés en 2 sortes :

Les statuts (status) et les données (data)

Les statuts définissent la commande réalisé par le musicien (enfoncement d’une touche, relâchement, commande de modulation…)

Les données définissent la valeur (hauteur de la note, vélocité…)

Un message MIDI est donc constitué de plusieurs octets.

L’évènement le plus utilisé (pour un musicien bien sur :-) est l’envoi de notes.
> Lorsqu’une note est émise, le premier octet (statut) représente l’action de départ de la note ainsi que le numéro du canal (1 à 16) ce qui donne : Note On + numéro de canal
> Le deuxième octet représente la hauteur de la note (128 hauteurs différentes pouvant être adressées).
> Le troisième octet représente la vélocité (toujours sur 128 valeurs)
Ce qui nous donne :

Note ON / canal – Hauteur de la note – vélocité

Dés que la note est relâchée, un message de ce type est envoyé :

Note OFF / canal – Hauteur de la note – vélocité (généralement à zéro)

arrow Quand une note se bloque, c’est qu’il n’a pas reçu d’information de note OFF !, c’est pour cela que le bouton panic existe et prend toute son importance (sur ZynAddSubFx par exemple twisted). Il faut donc rejouer la même note pour renvoyer l’information manquante.

contrôleurs

Les contrôleurs sont très utilisés et il y a théoriquement 128 contrôleurs.

Voici les principaux…

> Le contrôleur de volume (valeur 07) est donc chargé de régler le niveau de sortie global du signal avec une valeur comprise entre 0 et 127 (à ne pas confondre avec la vélocité d’une note qui n’agit que sur un seul événement).

> Le contrôleur de balance (valeur 08) permet d’affecter une part égale au signaux Gauche ou Droite en sortie (valeur globale), sa valeur centrale est fixée à 64 (0=tout à gauche, 127=tout à droite). Ce contrôleur est donc utilisé en valeur finale de sortie.

> Le contrôleur de Panoramique (valeur 10) permet d’affecter une part égale au signaux Gauche ou Droite sur chaque canal, sa valeur centrale est fixée à 64 (0=tout à gauche, 127=tout à droite)

Ce dernier contrôleur est d’ailleurs plus souvent utilisé (comme d’autres) avec les séquenceurs.

> Le contrôleur de maintien (sustain / damper pedal) (valeur 64) est utilisé pour reproduire la commande d’une pédale comme sur un piano.

Pour conclure sur ce sujet, le message MIDI pour chaque action est formé d’un Statut + données (le nombre de données étant variable en fonction du type de message).

2006 / 2012 (article écrit initialement sur linumao)

Via un article de bluedid29, publié le 7 décembre 2012

©© a-brest, article sous licence creative common info