Étape 2: Protocole de MIDI
Les messages MIDI sont composés de deux éléments : octets de données et des commandes. L’octet de commande raconte l’instrument MIDI, quel type de message est envoyé et sur lequel canal MIDI et le nombre d’octets des données ultérieures stockent les données réelles. Par exemple : un octet de commande pourrait dire un instrument MIDI qu’il contient des informations sur une note, et les octets de données suivant décrira quelle note et comment fort. Un octet de commande pourrait aussi dire un instrument MIDI qu’il va pour envoyer des informations sur pitchbend, puis les octets de données suivants décriraient combien pitchbend. Un octet de commande et les octets de données suivent constituent un « message de MIDI ».
Un octet est un type de données (les autres types de données que nous avons vu jusqu'à présent sont int, booleanet long). Stockent les octets entiers positifs compris entre 0 et 255. Les messages MIDI sont constitués d’une série d’octets, et elles peuvent être décodées selon leur valeur pour comprendre ce qu’ils signifient.
Voici une liste d’octets de commande commun dans leur forme décimale (base 10) :
Note Off = 128
Remarque On = 144
Pitchbend = 224
Commande octets sont toujours supérieures à 127 et octets de données sont toujours compris entre 0 et 127, en fait, c’est comment un instrument MIDI peut faire la différence entre une commande et un octets de données. Voici comment nous enverrions un message MIDI pour tourner sur milieu C volume élevé :
144, 60, 127
Le premier nombre, 144, est l’octet de commande, il raconte l’instrument MIDI que ce message MIDI est un Note sur le message. Le second numéro, 60, est un octet de données. Le premier octet de données dans un message de Remarque sur MIDI est « note » - cette remarque sur la commande active note MIDI 60 (milieu C, vous pouvez trouver une liste des conversions Remarque/MIDI
). Le dernier numéro est également un octet de données, le deuxième octet de données dans un message de Remarque sur MIDI est « velocity », qui est utilisé pour contrôler le volume d’une note. Octets de données étant compris entre 0 et 127, 127 est le volume maximum d’une note.
Chaque note MIDI commence par un Remarque sur le message et se termine par un message Note Off. Certains instruments de percussion seront fait entendre comme ils ont désactivé si vous les maintenez pendant une longue période, mais le ne sera effectivement éteint jusqu'à ce que vous envoyez un message. Il ne faut pas oublier d’éteindre une note avant d’essayer de remettre en marche afin d’éviter des résultats incohérents. Il existe deux façons de couper une note MIDI, c’est tout d’abord en utilisant une commande Note Off :
128, 60, 0
Cette commande s’éteindra note 60, il commence avec l’octet de commande pour Note, note ensembles = 60 et la vitesse = 0 (vélocité est généralement pas très visible pour Note Off, quelque nombre que vous souhaitez sélectionner est très bien). Vous pouvez également tourner une note off en envoyant une Note le message avec vitesse = 0 :
144, 60, 0
Il s’agit d’une approche plus commune dans le MIDI (à partir de mon expérience) alors c’est comment nous allons être confrontés à Note Off dans cette classe.
Si vous êtes intéressé à en apprendre davantage sur le protocole MIDI, binaire et bits, consultez cet article et cette table.