Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Procedurálne modelovanie miest
Simulácia a vizualizácia ohňa použitím rozšírených L-systémov
L-systémy pre tvorbu hudby
Literatúra



Ostatné kapitoly
Lindenmayerove systémy
Modelovanie ekosystémov
Dawkinsove biomorfy
Reakčno-difúzne modely
Difúzne ohraničené zhlukovanie
Voronoiove diagramy
Časticové systémy
Fibbonaciho čísla a zlatý rez


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


L-systémy pre tvorbu hudby

Popíš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:

  • výška (oktáva a tón v danej oktáve)
  • doba
  • zafarbenie tónu
  • riadiace parametre

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 C E G prehrá špecifické tóny, každý so svojou dĺžkou v postupnosti zľava doprava. Reťazec (C E G) prehrá tie isté tóny počas danej doby súčasne. To isté možno dosiahnuť c(.+++.+++.) pomocou špecifikácie výšky tónu.

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:
p1: C ->E
p2: E ->C G C
p3: G -> SUMA(SUMA je prázdne slovo alebo nič)
w: C

Tu je prvých 5 iterácií:

iteráciareťazec
0C (axiom)
1E
2C G C
3E E
4C G C C G C
5E E E E

Spojením reťazcov dokopy dostaneme:

C E C G C E E C G C C G C E E E E

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.

Hore
Kontakt: Marek Bundzel