Oct 242009
 

Toutes les infos ici présentes proviennent de ce site http://ogloton.free.fr/midi/format_donnees.html

Physiquement, une interface MIDI est un module intégré à un appareil et communiquant avec l’extérieur par l’intermédiaire de trois connecteurs DIN à cinq broches :

Connecteur DIN Signal Description Broche 2 Broche 4 Broche 5
MIDI IN réception des informations NC Réception Retour
MIDI OUT émission des informations Masse Emission Retour
MIDI THRU recopie de l’entrée Masse Emission Retour

Caractéristiques d’une liaison MIDI :

liaison 2 fils + blindage : deux conducteurs sans liaison avec la masse électrique et un blindage relié seulement du côté de l’appareil émetteur.

longueur maximale 15 m : de par le choix technique adopté, les signaux restent valides pour des courtes distances mais suffisante pour usage commun; une interface est nécessaire pour les longueurs plus importantes.

transmission unidirectionnelle : Les signaux vont de l’émetteur vers le récepteur. Une deuxième liaison permet le retour d’informations.

boucle de courant : pour un état bas un courant de 5mA circule entre les deux conducteurs actifs et devient nul pour un état haut

isolation galvanique par entrées opto-isolées : permet de fiabiliser les transmissions en restant totalement insensible aux différences de potentiels qui peuvent apparaître entre les masses des différents appareils sollicités.

Hardware_midi

Remarque :

Le signal d’entrée est présent sur la prise thrue après un délais de propagation causé par sa remise en forme, traversée de l’opto-coupleur et du double inverseur. Le dernier appareil aura le cumul de la totalité des délais de transmission avant de pouvoir traiter à son tour l’information. Une arborescence en étoile à l’aide d’une MIDI TRUE BOX évite des chaînes trop importantes et permet d’élaborer un réseau complexe.

Les messages MIDI sont transcrites sous la forme de chaînes d’octets de longueur variables et sont transmises sur un bus série asynchrone.

10 bits pour acheminer un octet : 1 bit de start, 8 bits de données, 1 bit de stop.
Les deux bits start/stop sont utilisés lors de la transmission pour synchronisation des transmissions mais n’interviennent pas sur le contenu des informations.

vitesse 31250 bauds maxi : +/- 1%, 1 bit a une durée de 32us et 1 octet de 320us.

octet_midi

Un octet de statut est caractérisé par son premier bit qui doit être positionné à 1, contrairement au premier bit d’un octet de donnée qui sera à 0. Il reste 7 bits significatif par octet pour coder une valeur qui dans ce cas pourra avoir 27 = 127 valeurs. L’association de deux octets de données sera utilisée pour le codage d’un nombre allant jusque à 214 = 16 129.

De nombreux messages MIDI sont composés d’un octet de statut chargé de définir le type de message et un numéro de canal, suivi de deux octets de données. Nous verrons plus loin que d’autres expressions sont utilisées pour le codage de messages contenant des informations élaborées.

Le message de statut utilise 3 bits pour le codage des différents types de messages, soi huit catégorie de messages et 4 bits pour l’affectation des 16 canaux.

format_donnees_midi

Le premier octet d’un message est celui de statut, il se présente sous la forme : 1sss nnnn (avec sss type de message et nnnn n° de canal). Il est suivi de deux octets de données ayants 7 bits significatifs : 0xxx xxx. Un message sera de la forme : (octet statut) + (octet données 1) + (octet données 2) …

Lorsque l’octet de statut est commun à plusieurs notes successives, on ne transmet que le statut de la première, note suivi des données des notes suivantes. Ce procédé visant à réduire le flot d’informations reconnaît une note avec une vélocité 0 pour remplacer un message note off. Aussi les messages temps réels présentés plus loin sont compatibles avec ce processus contrairement aux messages de système exclusifs et système commun.

Les messages voix

nnnn pour n° de canal
0xxx xxxx = donnée sur 7 bits soit 127 valeurs possibles

Message Signaux Description
Note off (1000 nnnn) + Hauteur note (0xxx xxxx) + Vélocité (0xxx xxxx) Fin d’une note avec dynamique pour sa disparition (40H par défaut si pas de capteur pour la vélocité)
Note on (1001 nnnn) + Hauteur note (0xxx xxxx) + Vélocité (0xxx xxxx) Début d’une note avec force d’appui ou vitesse d’enclenchement (40H par défaut si pas de capteur pour la vélocité)
polyphonic after touch (1010 nnnn) + Hauteur note (0xxx xxxx) + Valeur pression (0xxx xxxx) Variation de pression sur une touche, (le flux d’informations peut augmenter considérablement)
After touch (1101 nnnn) + Valeur (0xxx xxxx) Variation de pression sur l’ensemble du clavier, affecte tout le canal
Pitch bend (1110 nnnn) + Code (0000 0000) + Vitesse (0xxx xxxx) En 00 40 H position centrale
Program change (1100 nnnn) + Numéro (0xxx xxx) Affectation d’un instrument à un canal, selon banque chargée en contrôle change
Control change (1011 nnnn) + Numéro (0xxx xxxx) + Valeur (0xxx xxxx)  

Les messages control change

 

 

 

 

 

 

 

Affectation
Description
0 Sélection
de banque MSB
214
combinaisons

32
Sélection
de banque LSB
 —

1
Roue
de modulation
Effet
ou paramètre, 0=stop

33
Roue
de modulation
 —

2
Contrôleur
de souffle
Pour
instruments à vent 0=mini

34
Contrôleur
de souffle
 —

4
Pédale
de pied continue
Effet
ou paramètre

36
Pédale
de pied continue
 —

5
Temps
de portamento
Vitesse
de glissement entre deux hauteur de notes 0=mini

37 
Temps
de portamento
 —

65
Portamento
on/off

84
Commande
de portamento
Au prochain
note-on, glissera de cette note à celle appuyée

6
Curseur
d’entrée de données
Valeur
d’un paramètre

38
Curseur
d’entrée de données
 —

96
Bouton
d’incrémentation de données 
Selon
paramètre en cours

97
Bouton
de décrémentation de données 
 —

98
Paramètre
non référencé LSB
N° de
paramètre propre à chaque fabricant

99
Paramètre
non référencé MSB
 —

100
Paramètre
référencé LSB
N° de
paramètre standard

101
Paramètre
référencé MSB
 —

7
Volume Affecté
à un canal

39
Volume  —

8
Balance Réglage
d’un son stéréo

40
 Balance 0=gauche 8192=centre
16383=droite

10 
Panoramique Spacialisation
d’un son mono

42
Panoramique  0=gauche 8192=centre
16383=droite

11
Contrôleur
d’expression
Proportion
du volume canal en tps réel 0=coupé

43
Expression Facultatif

12
Contrôle
d’effet 1
Valeur
affectée à un effet

44
Contrôle
d’effet 1
 —

13
Contrôle
d’effet 2
Idem

45
Contrôle
d’effet 2
 —

16 à 19
Réglage
continu général 1 à 4
128
valeurs réglables

64
Pédale
de maintient on/off
64à127=enclenché,
maintien notes en cours

69
Pédale
de maintient 2 on/off
64à127=enclenché,
prolonge notes en cours

66
Pédale
de soutient on/off
64à127=enclenché,
maintien notes appuyées

67
Pédale
d’étouffement
64à127=enclenché,
étouffe les notes

68
Pédale
de légato on/off
Supprime
l’attaque des notes

70
Contrôle
de son 1
Valeur
affectée à un paramètre

71
Contrôle
de son 2 (timbre)
0=mini
contrôle VCF / variation

72
Contrôle
de son 3 (temps de relâchement)
0=mini
contrôle VCA fin enveloppe

73
Contrôle
de son 4 (temps d’attaque)
0=mini
contrôle VCA début enveloppe

74
Contrôle
de son 5 (brillance)
0=mini
contrôle fréquence VCF

75 à 79
Contrôle
de son 6 à 10
Valeur
affectée à un paramètre

80 à 83
Interrupteur
générale 1 à 4
64à127=enclenché

91
Niveau
d’effet
128
valeurs

92
Niveau
de trémolo
 —

93
Niveau
de chorus
 —

94
Niveau
de vibrato
 —

95
Niveau
de phaser
 —

120
Extinction
des sons
Arrêt
immédiat, données non significatives

121
Arrêt
des contrôleurs
Initialisation
sur canal concerné

122
Sélection
du mode local
64à127=enclenché,
dissocie clavier de son générateur de sons

123
Extinction
des notes
Coupe
messages midi entrants, données non significatives

124
Mode
omni off
Inhibe
le mode omni

125
Mode
omni on
Récepteur
affecté à tous les canaux

126
Mode
monophonique
Un seule
note à la fois, priorité aux aiguës

127
Mode
polyphonique
Possibilité
de jouer plusieurs notes simultanément

 
   

3
 Non
défini
 

9
 —  

 14-15
 —  

 20 à 31
 —  

 85 à 90
 —  

102 à 119
 —  

Sorry, the comment form is closed at this time.