Jak z rotačního hyperboloidu vyždímat strašidelnou hudbu

Halloween nehalloween - pro většinu lidí je největším strašákem matematika. Třeba takový rotační hyperboloid - to je přímo nevyčerpatelný zdroj nočních můr. A to ještě netušíte, jak děsivá hudba se z něho dá odvodit. Bububu!

V diskusi pod minulým Matykáním přišla na přetřes otázka, zda se dá z matematických funkcí vypočítat muzika a to mi připomnělo jeden můj starý experiment, v němž jsem se pokusil algoritmicky (a také rytmicky) přetavit jistou posloupnost čísel na posloupnost tónů.

Samozřejmě hudba z toho nevznikla. Na hudbu potřebujete jednak hřejivý dotek lidské ruky a jednak onu prchavou jiskru boží inspirace. Nicméně to, co se z toho vyklubalo by se dalo s úspěchem použít jako "soundtrack" k některým filmovým horrorům.

Nejdřív trocha matyky...

(pro zanícené lingvisty: hovorový výraz "matyka" skloňuji podle vzoru "rotyka")

Existuje spousta matematických objektů, ze kterých by se potenciálně dala vylouhovat hudba. Například sinusoida. Ale sami asi cítíte, že by to bylo pořád jednotvárně nahoru a dolů a zase nahoru a dolů a znělo by to jako by žák 5.B přehrával stupnice. Aby z toho vzniklo něco alespoň trochu zajímavého, zabrousíme do teorie čísel, kde najdeme objekty, které jsou částečně náhodné a částečně strukturované - což je přesně ta kombinace, kterou hledáme. Konkretně si pro naše účely vypůjčíme celočíselné body na rotačním hyperboloidu.

Rotační hyperboloid není nic jiného než plocha v třírozměrném prostoru, popsaná rovnicí: x2+y2-z2=1. Je to tedy množina bodů, jejichž souřadnice (x,y,z) tuto rovnici splňují. Získáme ji tak, že běžnou hyperbolu x2-y2=1 roztočíme kolem osy y.

Když budeme chvíli pátrat, zjistíme, že na této ploše existuje spousta bodů s celočíselnými souřadnicemi - namátkou (8,9,12), (26,15,30) nebo (34,47,58). Jen si je zkuste dosadit a uvidíte. Abychom se v nich ale nějak vyznali, rozdělíme si celý hyperboloid na určité "letové hladiny", tedy množiny bodů, které mají stejnou souřadnici z. Nalézají se tedy ve stejné výšce - jako nějaké letadlo (na obrázku vlevo je jedna konkretní letová hladina vyznačena zeleně).

Protože třírozměrné kreslení se těžko realizuje, promítneme si pro jednoduchost všechny letové hladiny do "podlahy" - tedy do souřadné roviny x-y. To uděláme prostě tak, že zapomeneme tu třetí souřadnici, takže z bodu (8,9,12) nám vznikne bod (8,9) a všechny letové hladiny se změní na soustředné kružnice (viz další obrázek vpravo). Každá letová hladina je určena svou souřadnicí z - technicky je to tedy kružnice se středem v počátku a poloměrem sqrt(1+z2).

V tomto blogu budu uvažovat pouze letové hladiny odpovídající sudým číslům. Díky tomu budou mít všechny body (x,y) jednu souřadnici sudou a jednu lichou. Pokud ta sudá bude x, obarvím bod modře, pokud bude sudé y, vybarvím ho červeně. Z obrázku je patrné, že modré a červené body jsou symetrické - například modrému bodu (8,9,12) v letové hladině 12 odpovídá červený bod (9,8,12). Na tomto obrázku vidíme všechny celočíselné body v prvním kvadrantu (v těch dalších je to symetrické) pro letové hladiny od 2 do 60 (pouze sudé).

V první řadě si všimněte, že na tom hyperboloidu existují triviální celočíselné body, které mají buď formu (z,1,z) pro sudé z a nebo formu (1,z,z). To je ta modrá horizontála na obrázku, resp. červená vertikála. Tyto body z našeho hudebního snažení vyhodíme a soustředíme se pouze na netriviální body se sudou hodnotou x. To jsou ty zbylé modré body (vypadají trochu jako vnitřek flašinetu a na tom bude celá akce založena).

Abychom z toho hyperboloidu vytřískali nějaké zvuky, musíme každému takovému netriviálnímu bodu přiřadit tón o určité výšce a délce. To uděláme takto.

Nejprve si na okraji našeho obrázku vytvoříme stínítko, rozdělíme ho na malé chlívky (obarvené světle zeleně a fialově) a každému chlívku přiřadíme určitý tón. No a pak každý modrý bod prostě promítneme z počátku na stínítko (to je ta žlutá čára) a z tabulky, kterou si držíme někde v počítači, odečteme výšku. Pokud se v nějaké letové hladině setkají dva a více modrých bodů, tak z nich prostě sestavíme akord.

Co se délky tónu (nebo akordu) týče, tu odvodíme takto. Z obrázku je vidět, že ne každá letová hladina obsahuje netriviální modrý bod. Některé letové hladiny jsou prázdné a obsahují pouze triviální body (odpovídající kružnice jsem udělal hodně světle šedé). Délka tónu bude určena vzdáleností od předchozí "netriviální hladiny". Tedy čím větší "díra" před danou letovou hladinou, tím delší tón. Na obrázku např. uvažuji bod (6,17,18), který leží v letové hladině 18. Před ním jsou ale dvě prázdné letové hladiny (14 a 16), takže délka tónu bude trojnásobkem základní délky (kterou si zvolíte libovolně, podle toho zda chcete získat cajdák a nebo kvapík). Ta základní délka samozřejmě odpovídá rozdílu 2. Bereme pouze sudé letové hladiny, takže menší rozdíl nepořídíme.

Protože z obrázku ty letové hladiny nejsou moc dobře vidět, tady je výčet prvních netriviálních modrých bodů našeho hyperboloidu (levý sloupec). V pravém najdete obdobné body pro jiný hyperboloid, pokud chcete experimentovat (body zde pro jednoduchost značím x.y a rovnítko znamená stejnou letovou hladinu).

Z té tabulky vidíte, že existují tři letové hladiny (18, 32 a 38), které nám vygenerují dvojtón. Ve vyšších letových hladinách ale lehce najdeme kombinací tří a více tónů.

Pokud Vás zajímají krvavé detaily, pak vězte, že ten počet netriviálních řešení v dané letové hladině souvisí s rozkladem komplexního čísla z+i na prvočinitele. Například v té 8. hladině rozložíme číslo 8+i na (1+2i)*(2-3i). Teď jeden z těch faktorů přehodíme na komplexně sdružený a celé to roznásobíme: (1+2i)*(2+3i) = -4+7i. A vzhledem k tomu, že se zajímáme pouze o 1. kvadrant, vezmeme to v absolutní hodnotě a dostaneme kýžený bod (4,7) - tedy v tabulce označený 4.7. Samozřejmě čím vyšší letová hladina, tím vyšší pravděpodobnost, že naše komplexní číslo bude mít hodně prvočinitelů a vzniklá hudba bude tudíž mít dostatek akordů).

V praxi ale není nutno si s tímto moc lámat hlavu. Z tabulky je vidět, že součet čtverců u každé rovnosti je stejný, takže třeba na prvním řádku stačí najít celočíselné řešení úlohy 12+82 = x2+y2 a to počítač zvládne metodou pokusů a omylů za zlomek vteřiny (platí totiž že x a y musí být obě menší než z, takže si uděláte dvě smyčky od 1 do z a projedete v x a y všechny možnosti).

...a teď něco muziky

V první ukázce jsem to zeleno-fialové stínítko osídlil chromatickou stupnicí (c-cis-d-dis-e-f-fis atd) zhruba přes tři oktávy, takže to, co dostaneme bude harmonicky poněkud neukotvené. Bude to znít tak trochu jako Béla Bartók po osmém pivu. Ale jako nástroj jsem vybral xylofon, který je v MIDI provedení (to je formát na záznam hudby) celkem snesitelný. Začneme v letové hladině 1100 a odtud pojedeme nahoru.

1. ukázka: Atonální hyperbolická etuda

(v hororu by se tato ukázka skvěle hodila k záběrům, v nichž hlavní hrdinka v roztrhaných šatech prchá opuštěnou ulicí a ze dveří okolostojících domků se vynořují vyšinutí roboti a zlověstně na ni mávají)

+++++++++

Protože xylofon neudrží daný tón moc dlouho, ty délky jak jsou popsány výše z toho nejsou moc patrné. Proto jsem pro druhou ukázku vybral takový ten syntetický lidský hlas (opět se omlouvám za kvalitu MIDI ale z toho matematického softvéru lepší zvuk nevydundám). Na stínítko jsem tentokrát narouboval stupnici C dur, aby ty hlasy nezněly moc šíleně. Tempo jsem oproti předchozímu příkladu o dost zmírnil. A začneme v letové hladině 1700.

2. ukázka: Hyperbolická etuda C dur

(tato ukázka by mohla podbarvit scénu, ve které hlavní hrdinka se svíčkou v rukách stoupá po temném kamenném schodišti, netušíc, že na půdě se již několik týdnů ukrývá pověstný Jack Rozparovač)

+++++++++

Jedna z věcí, které se mi na předchozí ukázce nelíbila je to, že všechny hlasy v daném akordu nastupují ve stejný okamžik. Abych to trochu rozházel, tak jsem si vybral tři různé hyperboloidy - jeden, co máte v té výše uvedené tabulce nalevo, pak druhý s rovnicí x2+y2-z2=72, a nakonec ten standardní. A hudbu z nich vytvořím ve třech různých hlasech ("Choir", "Piano" a "Marimba") již známým způsobem. Všimněte si v té tabulce nahoře, že různé hyperboloidy mají různě položené letové hladiny s netriviálními body, což v praxi znamená, že ty tři nástroje budou nastupovat v různých časech. A zahraju to v poměrně rychlém tempu, takže - i když tomu říkám fuga - to připomíná spíš nějakou jazzrockovou fantasmagorii. A zde začneme na letové hladině 3910.

3. ukázka: Hyperbolická fuga E dur

(tato ukázka je jako stvořená pro záběr na skupinku krvežíznivých medvědů, kteří na snowboardech sjíždějí z hřebenů Nízkých Tater a mají namířeno do turistické ubytovny)

+++++++++

Tady už začínáme mít problém s příliš mnoha tóny. Každý z těch tří hlasů si totiž může na některých letových hladinách "vyzvednout" akord a nebýt toho, že dva z těch nástrojů jsou úhozové (piano a marimba) bylo by toho moc. Proto jsem v další ukázce ponechal tři nástroje, ale zredukoval jsem každou letovou hladinu v daném hlase na jeden tón (a pokud je jich tam víc, vyberu si z nich jeden náhodně). Na to konto jsem zvolil tři znělé MIDI nástroje (varhany, hoboj a violu) a mírně zpomalil tempo, čímž vzniklo něco, co by klidně mohl napsal Johan Sebastian Bach, pokud by mu utekla manželka (no dobře, a nějakou tu promili má v krvi také). Truchlit začneme na letové hladině 930.

4. ukázka: Hyperbolická fuga C dur

(toto mi připomíná scénu, v níž hlavní hrdina pozře nějaký halucinogenní přípravek a najednou se svět kolem něho začne pomalu otáčet a podlaha se houpá a místo lidí vidí rozplizlé přízraky s oteklými frňáky a jak prochází špalírem těchto kreatur, všichni se tajuplně smějí a cení na něho své upíří zuby)

+++++++++

Kdo z té předchozí ukázky nemá hlubokou depresi, ať zvedne ruku.

Tak abychom se nerozloučili ve zlém, vrátíme se ke xylofonu. V podstatě zopakuji tu první ukázku s tím rozdílem, že chromatickou stupnici vyměním za E dur a malinko zpomalím tempo. A začneme podstatně níž - na letové hladině 300.

5. ukázka: Hyperbolická etuda E dur

(tady už mám přímo vybraný film, do kterého by to jako hudba krásně pasovalo - jmenuje se Nahá kořist [The Naked Prey 1965] a je o vůdci lovecké výpravy, kterého kdesi v jižní Africe pronásledují bojovníci jednoho domorodého kmene)

+++++++++

Ponaučení z dnešního blogu: počítač, který hraje na hudební nástroj, nezlobí!

Autor: Jan Řeháček | středa 2.11.2016 9:09 | karma článku: 21,65 | přečteno: 571x
  • Další články autora

Jan Řeháček

Impresionisté na hladině

9.3.2024 v 9:09 | Karma: 22,50