Uživatelská příručka

Syntaxe MIDI

OnSong používá textově založenou syntaxi pro vyjádření příkazů MIDI. Zatímco můžete používat MIDI Events v Metadata Editor, můžete také vyjádřit příkazy MIDI v textu.

Oddělené hodnoty

V první řadě lze více příkazů MIDI oddělit různými znaky, včetně: znaku tabulátoru, čárky, středníku, svislé čáry nebo nového řádku. Čárka je nejčastějším oddělovačem. Například:

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

Kanál

Každá položka může obsahovat symbol @. Numerická hodnota za symbolem je kanál, na kterém má být příkaz odeslán. Protože kanály v MIDI začínají od nuly, kanál jedna by byl nula (0), kanál dva jedna (1) atd.

Pokud se nepoužívá symbol @, příkaz se odesílá nebo přijímá na všech kanálech.

Předpony

Každá položka v seznamu obsahuje předponu. Tato předpona určuje, jaký typ příkazu MIDI se má odeslat. Ty zahrnují:

  • PC nebo Žádná předpona je událostí změny programu.
  • N je událostí nóty
  • CC je událostí změny ovládacího prvku.
  • SS je událostí výběru písně.
  • START je příkaz spuštění.
  • STOP je příkaz zastavení.
  • CONTINUE je příkaz pokračování.
  • F0 předchází zprávu SysEx.
  • WAIT implementuje zpoždění.

Hodnoty

Hodnota příkazu se objevuje těsně před symbolem @ nebo na konci položky, pokud není @ zadáno. Toto je hodnota změny programu, změny ovládacího prvku, nóty nebo výběru písně na základě předpony. V případě položek SysEx je hexadecimální hodnota SysEx poskytnuta přímo po předponě F0, která se používá jako záhlaví pro všechny příkazy SysEx.

Podhodnoty

V některých případech se v příkazu MIDI předávají další informace jako podhodnoty. Například MSB a LSB, stejně jako rychlost ovládacích hodnot, lze posílat tímto způsobem. To se vyjadřuje přidáním dvojtečky do části hodnoty. Podhodnota má jiný obsah v závislosti na typu odeslaného příkazu MIDI:

  • Změna programu má podhodnoty zarovnané s MSB/LSB změny programu. Tyto hodnoty jsou odděleny tečkou s MSB na levé straně a LSB na pravé straně.
  • Změna ovládacího prvku má hodnotu ovládacího prvku nastaveného pomocí tohoto. Číslo může být mezi 0 a 127. Pokud je vynecháno, je odůvodněna hodnota 127.
  • Událost nóty má podhodnotu související s rychlostí, s jakou by měla být nóta přehrávána. To lze nastavit na číselnou hodnotu mezi 0 a 127.

Příklady

Začneme jednoduchou změnou programu. V tomto scénáři používáme změnu programu 8, která také odesílá MSB 4 a LSB 2 na kanálu 1. Příklad začíná nejsložitější variací a odebírá výběr banky a kanál, aby se stal širší:

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

Změny ovládacích prvků jsou podobné s tím rozdílem, že levá strana syntaxe je číslo změny ovládacího prvku a pravá strana je volitelná hodnota. Pokud není hodnota poskytnuta, je místo toho odeslána 127. Pošleme Change Control 106 s hodnotou 64 na kanálu 3.

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

Nyní se podívejme na události not. Chceme přehrát C4 na kanálu 8 s rychlostí 75%, zadali bychom následující, protože OnSong začíná počítat MIDI C0 jako 0 na stupnici MIDI not:

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

Opět je důležité pamatovat, že jak jsou hodnoty odstraňovány ze syntaxe MIDI, příkaz MIDI se stává širším a méně specifickým. Například poslední verze události nóty odešle C4 se 100% rychlostí na všech kanálech.

Chcete-li implementovat zpoždění mezi ostatními událostmi MIDI, použijte příkaz WAIT s číslem. Číslo může být celočíselná hodnota. Můžete definovat sekundy čekání jako 1–10 nebo definovat jako milisekundy. Následující text ukazuje, jak čekat 2 sekundy, 10 sekund a půl sekundy.

WAIT2, WAIT10, WAIT500
OnSong 2026 — Poslední aktualizace: January 17, 2018