Manuel d’utilisation

Syntaxe MIDI

OnSong utilise une syntaxe basée sur le texte pour exprimer les commandes MIDI. Bien que vous puissiez utiliser les Événements MIDI dans l'Éditeur de Métadonnées, vous pouvez également exprimer les commandes MIDI en texte.

Valeurs délimitées

Avant tout, plusieurs commandes MIDI peuvent être séparées par différents caractères, notamment : un caractère de tabulation, une virgule, un point-virgule, une barre verticale ou une nouvelle ligne. La virgule est le délimiteur le plus courant. Par exemple :

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

Canal

Chaque entrée peut contenir un symbole @. La valeur numérique après le symbole est le canal sur lequel la commande doit être envoyée. Puisque les canaux en MIDI commencent à zéro, le canal un serait un zéro (0), le canal deux un (1), etc.

Si aucun symbole @ n'est utilisé, la commande est envoyée ou reçue sur tous les canaux.

Préfixes

Chaque entrée de la liste contient un préfixe. Ce préfixe détermine le type de commande MIDI à envoyer. Ceux-ci incluent :

  • PC ou Aucun Préfixe est un événement de changement de programme.
  • N est un événement de note
  • CC est un événement de changement de contrôle.
  • SS est un événement de sélection de chanson.
  • START est une commande de démarrage.
  • STOP est une commande d'arrêt.
  • CONTINUE est une commande de continuation.
  • F0 préfixe un message SysEx.
  • WAIT implémente un délai.

Valeurs

La valeur de la commande apparaît juste avant le symbole @ ou à la fin de l'entrée si aucun @ n'est donné. C'est la valeur du changement de programme, du changement de contrôle, de la note ou de la sélection de chanson en fonction du préfixe. Dans le cas des entrées SysEx, la valeur hexadécimale du SysEx est fournie directement après le préfixe F0 qui est utilisé comme en-tête pour toutes les commandes SysEx.

Sous-valeurs

Dans certains cas, des informations supplémentaires sont véhiculées dans la commande MIDI sous forme de sous-valeurs. Par exemple, MSB et LSB, ainsi que la vélocité des valeurs de contrôle peuvent être envoyés de cette façon. Ceci est exprimé par l'ajout d'un deux-points dans la portion de valeur. La sous-valeur a un contexte différent selon le type de commande MIDI envoyée :

  • Changement de Programme a des sous-valeurs s'alignant avec le MSB/LSB du changement de programme. Ces valeurs sont séparées par un point avec le MSB à gauche et le LSB à droite.
  • Changement de Contrôle a la valeur du contrôle définie à l'aide de ceci. Le nombre peut être entre 0 et 127. S'il est omis, la valeur de 127 est déduite.
  • Événement de Note a une sous-valeur relatant la vélocité à laquelle la note doit être jouée. Cela peut être défini sur une valeur numérique entre 0 et 127.

Exemples

Commençons par un simple changement de programme. Dans ce scénario, nous utilisons le changement de programme 8 qui envoie également un MSB de 4 et un LSB de 2 sur le canal 1. L'exemple commence par la variation la plus complexe de ceci et supprime la sélection de banque et le canal pour devenir plus large :

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

Les changements de contrôle sont similaires sauf que le côté gauche de la syntaxe est le numéro de changement de contrôle et le côté droit est une valeur facultative. Si la valeur n'est pas fournie, 127 est envoyé à la place. Nous enverrons le Changement de Contrôle 106 avec une valeur de 64 sur le canal 3.

CC105:63@2, CC105:63. CC105@2, CC105

Maintenant, regardons les événements de note. Nous voulons jouer C4 sur le canal 8 avec une vélocité de 75 %, nous entrerions ce qui suit car OnSong commence à compter MIDI C0 comme 0 sur l'échelle de notes MIDI :

N60:95@7, N60@7, N60:95, N60

Là encore, il est important de se souvenir que à mesure que les valeurs sont supprimées de la syntaxe MIDI, l'énoncé MIDI devient plus large et moins spécifique. Par exemple, la dernière version de l'événement de note enverra C4 à 100 % de vélocité sur tous les canaux.

Pour implémenter un délai entre d'autres événements MIDI, utilisez la commande WAIT avec un nombre. Le nombre peut être une valeur entière. Vous pouvez définir les secondes à attendre comme 1-10, ou définir en millisecondes. Ce qui suit montre comment attendre 2 secondes, 10 secondes et une demi-seconde.

WAIT2, WAIT10, WAIT500
OnSong 2023 — Dernière mise à jour le January 17, 2018