Max for Live - Extrémně osobní Ableton Live
V minulých dílech jsme probírali práci s Max for Live poměrně podrobně. Teď už jsou základy práce jistě jasné a můžeme pokračovat dále a rychleji.
Prozatím náš patch vytváří z každého tónu pouze durové akordy. Dále ale budeme chtít, aby náš patch fungoval více jako harmonizér. Tedy tak, aby reagoval na to, který stupeň tóniny zahrajeme a podle toho vytvořil buď akord durový nebo akord mollový. Tedy jednou bude přidávat čtyři půltóny (dur) a jednou tři (moll).
Pomůžeme si dvěma dalšími objekty. Jeden nám pomůže zjistit, kolikátý stupeň dané tóniny právě hrajeme, a druhý nám pomůže rozdělit, zda přidat tři nebo čtyři půltóny.
Objekt, kterým zjistíme stupeň dané tóniny, je jednoduchý objekt modulo [%]. Z matematiky víme, že se jedná o zbytek po dělení. Protože tónů máme v naší běžné tónové soustavě dvanáct, použijeme modulo 12, tedy objekt [% 12]. Abychom si objekt modulo otestovali, vyšleme nejnižší možnou MIDI Notu 0. Výstupem objektu [% 12] bude 0. Tedy první stupeň. Vyšleme-li MIDI Notu 1, bude výstupem [% 12] 1. A tak dále, až po MIDI Notu 11, kde výstupem z [% 12] bude 11. Po vyslání MIDI Noty 12 bude výstupem objektu [% 12] opět hodnota 0, tedy první stupeň. A jsme znovu na začátku a celý kruh s výstupem z objektu [% 12] se bude opakovat.
Teď už tedy víme, jaký stupeň tóniny do vstupu přišel. A nyní musíme udělat rozhodnutí. Programátoři by čekali nějaké rozhodnutí typu „if“ nebo „switch case“, což je v Max for Live možné také, ale na to se podíváme až později. Nyní použijeme objekt [select], který má i zkrácenou variantu [sel]. Pomocí parametrů tohoto jednoduchého objektu nadefinujeme, jaké hodnoty mají být vybrány (select), a následně na příslušný výstup pošleme objekt [sel] bang (tedy „teď“). Konkrétně tedy použijeme objekt s parametry 0-12, tedy [sel 0 1 2 3 4 5 6 7 8 9 10 11]. Objekt [sel] tak získá 13 výstupů. Dvanáct z nich je pro čísla 0 až 11 a třináctý je pro jakoukoliv jinou hodnotu, která by do objektu mohla přijít. V našem případě tato varianta nastat nemůže, ale jsou případy, kdy je tento poslední výstup velmi praktický.
Nu a v podstatě máme skoro hotovo. Nyní už jen vytvoříme dva objekty [message], v jednom bude hodnota 3 a ve druhém hodnota 4. Pomocí nich budeme přepínat, zda se mají přičítat tři nebo čtyři půltóny. Výstup z objektů [message] připojíme na pravý vstup objektu [+], kde jsme prozatím přičítali vždy pouze 4, tedy konkrétně objekt [+ 4]. Pravý vstup daného objektu nám umožňuje dynamicky měnit hodnotu, kterou budeme přičítat, což je přesně to, co právě nyní potřebujeme. A do levého vstupu objektů [message] 3 a 4 připojíme výstupy z objektu [sel 0 1 2 3 4 5 6 7 8 9 10 11] podle toho, pro který stupeň se má vytvořit durový a pro který mollový akord. Osobně bych to tedy pro durovou tóninu viděl třeba takto:
0: dur [4]
1: moll [3]
2: moll [3]
3: dur [4]
4: moll [3]
5: dur [4]
6: moll [3]
7: dur [4]
8: dur [4]
9: moll [3]
10: dur [4]
11: moll [3]
A nezapomeňme připojit výstup z objektu [% 12] do prvního vstupu objektu [sel], tedy hodnotu, která bude testována.
Na závěr je třeba dodat, že MIDI Nota 0 je tón C. Tedy patch nám momentálně funguje pro tóninu C dur.
Hotovo. Nezačíná to být už pomalu zajímavé?