Max for Live - Extrémně osobní Ableton Live

Max for Live - Extrémně osobní Ableton Live
Max for Live - Extrémně osobní Ableton Live

Uživatelská data

Minule jsem ve svém patchi udělal drobnou, ale zásadní chybu. Pokud jste patch stáhli a otevřeli ve svém počítači, zobrazila se vám prázdná mapa po klinutí na objekt [dict], namísto očekávané mapy "transpozice": {...}. Objekt [dict], měl totiž obsahovat parametr embed, tedy měl vypadat takto: [dict @embed 1].

Parametr embed je obecně možné použít u některých objektů, které mohou ukládat data. Pokud nastavíme embed (zakotvit/zapustit/vrýt se) na hodnotu 1, budou data daného objektu ukládána s projektem. Tedy jakmile projekt otevřeme, bude objekt obsahovat přesně ta data, která v objektu byla uložena při zavírání projektu. To může být někdy velmi praktické.

Teď se ale už vrátíme k naší původní aplikaci, která automaticky tvoří akordy, a podíváme se na to, jak právě vytvořenou mapu můžeme v této aplikaci použít. Důvod, proč chceme použít mapu, je takový, že uživatel si pak bude moci snadno vytvářet mapy vlastní, a tak definovat, který akord bude hrát při jakém tónu.

Možná si z původního patche pamatujete na subpatch [durmol].

V něm jsme měli objekt [sel 0 1 2 3 4 5 6 7 8 9 10 11] a pod ním dvě zprávy [3] a [4]. Podle vybraného intervalu (0-11) byla vyslána zpráva, (3 nebo 4), o kolik se má další tón transponovat.

Ale tohle je přece přesně to, k čemu funguje objekt [dict]. Toto je typická mapa.

Interval Transpozice

0 .............. 4

1 .............. 3

2 .............. 3

3 .............. 4

...

Namísto dvou výše zmíněných objektů tedy za objekt [% 12] připojíme objekt [tosymbol] (ten je důležitý, protože z čísla, které nám přijde z objektu [% 12], vytvoří text/symbol, který je pro mapu nezbytný). Za tento objekt připojíme [prepend get], což bude dělat přesně to samé, jako jsme si ukázali minule. Teď už připojíme náš object [dict @embed 1]. A za druhý výstup objektu [dict] připojíme objekt [unpack s i]. Objekt [dict] totiž na svůj druhý výstup posílá vždy nejdříve klíč, a pak hodnotu. Proto musíme tento seznam (list) rozbalit pomocí objektu [unpack]. Klíč nás v tomto případě moc nezajímá, ten známe, ale na výstup objektu [durmol] potřebujeme dostat hodnotu daného klíče. Proto připojíme pravý výstup objektu [unpack] do již připraveného objektu [outlet].

Psáno pro časopis Muzikus