Max for Live - Extrémně osobní Ableton Live
Jak na to?
Jak už to tak v komunikaci (jazyku) bývá, máme řadu různých způsobů, jak jednu informaci sdělit. Stejně i v programovacím jazyku můžeme jednu funkci naprogramovat vícero různými způsoby. Mě osobně se v současné verzi patche líbí objekt [t i i i], který se dosud staral o pořadí, ve kterém budou vysílány informace o změně výšky tónu. Je to tedy jakýsi náš „časovač“, který určuje pořadí jednotlivých událostí (ostatně tak je také objekt [trigger], zkratka [t], zamýšlen). Využil bych jej tímto způsobem tedy i nadále.
Zůstaneme u toho, že pro MIDI kanál, jehož hodnotu měnit nechceme, využijeme vždy poslední příchozí hodnoty, a i nadále jej tedy nebudeme mít pod kontrolou. Teď, když už o tomto faktu víme a jsme si ho vědomi, není tak nebezpečný. Jaké informace (a v jakém pořadí) tedy potřebujeme vyslat?
1. MIDI kanál originálního tónu - o to se postará [notein] objekt.
2. Hlasitost originálního tónu - o to se postará [notein] objekt.
3. Výšku tónu originálního tónu - o to se postará [notein] objekt, signál dále směřuje do objektu [t i i i] a skrz něj do objektu [noteout]. Dosud jsme skrz [t i i i] posílali originální tón až jako poslední. Pojďme to změnit a průchozí tón budeme posílat jako první, tedy nejvíce zprava. Nyní hned vidíme obrovskou výhodu objektu [trigger], kdy pouhou změnou pořadí kabelů změníme pořadí vysílaných událostí.
První MIDI notu tedy máme vyřízenou a jdeme na druhou, tedy tu, kterou chceme transponovat o +4 půltóny.
4. Měli bychom vyslat MIDI kanál, ale protože jsme řekli, že použijeme stejný MIDI kanál jako u originálního tónu, budeme tuto informaci prozatím ignorovat.
5. Musíme změnit hlasitost originálního tónu, protože ji chceme ubrat, jak zní naše zadání. Logicky tedy vytvoříme objekt [-10] (hlasitost budeme ubírat o 10 jednotek). Teď nás ale čekají dva úkoly, pomocí kterých vlastně vše vyřešíme najednou. Jednak si musíme vytvořit nějaké úložiště, kam si schováme hodnotu hlasitosti originální noty. Pro takové účely se často používá objekt [message] (pro jeho vytvoření stačí stisknout klávesovou zkratku „m“). Tento objekt funguje tak, že pravý vstup přijímá data a informací „bang“ do levého vstupu daná data pošle dál. Tedy výstup z obejktu [-10] připojíme do pravého vstupu objektu message. Tím si uložíme novou hlasitosti (sníženou o 10) do tohoto objektu [message], a jakmile bude správný čas, informaci z message pošleme dál. A jak poznáme, kdy je ten správný čas? Právě teď, v kroku 5. A, vše dosud řídíme z objektu [t]. Tento objekt tedy musíme změnit tak, aby skutečně vyslal všechny takové informace a v takovém pořadí, jak chceme. Tedy objekt [t] změníme z původního [t i i i] na nový [t i b i b i].
Co znamená „b“ v objektu [t]? Již zmíněné „bang“, tedy něco jako „teď“.
Příště se podíváme nyní na objekt [t i b i b i] znovu a vysvětlíme si jej.