Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||||||||||||||||
L-systémy pre tvorbu hudbyPopíšeme si tu systém, ktorý používal L-systémy na generovanie hudby (McCormack, 1996). Tento systém bol implementovaný na stanici Silicon Graphics a bol pomocou MIDI pripojený k syntetizátoru. Akonáhle je daná gramatika spracovaná, tak sa postupnosť nôt môže prehrávať real-time. Veľmi komplexné gramatiky (také, ktoré majú veľa stupňov hierarchie alebo pravidlá, ktoré zapríčiňujú exponenciálny rast reťazca) môžu spôsobiť zreteľné opozdenia v systéme prehrávania. V tomto prípade sa reťazec uloží na disk a potom prehrá. Tok dát Systém kompozície má tri hlavné fázy spracovania, ktoré sú zobrazené na obrázku dole. Systém vytvorí zoznam reťazcov. Pravidlá sa použijú na tieto reťazce a výsledok je interpretovaný ako príkazy vo forme MIDI dát. Tieto dáta môžu byť taktiež konvertované do štandardného zápisu, vhodného pre muzikantov. ![]() Fázy spracovania v systéme. Hranaté škatuľky reprezentujú dáta, okrúhle procesy. Šípky zobrazujú smer toku informácie. Najprv sa spracováva gramatika. Axióma sa načíta do premennej currentString. Pravidlá sa aplikujú iterovane. Po aplikovaní prepisovania na currentString sa výsledky interpretujú. Interpretácia skonvertuje symbol do MIDI, ktoré sa potom prehrajú alebo uložia do súboru.Systém používa zápis vituálneho hudobníka. Hudobník je zodpovedný za interpretáciu daných inštrukcií, čo vlastne znamená prehrávanie nôt. Hudobníci udržiavajú aktuálny stav, ktorý sa skladá z:
Riadiace parametre môžu byť použité na špecifikáciu spojitých alebo diskrétnych prvkov (filter rezonancie, smerovanie výšky, atď.) Symboly vo vytvorených reťazcoch menia stav hudobníka. Reťazec je postupne načítavaný zľava doprava po jednom symbole, ktorý je prehrávaný hudobníkom tak, ako Turingov stroj číta z pásky. Rôzne symboly spôsobujú, že rôzne komponenty hudobníka menia aktuálny stav. Napríklad, bodka (".") hovorí, že hudobník má hrať aktuálny tón, "+" zvyšuje daný tón o poltón a "-" zase znižuje. Hranaté zátvorky vkladajú aktuálny stav do zásobníka. Niekoľko takýchto hudobníkov vytvára skladbu - kompozíciu. Do tejto kompozície môže byť zahrnutých ľubovoľný počet hudobníkov, avšak hardware určuje hornú hranicu počtu tónov, ktoré môžu byť prehrávané naraz. Všeobecne každý hudobník prehráva jeden hlas alebo inštrument a každý má inú množinu pravidiel. Jednotlivé tóny môžu byť reprezentované svojimi menami. Symbol "#" reprezentuje vysoký, "&" nízky a "@" stredný. Noty s veľkými písmenami zmenia výšku a prehrajú tón. Noty s malými písmenami zmenia výšku a neprehrajú tón. To znamená, že "C" je ekvivalentom ku "c". Ďalšie symboly menia trvanie, zafarbenie tónu atd. Polyfónne prehrávanie nôt sa uskutoční uzavretím prehrávaných nôt okrúhlych zátvoriek. Napríklad Technika paralelného prepínania L-systémov má rovnaké alebo lepšie schopnosti než iné metódy založené na gramatikách. Parametre umožňujú riadiť nediskrétne procesy ako rýchlosť a hlasitosť. Hierarchické a kontextové gramatiky zase umožňujú simultánny vývoj zložitých vzorov na rôznych úrovniach skladby. Jedná sa o systém tvorenia hudby s asistenciou počítača, kde skladateľa počítač pracujú v súčinom tandeme. Gramatiky musia byť napísané a skompilované predtým, ako sa hudba môže prehrať. Príklady: Pre túto sadu pravidiel: Tu je prvých 5 iterácií:
Spojením reťazcov dokopy dostaneme:
Ak je každé písmeno interpretované ako hudobný tón, tak reťazec by mohol byť prehraný nasledovne: ![]() V tomto systéme boli použité stochastické, parametrické a hierarchické L-systémy. Ukážka hierarchických je na obrázkoch: ![]() ![]() Mnoho foriem hudby obsahuje opakujúce sa vzory, ktoré sú v skladbe často na rôznych úrovniach. Za týmto účelom sú použité hierarchické L-systémy. Tieto gramatiky vyzerajú podobne ako klasické, s tým ,že na pravej strane miesto symbolov môžu byť celé gramatiky. Vývoj každej množiny pravidiel sa vykonáva nezávisle, pričom množiny môžu predávať parametre medzi množinami pravidiel. |
||||||||||||||||
Kontakt: Marek Bundzel |