Qu'est ce que le midi ?


Origine du MIDI

Avec l'arrivée des premiers synthétiseurs analogiques (fin des années 60) et de l'audio numérique (fin des années 70), les musiciens ont vu naître de nouveaux instruments : synthétiseurs, boîtes à rythmes, échantillonneurs, et bien sur de nos jours l'ordinateur. Afin de profiter des caractéristiques de chacun d'eux, le musicien a voulu faire communiquer ces instruments électroniques. La norme MIDI est apparue officiellement en 1983 afin de réglementer la communication entre les instruments électroniques, tel un véritable langage universel. Car le sigle MIDI signifie Musical Instrument Digital Interface soit en français : interface numérique pour instruments de musique.


Technologie

Début de la page
L'interface MIDI est de type sérielle, asynchrone (similaire au port série "com1", souris ou modem) avec un débit de 31 250 bauds (bits par seconde). Les informations circulant dans vos câbles MIDI sont sous forme de 0 et de 1 regroupées par paquet de 8 bits (un octet), et sont acheminés les uns derrière les autres sur un seul câble.
Les connecteurs imposés par la norme sont des broches à 180 degrés de type DIN 5. Les broches 1 et 3 sont inutilisées, la broche 2 est à la masse pour les prises MIDI-Out et MIDI-Thru (pas de masse pour le MIDI-In). Les broches 4 et 5 véhiculent une boucle de courant de 5 milliampères avec une tension logique de + 5 volts pour un bit à 0 et 0 volt pour un bit à 1.
L'interface Midi véhicule des informations destinées à traduire le jeu du musicien en événements par l'intermédiaire d'octets. C'est à partir de ces octets qu'est constitué le langage MIDI, plus spécifiquement les messages midi (statuts et données).


Le fichier MIDI

Début de la page
La structure d'un fichier MIDI dépend avant toute chose de son format (SMF, Standard MIDI Files). Il existe trois types de fichier midi :

  • le type SMF 0 : il ne contient qu'une piste (ou track), on l'utilise pour sauvegarder une piste seule d'une séquence comportant plusieurs pistes.
  • le type SMF 1 : c'est le fichier midi courant, il contient plusieurs pistes. Les pistes sont stockées dans le fichier les unes derrières les autres, mais lorsque les pistes sont chargées, elles sont interprétées simultanément.
  • le type SMF 2 : ce type est différent du précédent, ce sont des séquences qui sont stockées sous forme de piste (à la suite les unes des autres dans le fichier), mais les pistes sont jouées les unes après les autres. Dans ce type de fichier on peut mettre plusieurs morceaux enchaînés.

Dans la suite, je vous présente la structure d'un fichier midi SMF 1, dans les autres fichiers midi on retrouve cette même structure.

Hearder Chunk :
L'en-tête du fichier est identifier par les quatre octets MThd. A la suite, on trouve les informations concernant le fichier midi : type SMF, nombre de pistes, nombre de divisions dans un quart de notes (Delta Time Ticks) ou le procédé Time Code.

Track Chunk :
Après l'en-tête, on trouve les différentes pistes identifiées par les octets MTrk. Ensuite on trouve les données correspondantes à la piste. L'événement TrkEnd permet de spécifier la fin de la piste. Il existe trois sortes d'événements :

  • les événements MIDI : Note On, Note Off.
  • les messages System Exclusive : contrôle des différents paramètres de l'exécution.
  • les événement META : choix de l'instrument, nom de la piste, les paroles, le copyright, le numéro de séquence, fin de piste ...

Exemple de structure d'un fichier MIDI (décodé en texte clair):

MThd
1 4 96
0 TimeSig 4/4 24 8
0 Tempo 500000
MTrk
0 ProgramChange canal=1 program=5
192 NoteOn canal=1 note=76 velocity=32
384 NoteOff canal=1 note=76 velocity=0
384 Meta TrkEnd
TrkEnd
MTrk
0 ProgramChange canal=2 program=46
96 NoteOn canal=2 note=67 velocity=64
384 NoteOff canal=2 note=67 velocity=0
384 Meta TrkEnd
TrkEnd
MTrk
0 ProgramChange canal=3 program=70
0 NoteOn canal=3 note=48 velocity=96
0 NoteOn canal=3 note=60 velocity=96
384 NoteOff canal=3 note=48 velocity=0
384 NoteOff canal=3 note=60 velocity=0
384 Meta TrkEnd
TrkEnd

 

Sources d'information

Début de la page
Quelques bons livres :

"Programmation multimédia avancée" Steve Rimmer édition Thomson Publishing France.
Le grand livre de la "Sound Blaster" Micro Application.
Le livre d'or de la Norme MIDI, en deux tomes, édition Sybex.

Les forums de discussion des programmeurs et les sites traitant du midi :

Le site ressource en programmation : http://www.dc.ee/Files/Programm.Sound/
Le forum des programmeurs français sur Compuserve : http://forums.compuserve.fr/FrenchProg
A vous de trouvez d'autres adresses...

 


Merci de votre visite. Mise à jour mai 1999.