dc.contributor.advisor | Hendseth, Sverre | |
dc.contributor.author | Hoff, Erlend Kilvik | |
dc.date.accessioned | 2021-10-05T17:38:00Z | |
dc.date.available | 2021-10-05T17:38:00Z | |
dc.date.issued | 2021 | |
dc.identifier | no.ntnu:inspera:76427839:20996928 | |
dc.identifier.uri | https://hdl.handle.net/11250/2787894 | |
dc.description.abstract | 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-trestruktur
som ble designet i dette prosjektet basert på tidligere arbeider av Yan Han. En
generalisert 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 denne
generelle 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å. Denne
strukturelle friheten mangler fra my av dagen musikk-genereringssystemer, der
man i stedet gjerne velger form/struktur a priori, og lar algoritmens jobb heller
være å fylle denne strukturen. Gjennom hele arbeidet har det vært et tydelig fokus
på abstraksjon og generalitet. Det kan dermed tenkes at den generelle generative
metoden også kan overføres til andre domener, som viser en lignende hierarkisk
inndeling. Dette kan være generering av figurer, eller generering av tekst. | |
dc.description.abstract | In this project, a novel system for generating music with a focus on a structure is
designed and implemented in Haskell. The system expresses and generates music
with shared material across multiple hierarchical levels and musical dimensions
with generative prefix trees, a structure designed in this project, based on previous
work by Yan Han [1]. A generalized generation process is proposed. It consists
of generating and applying a series of prefix trees, which each address a given
musical aspect, like rhythm, harmony, or melody. The prefix trees are generated
according to a meta-model structure called generative plan, in order to ensure
cohesion and variety in the output music. A generative example is designed to
demonstrate the systems ability to generate structured music. Here, structure is
randomized 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 repetition
on all hierarchical levels. This structural freedom is something that lacks in most
music generations systems today, where a certain form is usually chosen a priori [2].
Many avenues for future work in improving the system ability to generate
music are outlined. Since the generative system is so abstract, its general principle
could also be applied to hierarchical structures in other areas, such as figures or
text. | |
dc.language | eng | |
dc.publisher | NTNU | |
dc.title | Functionally Generating Music Structures with Prefix Trees | |
dc.type | Master thesis | |