
handle: 10451/13859 , 10451/8769
A composição musical é um processo artístico interessante, que envolve não só criatividade mas também experimentação. Neste trabalho propomos um sistema que integra vários conceitos de sistemas de música generativa, com um particular foco na integração do utilizador. Ao contrário de outros sistemas de música generativa, principalmente os sistemas de música genética, ao qual o único papel que o utilizador tem sobre as músicas é de avaliador (avaliar a musicalidade de cada ritmo gerado), o nosso sistema irá permitir ao utilizador fazer parte do processo criativo e criar os seus próprios ritmos, que serão preponderantes depois no processo generativo musical. Os principais objectivos deste trabalho foram: _ Sistema em que o utilizador seria mais do que um avaliador ou juiz rítmico e fazer parte do processo criativo musical; _ Fornecer ao utilizador múltiplas formas de gerar a música; _ A música gerada não deverá ser uma cacofonia de sons, mas apresentar alguma estrutura musical. Introduzimos o conceito de ”Grafos de Percussão”, que ´e uma sistema de composição híbrido, misturando elementos interactivos (dependem do utilizador) com elementos mais automáticos ou generativos. Um grafo percursivo não é mais do que um grafo dirigido ao qual se associam, tanto aos nós como às conexões, ritmos percursivos. Cada nó está associado a um ritmo criado por um utilizador, enquanto cada conexão, representa uma sequência de ritmos. A ideia do grafo de percussão era criar um processo de composição intuitivo no qual o utilizador pudesse criar vários ritmos e interligá-los. A cada nó o utilizador irá associar um ritmo percursivo, enquanto os ritmos musicais associados às conexões irão ser fruto de um processo generativo. Os ritmos dos nós são criados pelo utilizador através de uma caixa de ritmos, que consiste numa grelha de 16 linhas por 16 colunas. As linhas representam os vários instrumentos de percussão disponíveis enquanto as colunas representam todos os tempos disponíveis, neste caso um tempo é uma semicolcheia. Quando um ritmo é criado o utilizador terá que apenas transferir o ritmo para a aplicação ao qual este depois transformará num nó do grafo. A cada conexão vai corresponder uma sequência de ritmos percursivos que representa a progressão musical entre o ritmo do seu nó inicial até ao ritmo do seu nó final. Este ritmo progressivo corresponde ao rasto do processo de optimização, que é formado pela sequência de ritmos obtidas em cada iteração do processo de optimização. Implementamos três técnicas de optimização para gerar os ritmos das conexões, que foram: Algoritmo Genético, Trepa Colinas e o Trepa Colinas Estocástico. Estes foram escolhidos pela capacidade de criar diversidade tanto a tamanho e natureza das sequências dos ritmos gerados. Todos os optimizadores utilizaram a mesma função objectivo que é uma medida de semelhança de qualquer ritmo objectivo (ritmo final). Nomeadamente os instrumentos que s˜ao comuns aos dois ritmos, os tempos comuns (o tempo a que uma nota ´e tocada) e notas que são exactamente iguais tanto em instrumento como tempo. A função objectivo consoante estas características irá dar uma classificação entre 1 a 10, 10 sendo exactamente semelhante com o ritmo final. Logo como ´e de se esperar, os algoritmos generativos têm como função progredir os ritmos através desta avaliação rítmica. No entanto, o objectivo não é chegar ao ritmo final o mais eficientemente possível, mas de forma a que este seja capaz de criar ritmos intermédios que subjectivamente são ”valiosos” para o utilizador. Pode existir várias situações em que uma sequência rítmica poderá ser demasiado longa ou repetitiva. Para combater esta situação introduzimos o conceito de filtros que permitem ao utilizador editar as várias conexões geradas, como por exemplo cortar uma parte rítmica da conexão (O Filtro Corte entre dois Pontos), eliminar todos os ritmos que têm um valor de avaliação menor do que X (O Filtro por Classificação), eliminar repetições (O Filtro por Repetição). O processo de composição musical não se resume à geração do grafo percursivo. O grafo contém todos elementos da composição musical, mas a própria musica será o resultado de uma travessia do grafo. Conceptualizámos dois tipos de travessia, definindo dois nós como sendo dois extremos de um caminho (inicio e fim) ou então fazer uma travessia que passa por todos os ritmos uma única vez, problema análoga ao celebre caixeiro viajante. Se o utilizador decidir definir dois extremos de um caminho, um processo que chamámos de ”Path Finding”, a aplicação retornará uma música (lista de ritmos) com todas as conexões intermédias que satisfazem um caminho entre esses dois extremos (caso seja possível). O utilizador terá à sua disposição 3 tipos de algoritmos de ”Path Finding”: Procura em Largura (Breath-first Search), Procura em Profundidade (Depth-first Search) e a Procura Aleatória (Random Search). Dependendo do grafo estas 3 opções podem retornar resultados completamente diferentes, o que ajuda sempre na variedade musical. Neste tipo de travessias os nós podem ser repetidos. Caso o utilizador escolher a opção do caixeiro viajante, o processo irá primeiro de tudo gerar conexões novas para criar um grafo totalmente conexo. Isto é necessário para que o algoritmo seja possível, e para não obrigar o utilizador a ter que interligar todos os nós manualmente. Quando o processo de criação do grafo terminar, calculamos um circuito usando um método de pesquisa local, o 2-Opt, utilizado com grande sucesso no problema clássico do caixeiro viajante. Para que o utilizador seja capaz de utilizar todas estas características foi necessário criar um interface, onde o utilizador pudesse ter fácil acesso a todas a opções e características do programa. Esta interface permite: _ Criar os nós, manipulá-los, interligá-los com conexões; _ Ouvir conexões e nós; _ Escolher o algoritmo generativo de optimização para preencher as conexões; _ Gerar a lista de ritmos para as conexões existentes; _ Aplicar filtros nas conexões; _ Escolher o tipo de travessia; _ Definir os extremos para a travessia ponto a ponto e gerar o resultado; _ Obter a lista de ritmos do algoritmo caixeiro viajante e ouvir o resultado; _ Ouvir as Travessias. Todos estes conceitos serão explicados e detalhados neste trabalho, incluindo detalhes de implementação, a investigação e experimentação do conceito de grafo de percussão e um manual de utilização do sistema. Este trabalho também incluí uma secção de discussão e uma apreciação musical dos resultados obtidos, como a musicalidade, tempo de geração e análise dos resultados do path finding. O sistema também foi testado com um grupo de utilizadores (músicos e não músicos) ao qual este trabalho também descreverá as experiências dos utilizadores e a sua apreciação musical.
Musical composition is an interesting artistic process, which can involve a lot of experimentation with various known musical concepts. In this work we propose a system that tries to integrate various aspects of music generation and automation systems, but with a focus on integrating the user into the music creation process. Unlike systems who cast users into a musical arbiter role, our system generates music in accordance to user created music. We named this system Percussion Graphs, and consists of a musical graph representation of user created rhythms and generated rhythms. A graph contains two main components: The Node component (which are User Created Rhythms) and a Connection component (which is a List of Generated Rhythms). The idea is to have users create rhythms, that can then be connected with each other. These connections are the rhythm generation process, and they consist of a slow progressive transformation process of one rhythm into another, in this case two user created rhythms. A user will be able to control multiple aspects of the percussion graph such as node manipulation and creation, node connection, choosing the rhythm generating methodology from multiple available methodologies, traveling the percussion graph and hearing the generated solutions. We also implemented editing options, called filters, that will let the user trim and edit connections to his or her liking. In this work we will explain on how the percussion graph and all of its features were implemented and how they work (internally and usability wise). We also talk about on what led us to follow this specific modus operandi. We also discuss the experiences of several users during their test run with the percussion graph system, and their thoughts on the generated rhythms and the system itself.
Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2011
Automation, Teses de mestrado - 2011, Generative, Percussão, Grafo, Generativo, Percussion, Automação, Graph, Music, Música
Automation, Teses de mestrado - 2011, Generative, Percussão, Grafo, Generativo, Percussion, Automação, Graph, Music, Música
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
