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