Max for Live - Extrémně osobní Ableton Live
Vraťme se zpět k našemu správnému řešení. I toto řešení lze dále a různě optimalizovat. Ačkoliv na současném řešení vlastně není nic špatně. Osobně mám ale rád, pokud mám někde kontrolu nad úplně všemi (potřebnými) parametry pohromadě a na výstup vysílám data kontrolovaně z tohoto jediného místa. Mám pak přesný přehled, co na výstup skutečně půjde.
V našem případě to znamená, že bych chtěl na jednom místě vždy kompletně soustředit všechna data o nové notě a teprve v okamžiku, kdy budu mít k dispozici všechna potřebná data na jednom místě, vyšlu tato data najednou do výstupního objektu, v našem případě tedy [noteout].
Již dříve jsme použili objekt [message] pro dočasné uložení parametru a jeho následné vyslání v okamžiku, kdy to potřebuje. Použijeme tak objekt [message] znovu. Objekt totiž nemusí uchovávat pouze jednu hodnotu, ale může jich uchovávat více. V našem případě tedy bude uchovávat seznam (v Max for Live tzv. list) se třemi hodnotami: kanál MIDI, hlasitost, výška tónu. Teprve v okamžiku, kdy budou pro daný tón všechny tyto informace k dispozici, pošlu pomocí události [bang] (teď) informace dál.
Do takového seznamu budeme samozřejmě data, která jinak přicházejí sériově, nějak zabalit. K tomu se používá objekt [pack]. Pomocí parametrů nastavíme, kolik vstupů (a jaký typ dat) bude objekt [pack] mít. Jak jsem předeslal, v našem případě budeme používat seznam tří čísel, tedy náš objekt bude vypadat takto: [pack i i i]. Získáme tedy tři vstupy a není bez zajímavosti, že levý vstup je červený, tedy chová se jako aktivní. Jakmile přijdou data do levého vstupu, budou vyslána dál. Pokud budou přijímána data jen na pravém a prostředním vstupu, budou data pouze schraňována a aktualizována. Ale celý seznam se vyšle dál teprve až s daty na levém vstupu.
Trošku přestavíme část patche, kde pracujeme s hlasitostí. Na rozdíl od původního patche, kde jsme hned v okamžiku, kdy přisla informace o hlasitosti, tuto událost zpracovali, hlasitost snížili a uložili do dočasného úložiště, nyní si uložíme hodnotu původní hlasitosti a budeme ji zpracovávat až v okamžiku, kdy nastane ten správný čas.
Kromě této změny se patch vlastně moc nezmění. Nicméně výsledkem bude větší kontrola (třeba i vizuální) nad výstupními daty.