Max for Live - Extrémně osobní Ableton Live - Dokumentace LOM - podrobnosti objektu

Max for Live - Extrémně osobní Ableton Live - Dokumentace LOM - podrobnosti objektu
Max for Live - Extrémně osobní Ableton Live - Dokumentace LOM - podrobnosti objektu

Jak jsme si slíbili v minulém dílu, dnes se podíváme o krok dál na dokumentaci Live Object Modelu (LOM), abychom mohli snáz vytvářet vlastní cesty, a tak z Max for Live komunikovat s hostitelskou aplikací Ableton Live.

Jak jsem již uvedl dříve, LOM najdeme buď v samotné dokumentaci Max for Live nebo na webové stránce (https://docs.cycling74.com/max5/refpages/m4l-ref/m4l_live_object_model…). Pokud jste si tuto dokumentaci procházeli, asi jste si všimli, že na všechny objekty, které jsou v rámečku, v sekcích live_app a live_set, se dá kliknout. A možná jste to i zkusili a zjistili, že jste se v dokumentaci posunuli někam hluboko. Tato část dokumentace popisuje podrobnosti daného objektu.

Podíváme se například na objekt Track ze sekce live_set > Song. Hned první věta dokumentace může znít trošku strašidelně... „Tato třída (to zavání programováním!!!) reprezentuje stopu Live.“ Ale pokračuje to již docela praktickými informacemi: „Může to být buď zvuková stopa, MID, stopa Return nebo Master.“ No vida, hned jsme se dozvěděli, jaké všechny typy stop může tento objekt Track reprezentovat. A nyní už nemůžeme mít pochybnosti, jestli třeba když chceme zvolit stopu MIDI, musíme postupovat jinak, než když chceme zvolit zvukovou stopu.

Následuje sekce Canonical path, tedy jedinečná cesta, kde se v tomto konkrétním případě dočteme: „live_set tracks N“. To znamená, že pokud chceme nastavit cestu k nějaké konkrétní stopě, musíme napsat „live_set tracks N“, kde N je ID dané stopy.

V sekci Children vidíme seznam všech cest, kam lze dál jít. Pokud se znovu podíváme na diagram LOM, zjistíme, že tyto se přesně shodují s popisem čar vedoucích ven z našeho objektu Track. Navíc zde dostaneme další informace. Ve sloupečku Type se dozvíme, jaký typ dat dostaneme, pokud se zeptáme na tuto cestu. Jak v dokumentaci vidíme, může se jednat buď o List (seznam) nebo o konkrétní objekt. Ve sloupečku Access (přístup) se pak píše, zda můžeme daný objekt neustále sledovat (observe) nebo zda můžeme dostat jednorázovou informaci o aktuálním stavu tohoto objektu (get). V tom je docela zásadní rozdíl. Protože pokud můžeme objekt pozorovat (observe), může být náš patch automaticky informován, jakmile se něco v daném objektu změní, a náš patch na to může reagovat. Zatímco pokud máme možnost jen dostat aktuální hodnotu (get), náš patch nebude informován, pokud se cokoliv v objektu změní, a nelze na to reagovat.

Další sekcí jsou Properties (vlastnosti). Zde najdeme seznam úplně všech vlastností, se kterými můžeme z našeho patche komunikovat. A tak například v našem případě objektu Track zjistíme, že můžeme zjišťovat, zda na dané stopě vůbec může být aktivován záznam (can_be_armed), jestli je záznam aktivován (arm), aktuální směrování signálu na vstupu (current_input_routing) a samozřejmě na výstupu (current_output_routing). Ale můžeme ověřit celou dlouhou řadu dalších vlastností stopy, včetně aktuální hodnoty na měřáku, zda je daná stopa vybraná, zda je aktuálně viditelná, index aktuálně přehrávaného slotu a mnohé další. Následuje opět typ, kde se dozvíme, jaký typ hodnoty se nám vrátí, třeba bool (true/false) nebo int (celé číslo) nebo string (textový řerězec) a další. Ve sloupci Access (přístup) opět najdeme již známé get a observe, ale také možnost set, tedy můžeme hodnotu z našeho patche nastavit. A posledním sloupcem je Description, kde najdeme podrobnější popis.

A v poslední sekci Functions pak najdeme funkce, které můžeme pro daný objekt použít.

Uznávám, že tato část dokumentace již není tak hezky přehledná, jako diagram LOM. Ale na druhou stranu je velmi užitečná, protože právě zde najdeme, s čím vším si můžeme z našeho patche s Ableton Live povídat a jaká slova přesně máme používat, aby nám Ableton Live rozuměl.

A protože není nad praxi, příště se podíváme na některé konkrétní vlastnosti z objektu Track a ukážeme si, jak je z našeho patche pozorovat (observe), jak dostat aktuální hodnotu (get) nebo hodnotu nastavit (set).

Psáno pro časopis Muzikus