Seri(ál)ová MIDI komunikace XVII - Zapnutí/vypnutí GS

Seri(ál)ová MIDI komunikace XVII - Zapnutí/vypnutí GS
Seri(ál)ová MIDI komunikace XVII - Zapnutí/vypnutí GS

V minulém díle seriálu jsme se podívali na základy GS standardu, který je rozšířením GM standardu. Díl jsme ukončili MIDI kontroléry a slíbili si, že se dále podíváme na definování nastavení typu efektů Chorus a Reverb. Ještě před tím je ale potřeba umět pomocí SysEx událostí zapnout/vypnout GS standard.

 

SysEx

Definování přesného typu Chorusu nebo Reverbu pro danou skladbu je možné pomocí zvláštních systémových dat (System Exclusive - SysEx). Jedná se o data, která jsou zadávána obvykle číselně jako celý příkaz od první informace „začátek zvláštních sytémových dat“ (šestnáctkově F0) přes definici výrobce, definici daného modelu nástroje, případně pořadového čísla nástroje v MIDI řetězci a samotná data až po událost „konec zvláštních systémových dat“ (šestnáctkově F7). Data se obvykle zadávají v šestnáctkové soustavě tedy {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, proto je tak také uvádím.

 

Aby GS nástroj vůbec na SysEx data určená pro GS reagoval, je nejdříve potřeba nástroj do tohoto režimu zapnout. To je možné buď pomocí tlačítka na panelu nástroje nebo výběrem z menu a nebo pomocí vyslané a přijaté SysEx události - což je pochopitelně nejjistější a nejuniverzálnější řešení. Obvykle bývá většina GS nástrojů v tomto režimu nastavena, ale pro jistotu a pořádek by každý, kdo GS skladbu vytváří, měl pomocí příslušné SysEx události GS zapnout. Stačí ze sekvenceru (na začátku skladby) vyslat následující SysEx informaci (šestnáctkově): F0 41 10 42 12 40 XX 02 YY ZZ F7. XX, YY a ZZ jsou proměnné. XX je rovno 1 a číslu kanálu (takže pro první MIDI kanál se XX rovná 11, pro druhý MIDI kanál se XX rovná 12 atd.). Proměnná YY je číslo kanálu mínus jedna, takže pro první MIDI kanál bude YY=00, pro druhý MIDI kanál bude YY=01 atd. ZZ je kontrolní součet. Ten je roven pro první MIDI kanál 2D, pro každý další MIDI kanál se odečítá dvojka (protože ve zbytku zprávy se jednička přičítá dvakrát - v proměnné XX a v proměnné YY). Druhý MIDI kanál je tedy ZZ = 2B, třetí MIDI kanál ZZ = 29. Vše uvádím šestnáctkově.

 

Konkrétně tedy pro jednotlivé kanály vypadají události GS zapnout takto (šestnáctkově):

 

1. MIDI kanál: F0 41 10 42 12 40 11 02 00 2D F7

2. MIDI kanál: F0 41 10 42 12 40 12 02 01 2B F7

3. MIDI kanál: F0 41 10 42 12 40 13 02 02 29 F7

4. MIDI kanál: F0 41 10 42 12 40 14 02 03 27 F7

atd.

 

Nemusí být na škodu ještě před zapnutím GS standardu vyslat událost „vypnutí GM standardu“ (šestnáctkově): F0 7E 7F 09 02 F7.

Díky tomu, že je možné zapnout/vypnout GS standard pouze na některých kanálech, dá se ušetřit počet vysílaných informací. Pokud víme, že na některém kanále nevyužijeme výhody GS standardu oproti GM, můžeme nechat zapnutý pouze GM. Zvuk zůstane stejný.

 

Pro opravdu pořádkumilovné programátory je možné na konci skladby zapnout GM (aby byl nástroj kompatibilní s tímto standardem, a tedy s nejrozšířenějším standardem) a nebo vypnout GS (opět stačí pouze vyslat událost na MIDI kanály, na kterých byl GS zapnut) i GM (SysEx událost vizte výše), aby byl nástroj přepnut do svého specifického režimu. Pro zapnutí GM je nutné vyslat SysEx (šestnáctkové): F0 7E 7F 09 01 F7.

Pro vypnutí GS je třeba vyslat následující událost (šestnáctkově): F0 41 10 42 12 40 XX 02 10 YY F7. V této zprávě jsou dvě proměnné - XX a YY. XX je stejné jako u zprávy „GS zapnuto“, takže pro první MIDI kanál se XX rovná 11, pro druhý MIDI kanál se XX rovná 12 atd. YY je tentokrát kontrolní součet, který se odečítá od hodnoty 1D pro první MIDI kanál o jedničku (protože ve zbytku zprávy se přičítá jednička pouze jednou).

 

Konkrétně tedy pro jednotlivé kanály vypadají události „GS vypnout“ takto (šestnáctkově):

 

1. MIDI kanál: F0 41 10 42 12 40 11 02 10 1D F7

2. MIDI kanál: F0 41 10 42 12 40 12 02 10 1C F7

3. MIDI kanál: F0 41 10 42 12 40 13 02 10 1B F7

4. MIDI kanál: F0 41 10 42 12 40 14 02 10 1A F7

atd.

 

Vyslání příkazu GS Reset vypadá takto (šestnáctkově): F0 41 10 42 12 40 00 7F 00 41 F7

 

NEZAPOMEŇTE

 

Všechny System Exclusive události se obvykle zadávají v šestnáctkové číselné soustavě. Pro jejich zadávání slouží obvykle v sekvencerech speciální editory.

Psáno pro časopis Muzikus