Les formats MIDIFILE

 

 

A l'image du MIDI - une normalisation exemplaire de la communication entre instruments électroniques - le format MIDIFILE est devenu le standard universel de stockage des séquences. Aucun séquenceur digne de ce nom, aussi complexe soit-il, ne saurait en ignorer l'importation ou l'exportation.

    Si chaque logiciel propose bien évidemment son propre format, le MIDIFILE s'est imposé comme un véritable standard de fait, une passerelle incontournable entre des logiciels et des plateformes différentes. Le fichier, ayant pour extension .mid ou .smf, est organisé sous forme d'une succession de "chunks". Un chunk est une sorte de paragraphe, à l'intérieur duquel on développe une idée. Un chunk dispose toujours d'une entête, indiquant son nom et la taille des données qu'il contient. La principale particularité de ce type de format de fichier est de pouvoir subir des modifications et des ajouts en restant compatible. En effet, grâce aux entêtes, il devient particulièrement facile pour un logiciel de "sauter" un chunk qu'il ne connaît pas.

Un MIDIFILE est composé d'un chunk "Header" (entête) suivi d'un ou plusieurs chunks "Track" (piste). Si le fichier peut avoir trois formats, seuls les deux premiers sont réellement exploités. Un fichier au format 0 contient une seule piste correspondant à l'ensemble des informations relatives aux canaux MIDI. C'est généralement le format privilégié des programmes de relecture (les "players") qui n'offrent pas de possibilités d'édition évoluées. Un MIDIFILE de format 1, au contraire, contient une ou plusieurs pistes (à jouer simultanément), chacune renfermant des informations propres à un canal. Les MIDIFILES de format 2, quant à eux, n'ont pas une structure linéaire: ils contiennent différentes pistes représentant des patterns indépendants.

Le chunk "Header" contient l'entête du fichier MIDIFILE. Celle-ci a une longueur fixe. Elle spécifie l'organisation générale du fichier, à savoir le type du MIDIFILE, le nombre de pistes qu'il contient, ainsi que sa résolution temporelle (par rapport au ticks du séquenceur, ou en code SMPTE ou MIDI Time Code).

    Viennent ensuite un ou plusieurs chunks "Track", c'est à dire une ou plusieurs pistes. Une piste est une succession d'événements, chacun précédé par un "delta-time". Un "delta-time" est une référence temporelle relative, c'est à dire qu'il marque le temps écoulé depuis le delta-time précédent. Au nombre des événements, on trouve des messages MIDI conventionnels (Note On, changement de patch, contrôleur continu etc...), des messages exclusifs, et des méta-évènements. Certains de ces méta-événements accueillent des données textuelles (Copyright, nom de la séquence, d'une piste ou d'un instruments, paroles d'une chanson ou commentaires etc...). D'autres plus indispensables, règlent le tempo, la signature ou la clef d'une composition (les valeurs par défaut sont le 4/4 à120 BPM). Enfin, à l'image des messages exclusifs, un code spécial, est réservé à des méta-événements spécifiques au séquenceur utilisé.

Les MIDIFILES sont relativement économes en stockage, complets, et assez évolutifs pour ne pas se démoder trop rapidement, ce qui est d'ailleurs maintenant prouvé puisqu'ils existent depuis 1987 et sont encore l'une des denrées les plus convoitées sur Internet. L'assurance de pouvoir migrer d'un logiciel à l'autre, voire d'une plateforme à l'autre, sans pour autant perdre ses données ou les voir altérer par une quelconque conversion hasardeuse leur assure encore un bel avenir.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale