Functionally Generating Music Structures with Prefix Trees
Master thesis
Permanent lenke
https://hdl.handle.net/11250/2787894Utgivelsesdato
2021Metadata
Vis full innførselSamlinger
Sammendrag
I dette prosjektet ble et nytt system for å generere musikk med fokus på struktur designet og implementert i det funksjonelle språket Haskell. Systemet representerer og genererer musikk med delt struktur på tvers av flerer hierarkiske nivå og musikalske dimensioner. Dette gjøres ved hjelp av en prefix-trestruktursom ble designet i dette prosjektet basert på tidligere arbeider av Yan Han. Engeneralisert prosess for generering med slike prefix-trestrukturerer ble presentert.Denne består av å først generere en rekke prefixtrær som hver adressererer sin musikalske dimensjon, altså hvert sitt aspekt av musikken som kan anses individuelt,slik som rytme, harmoni og melodi. Disse genereres etter en meta-modell kalt"generative plan", for å sikre sammenheng og variasjon. For å demonstrere dennegenerelle generative metodens egnethet ble et snevrere generativt eksempel designet. Her ble den generelle metoden brukt til å generere akkordprogresjoner med strukturert variasjon i rytme og spillemønster. Den genererte musikk hadde en ny struktur hver gang, med tydelige repetisjoner på alle hierarkiske nivå. Dennestrukturelle friheten mangler fra my av dagen musikk-genereringssystemer, derman i stedet gjerne velger form/struktur a priori, og lar algoritmens jobb hellervære å fylle denne strukturen. Gjennom hele arbeidet har det vært et tydelig fokuspå abstraksjon og generalitet. Det kan dermed tenkes at den generelle generativemetoden også kan overføres til andre domener, som viser en lignende hierarkiskinndeling. Dette kan være generering av figurer, eller generering av tekst. In this project, a novel system for generating music with a focus on a structure isdesigned and implemented in Haskell. The system expresses and generates musicwith shared material across multiple hierarchical levels and musical dimensionswith generative prefix trees, a structure designed in this project, based on previouswork by Yan Han [1]. A generalized generation process is proposed. It consistsof generating and applying a series of prefix trees, which each address a givenmusical aspect, like rhythm, harmony, or melody. The prefix trees are generatedaccording to a meta-model structure called generative plan, in order to ensurecohesion and variety in the output music. A generative example is designed todemonstrate the systems ability to generate structured music. Here, structure israndomized by randomising the generation of the prefix trees. Chord progressions,rhythms and "playing patterns" are chosen from a small pool of hand-written candidates. Each generating piece exhibits a unique structure, with clear repetitionon all hierarchical levels. This structural freedom is something that lacks in mostmusic generations systems today, where a certain form is usually chosen a priori [2]. Many avenues for future work in improving the system ability to generatemusic are outlined. Since the generative system is so abstract, its general principlecould also be applied to hierarchical structures in other areas, such as figures ortext.