Tvorba hudby počítačom

Automatizovaná kompozícia

Tento prístup je skôr vedeckého charakteru a je založený na snahe formalizovať proces kompozície s cieľom skúmať. Výsledkom je model, ktorý automaticky a samostatne komponuje hudbu určitého štýlu. Automatizovaná kompozícia má väčšinou za úlohu vytvoriť skladbu, ktorá nie je značne odlišná od predchádzajúcich skladieb, ale preberá ich typické črty, postupy a dodržuje konvencie daného štýlu. Úspešnosť vytvoreného modelu sa potom môže otestovať napríklad tak, že sa človeku pustí originálna skladba a skladba vytvorená počítačom, pričom poslucháč rozhoduje, ktorá z nich je originál. Pri automatizovanej kompozícii je celý proces tvorby ponechaný na samotný model, preto je otázne, či sa takýto priebeh tvorby hudby kompozíciou dá vôbec nazvať. Z umeleckého hľadiska sa automatické generovanie hudby pomocou vopred implementovaného algoritmu nedá považovať za hudobne kreatívny proces, ale samotná tvorba takéhoto algoritmu sa už takýmto procesom nazvať dá, ale skôr z pohľadu matematicko – technického, ako umeleckého. Aj v tomto prístupe existuje viacero stratégií.

Algoritmy pre riadenie priebehu

Hudba zahŕňa hierarchické štruktúry, akými sú napríklad jednotlivé tóny, ktoré sa spájajú do fráz a tie môžu mať podobu melodických pohybov nadol alebo nahor. Preto môže byť hudba vnímaná aj ako postupnosť udalostí, ktoré sú podobne ako v počítačovom programe riadené rôznymi príkazmi. Ide najmä o opakovanie určitej sekvencie, skoky alebo zavolanie procedúry (napríklad melodická obmena určitého úseku skladby). Algoritmy pre riadenie priebehu (flow control algorithms) sú založené práve na modelovaní týchto charakteristík. Najvážnejším problémom v tomto prípade je fakt, že viacero týchto udalostí prebieha súčasne v rovnakom čase a vzájomne sa ovplyvňujú. Na základe vyššie uvedených charakteristík sa ako najvhodnejšie javí použitie Petriho sietí, ktoré dokážu efektívne riadiť viacero súčasne bežiacich procesov. Týmto spôsobom je možné namodelovať napríklad viacero hlasov v polyfonickej skladbe.

Gramatiky

V hudobných skladbách môžeme taktiež pozorovať prirodzenú hierarchiu. Tóny sú pospájané do jednotlivých fráz, ktoré tvoria dlhšie postupnosti a tie v konečnom dôsledku vytvárajú celú skladbu. Preto možno hudbu chápať aj ako jazyk s určitou gramatikou. V tomto prípade sa najprv zadefinuje hudobná gramatika pozostávajúca z množiny pravidiel, ktoré zložitejšie štruktúry rozložia na základné stavebné prvky hudby. Následne sa musí zvoliť vhodná makroštruktúra, ktorá bude počítačom analyzovaná na základe danej gramatiky. Samotná gramatika sa skladá zo symbolov rôznej úrovne. Nekoncové symboly vyššej úrovne reprezentujú makroštruktúru a koncové symboly nízkej úrovne reprezentujú základné prvky, v tomto prípade tóny. Hierarchia symbolov je popísaná tzv. prepisovacími pravidlami, ktoré špecifikujú, aký symbol nižšej úrovne nahrádza symbol vyššej úrovne.

Stochastické procesy

Stochastické procesy sú často používané, či už ako základ pre celú kompozíciu alebo ako pomocný nástroj pre rutinné rozhodovanie počas tvorby. Vo väčšine prípadov je pre výber nôt použitá pravdepodobnostná vyhľadávacia tabuľka, v ktorej sa nachádzajú pravdepodobnosti výskytu každého možného následného tónu. Tieto pravdepodobnosti zodpovedajú určitému štatistickému rozloženiu. Ak napríklad existuje N rôznych výsledkov (tónov, ktoré môžu byť použité), potom bude pravdepodobnosť použitia každého tohto tónu 1/N podľa uniformného rozloženia. Zvyčajne je ale požadované, aby sa niektoré tóny využívali častejšie ako ostatné. V tomto prípade sa zvolí iný, vhodnejší typ rozloženia. Najprirodzenejšie je Gaussovo rozloženie, kedy sa minimá nachádzajú na začiatku, respektíve na konci a maximum je dosiahnuté v strede.
Ako príklad stochastického procesu sa dajú uviesť Markovove reťazce (Markov chains). Jedným z problémov použitia Markovových reťazcov v hudobnej kompozícii je ale fakt, že aj keď sú pravdepodobnosti prechodov v stavovom diagrame generované náhodne, musia byť odvodené od existujúcej hudby, to znamená, že pre nastavenie jednotlivých parametrov systému sa na vstup musí zadať hudobná skladba. Touto metódou je preto proces schopný generovať iba výsledok rovnakého hudobného štýlu, aký dostal na vstupe.

Celulárne automaty

V hudobnom ponímaní automat modeluje správanie parametrov ako napríklad výška tónu, jeho zafarbenie, alebo amplitúda. Úloha môže byť rozdelená medzi viaceré automaty tak, že každý z nich kontroluje jeden parameter. Celulárne automaty (cellular automata) tvoria prepojený systém, v ktorom je správanie každého automatu – bunky na začiatku charakterizované počiatočným stavom, ktorý sa v čase mení podľa evolučného pravidla. Hodnoty stavov buniek sa v ďalšom časovom kroku (nasledujúcej generácii) synchrónne určia podľa funkcie, ktorej argumenty tvoria hodnoty stavov lokálnych susedov bunky. Funkcia samotnej bunky je pomerne jednoduchá, celkové komplexné správanie je vytvorené až ich interakciou. Ak systém nevymrie, tak sa zvyčajne ustáli v periodických cykloch alebo sa bude správať chaoticky.
V hudobnej kompozícii sa celulárne automaty používajú napríklad spôsobom, že každá bunka zodpovedá výške jedného tónu a evolučné pravidlo sa v tomto prípade môže riadiť podľa určitej tóniny, v ktorej chceme výslednú skladbu mať umiestnenú.

Genetické algoritmy

Genetické algoritmy pracujú na princípe prirodzeného výberu, to znamená, že postupne vytvárajú nové generácie riešení daného problému. Pre aplikovanie genetických algoritmov na hudobnú kompozíciu je potrebné vhodne obmedziť množstvo možných kombinácii hudobných prvkov, inak môže nastať prípad, kedy prehľadávací priestor, napríklad pre rôzne kombinácie tónov, bude svojou veľkosťou nezvládnuteľný. Ďalším dôležitým faktorom je reprezentácia pravidiel. Skupina pravidiel je použitá pre definíciu možných spôsobov evolúcie kompozície v každej iterácii algoritmu. Kritickou oblasťou tohto prístupu je ohodnotenie schopnosti dodržiavať pravidlá. Funkcia pre ohodnotenie kvality (fitness function) daného riešenia rozhoduje, či kandidát (riešenie) prežije a bude pokračovať v nasledujúcej generácii.

Neurónové siete

Neurónová sieť (neural network) sa dá využiť aj v hudobnej kompozícii spôsobom, že neurónová sieť sa hudobné postupy naučí z trénovacích dát, a tak je schopná produkovať skladby podobného štýlu, na akom bola trénovaná.

Počítačom podporovaná kompozícia

Hlavným rozdielom oproti automatizovanej kompozícii je v tomto druhom prístupe fakt, že skladateľ priamo zasahuje do kompozičného procesu a značne ovplyvňuje konečný výsledok. Je mu teda umožnené flexibilne meniť správanie modelu a týmto výslednú skladbu prispôsobiť svojím predstavám a potrebám. Cieľom je v tomto prípade poskytnúť hudobnému skladateľovi nástroj, ktorý nenahradí prínos človeka do formy hudobného diela, ale iba uľahčuje fázu komponovania a generovania výslednej skladby. Na rozdiel od automatizovanej kompozície je tvorba hudby pomocou počítačom podporovanej kompozície považovaná za plnohodnotné umelecké dielo. Skladateľ využívajúci túto stratégiu síce pre svoju tvorbu tiež využíva výpočtové schopnosti stroja, ale zásadne ovplyvňuje spôsob tvorby a má plnú kontrolu nad tým, ako bude výsledná skladba znieť. Tak ako iné umelecké diela, ani dielo vytvorené pomocou počítačom podporovanej kompozície primárne nepoužíva vedecké postupy, preto ani neexistujú žiadne metódy pre verifikáciu týmto štýlom vzniknutej skladby.
Oproti použitiu automatizovanej kompozície nie je v tomto prípade cieľom vytvoriť podobnú skladbu v určitom štýle. Naopak, skladateľ tento prístup používa s cieľom experimentovať s netriviálnymi hudobnými postupmi a vytvoriť vlastný hudobný štýl. Ďalšou odlišnosťou je, že počítač sa nevyužíva počas celej doby kompozičného procesu, ale s jeho pomocou sa riešia iba podúlohy. Výpočtový potenciál počítača sa teda v konečnom dôsledku využije iba na aplikovanie požiadaviek a vygenerovanie výsledného diela. Skladateľ väčšinou použije už vytvorený softwarový nástroj, ktorý mu umožňuje editovať požiadavky a nemusí sa nutne zaoberať implementačnými detailami. Samozrejme existujú aj prípady, kedy si skladateľ navrhne a implementuje takýto software samostatne. Vtedy má nad celým kompozičným procesom väčšiu kontrolu a úpravy požiadaviek dokáže riešiť aj na implementačnej úrovni.