přihlášení uživatele
přihlásit trvale na tomto počítači
vyhledávaní

zvukSeri(ál)ová MIDI komunikace XXII - Práce se SysEx daty v XG - úvod

13.9.2010 | Autor: Martin Jirsák | sekce: pro muzikanty - workshopy

Seri(ál)ová MIDI komunikace XXII - Práce se SysEx daty v XG - úvod

Seri(ál)ová MIDI komunikace XXII - Práce se SysEx daty v XG - úvod

V minulém díle seriálu jsem slíbil, že se dnes podíváme na práci se System Exclusive (SysEx) daty ve standardu XG. Nezbývá, než slib splnit, takže jde do tuhého. Určitě se u SysEx zastavíme na několik dílů.

Se zvláštními systémovými daty (SysEx) lze samozřejmě pracovat i ve standardech GM a GS. Ale XG nabízí mnohem rozsáhlejší systém práce s těmito daty. Proto jsem si téma nechával až sem.

Zvláštní systémová data se do sekvencerů zapisují v šestnáctkové soustavě (hex). Jednotlivými znaky soustavy jsou: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Čísla budu v šestnáctkové soustavě označovat jako Daniel Forró ve svých publikacích, tedy znakem $ před číslicí, tedy například $A (hex) = 10 (dec). Nadále se budu držet toho, že pokud nebude uvedeno jinak, číslice bez znaku budou uváděna v desítkové soustavě(dec).

$A = 10
$B = 11
$C = 12
$D = 13
$E = 14
$F = 15
$10 = 16
$11 = 17 atd.

Kompletní tabulka je k nalezení třeba zde: http://slovnikmidi.info/vyklad/643/.

Nejvyšší používané číslo je 255, takže se používá dvojmístné zobrazování znaků, například $00 = 0; $2F = 47; $FF = 255.

Pro zadávání SysEx dat bývají v sekvencerech speciální editory, ve kterých je možné zapisovat přímo SysEx povely (obvykle bez znaku $, tedy zapisuje se rovnou třeba F0 43 10 4C atd.).

Jak zjistit, jaká data zapsat?

Možností je několik - někdy není třeba vůbec data takto „nelidsky“ zapisovat a může je vygenerovat přímo nějaký editor, jak bylo řečeno v minulém dílu. Pokud takový editor ale nemáme, je třeba se zahloubat do návodu. Každý slušný návod slušného výrobce bude obsahovat tabulky s formátem MIDI událostí. Na CD jsem přiložil manuál dceřiné zvukové karty Yamaha DB50XG (bohužel byl na internetu ke stažení jen ve francouzštině). Na straně 21 začínají informace o vysílání potřebných dat. Dozvíme se, že všechny SysEx události budou začínat počátečním stavovým bytem $F0 (je to něco jako velké písmeno na začátku každé věty). Ten oznamuje, že bude následovat nějaká zpráva. Následuje vždy informace o výrobci zařízení, kterému bude zpráva určena. V případě firmy Yamaha se jedná o $43. Seznam řady firem a přiřazení čísel podle výrobce lze najít zde: http://slovnikmidi.info/vyklad/825/. Po těchto dvou informacích následuje přímé označení konkrétního nástroje v MIDI řetězci. Může se stát, že budeme mít v jednom řetězci více nástrojů stejné firmy, a tak je potřeba je od sebe oddělovat. V případě XG standardu se nástroje oddělují pomocí události $1n, kde „n“ je proměnná, tedy číslo přiřazené danému nástroji. Takže první nástroj má $10, další $11 a šestnáctý (to je maximum) $1F. Budu nadále počítat s jedním nástrojem a všude budu psát přiřazení $10. Následuje informace o přesném konkrétním modelu, tedy produktu. Pro Yamaha XG nástroje bylo zvoleno $4C (například model Yamaha QS300 má číslo $4B).

Tak, a máme úvod nějaké SysEx zprávy pro Yamaha XG nástroj. Ten bude vždy vypadat následovně: $F0 $43 $10 $4C. Pak budou následovat data, která popisují konkrétní nastavení.
Na ty se podíváme později. Aby nástroj věděl, že zpráva dorazila celá, je na jejím konci ukončovací stavový byte, který vypadá takto: $F7 (je to něco jako tečka na konci věty). Před tímto závěrečným stavovým bytem bývá u některých nástrojů ještě tzv. kontrolní součet (check-sum). Ten měl kontrolovat, zda zpráva dorazila opravdu celá. Poměrně složitě se vypočítával ze všech hodnot celé zprávy. Pokud nesouhlasil kontrolní součet s průběžným součtem, které nástroje dělaly, bylo jisté, že zpráva nedorazila. Firma Yamaha ale v XG standardu kontrolní součet vypustila, a tak zápis výrazně zjednodušila. Ale bohužel se zároveň vystavuje riziku, že zpráva se nepřenese celá a nástroj to nezjistí. Na základě toho může dojít k chybnému nastavení. Naštěstí se to ale nestává.

Na závěr se podíváme na dvě SysEx události pro Yamaha XG nástroje:

SysEx událost pro zapnutí XG režimu: $F0 $43 $10 $4C $00 $00 $7E $00 $F7.

SysEx událost pro hlavní výstupní úroveň MIDI: $F0 $7F $7F $04 $01 $11 $mm $F7, kde „mm“ je proměnná, kde se nastavuje požadovaná výstupní úroveň od $00 (tj hlasitost 0) až po $7F (tedy maximální hlasitost 127).

NEZAPOMEŇTE:
Každá SysEx událost pro XG bude vypadat následovně: $F0 $43 $1n $4C ... data ... $F7.

Psáno pro: časopis Muzikus 2009/12

Online verze stránky: http://www.muzikus.cz/pro-muzikanty-workshopy/Serialova-MIDI-komunikace-XXII-Prace-se-SysEx-daty-v-XG-uvod~13~zari~2010/

Komentáře

celkový počet: 0

Buďte první...


 
 
 
&;

Tento web používá k poskytování služeb, personalizaci reklam, poskytování funkcí sociálních médií a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte.