Max for Live - Extrémně osobní Ableton Live
Minule jsme dokončili kompletní zapojení objektu [t i b i b i]. Nesmíme zapomenout na to, že do objektů [-10] a [-20] jsme zatím data odnikud neposlali. Do nich chceme pochopitelně poslat data o hlasitosti, tedy z druhého výstupu objektu [notein]. Samozřejmě to můžeme udělat napřímo, tedy z tohoto výstupu vyšleme tři kabely. Jeden přímo na druhý vstup objektu [noteout], kudy nám poteče původní hlasitost originálního tónu, a další dva kabely do levých vstupů objektů [-10] a [-20].
A nebo to můžeme opět udělat naprosto správně a za druhý výstup objektu [notein] připojíme nový objekt [t i i i], jehož první výstup (zprava) připojíme do druhého vstupu objektu [noteout], tedy Volume, druhý výstup (zprava) do levého vstupu objektu [-10] a třetí výstup (zprava) do levého vstupu objektu [-20]. Výsledek je stejný, ale máme tak opět naprosto přesnou kontrolu nad tokem dat.
A máme hotovo!
Nyní se podíváme na to, jak by tento úkol mohl řešit začátečník, a proč by to nefungovalo. Mohlo by se zdát, že celou situaci můžeme zjednodušit tak, že vyšleme v daném pořadí signál z druhého výstupu objektu [notein], tedy z objektu Volume. Tyto hodnoty pak příslušně snížíme pomocí objektů [-10] a [-20], viz obrázek. A nebudeme tak potřebovat celou tu šaškárnu s objekty [message] a na pohled možná složitý objekt [t i b i b i].
Z druhého (zprava) výstupu objektu [notein] (Volume) bychom vyslali informaci do nově vytvořeného objektu [t i i i], odkud bychom vysílali data do druhého vstupu objektu [noteout] (Volume), dále do levého vstupu objektu [-10] a do levého vstupu obejktu [-20]. z těchto objektů pošleme výstup do druhého vstupu objektu [noteout] (Volume). A máme hotovo.
Co by se ale ve skutečnosti stalo?
1. Z pravého výstupu objektu [notein] (MIDI kanál) bychom vyslali data do pravého vstupu objektu [noteout].
2. Z druhého výstupu (zprava) objektu [notein] (Volume) vyšleme signál do nového objektu [t i i i]. Ten vyšle data do objektu [noteout], a to sice původní hlasitost originálního tónu, hlasitosti [-10], která přijde skrz tento objekt, a hlasitost [-20]. Tedy jako poslední je zde uložena hodnota -20 původní hlasitosti.
3. Teprve nyní je vyslána informace do třetího (zprava) výstupu objektu [noteout], tedy Pitch. A nyní tato informace směřuje do původního objektu [t i i i], odkud jde signál do třetího vstupu (zprava) objektu [noteout]. Nyní je tedy vyslána první nota, která má ovšem hlasitost -20 oproti původní origiánlní notě, protože to je poslední hodnota, kterou objekt [noteout] na svém vstupu Volume dostal. Dále bude vyslána MIDI note [+4], ale opět s hlasitostí -20 a následně MIDI note [+7], opět s hlasitostí -20.
Namísto původního zadání, kdy jsme chtěli každé přidané notě ubrat hlasitost, jsme tedy ubrali stejnou hlasitost všem notám (včetně originální). Což je úplně jiný výsledek, než jsme chtěli.
Ponaučení: Závěr je jasný. Musíme si vždy dávat pozor na tok dat uvnitř našeho patche. A musíme si být vědomí toho, že logika je zprava doleva, a že z daného výstupu nejdřív data vytečou a jsou provedeny všechny operace. A teprve potom jsou zpracovávána data z dalšího (o jeden dále vlevo) výstupu. To je velmi důležité v případech, jako je tento. Nejdříve byla zpracována všechna data o hlasitosti a teprve potom se zpracovávala data o výšce tónu.
Právě proto jsme původně, ve správném, respektive jednom ze správných, řešení veškeré časování řešili až z posledního výstupu, pomocí objektu [t i b i b i].