Max for Live - Extrémně osobní Ableton Live - XY ovladač hlasitosti a panoramy (2)
XY ovladač hlasitosti a panoramy
Ještě se ale musíme na chviličku u [pictslider] zastavit a nastavit si jej. Protože parametr panning v Abletonu Live očekává hodnoty v rozsahu -1 až 1 a volume očekává hodnoty v rozsahu 0 až 1, musíme tyto hodnoty vysílat. Jenže [pictslider] umí vysílat pouze celá čísla. Proto hodnotu na levé straně nastavíme na -100, na pravé straně na +100, a nahoře také na +100. Za oba výstupy tedy ještě budeme muset přidat objekt [/100.]. Tečky musí za číslem 100 být proto, aby výstup z objektu dělení [/] dával jako desetinné číslo (floating), nikoliv číslo celé (integer).
Teď už máme připravené skoro vše. Jen pro počátek by se ještě slušelo, abychom zaručili, že z každého výstupu půjde vždy nejdříve informace o cestě a teprve potom hodnota. Proto ještě přidáme dva objekty [t i b] (tedy trigger integer bang), které zajistí správné pořadí vysílaných informací. A teď už jen vše správně propojit (dle obrázku), a máme hotovo.
Když to teď konečně vyzkoušíme, zhrozíme se, protože panning a volume v Abletonu Live se vůbec nepohybují plynule, ale dost se cukají. Jak toto vyřešit? Snad řešení najdeme.
XY ovladač hlasitosti a panoramy - oprava
Vytvořili jsme XY ovladač, který ovládá hlasitost a stereopozici prvního kanálu pomocí jediného XY ovladače. Nicméně v závěru jsme zjistili, že to nefunguje úplně optimálně a při pohybu na XY ovladači se hodnoty v Abletonu Live „sekají“. Dnes to tedy opravíme a zodpovíme pár otázek.
Chyba byla v použití objektu [live.remote~], který je obecně docela hladový pokud jde o výkon počítače a komunikace s ním není úplně jednoduchá. Proto jsem tento objekt nyní nahradil běžným objektem [live.object], který odkazuje přímo na konkrétní objekt Abletonu Live se specifickým ID. Nicméně ještě bylo potřeba udělat dvě drobné úpravy.
Objekt [live.object] ve svém pravém vstupu očekává ID, ale nikoliv následované cestou, jako je tomu u objektu [live.remote~], ale následuje objekt. Proto jsme z objektu [live.path] použili první, a nikoliv druhý výstup, který nám tuto možnost dává. Druhou změnou je levý vstup, který sice očekává hodnotu, ale ještě před ní je potřeba podat informaci, zda budeme tuto hodnotu číst, nebo zapisovat, nebo co s ní budeme dělat.