La norme MIDI et les fichiers MIDI
L'INTERFACE MIDI est originellement de type sériel asynchrone, avec un débit maximal de 31.250 bauds (bits par seconde). Comme il faut 10 bits pour acheminer un octet (1 bit de début, les 8 bits de l'octet et 1 bit de fin), cela représente environ 3Ko/s, à savoir près de 500 débuts et fins de notes (totalisant de six à huit octets) si l'on ne compte pas les codages de contrôles (pitch bend, portamento, aftertouch…) et les paramétrages.
Pour prendre connaissance de façon littéraire, deux sites francophones:
getzen.pagesperso-orange.fr/norme.htm
daffyduke.lautre.net/zik/midi_index.html.
Ces sites anglophones sont plus techniques:
www.midi.org/techspecs/midimessages.php: les spécifications techniques du MMA
educypedia.karadimov.info/library/The_MIDI_Specification.pdf: un pdf de 1,6Mo
faydoc.tripod.com/formats/mid.htm
www.sonicspot.com/guide/midifiles.html
home.roadrunner.com/~jgglatt/
Par ailleurs, il a fallu expérimenter certaines fonctions qui n'étaient pas clairement décrites. Cela a été réalisé par l'analyse de fichiers en MIDI exportés par le séquenceur rosegarden, puis en y important des fichiers fabriqués pour l'occasion grâce à python.
1. Prérequis
Le binaire est un mode d'écriture des nombres ne connaissant que deux chiffres, le 0 et le 1. De la même manière que le nombre décimal 982 est l'addition de deux unités, huit dizaines et neuf dizaines de dizaines, le nombre binaire 101011 vaut l'addition d'une unité (1), une paire (2), une paire de paires de paires (8) et une paire de paires de paires de paires de paires (32), ce qui fait 43.
Le mode d'écriture binaire est intéressant lorsque l'on s'intéresse à certaines particularités des octets, que l'on peut tous écrire sous la forme nnnnnnnn, chaque n pouvant prendre la valeur 0 ou 1, l'octet valant de 0 à 255. 0nnnnnnn par exemple signifie que le bit de poids le plus fort (le plus à gauche) vaut 0, ce qui donne les possibilités de valeur de 0 à 127.
En informatique, les nombres sont parfois donnés en hexadécimal: il s'agit d'une forme d'écriture des nombres en base 16, dont les chiffres vont de 0 à 9 puis de A (10) à F (15). x35 vaut 3x16 + 5= 43 et n'est donc pas égal à 35. Dans cette page, les nombres hexadécimaux sont préfixés d'un x.
Une donnée codée sur quatre bits, un quartet, peut prendre les valeurs de 0 à 15 tout en étant représentée par un seul chiffre hexadécimal, ce qui facilite l'assemblage de deux données, comme par exemple l'evénement «début de note» x9 sur le canal 11 (xB), qui donne l'octet x9B.
2. Structure d'un fichier MIDI
Attention: l'organisation des données stockées dans un fichier MIDI n'est pas nécessairement la même que celles envoyées aux instruments MIDI, plus proches de la séquence des événements joués.
Il existe au moins deux plages ("chunk" dans la terminologie informatique anglophone, ce qui désigne tout paquet structuré de données dans un fichier): l'un pour l'entête de fichier (commençant par MThd, peut-être de MIDI Track header), les autres (commençant par MTrk, peut-être de MIDI Track?) rassemblant données. MThd ou MTrk est suivi d'un nombre de quatre octets qui indiquent la place occupée par les données qui suivent.
2.1 La plage d'entête
Jusqu'à présent invariablement de 14 octets, la première plage de donnée renseigne sur la structure du fichier et de la plus petite unité de temps considérée.
- 4 octets - nombre arbitraire x4D546864, dont l'équivalent ASCII est MThd
- 4 octets - espace des spécifications du fichier: x00000006 pour les 6 octets suivants
- 2 octets - type SMF (Standard Midi File): de x0000 à x0002
- SMF 0: une seule plage de données où se mélangent les événements de plusieurs canaux.
- SMF 1: plusieurs plages qui se suivent dans le fichier, mais jouées simultanément. Les métadonnées se trouvent sur la première plage.
- SMF 2: plusieurs plages, jouées l'une après l'autre (peu utilisé)
- 2 octets - nombre de plages de données ("MTrk"), de 1 à 65.535
- 2 octets - nombre division de la noire (quart de ronde):
- 0AAAAAAA AAAAAAAA deux octets codent simplement (en général 120, 240, 480, 960…)
- 100BBBBB CCCCCCCC codée de façon SMPTE. Signification des deux octets:
- 100BBBBB les cinq bits faibles donne 24, 25, 29 (=29,97 FPS) ou 30 images par seconde
- CCCCCCCC nombre de subdivisions d'une image (frame)
2.2 Les plages de données
Les plages sont composées de délais, d'événements musicaux, de contrôles et de métadonnées dont il sera question dans la section suivante.
- 4 octets - nombre arbitraire x4D54726B, dont l'équivalent ASCII est MTrk
- 4 octets - longueur de tout ce qui suit, c'est-à-dire:
- … les données telles que décrites ci-dessous
- 3 octets - xFF-x2F-x00 doivent impérativement terminer chaque plage.
2.3 Lecture des données
La lecture des données se fait de deux façons: mode «délai», qui calcule le nombre divisions de la noire depuis la dernière action (cela peut être égal à zéro) et le mode «action», qui concerne les événements (notes), les contrôles (paramétrages) ou les métadonnées (informations sur la partition). La lecture des données commence en mode délai.
Mode délai
- tant que l'octet > 127:
- suppression du bit de poids fort (valeur de l'octet - 128)
- lecture de l'octet suivant
- quand l'octet < 128
- prise de la valeur de l'octet tel quel
- calcul du temps à partir des octets lus
- passage en mode action
Mode action
- si l'octet > 127:
- selon la valeur du premier quartet (explicité plus bas):
- x8: Note off event (une note est éteinte sur un canal)
- x9: Note on event (une note est jouée sur un canal)
- xA: Aftertouch (vibrato sur une note)
- xB: Control Change (paramétrage d'un canal)
- xC: Program Change (changement d'instrument sur un canal)
- xD: Canal pressure (vibrato sur un canal)
- xE: Pitch Wheel Change (glissando sur un canal)
- le nombre de octets à lire dépend de l'action
- passage en mode délai
- selon la valeur du premier quartet (explicité plus bas):
- si octet < 128
- la dernière action est répétée («running status»)
- l'octet est le premier des octets à lire pour l'action
- passage en mode délai
Running status
Le mode «running status» permet de ne pas répéter le premier octet (status + Canal), tant qu'il s'agit de la même fonction. Sur le canal 3, au lieu d'être codé
Dél ÉvCan Note Vél x00 - x93 - x3C - x40 x00 - x93 - x40 - x40 x00 - x93 - x43 - x40
l'accord C3 - E3 - G3 sera codé
x00 - x93 - x3C - x40 x00 - x40 - x40 x00 - x43 - x40
où l'on gagne deux octets. Néanmoins, l'utilisation de la vélocité nulle pour éteindre une note avec le status x9 empêche de préciser une vélocité qui aurait accompagné une extinction de note x8.
3. Contenu des plages de données
3.1 Delta-time (mode «délai»)
Chaque événement (production de son, contrôle, métadonnées) est précédé d'un délai, même nul, par rapport à l'événement précédent. Le codage ne se fait que sur les sept bits moins significatifs d'octets, et concerne le nombre de tranches défini dans la plage d'entête.
Si nous avons la séquence x82-x7C-…
- x82=%10000010 vaut 2: le bit le plus à gauche (le plus significatif) ne compte pas mais nous indique qu'il faut le compléter avec le suivant.
- x7C = %01111100 vaut 124, le bit le plus à gauche est 0: il s'agit du dernier octet codant le délai.
2*128 + 124 = 480 unités de temps à attendre avant l'événement qui suit.
En cas des 3 octets x93-x85-x40 (147-133-64), cela se calcule de la façon suivante:
311.296 (147-128)*128*128
640 (133-128)*128
64 (valeur inférieure à 128: dernier octet)
312.000 En cas de division de la noire à 480, cela donne un délai de 650 unité de temps (650x480=312000).
La limite de 4 octets imposée par la norme MIDI se code xFF-xFF-xFF-x7F, ce qui permet la valeur extrême de 128^4 = 268.435.455 représentant 559.240 noires à 480 divisions.
3.2 Événements (mode «action»)
Les événements sont des données qui servent à coder un son à produire, dont l'ouverture ou la fermeture de note et quelques paramètres… Les événements sont codés sur trois octets, le bit de poids fort du premier octet est positionné à 1.
- 1 octet: 4 bits pour le type d'événement - 4 bits (x0 à xF) pour préciser un canal de 1 à 16, noté ci-après c
- 1 octet - première donnée: souvent la note, de 0 (C0/Do0) à 127 (x7F) (G10/Sol10)
- 1 octet - seconde donnée de 0 à 127 (x7F) quand il y a lieu
x9 Note On Event
Cet événement déclenche la production de la note précisée.
Le troisième octet «vélocité» permet de coder une rapidité, une force d'attaque: 1 est le plus lent/faible, 127 le plus rapide/fort. Les claviers non sensitifs codent normalement cette valeur à x40 (64). La valeur 0 est une façon d'éteindre une note.
x9c - note - vélocité
Pour produire la note A3 (440Hz) sur le premier canal, le premier octet sera composé de x9 pour les 4 bits de poids fort et x0 pour les bits de poids faible: %10010000= x90; le second est l'ordre du la3: 45, le 0 étant le C0.
x8 Note Off Event
Cet événement met fin à la note précisée.
La fin de note est un événément qui doit être précisé. Le troisième octet «vélocité» détermine la rapidité d'extinction (0 le plus lent, 127 le plus rapide).
x8c - note - vélocité
xA Polyphonic Key Pressure (Aftertouch)
La fonction «aftertouch» donne un vibrato opéré par une variation de pression sur la touche. Le troisième octet est la valeur de pression (0 la pression la moins forte, 127 la plus forte) d'un clavier «aftertouch». L'«aftertouch» contrôle le vibrato (LFO: Low Frequence Oscillator). Une réinitialisation du contrôle (voir ci-après) remet la valeur vibrato à 0
xAc - note - vibrato
xB Control Change
Permet de paramétrer chaque canal. Voir la section consacrée au Control Change.
xC Program Change
Sert à préciser pour un canal l'instrument (de 0 à 127, voir la liste des instruments General MIDI) de la banque de son en cours. Cette fonction se code sur deux octets seulement.
xCc - instrument
xD Canal Pressure
La valeur «aftertouch» s'applique ici l'ensemble des sons produits sur un canal, si c'est l'ensemble du clavier (et pas chacune des notes) qui est sensible à la pression. Aucune note ne devant être précisée, la fonction n'est codée que sur deux octets. Comme pour la fonction «aftertouch», la pression sur le canal contrôle le vibrato (LFO). Une réinitialisation du contrôle (voir ci-après) remet la pression sur le canal à 0
xDc - vibrato
xE Pitch Wheel Change
Le pitch bend est la molette servant à infléchir les notes en train d'être jouées sur un canal. Les deux octets admettent les valeurs de 0 à 127 (x7F), ce qui donne 128*128 valeurs possibles, de 0 à 16383. Pour la calculer: fort*128 + faible. Le premier octet contient la valeur de poids faible, le second de poids fort. Attention: la profondeur de l'infléchissement (un demi-ton, une octave?) dépend du matériel et rien ne dit qu'elle y soit paramétrable. Une réinitialisation du contrôle (voir ci-après) remet le pitch bend à 0 - 64
xEc - faible - fort
3.3. Control Change
Permet de paramétrer chaque canal. J'ai tenté une traduction des termes, que je ne garantis pas. Les valeurs vont de x00 à x7F (127).
xBc - type - valeur
Types définis:
x00 Bank Select: sélection d'une banque de sons
x01 Modulation Wheel: roulette de modulation (à 0 si réinitialisation)
x02 Breath Controller: contrôle par le souffle
x04 Foot Controller: contrôle au pied
x05 Portamento Time: rapidité du portamento
x06 Data Entry MSB: octet fort de donnée supplémentaire
x07 Channel Volume: volume principal d'un canal
x08 Balance
x0A Pan: panoramique, 64 est le milieu
x0B Expression Controller: contrôle de l'expression (127 si réinitialisation)
x0C Effect Control 1: effet 1
x0D Effect Control 2: effet 2
x10 à x13 General Purpose 1-4: contrôleurs tout usage
x20 à x3F octet de poids faible pour les contrôleurs 0-31
x40 Damper Pedal: maintient toutes les notes (0 si réinitialisation)
x41 Portamento On/Off (0 si réinitialisation)
x42 Sostenuto On/Off: sustain pour la note jouée au moment du déclenchement (0 si réinitialisation)
x43 Soft Pedal On/Off: pédale douce (0 si réinitialisation)
x44 Legato Footswitch: contrôle de legato au pied
x45 Hold 2: autre sustain
x46 Sound Controller 1 / Sound Variation: variation du timbre
x47 Sound Controller 2 / Timbre/Harmonic Intens.: contenu harmonique du timbre
x48 Sound Controller 3 / Release Time: temps de release par défaut
x49 Sound Controller 4 / Attack Time: temps d'attaque
x4A Sound Controller 5 / Brightness: brillance
x4B Sound Controller 6 / Decay Time: temps d'extinction du son
x4C Sound Controller 7 / Vibrato Rate: fréquence de vibrato
x4D Sound Controller 8 / Vibrato Depth: profondeur du vibrato
x4E Sound Controller 9 / Vibrato Delay: délai avant le vibrato
x50 à x53 General Purpose Controller 5-8
x54 Portamento Control
x58 High Resolution Velocity Prefix
x5B Effects 1 Depth / Reverb Send Level: intensité de réverbération
x5C Effects 2 Depth / formerly Tremolo Depth: intensité de trémolo
x5D Effects 3 Depth / Chorus Send Level: intensité de chorus
x5E Effects 4 Depth / formerly Celeste Detune Depth: profondeur du désaccord
x5F Effects 5 Depth / formerly Phaser Depth: intensité de phaser
x60 Data Increment (Data Entry +1): incrémentation de donnée (pas d'octet de valeur)
x61 Data Increment (Data Entry -1): décrémentation de donnée (pas d'octet de valeur)
x62 NRPN / Non-Registered Parameter Number - LSB: octet de poids faible de numéro de paramètre non enregistré
x63 NRPN / Non-Registered Parameter Number - MSB: octet de poids fort de numéro de paramètre non enregistré
x64 RPN / Registered Parameter Number - LSB: octet de poids faible de numéro de paramètre enregistré
x65 RPN / Registered Parameter Number - MSB: octet de poids fort de numéro de paramètre enregistré
x78 - x00 All Sound Off: éteint tous les sons, même les fins d'enveloppe
x79 - x00 Reset All Controllers: réinitialise tous les contrôles
x7A - xnn Local Control On/Off: désactive (x00) ou réactive (x7F) la production du son par le clavier maître
x7B - x00 All Notes Off: éteint toutes les notes (mais pas les enveloppes), comme le font les quatre suivant
x7C - x00 Omni Mode Off - recommandé explanations
x7D - x00 Omni Mode On: envoie les événements sur tous les canaux
x7E - xnn Mono Mode On: ne permet qu'une note à la fois sur un canal, ce qui permet de mieux simuler la production de son d'un instrument monophonique (portamento); xnn est le nombre de canaux???
x7F - x00 Poly Mode On: permet plusieurs notes simultanées sur un même canal
3.4 Métadonnées
Les métadonnées servent au séquenceur, et ne sont pas envoyées à l'interface. Elles commencent par l'octet xFF, un type selon la fonction, un octet n qui délimite la longueur de la séquence des données, qui ne peut excéder 255 octets.
0 Sequence Number
L'identifiant, allant de 0 à 65535, doit être écrit avant tout délai et événement, mais ne semble pas obligatoire (sauf pour le SMF 2?), car en cas de plages multiples, elle sont considérées selon l'ordre d'apparition.
xFF - x00 - x02 - octet fort - octet faible
1 Text Event
Insère un texte.
xFF - x01 - n - texte
2 Copyright Notice
Le copyright se précise avant tout événement, dans une première plage à part.
xFF - x02 - n - texte
3 Sequence Name
Permet de préciser le nom de la piste.
xFF - x03 - n - texte
4 Instrument Name
Permet de préciser le nom d'un instrument.
xFF - x04 - n - texte
5 Lyric/Display
Sert à écrire les paroles, ajustées à la musique.
xFF - x05 - n - texte
La pratique recommandée (RP-017) est d'écrire une seule syllabe à la fois (ce qui facilite l'affichage karaoké), terminer le texte par l'espace chr(x20), terminer chaque ver par le retour-chariot chr(x0D), chaque strophe par la nouvelle ligne chr(x0A)…
Les caractères ASCII de 32 à 127 semblent tous acceptés, mais [ ] { } servent au codage. Pour les utiliser, il faut les précéder de \ : \{, \}, \[, \]. Pour coder \, il suffit de le doubler: \\. L'antislash permet également de coder la tabulation \t, le retour-chariot \r et la nouvelle ligne \n. Pour plus d'information, voir RP-26.
6 Marker text
Remarque, souvent sur la première piste
xFF - x06 - n - texte
7 Cue point
Permet d'indiquer un événement à un endroit précis de la partition, éventuellement le nom d'un fichier son à télécharger.
xFF - x07 - n - texte
8 Program Name
Permet d'étiqueter le nom de l'instrument choisi, en conjonction avec le choix de la banque de son xB* - x00 - xnn ou du choix de l'instrument xC* - xnn (RP-019).
xFF - x08 - n - texte
9 Peripheric Name
Doit permettre d'étiqueter de façon unique le périphérique d'une piste, en précisant par exemple le nom de la boîte de son ou du clavier/synthétiseur. À placer en tout début de plage, avant le contrôle de la banque de son xB* - x00 - xnn ou du choix de l'instrument xC* - xnn , et avant tout envoi d'événement. Un nom d'instrument ne peut se retrouver qu'une fois dans le fichier: une seule piste pour les fichier SMF1 (RP-019).
xFF - x09 - n - texte
32 / 33 Supprimés
47 End of track
Chaque plage de données doit impérativement se terminer par les trois octets qui suivent:
xFF - x2F - x00
81 Tempo Setting
Par défaut, le tempo d'un fichier MIDI est de 120 battements par minute, donc d'une durée d'une demi-seconde par noire, soit 500.000 microsecondes (µs) codés en trois octets valant de 0 à 255.
xFF - x51 - x03 - Octet1 - Octet2 - Octet3
65 battements par minute= 60.000.000µs/65= 923076 (arrondi par défaut), qui vaut x0E15C4, soit les octets x0E - x15 - xC4
84 SMPTE Offset
Le marquage SMPTE, hérité de la vidéo, précise le décalage en nombre d'heures, de minutes, de secondes, d'images (frames) et encore de subdivision d'images (subframe)
xFF - x54 - x05 - heure - minutes - secondes - images - sub
- heure= %nn0hhhhh: code le nombre de frames par seconde et l'heure:
- nn prend les valeurs %00 pour 24 images par seconde, %01 pour 25ips, %10 pour 29,9ips, %11 pour 30ips
- hhhhh code de 0 à 23 heures, de %00000 à %10111
- images: entre 0 et l'ips choisi - 1 (de 0 à 29 pour 30 images par seconde)
- sub: toujours de 0 à 99 pour cette fonction, quelle que soit la division précisée dans le MThd
88 Time Signature
Définit la mesure (2/4, 3/4, 3/8, 4/4, 5/4, 7/8…)
xFF - x58 - x04 - numerateur - dénominateur - metronome - ntc
- numérateur: le nombre de temps
- dénominateur: le rang de la a division de la ronde: x00=ronde, x01= blanche, x02=noire, x03=croche…
- metronome: x18 (24) pour la noire, x30 (48) pour la croche…
- ntc: x08, nombre de triples coches par 24 clics
par défaut: (4/4) x04-x02-x18-x08
89 Key Signature
Concerne la tonalité et le mode: nombre de dièses ou de bémols «à la clé», majeur ou mineur. Cela peut changer en cours de route.
xFF - x59 - x02 - altération - mode
- altération (octet signé): de xF9 (7 bémols) à 7 (7 dièses). 0 pour aucun dièse ni bémol.
- mode: x00 (majeur) ou x01 (mineur)
127 Sequencer Specific Event
Permet l'envoi de commandes, spécifiques aux constructeurs d'appareils MIDI.
xFF - x7F - n - octet(s) - chaine
Le premier octet de la chaîne est l'ID du contructeur (si 0, les deux suivants sont l'ID), les octets suivants ne devraient être lus que par le matériel concerné.
4. Messages
Il n'y a pas identité parfaite entre ce qui compose un fichier MIDI et ce qui transite par l'interface.
Les événements (débuts et fin de note, action de la molette, l'aftertouch… sont communs au fichier et au flux envoyé par l'interface.
Les métadonnées (paroles, noms des pistes, copyright, clés, tonalité…) que l'on indique au séquenceur n'ont pas de rapport avec la production de son.
Quelques commande en temps réel transitent par l'interface en dehors de tout fichier MIDI. Ils sont envoyés à tous les périphériques connectés.
4.1 System Messages
Peuvent intervenir à n'importe quel moment, et terminent un message System Exclusive.
xF0 System Exclusive Message (SysEx)
Permet d'envoyer des données autre que des événements MIDI à un matériel spécifique.
xF0 - id - données - xF7
Exemples trouvés:
GM Mode ON: F0 7E 7F 09 01 F7 GM Mode OFF: F0 7E 7F 09 02 F7 GM Master Volume: F0 7F 7F 04 01 faible fort F7 (7F 7F: volume maximal) GM Master Balance: F0 7F 7F 04 02 faible fort F7 (00 40: au centre) Roland GS Mode: F0 41 10 42 12 40 00 7F 00 41 F7
xF1 MIDI Time Code Quarter Frame
À préciser.
xF1 - octet
L'octet est organisé comme suit: 0nnndddd, où nnn est un type de message de 0 à 7, et le quartet dddd la valeur de 0 à 15
xF2 Song Position Pointer
Marque le nombre de beats (1 beat= six MIDI clocks) depuis le début de la chanson. Deux octets supplémentaires sont nécessaires pour calculer l'emplacement: fort*128 + faible
xF2 - faible - fort
xF3 Song Select
Un octet supplémentaire est nécessaire pour préciser la chanson.
xF3 - octet
xF6 Tune request
Force les synthétiseurs analogiques à accorder leurs oscillateurs
xF6
xF7 End of System Exclusive
Voir xF0 System Exclusive Message.
4.2 Real-Time Message
xF8 Timing Clock
Envoyé 24 fois par noire en cas de synchronisation
xF8
xFA Start
Démarre une séquence. Il est possible souvent d'autoriser un clavier à déclencher le démarrage d'une séquence (typiquement pour un enregistrement).
xFA
xFB Continue
Reprend une séquence à l'endroit où elle avait été arrêtée. Il est souvent possible d'autoriser un clavier à déclencher le démarrage d'une séquence (typiquement pour un enregistrement).
xFB
xFC Stop
Arrête la séquence en cours. Il est souvent possible d'autoriser un clavier à déclencher le démarrage d'une séquence (typiquement pour un enregistrement).
xFC
xFE
En cas de premier envoi, ce message doit être répété avec un délai maximum de 0,3 seconde, sinon la connexion sera réputée coupée, et tous les voix éteintes
xFE
xFF Reset
Réinitialisation
xFF
5. Annexes
5.1 Constructeurs
Ces identifiants servent lors de messages spécifiques au matériel (SysEx, DLS and XMF). Les membres historiques du MMA disposent d'un identifiant d'un octet; les plus récents consistent en deux octets préfixés de l'octet nul.
x00 | (préfixe) | x0E | Matthews Research | x24 | Hohner | x46 | Kamiya Studio |
x01 | Sequential Circuits | x10 | Oberheim | x25 | Crumar | x47 | Akai |
x02 | Big Briar | x11 | PAIA | x26 | Solton | x48 | Victor |
x03 | Octave / Plateau | x12 | Simmons | x27 | Jellinghaus Ms | x4B | Fujitsu |
x04 | Moog | x13 | DigiDesign | x28 | CTS | x4C | Sony |
x05 | Passport Designs | x14 | Fairlight | x29 | PPG | x4E | Teac |
x06 | Lexicon | x15 | JL Cooper | x2F | Elka | x50 | Matsushita |
x07 | Kurzweil | x16 | Lowery | x36 | Cheetah | x51 | Fostex |
x08 | Fender | x17 | Lin | x3E | Waldorf | x52 | Zoom |
x09 | Gulbransen | x18 | Emu | x40 | Kawai | x54 | Matsushita |
x0A | Delta Labs | x1B | Peavey | x41 | Roland | x55 | Suzuki |
x0B | Sound Comp. | x20 | Bon Tempi | x42 | Korg | x56 | Fuji Sound |
x0C | General Electro | x21 | S.I.E.L. | x43 | Yamaha | x57 | Acoustic Technical Lab. |
x0D | Techmar | x23 | SyntheAxe | x44 | Casio |
5.2 Glossaire
↑ Celeste - jeu d'orgue double, avec un léger désaccord pour provoquer un effet de battement
↑ LFO - Low Frequency Oscillator: utilisé pour le vibrato
↑ MMA - MIDI Manufacturers' Association: association des constructeurs ayant édité la norme MIDI
VCO - Voltage Controlled Oscillator: utilisé pour la production d'une note
VFO - Variable Frequency Oscillator