ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE

Benutzerhandbuch

MIDI-Syntax

OnSong verwendet eine textbasierte Syntax zum Ausdrücken von MIDI-Befehlen. Während Sie die MIDI-Ereignisse im Metadaten-Editor verwenden können, können Sie MIDI-Befehle auch im Text ausdrücken.

Begrenzte Werte

Zunächst einmal können mehrere MIDI-Befehle durch verschiedene Zeichen getrennt werden, einschließlich: Tabulatorzeichen, Komma, Semikolon, senkrechter Strich oder Zeilenumbruch. Das Komma ist das häufigste Trennzeichen. Beispiel:

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

Kanal

Jeder Eintrag kann ein @-Symbol enthalten. Der numerische Wert nach dem Symbol ist der Kanal, auf dem der Befehl gesendet werden soll. Da Kanäle in MIDI bei Null beginnen, wäre Kanal eins eine Null (0), Kanal zwei eine Eins (1) usw.

Wenn kein @-Symbol verwendet wird, wird der Befehl auf allen Kanälen gesendet oder empfangen.

Präfixe

Jeder Eintrag in der Liste enthält ein Präfix. Dieses Präfix bestimmt, welche Art von MIDI-Befehl gesendet werden soll. Diese umfassen:

  • PC oder Kein Präfix ist ein Programmwechsel-Ereignis.
  • N ist ein Noten-Ereignis
  • CC ist ein Steuerungswechsel-Ereignis.
  • NRPN ist eine nicht registrierte Parameternummer.
  • SS ist ein Liedauswahl-Ereignis.
  • START ist ein Startbefehl.
  • STOP ist ein Stoppbefehl.
  • CONTINUE ist ein Fortsetzungsbefehl.
  • WAIT wartet eine bestimmte Zeit, bevor weitere Ereignisse gesendet werden.
  • F0 leitet eine SysEx-Nachricht ein.
  • @ leitet ein MIDI-Global-Tag ein.

Werte

Der Wert des Befehls erscheint direkt vor dem @-Symbol oder am Ende des Eintrags, wenn kein @ gegeben ist. Dies ist der Wert des Programmwechsels, Steuerungswechsels, der Note oder der Liedauswahl basierend auf dem Präfix. Im Fall von SysEx-Einträgen wird der Hexadezimalwert des SysEx direkt nach dem F0-Präfix bereitgestellt, das als Header für alle SysEx-Befehle verwendet wird.

Unterwerte

In einigen Fällen werden zusätzliche Informationen im MIDI-Befehl als Unterwerte vermittelt. Beispielsweise können MSB und LSB sowie die Geschwindigkeit von Steuerwerten auf diese Weise gesendet werden. Dies wird durch Hinzufügen eines Doppelpunkts im Wertteil ausgedrückt. Der Unterwert hat unterschiedliche Kontexte, je nach Art des gesendeten MIDI-Befehls:

  • Programmwechsel hat Unterwerte, die mit MSB/LSB des Programmwechsels übereinstimmen. Diese Werte werden durch einen Punkt getrennt, wobei MSB links und LSB rechts ist.
  • Steuerungswechsel hat den Wert des hiermit festgelegten Steuerelements. Die Zahl kann zwischen 0 und 127 liegen. Wenn nicht angegeben, wird der Wert 127 abgeleitet. Sie können auch mehrere Werte mit einem Bindestrich trennen, um Werte schrittweise zu durchlaufen. Beispielsweise wird 127-0 den Wert 127 zwischen Ein- und Ausschaltzuständen verriegeln.
  • Noten-Ereignis hat einen Unterwert, der sich auf die Geschwindigkeit bezieht, mit der die Note gespielt werden soll. Dies kann auf einen numerischen Wert zwischen 0 und 127 gesetzt werden. Sie können mehrere Notengeschwindigkeiten durchlaufen, indem Sie diese mit einem Bindestrich trennen.

Beispiele

Beginnen wir mit einem einfachen Programmwechsel. In diesem Szenario verwenden wir Programmwechsel 8, der auch ein MSB von 4 und ein LSB von 2 auf Kanal 1 sendet. Das Beispiel beginnt mit der kompliziertesten Variation davon und entfernt die Bankauswahl und den Kanal, um breiter zu werden:

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

Steuerungswechsel ähneln sich, außer dass die linke Seite der Syntax die Steuerungswechsel-Nummer und die rechte Seite ein optionaler Wert ist. Wenn der Wert nicht angegeben wird, wird stattdessen 127 gesendet. Wir senden Steuerungswechsel 106 mit einem Wert von 64 auf Kanal 3.

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

Werfen wir nun einen Blick auf Noten-Ereignisse. Wenn wir C4 auf Kanal 8 mit 75 % Geschwindigkeit abspielen möchten, geben wir Folgendes ein, da OnSong das Zählen von MIDI C0 als 0 auf der MIDI-Notenskala beginnt:

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

Nochmals, es ist wichtig zu beachten, dass der MIDI-Befehl breiter und weniger spezifisch wird, wenn Werte aus der MIDI-Syntax entfernt werden. Beispielsweise sendet die letzte Version des Noten-Ereignisses C4 mit 100 % Geschwindigkeit auf allen Kanälen.

Wir können MIDI auch verzögern, indem wir einen WAIT-Befehl hinzufügen. Folgendes verzögert MIDI um 2 Sekunden sowie 500 ms (eine halbe Sekunde). Sie können Sekunden als 1–10 Sekunden oder in Millisekunden angeben.

WAIT2, WAIT500

Abschließend können wir auf MIDI-Globale verweisen, bei denen es sich um vorkonfigurierte Listen von MIDI-Ereignissen handelt, auf die verwiesen werden kann. Wenn Sie ein MIDI-Global mit „on" als Tag haben (ohne Anführungszeichen), können Sie auf dieses Global mit folgendem verweisen:

@on
OnSong 2026 — Zuletzt aktualisiert am March 11, 2020