Extrémně osobní DAW - aneb vlastní plug-iny a rozšíření
Extrémně osobní DAW aneb vlastní plug-iny a rozšíření
Víte, že existuje DAW, kterou si můžete poměrně snadno rozšířit pomocí vlastních funkcí a plug-inů? A to ani nemusíte umět programovat (ačkoliv když to umíte, může být váš život ještě jednodušší). Již nějaký pátek (také víkendy, svátky a dovolené) tento pro mne fascinující svět přizpůsobení si DAW sleduji a praktikuji a chci se s vámi o něj podělit. Řeč bude o jistě velmi známém DAW Ableton Live, jeho hardwarovém ovladači Push a o vývojářském nástroji Max for Live (někdy též označovaném jako Max4Live). A v navazujícím seriálu si vytvoříme řadu různých drobných vylepšení Ableton Live a hlavně se s Max for Live naučíme pracovat, takže pak si budete moci vytvářet vylepšení a plug-iny úplně sami (nejen jednoduchá, ale i velmi komplexní).
Nejdříve si v rychlosti zrekapitulujeme, k čemu jsou tyto jednotlivé komponenty dobré a co vlastně dělají. Potom se podíváme na základy onoho vývojářského nástroje, abychom se v příštích dílech už rovnou mohli pustit do díla.
Ableton Live
Velká většina z vás asi ví, o čem je řeč. Ale znáte to, co si člověk neudělá sám... Dle vlastních slov výrobce: „Live je software pro tvorbu hudebních nápadů, jejich přepracování do finálního songu a dokonce jeho vzetí na pódium.“ Podobný hudební software obvykle označujeme jako DAW (Digital Audio Workstation, tedy digitální zvuková pracovní stanice). Oproti velké většině ostatních DAW je Live zaměřen právě na hudební produkci (s počítačem) na pódiu. Tomuto úkolu se věnuje již od roku 2001, kdy byla 30. října vydána úplně první verze Ableton Live 1.0 pro Windows a Mac OS X. Nalezený screenshot dokonce pochází ze starší verze operačního systému Mac OS 9. První verze Mac OS X 10.0 byla představena jen o pár měsíců dříve, 24. března 2001. Z daného screenshotu vidíme, jak si je tato dnes již více než šestnáct let stará aplikace v zásadě stále podobná. Tehdejší verze počítala s rozlišením monitoru 800 x 600 a vyžadováno bylo celých 128 MB RAM. Velmi zajímavý je i obchodní model firmy Ableton (mimochodem, firma sídlí v Berlíně jako několik dalších významných firem z oboru). Po dlouhá léta byl software Live jediným produktem firmy Ableton. Vše tedy bylo vsazeno na jednu jedinou kartu. A obchodní model byl postaven především na licencích zvaných. OEM. Tedy na tom, že Ableton Live (Lite) se k uživatelům dostal „zdarma“ přibalený k různému hudebnímu hardwaru (nejčastěji zvukové kartě, MIDI klaviatuře nebo jinému MIDI ovladači). Firma Ableton získávala (a stále získává) z každého prodeje takového hardwaru, k němuž byl Ableton Live (Lite) přibalen, určitou částku. To je obchodní model OEM. Další příjmy pak plynou z upgradů na vyšší verze Ableton Live, dnes pojmenované (od nejzákladnější k nejpokročilejší) Intro (dříve Lite), Standard a Suite. A samozřejmě i ze zakoupených nových licencí (to bylo zejména v minulosti ale spíše vzácností, protože Ableton Live Lite byl přibalován opravdu snad skoro ke všemu). Obchodní model firmy je i dnes velmi podobný. Jen se jistě změnil poměr příjmů z různých upgradů. Očekával bych snížení příjmů z OEM a zásadní zvýšení příjmů z prodeje upgradů z nižších verzí Ableton Live na současné verze (dnes 9.5) a rozhodně i z prodeje hardwarového ovladače Push. Firma již tedy není stoprocentně závislá pouze na jediném produktu, ale i tak se nadále vše točí hlavně okolo Live. Ale zdá se, že to funguje výborně.
Jedinečnost t=to DAW spočívala (a v podstatě dodnes zůstává, i když pár dalších firem už tento koncept také okopírovala) v matricovém zobrazení. Jednotlivé sloupce reprezentují kanály (nebo to můžeme chápat i jako zvuky či kategorii zvuku) a řádky reprezentují jednotlivé úseky songu (předehra, sloka, bridge, refrén atd. atd.). Vtip spočívá v kombinování jednotlivých hudebních prvků v reálném čase. Samozřejmě že můžeme spustit přehrávání předehry a budou znít všechny patterny, které jsme do předehry zařadili. Důležité je ale to, že můžeme pro dnešní večer nakombinovat předehru tak, že třeba basa bude hrát pattern, který je jindy určen pro bridge. A třeba dnes začneme bez bicích. Zkrátka máme k dispozici matrici hudebních motivů a patternů, které jsou logicky kategorizovány (sloupce = typ zvuku, plus/mínus; řádky = část songu, plus/mínus), se kterou můžeme volně pracovat (spouštět/nespouštět jednotlivé patterny/pole matrice). K tomu všemu ale můžeme s jednotlivými patterny okamžitě a živě manipulovat a v reálném čase je měnit. Tyto paterny tedy často slouží jako výchozí základní motivy, okolo kterých umělec během představení v reálném čase improvizuje (nebo živě hraje připravený program). Koncept, který naprosto přesně pasuje pro řadu současných hudebních stylů (nebo možná naopak, spousta současných hudebních stylů je postavena právě na této koncepci).
Jen tak na okraj, ale asi není od věci to zmínit: Live lze propojit i s „klasickými“ DAW. Třeba pro případ, kdy si chceme svoje vystoupení kompletně nahrát. A nebo když „klasické“ DAW běžně používáme, ale přesto chceme použít i Ableton Live. Děje se tak pomocí rozhraní ReWire. V takovém případě se „klasická“ DAW chová jako ReWire Host (master, řídicí) a Ableton Live se chová jako ReWire Slave (řízené). Tedy například tempo projektu nastavujeme v klasické DAW a Ableton Live se podřídí a synchronizuje se. Hlavní výstup do zvukové karty je nasměrován také z ReWire Host DAW. Zvuk z Ableton Live posíláme právě přes rozhraní ReWire do ReWire Host DAW. Funkce transport a pohyb v projektu se také řídí v ReWire Host DAW.
Mimochodem, nejzásadnější novinkou Ableton Live 9 bylo to, že byl pod kapotou v podstatě kompletně přeprogramován. Zásadně se tím zvýšila jeho stabilita, rychlost a použitelnost. V kuloárech se mluví o tom, že zdrojový kód předchozí verze Live byl již v takovém stavu, že bylo v podstatě neudržitelné a nemožné dále aplikaci vyvíjet. A právě proto musela firma přistoupit k zásadnímu zásahu, k přepracování velké části zdrojového kódu. Muselo to být velmi, velmi drahé. Ale zdá se, že se to povedlo a vyplatilo se to a Live tak žije dál.
Push
Dle výrobce „Push je nástroj, který shromáždí vše, co potřebujete pro tvorbu hudby na jednom místě - pod na dosah pod svými prsty.“ Vždy se mi líbila (a stále líbí) věta, kterou v souvislosti s produkty firmy Ableton vídám často. Ta věta zní: „Tvorba hudby je náročná.“ Opravdu mě těší tento přístup firmy Ableton. Přístup, který i v dnešním světě „neomezených možností“ a moderních technologií netvrdí, že tvořit hudbu je hračka „tady zmáčkneš knoflík a vono to samo hraje“. Firma Ableton vnímá a prezentuje Push jako skutečný hudební nástroj. Splňuje řadu parametrů, které od hudebního nástroje očekáváme, jako je velmi vysoká výrazovost (expresivita), možnost hudebního vyjádření se v reálném čase, ale zároveň také nutnost s nástrojem se sžívat a také hru na nástroj cvičit. Stejně jako nepopadneme housle a nehrajeme Paganiniho mistrovské kousky, nelze ani popadnout Push a rozbalit to na párty. (Mimochodem, řada jeho tzv. nehratelných kusů je hratelná, pokud víte tajné heslo. Tím heslem je, jak kterou strunu pro danou skladbu přeladit) Je to hudební nástroj, je třeba příprava a hodiny cvičení.
Stejně jako je u klavíru klaviatura (a pedály) uživatelským rozhraním, přes které komunikujeme se strunami klavíru a struny pak vytvářejí zvuk (vynechejme nyní prosím méně typické způsoby hry na klavír), Push je uživatelským rozhraním pro Ableton Live (který jen tak mimochodem běží v počítači). Jak jsem naznačil výše, zásadním prostředím Live je matrice. A právě proto zabírá velkou část rozhraní Push také (logicky) matrice 8 x 8 „tlačítek“, padů/ploch (budu se s dovolením spíše držet výrazu pady). Z matrice padů Push lze tedy ovládat matrici v Live. Ale to není její jediný účel. Může se proměnit v pady, kde lze hrát/nahrávat bicí patterny nebo jakýkoliv jiný nástroj. Jednotlivé pady mohou vysílat klasické MIDI noty (nebo jiné MIDI události). Pady jsou pochopitelně rychlostně citlivé, takže můžeme vytvářet dynamiku, stejně jako ji můžeme vytvářet silou úderu do klávesy klavíru. Na rozdíl od klavíru tím ale naše ovládání zvuku nekončí. Zvuk můžeme dále kontrolovat pomocí funkce aftertouch, tedy přítlaku na pady. Tím dostáváme další rozměr expresivity zvuku. A pak máme k dispozici řadu dalších otočných ovladačů, dotekový proužek (touch strip) a řadu dalších tlačítek a hejblátek, pomocí kterých buď přímo nějak upravujeme určité hudební parametry a nebo měníme nastavení Push tak, aby matrice padů vysílala takové informace, které momentálně potřebujeme. Zajímavou oblastí je samozřejmě také displej, který nám podává vizuální informace o tom, v jakém stavu se Push (nebo Song) právě nachází. A kromě toho všeho můžeme připojit i dva nožní pedály. Bohužel se v obou případech jedná pouze o spínače, nelze tedy použít kontinuální pedál pro další úroveň expresivity.
Max for Live
A do třetice tady máme ono vývojářské prostředí, které je známé asi nejméně, a proto se mu v následujících dílech budeme věnovat nejvíce. Ableton Live je svým způsobem docela uzavřený systém. Má to svou logiku. Vzhledem k tomu, že Live používáme při koncertech, musí být tento systém naprosto robustní a stabilní. A jakékoliv vměšování třetích stran, které Ableton nemá pod svou kontrolou, může tuto stabilitu narušit. Samozřejmě je možné v něm pracovat se všemi virtuálními nástroji a efekty (VSTi a VST, případně AU na Mac OS). Nicméně nějaké další rozšiřování Live bývalo v podstatě nemožné. A právě proto se Live spojil s Maxem.
Historie Maxu sahá ještě daleko před Live samotný. Úplně první verze byla napsána v polovině 80. let v Paříži na IRCAM (výzkumné centrum zaměřené na vytváření nových technologií pro hudbu ). Poprvé byl Max použit Philippem Manourym roku 1988 pro napsání kompozice Pluton, která synchronizuje počítač a akustické piano. Jméno Max pochází od Maxe Vernona Mathewse (1926-2011), který byl průkopníkem počítačové hudby. Již v roce 1989 licencoval IRCAM tento software společnosti Opcode Systems, která z něj udělala komerční software na začátku roku 1990. Mimochodem, existují i nekomerční (freeware) odnože, jako je například PureData. Ty ale s Ableton Live takto nekomunikují. V polovině 90. let se společnost Opcode Systems přesunula více mainstreamovým směrem a práva k Maxu byla přesunuta na společnost Cycling ’74, která Max vyvíjí dodnes. Ale je tomu teprve pár měsíců, kdy v polovině roku 2017 došlo k tomu, že Cycling ’74 byl koupen právě firmou Ableton. A tak má dnes firma Ableton Max for Live pěkně pod dohledem.
Typ programovacího jazyka
Max patří do rodiny vizuálních programovacích jazyků a zároveň do skupiny programovacích jazyků datových toků (objektově orientovaných), tzv. dataflow. Vizuální programovací jazyk znamená to, že jednotlivé operace a chování programu se nezapisuje v (zdrojovém) kódu. Program je tedy zapsán v grafické podobě. A dataflow programovací jazyk znamená to, že programem jsou modelovány přímo grafy datového toku mezi jednotlivými operátory. V praxi to znamená to, že v Max for Live máme k dispozici řadu různých objektů. Objekt vytvoříme tak, že na klávesnici počítače stiskneme N (New Object) a následně napíšeme název objektu a stiskneme Enter. Každý objekt má svou funkci (budeme se jim podrobně věnovat v následujících dílech). Jednotlivé objekty si musejí data nějak předávat. To se děje pomocí virtuálních kabelů, kterými dané objekty pospojujeme.
Výhoda takového programovacího jazyka je, že skutečně není potřeba umět jakýkoliv klasický programovací jazyk. Pro nás moderní muzikanty, kteří nesedíme jen u nástrojů, ale hrbíme se i u počítačů, propojujeme zařízení MIDI kabely, případně připojujeme mikrofony, linky, zvukové karty atd., není prostředí propojování „objektů“ (ať už jimi je cokoliv) nijak cizí. A chápeme, že kabely mezi těmito objekty proudí nějaká data (MIDI, zvukový signál...). Na druhou stranu nevýhodou takového programovacího jazyka je jeho „údržbovost“. V okamžiku, kdy program tvoříme, a zejména pokud je relativně malý, můžeme se v programu snadno orientovat. Může se ale snadno stát, že se program stane změtí objektů a kabelů a bude naprosto nepřehledným. I pro to existují v Maxu principy, jednotlivé objekty se dají slučovat. Ale pokud jednou program vytvoříte a ukončíte a po roce (nebo déle) jej chcete upravit, může to být docela problém. Často se jen velmi těžko hledá začátek. Není jasné, kde program začíná, kde ho začít číst, a tedy jak má vlastně fungovat. I z tohoto důvodu (a dalších důvodů, jako je například rychlost výpočtů programu, je možné v Maxu použít i klasické programovací/skriptovací jazyky. Tím hlavním je JavaScript. Objekty lze vytvářet i v programovacím jazyku C. Pro některé operace (zejména síťovou komunikaci) se hodí Java. Pro vizuální práci se hodí Lua. Ale nebojte, těmto programovacím jazykům se zde úplně vyhneme. Nebude potřeba ani jeden z nich.
Ještě než se podíváme na první jednoduchý příklad, musíme si říct, jak vlastně Max for Live v Ableton Live spustit. V levé části Live vybereme z Categories položku Max for Live. Zde otevřeme záložku Max MIDI Effect (prozatím) a do stopy MIDI/Instrument přesuneme první položku ze seznamu, tedy Max MIDI Effect. Vytvoří se první základní (v podstatě prázdný) MIDI efekt. Zde klikneme na tlačítko Edit (první zleva v trojici tlačítek nahoře), čímž se již spustí Max for Live, případně aplikace Max, pokud máme tuto (plnou) licenci, která umožňuje vytvářet i programy, které poběží mimo Ableton Live. Zde již můžeme tvořit. Ale ještě předtím je dobré překontrolovat, zda můžeme do daného okna zapisovat. Mimochodem, tyto celé „programy“ se v Maxu nazývají patch (náplast/záplata/štípek; budu používat počeštěné patch, čti „peč“, podle vzoru stroj). Abychom mohli do patche zapisovat, musí být odemknutý. Tedy v levém dolním rohu okna musí být zámek otevřen. Pokud není, klikneme na něj. Ještě se může (někdy) stát, že bude patch ““ mražen“. Poté musíme také dole kliknout na ikonu vločky. A už můžeme konečně tvořit.
1 + 1
Teď tedy ten zmíněný jednoduchý příklad. Chceme sečíst dvě čísla a získat výsledek tohoto součtu. V Maxu tedy existuje objekt číslo [Number]. Stiskneme tedy na klávesnici N (New Object), napíšeme number a stiskneme Enter. Vytvoří se nový objekt s číslem. Takové objekty budeme potřebovat dva (protože sčítáme čísla dvě). Pak také v Maxu existuje objekt [+]. Když se na tyto objekty podíváme pořádně, zjistíme, že nahoře i dole mají taková „očka“. To jsou vstupy (Inlets, nahoře) a výstupy (Outlets, dole). A právě ty nám poslouží pro propojení. Klikneme na výstup z jednoho objektu [Number] a propojíme jej s jedním vstupem objektu [+]. To stejné uděláme s druhým objektem [Numbers] a druhým vstupem objektu [+]. V podstatě máme hotovo. Ale ještě bychom někde chtěli zobrazit výsledek součtu. Použít můžeme řadu různých objektů, jako například [Print] pro výpis do konzole Max nebo [Message] či [Comment]. My ale použijeme další objekt [Number] a tím si ukážeme, proč je na tomto objektu také vstup. Nyní tedy propojíme výstup objektu [+] se vstupem třetího objektu [Number]. A teď už máme opravdu hotovo.
Patch zamkneme pomocí zámku (případně klávesovou zkratkou Ctrl + kliknutím do okna Max) a můžeme kliknout do jednoho z objektů [Number] a pohybovat myší nahoru a dolů. Tím se změní hodnota a ve třetím objektu [Number] se zobrazuje výsledek. Ale počkat, možná vám to nefunguje. Jak jste si jistě všimli, vstupy objektu [+] mají různou barvu. Červenou a modrou. To je důležité barevné kódové označení, které budeme v Maxu vždy sledovat. Modře označené vstupy totiž samotnou funkci nespouštějí. Pouze shromažďují data. Zato červeně označený vstup přijme data a danou funkci spustí. Tedy pokud měníme hodnotu objektu [Number], který je připojen do pravého modrého vstupu, nic se neděje. Teprve až když změníme hodnotu objektu [Number], který je připojen do levého červeného vstupu, Max začne funkci provádět, tedy sčítat. A právě tyto objekty použijeme v jednom z našich prvních plug-inů pro Ableton Live. (Ale dnes ještě ne, až později.)
Logika: zprava doleva!
Dnes si ještě musíme říct něco k základní teorii Max for Live. Zásadním pravidlem, které si musíme pamatovat, je, že pořadí získávání/vysílání dat z-/do objektů je zprava doleva. Ano, je to skutečně tak. Na první pohled to vypadá vážně nepochopitelně a mnohokrát vás to ze začátku zmate. Ale má to svůj důvod a svou logiku.
Druhým pravidlem je, že se čte směmre zdola nahoru. Upřímně řečeno, toto pravidlo znám teoreticky, ale prakticky jsem jej použil maximálně dvakrát. Raději se snažím tomuto pravidlu vyhýbat a volit si pořadí toku dat sám. Nicméně pravidlu zprava doleva se prostě nevyhneme a musíme na něj neustále pamatovat.
Například tu máme objekt [Noteout] se třemi vstupy. Tento objekt umí vysílat MIDI noty do nastaveného MIDI výstupu. Když najedeme myší na jednotlivá „oka“ vstupů, zobrazí se informace o tom, co který vstup vlastně znamená. To je obecně velmi praktická funkce Maxu. V pořadí zprava (abychom si zvykali na dané pořadí a logiku) to tedy jsou Channel (MIDI kanál), Velocity (hlasitost) a Pitch (výška tónu). Jak jste si jistě všimli, červeně je označený úplně levý vstup, tedy Pitch. Důvod je takový, že daný objekt musí nejdříve dostat informaci o MIDI kanálu, pak o hlasitosti, a teprve když má tyto potřebné informace a dostane také informaci o výšce tónu, může být MIDI nota skutečně vyslána. Analogicky vypadá také objekt [Notein]. Ten má tři výstupy. Ty už ale nejsou označeny barevně. Nicméně pořadí, v jakém budou data z tohoto objektu vyslána, je stejné - zprava doleva. Tedy nejdříve bude vyslána informace o MIDI kanálu, pak o hlasitosti a teprve nakonec o výšce tónu. Stále se možná může zdát, že to není až tak důležité, ale určitě na to narazíme.
Vidím, nevidím
Ještě než se (pro dnešek) rozloučíme, prozradím vám, k čemu je v okně Max ta horizontální čára. Všechno, co je nad čárou, to v okně plug-inu Ableton Live uvidíme. Všechny grafické objekty, které tedy budeme používat pro interakci s uživatelem, musejí být nad touto čárou. Všechno, co je pod čárou, bude uživateli schováno. V našem prvním příkladě by tedy nad čárou měly být všechny tři objekty [Number], aby uživatel mohl zadávat čísla, která chce sčítat, a zároveň, aby viděl sečtený výsledek. Naopak samotný objekt [+] může být klidně pod čárou. V Ableton Live nemusíme nutně vidět, jak přesně jsme daná čísla sečetli, a pokud by byl patch větší, ani by se nám všechny objekty na obrazovku nevešly. Pokud tedy objekty takto přesuneme, uvidíme, že nám tam nehezky trčí propojovací kabely. I s tím se dá něco dělat. V Maxu existuje režim Presentation. U každého patche můžeme zvolit, které objekty jsou v tomto režimu viditelné. V režimu Presentation jsou všechny kabely skryté. A právě toto je režim, který reprezentuje finální uživatelské rozhraní. Objekty mohou být v tomto režimu poskládány jinak, než jak je máme v patchi. Což je praktické, protože někdy v patchi potřebujeme jiné rozmístění, než jak tomu bude nakonec z uživatelského hlediska. Pro vložení libovolného objektu do režimu prezentace na daný objekt klikneme pravým tlačítkem myši a vybereme položku Add to Presentation. Do samotného režimu prezentace, kde jednotlivé objekty rozmístíme tak, jak chceme, se dostaneme tak, že ve spodní části okna Max klikneme na ikonu promítacího plátna (prezentace). Nyní již můžeme objekty rozmístit tak, jak je nakonec uvidí uživatel (samozřejmě musíme opět odemknout zámek, abychom mohli s objekty manipulovat).
Dnes to byla jen samá teorie a bylo to dlouhé a náročné. Ale slibuji, že už příště vytvoříme první MIDI patch, který skutečně bude něco dělat. A bude to zábava! Alespoň pro mě určitě.
Poznámka: Názvy objektů budu vždy psát do hranatých závorek takto [Objekt]. Později se nám to bude hodit, abychom se v textu lépe orientovali.
Poznámka 2: Max for Live je přímo součástí Ableton Live Suite. Pokud jste majitelem verzwe Ableton Live Standard, lze dokoupit licenci Max for Live samostatně. Nicméně s Ableton Live Intro nelze Max for Live použít. A to ani pro vývoj vlastních plug-inů, ani pro použití plug-inů vyvinutých v Max for Live. V takovém případě je nutný upgrade na Ableton Suite a nebo Ableton Standard + Max for Live.