Les fichiers
standards permettent de stocker une séquence encodée,
ils portent l'extension .mid ou .stf. Ils sont structurés
par blocs, un pour l'en-tête et quelques autres pour les
pistes.
Bloc d'en-tête MThd :
- Identification sur 4 octets (ASCII)
- Longueur sur 32 bits
- données
Format (sur
16 bits) |
format 0 |
1 piste pour 16 canaux |
|
format 1 |
plusieurs pistes
simultanées |
|
format 2 |
plusieurs pistes
indépendantes |
Nombre blocs de pistes (sur 16 bits) |
|
|
Nombre
d'impulsion d'horloge (sur 16 bits) |
msb=0 |
nombre d'impulsions
d'horloge pour chaque quart de note |
|
msb=1 |
bit 0 à 7 nombre
d'impulsions d'horloge par bits de trame SMPTE |
|
bit 8 à 14 |
nb négatif exprimant le
nombre de frames par secondes selon le format SMPTE |
Bloc de piste MTrk :
- Identification sur 4 octets (ASCII)
- Longueur sur 32 bits
- Données
Evénements (longueur définie)
|
Numéro de
séquence |
FF 00 02 ss ss |
'ss ss'
représente le n° |
Texte |
FF 01 |
longueur - texte |
Copyright |
FF 02 |
longueur - texte |
Nom de la piste
|
FF 03 |
longueur - texte |
Nom de
l'instrument |
FF 04 |
longueur - texte |
Paroles |
FF 05 |
longueur - texte |
Marqueur |
FF 06 |
longueur - texte |
Spécial |
FF 07 |
longueur - texte |
Port MIDI |
FF 21 01 |
pp |
Fin du bloc de
piste |
FF 2F 00 |
OBLIGATOIRE |
Changement de
Tempo |
FF 51 03 tt tt tt |
'tt tt tt'
microsecondes / noire
soit 60,000,000 / 'tt tt tt' beats / mn |
Offset SMPTE
|
FF 54 05 hr mn se fr ff |
heures - minutes - secondes
- images - résolution |
Metronome |
FF 58 04 nn dd cc bb |
'nn' / 'dd' mesure
avec dd=1/2 dénominateur, (4 / 8) dd=4
'cc' nombre d'impultions d'horloge par quart de
trame (souvent fixé par le logiciel)
'bb' en 1/32 durée d'une noire, 24 le plus
souvent |
Clée |
FF 59 02 sf mi |
'sf' -1 à -7
bémols ou 1 à 7 dièses
'mi' 0 mode majeur ou 1 mode mineur |
Evènement
propriétaire |
FF 7F |
longueur - données |
delta_time |
durée
référée sur l'événement
précédent, le dernier octet d'un delta-temps
est identifié en ayant MSbit=0 |
|