Hrajeme si s virtuálními nástroji… XII - workshop
Hrajeme si s virtuálními nástroji XII
Komunikace mezi řídicí klaviaturou a virtuálním nástrojem
V dnešním dílu seriálu se podíváme na komunikaci mezi hardwarem v podobě virtuální klaviatury (případně jiného MIDI ovladače) a virtuálním nástrojem, a to jak v podobě stand-alone (tedy samostatné aplikace) a nebo v podobě plug-inu v nějaké hostitelské aplikaci (ať už pro živé hraní nebo DAW). Podíváme se na to, jak řídit parametry softwaru z řídicí klaviatury.
Jako obvykle tedy začneme ze strany hardwaru, ačkoliv se jedná o variantu náročnější a osobně preferuji spíše cestu softwarovou, na kterou se podíváme v příštím dílu.
Moderní řídicí klaviatury už nejsou pouze klaviaturami, ale obsahují řadu ovládacích prvků - slidery (posuvné jezdce), fadery (opět posuvné jezdce, správně by tyto ale měly být používány výhradně pro řízení hlasitosti, nicméně dnes se tyto dva termíny hodně zaměňují), knoby (otočné ovladače), buttony (tlačítka); pady (dotekové plochy), X/Y joysticky nebo dotekové plochy, kolečka modulace a pitch bendu (ohýbání tónů), ale i vstupy pro nožní pedály. Pomocí všech těchto ovladačů lze řídit parametry zvuku virtuálního nástroje.
Všechny tyto ovladače vysílají hodnoty nějakých MIDI kontrolérů. A všechny ovladače virtuálních nástrojů (ať už se jedná o typické ovladače, jako je třeba ostrost zvuku, doba náběhu obálky, úroveň efektu, a nebo specifické ovladače pro konkrétní virtuální nástroj) lze pomocí MIDI událostí řídit. Ale samozřejmě jen málokdy (respektive v podstatě nikdy) máme to štěstí, že by právě ten ovladač, který máme na našem hardwarové klaviatuře, ovládal přesně ten parametr v softwaru, který bychom ovládat chtěli. Ačkoliv se samozřejmě výrobci softwaru i hardwaru snaží, abychom měli práci co nejjednodušší. Na straně softwaru obvykle, pokud to jde, dodržují MIDI standardy. Ostrosti zvuku, i době náběhu obálky, je MIDI normou přiřazeno nějaké konkrétní číslo MIDI kontroléru, takže tento parametr je v softwaru skutečně řízen tímto kontrolérem. Snaží se i výrobci hardwaru a ovladačům přiřazují právě často používané MIDI kontroléry (již zmíněné). Ale samozřejmě ne vždy chceme řídit právě tyto nejpoužívanější ovladače. Obvykle se jedná spíše o nějaký specifický ovladač daného softwaru.
V takovém případě máme dvě možnosti. Buď naprogramujeme hardware tak, aby vysílal hodnoty jiného MIDI kontroléru (čemuž se věnuje tato část), a nebo řekneme softwaru, že daný ovladač má být řízen nějakým jiným MIDI kontrolérem (čemuž se budeme věnovat za chvilku).
Řekněme tedy hardwaru, že má vysílat hodnoty jiného MIDI kontroléru. To znamená „přeprogramovat“ hardware. Toto „programování“ bývá obvykle jednoduché a intuitivní a rozhodně se nemusíte bát nějakého kódování, C++, Javy nebo něčeho podobného.
Princip bývá obvykle následující. Nejdříve musíme vstoupit do režimu programování ovladačů, což se obvykle udělá stisknutím příslušného tlačítka na řídicí klaviatuře (například Advanced, Edit, Assign, Learn aj., případně kombinací většího počtu tlačítek a nebo kombinací tlačítka a příslušně popsané klávesy klaviatury). Následuje obvykle pohnutí ovladačem, který chceme přeprogramovat, tedy otočení otočného ovladače, posunutí jezdce nebo stisknutí tlačítka. Nyní je potřeba zadat číslo kontroléru, které chceme vysílat. Pro tento účel může být na hardwaru numerická klávesnice, pomocí které se napíše číslo MIDI kontroléru. Pokud numerická klávesnice není součástí, je možné, že se pro toto zadávání použije opět přímo klaviatura, nad kterou bývají popisky jednotlivých číslic, respektive funkcí. V takovém případě, vzhledem k tomu, že klaviatura ví, že jsme v režimu programování, již není potřeba tisknout ke klávese nějaké další tlačítko, aby tato vysílala čísla. Stačí stisknout přímo příslušnou klávesu. Poslední variantou je použití jog/datového kolečka a nebo tlačítek Inc/+ (inkrementace/zvýšení) nebo Dec/- (dekrementace/snížení).
Největší problém ale bývá v tom, jak zjistit, jaký kontrolér máme vysílat, tedy jakým kontrolérem je daný virtuální parametr ovládán. Zde to záleží čistě jen na výrobci softwaru, zda nám tuto informaci poskytne (což by měl) a jakou formou. Informaci lze (pokud vůbec) najít v dokumentaci a měla by být součástí tabulky MIDI implementace. Ale po pravdě řečeno, obvykle takovou tabulku vůbec nenajdu. Pak je nutné hledat v samotném manuálu, kde bývá tato informace u konkrétního parametru popsána. Pokud ani zde informaci o MIDI kontroléru nenajdeme, nezbývá než hledat v případné další dokumentaci, v uživatelských fórech a nebo se obrátit přímo na výrobce. Bohužel mám zkušenost, že získání této informace bývá často velmi náročné, což je také jeden z důvodů, proč preferuji nastavení v softwaru.
Další možnost, jak zjistit, jakým MIDI kontrolérem je daný parametr řízen, je použití DAW softwaru (tedy například Cubase, Logic, Pro Tools, Studio One, Ableton Live...). Otevřeme virtuální nástroj. Stopu s tímto nástrojem nastavíme do režimu záznamu (Arm Record) a spustíme záznam. Poté v záznamu pohneme virtuálním ovladačem (otočíme virtuálním otočným ovladačem, pohneme virtuálním jezdcem, stiskneme virtuální tlačítko nebo přepneme přepínač). Bohužel ani tato metoda nemusí být stoprocentně funkční. Ne všechny virtuální nástroje vysílají případné informace o změnách ve svém grafickém prostředí (GUI) do MIDI. Některé vysílají tyto informace pouze do DAW v podobě automatizace - pozor, s tím si záznam MIDI data neplést, to je něco úplně jiného. Pokud změnu zaznamenáme pouze jako automatizační data, uvidíme v našem DAW pouze název daného ovladače, ale nedozvíme se MIDI kontrolér, kterým je tento ovladač řízen. Pokud tedy máme štěstí a MIDI data se zaznamenala, podíváme se jednoduše na výpis, o jaký kontrolér se jednalo. To můžeme udělat buď v Event Editoru (což je výpis všech MIDI událostí dané stopy) a nebo i v Piano Rollu (případně Key Editoru), který zobrazuje i MIDI kontroléry. Připomínám, že nás v této souvislosti nezajímají hodnoty, ale přesně jaký MIDI kontrolér je vysílán, abychom věděli, jakým MIDI kontrolérem budeme parametr řídit.
Tím ale programování klaviatury ještě nemusí být u konce. Pro jistotu bychom ještě měli překontrolovat MIDI kanál. To provedeme buď samostatným příkazem (tedy například stisknutím tlačítka Ch. Assign nebo pouze Channel na klaviatuře) a nebo prostě pokračujeme v nastavování pomocí tlačítka Page > nebo Next. Ujistíme se, že je nastaven shodný MIDI kanál jako v softwaru. A pokud je naše MIDI klaviatura na vyšší úrovni, umožní nám nastavit také maximální a minimální hodnotu. To se může hodit například v případě, že chceme použít celou dráhu jezdce pro jemnější nastavení (třeba jen v rozsahu 20 až 60). Ale může se to hodit také pro simulaci varhanních táhel. Pokud nastavíme maximum 127 a minimum 0, chová se obvykle jezdec opačně. Tedy směrem od nás vysílá hodnotu 0 a směrem k nám se hodnota zvyšuje, až na 127, tedy jako u varhan. Toto nastavení může mít svůj smysl i při použití tlačítek. Pokud necháme nastavení, jak jsem výše uvedl, bude tlačítko přepínat mezi dvěma stavy: vypnuto/zapnuto. Někdy se ale může hodit, že tlačítkem pouze spouštíme nějakou událost (tzv. triggering). Například budeme přehrávat konkrétní zvukový vzorek. Pak je vhodné nastavit minimum také na 127. Pokaždé, když tlačítko stiskneme, vyšleme událost: Proveď akci. Pokud je minimum nastaveno na 0, vysíláme události Proveď akci (hodnota 127) a Vypni akci (hodnota 0).
Veškeré nastavení se obvykle potvrdí klávesou Enter, případně OK (opět k nalezení na numerické klávesnici a nebo v případě použití číslic pomocí klaviatury bývá některá z kláves označená také jako Enter - obvykle ta nejvyšší) a nebo jednoduše tak, že počkáme pár vteřin, než se data uloží sama. To obvykle poznáme na displeji.
Na první pohled se zdá, že je tato cesta poměrně strastiplná. Největší překážkou však bývají výrobci softwaru, kteří neposkytují dostatek informací o ovládání softwaru. I z tohoto důvodu (a několika dalších) je lepší nastavit toto řízení právě v softwaru. A o tom příště.