música evolutiva: uma abordagem computacional para ... · para compreender o funcionamento do...
TRANSCRIPT
Musica Evolutiva: Uma AbordagemComputacional para Composicao
Algorıtmica
Alan Robert Resende de FreitasUniversidade Federal de Ouro Preto
Dissertacao submetida ao
Instituto de Ciencias Exatas e Biologicas
Universidade Federal de Ouro Preto
para obtencao do tıtulo de Mestre em Ciencia da Computacao
Catalogação: [email protected]
F866m Freitas, Alan Robert Resende de.
Música evolutiva [manuscrito] : uma abordagem computacional para composição algorítmica / Alan Robert Resende de Freitas. – 2011.
xxviii, 128 f.: il. color.; grafs.; tabs. Orientador: Prof. Dr. Frederico Gadelha Guimarães.
Dissertação (Mestrado) - Universidade Federal de Ouro Preto. Instituto de Ciências Exatas e Biológicas. Departamento de Computação. Programa de Pós-graduação em Ciência da Computação.
Área de concentração: Otimização e Inteligência Computacional.
1. Composição musical por computador - Teses. 2. Algoritmos genéticos - Teses. 3. Inteligência artificial - Inteligência computacional - Teses. 4. Inteligência artificial - Computação evolucionária - Teses. I. Universidade Federal de Ouro Preto. II. Título.
CDU: 004.421:78.02 CDU: 669.162.16
ii
Dedico este trabalho a meus pais, Francisco e Maria Lucia, ambos exemplos de
coragem, determinacao e bondade para minha vida.
iii
iv
Musica Evolutiva: Uma Abordagem Computacional para
Composicao Algorıtmica
Resumo
Este trabalho descreve uma abordagem para composicao algorıtmica baseada em al-
goritmos geneticos. Sao desenvolvidos dois modulos principais, que sao os geradores
melodico e harmonico. Um dos maiores problemas quando se usa algoritmos geneticos
para evoluir melodias e criar uma medida esteticamente consciente de fitness. Neste
trabalho, descreve-se uma nova abordagem com uma medida mınima de fitness na qual
um conjunto de boas melodias e retornado no fim do processo. Logo depois, uma abor-
dagem multiobjetivo e usada para harmonizacao da melodia. O algoritmo evolucionario
multiobjetivo define mudancas de acordes com diferentes graus de simplicidade e dis-
sonancia. Experimentos foram feitos e comparados a julgamento humano dos resultados.
As descobertas sugerem ser possıvel desenvolver funcoes de fitness que refletem intencoes
humanas para musica.
v
vi
Evolutionary Music: A Computational Approach for
Algorithmic Composition
Abstract
This work describes an approach for algorithmic composition based on genetic algo-
rithms. Two main modules are described, which are the melodic and harmonic genera-
tors. One of the greatest problems when using genetic algorithms to evolve melodies is
creating an aesthetically conscious measure of fitness. In this work, we describe a new
approach with a minimum measure of fitness in which a set of good melodies is returned
at the end of the process. Afterwards, a multiobjective approach is used for melody
harmonization. This multiobjective evolutionary algorithm defines chord changes with
di↵ering degrees of simplicity and dissonance. Experiments were held and compared to
human judgment of the results. The findings suggest that it is possible to devise fitness
functions which reflect human intentions for music.
vii
viii
Declaracao
Esta dissertacao e resultado de meu proprio trabalho, exceto onde referencia explıcita e
feita ao trabalho de outros, e nao foi submetida para outra qualificacao nesta nem em
outra universidade.
Alan Robert Resende de Freitas
ix
x
Agradecimentos
Agradeco a todos que me ajudam direta ou indiretamente neste trabalho.
Agradeco a meus pais, pela paciencia.
Agradeco a minha famılia, pelo aconchego.
Agradeco aos professores, pela preocupacao.
Agradeco aos amigos, pelos conselhos.
Agradeco ao Frederico, meu orientador.
Agradeco a UFOP e Ouro Preto, pelos ensinamentos.
Agradeco aos esquecidos nao mencionados explicitamente aqui.
Agradeco ao Conselho Nacional de Desenvolvimento Cientıfico e Tecnologico (CNPq).
Muito Obrigado.
xi
xii
Prefacio
Esta dissertacao descreve uma pesquisa sobre aspectos da utilizacao de Computacao
Evolutiva para Composicao Algorıtmica. Sao propostos algoritmos para a geracao de
melodias e harmonias. Como toda pesquisa interdisciplinar, nem todos os leitores podem
estar habituados com as terminologias especıficas. Os capıtulos 2 e 3 dao definicoes de
termos importantes para compreensao total dos conceitos e argumentos. Para mais
detalhes relativos a terminologia musical, Kennedy & Bourne (2004) podem prover uma
boa referencia.
Inicialmente, e definida a proposta do trabalho, com sua devida justificativa e objeti-
vos. Uma revisao bibliografica descreve abordagens utilizadas anteriormente e suas dife-
rentes implicacoes. Metodos mais antigos de composicao algorıtmica eram normalmente
fundamentados em algoritmos baseados em regras enquanto neste trabalho descreve-se
uma abordagem baseada em Inteligencia Artificial atraves de Algoritmos Geneticos, que
sao metodos estocasticos para a resolucao de problemas. Neste ponto, problemas da
utilizacao de Computacao Evolutiva para criacao musical sao brevemente analisados,
descrevendo solucoes ja propostas para soluciona-los.
Em seguida, sao dadas as definicoes especıficas de Composicao Algorıtmica e sua
terminologia relativa. Para compreender o funcionamento do processo de composicao,
seja ele algorıtmico ou nao, e necessario analisar alguns elementos basicos formadores
do som e quais fatores podem fazer sua uniao ser definida como musica. Estes fatores
sao fortemente culturais e dependem do contexto no qual a musica esta inserida.
Neste trabalho sao descritas as abordagens utilizadas para o desenvolvimento de ex-
perimentos. Inicialmente, os conceitos basicos de um Algoritmo Genetico sao definidos.
Sugere-se essa leitura tambem para os ja habituados com os conceitos da Computacao
Evolutiva pois varias implicacoes de seu uso no domınio musical estao tambem descritas
xiii
nesta secao. Logo apos, sao definidas as abordagens especıficas deste trabalho para a
geracao de melodias e harmonias.
No gerador de melodias, medidas mınimas de fitness sao utilizadas para retornar um
grupo de bons indivıduos que representam compassos de uma melodia. Sao descritos
detalhes da implementacao e operadores geneticos especıficos. Define-se uma Matriz de
Takeover para medir as relacoes entre diferentes geracoes, levando em conta um valor
de compromisso entre originalidade e diversidade. Atraves desta matriz de Takeover, o
proprio processo evolutivo pode ser usado como um criterio de decisao em vez de se usar
apenas simples medidas individuais de fitness.
Apresentam-se alguns resultados experimentais utilizando-se a melodia da musica
Samba de uma nota so (Jobim & Mendonca 1959), composicao de Tom Jobim e Newton
Mendonca, com varias interpretacoes disponıveis em portugues e ingles.
Ja para a geracao de harmonias, existem varios metodos e resultados possıveis para
uma melodia de entrada, considerando padroes musicais gerais da musica ocidental.
Uma abordagem multiobjetivo e utilizada para a geracao de harmonias. Algumas regras
podem ser extraıdas da teoria musical, porem alguns aspectos harmonicos podem ser
definidos apenas por preferencias do compositor. Por isso, a abordagem multiobjetivo
pode ser util para permitir que o processo evolucionario procure um conjunto de solucoes
que represente o trade-o↵ entre funcoes objetivo distintas.
Por final, sao descritos os resultados dos experimentos feitos e suas devidas con-
clusoes. Sao apresentadas as medidas esteticas de qualidade das solucoes utilizadas no
trabalho assim como suas implicacoes. As primeiras implicacoes importantes sao as do
gerador melodico, onde sao analisados os resultados provenientes do uso da Matriz de
Takeover. A populacao inicial contem um papel fundamental neste tipo de algoritmo,
que pode ser utilizado tanto para desenvolver novas melodias como para estender melo-
dias ja criadas anteriormente. A abordagem multiobjetivo para a geracao de harmonias
cria progressoes harmonicas com varios graus de simplicidade e dissonancia. A com-
paracao dos resultados a uma avaliacao humana sugere como a definicao automatica de
fitness pode refletir suposicoes humanas sobre a qualidade de diferentes harmonias.
xiv
Sumario
Lista de Figuras xix
Lista de Tabelas xxiii
Nomenclatura 1
1 Introducao 3
1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Revisao Bibliografica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Organizacao do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Composicao Algorıtmica 17
2.1 Definicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Altura Tonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.3 Timbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.4 Outras terminologias . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Definicoes de Musica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
xv
2.2.1 A Arte da Musica . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.2 Musica como IHC . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3 Metodologia 41
3.1 Algoritmos Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Biologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.2 Representacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.1.3 Inicializacao e Estrutura da Populacao . . . . . . . . . . . . . . . 49
3.1.4 Selecao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.1.5 Operadores Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.6 Funcao de Avaliacao e Definicao do Fitness . . . . . . . . . . . . 57
3.1.7 Substituicao dos Pais . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1.8 Consideracoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2 Gerador Melodico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.1 Estrutura de Dados e Parametros . . . . . . . . . . . . . . . . . . 67
3.2.2 Operadores Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.3 Fitness Implıcito Mınimo . . . . . . . . . . . . . . . . . . . . . . 74
3.2.4 Avaliacao das Solucoes e Selecao pela Matriz de Takeover . . . . . 75
3.3 Gerador Harmonico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3.1 Representando Harmonias . . . . . . . . . . . . . . . . . . . . . . 84
3.3.2 Operadores Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.3 Harmonizacao Multiobjetivo . . . . . . . . . . . . . . . . . . . . . 88
3.3.4 Avaliacao das Solucoes . . . . . . . . . . . . . . . . . . . . . . . . 91
3.3.5 Executando a harmonia . . . . . . . . . . . . . . . . . . . . . . . 94
xvi
3.4 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4 Resultados 97
4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2 Gerador de Melodias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2.1 Base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2.2 Resultados e Discussao . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3 Gerador de Harmonias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.3.1 Parametros e Dados de Entrada . . . . . . . . . . . . . . . . . . . 105
4.3.2 Resultados e Discussao . . . . . . . . . . . . . . . . . . . . . . . . 106
4.4 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5 Conclusoes 115
5.1 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Referencias Bibliograficas 119
Indice Remissivo 127
xvii
xviii
Lista de Figuras
1.1 A complexidade de um sistema aumenta entre a ordem e a desordem
(Galanter 2008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Representacao Esquematica do Processo de CA . . . . . . . . . . . . . . 18
2.2 Representacao de uma Onda de Som Senoidal . . . . . . . . . . . . . . . 19
2.3 Representacao de Ondas de Diferentes Frequencias . . . . . . . . . . . . . 20
2.4 Representacao das Alturas Tonais pela Posicao das Notas na Pauta . . . 20
2.5 Representacao de uma mesma nota com diferentes amplitudes . . . . . . 23
2.6 Representacao de diferentes gradacoes dinamicas em uma partitura . . . 24
2.7 Sinais de Crescendo e Decrescendo . . . . . . . . . . . . . . . . . . . . . 25
2.8 Formatos de onda de alguns instrumentos . . . . . . . . . . . . . . . . . 26
2.9 Exemplo de melodia de Parabens a Voce . . . . . . . . . . . . . . . . . . 28
2.10 Exemplos de Formulas de Compasso . . . . . . . . . . . . . . . . . . . . 33
2.11 Modelo de Norman para Interacao do Usuario (Norman 1988) e seu rela-
tivo musical (Biles 2007b) . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1 Representacao Esquematica de um Algoritmo Evolutivo . . . . . . . . . . 44
3.2 Metodo da Roleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3 Duas Maneiras Possıveis de Fazer uma Selecao baseada em Posicoes . . . 52
3.4 Operadores de Cruzamento e Mutacao . . . . . . . . . . . . . . . . . . . 54
xix
3.5 Exemplo de Cruzamento a nıvel de bits e a nıvel de notas . . . . . . . . . 55
3.6 Notas em um Piano: as teclas brancas acionam as notas naturais . . . . . 68
3.7 Ponteiros para a posicao dos indivıduos . . . . . . . . . . . . . . . . . . . 70
3.8 Cruzamento Melodico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.9 Mutacoes do Gerador Melodico . . . . . . . . . . . . . . . . . . . . . . . 72
3.10 Configuracao de uma Populacao na qual Ocorreu um Takeover . . . . . . 77
3.11 Melodia com os marcadores da populacao inicial . . . . . . . . . . . . . . 79
3.12 Metodo de Classificacao do NSGA-II . . . . . . . . . . . . . . . . . . . . 90
3.13 Dois Compassos em Do Maior Criados Pelo Gerador Harmonico . . . . . 95
4.1 16 compassos de Samba de Uma Nota So. . . . . . . . . . . . . . . . . . . 98
4.2 Escala Cromatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.3 Melodia de Parabens a Voce . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4 Numero de geracoes para alcancar o takeover . . . . . . . . . . . . . . . . 99
4.5 Valores de compromisso de 56 geracoes . . . . . . . . . . . . . . . . . . . 100
4.6 Um resultado utilizando o verso da musica . . . . . . . . . . . . . . . . . 100
4.7 Um resultado utilizando o refrao da musica . . . . . . . . . . . . . . . . . 101
4.8 Um resultado utilizando todos os compassos como populacao inicial . . . 102
4.9 Utilizando uma escala cromatica como populacao inicial . . . . . . . . . . 103
4.10 Utilizando Parabens a Voce como populacao inicial . . . . . . . . . . . . 104
4.11 Melodia de Parabens a Voce . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.12 Perfil de fitness atraves das geracoes . . . . . . . . . . . . . . . . . . . . 107
4.13 Solucao 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.14 A harmonia original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.15 Solucao 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
xx
4.16 Evolucao do hipervolume . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.17 Evolucao das frentes de pareto . . . . . . . . . . . . . . . . . . . . . . . . 111
xxi
xxii
Lista de Tabelas
2.1 Notacoes para representacao das notas. . . . . . . . . . . . . . . . . . . . 22
2.2 Gradacoes dinamicas mais frequentes. . . . . . . . . . . . . . . . . . . . . 24
2.3 Exemplo de possıvel relacao entre intensidade e velocidade. . . . . . . . . 24
2.4 Intervalos de notas mais comuns . . . . . . . . . . . . . . . . . . . . . . . 29
2.5 Exemplos de graus de intervalos . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Quatro tipos basicos de trıades . . . . . . . . . . . . . . . . . . . . . . . 31
2.7 Escalas de tempo musicais (Roads 2001) . . . . . . . . . . . . . . . . . . 34
3.1 Escalas que podem auxiliar o mapeamento do genotipo de uma melodia
em fenotipo
(Biles 2007b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2 Mapeamento possıvel para uma representacao baseada em posicao . . . . 49
3.3 Um indivıduo formado com o mapeamento da Tabela 3.2 . . . . . . . . . 49
3.4 Representacao de uma Solucao do Gerador Melodico . . . . . . . . . . . 67
3.5 Matriz com Percentual de Origem das Notas em Dois Casos Diferentes . 81
3.6 Calculo de um Valor de Compromisso . . . . . . . . . . . . . . . . . . . . 82
3.7 Notas do Campo Harmonico Natural de Do . . . . . . . . . . . . . . . . 84
3.8 Notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.9 Representacao de uma harmonia . . . . . . . . . . . . . . . . . . . . . . . 86
xxiii
3.10 Operadores Geneticos do Gerador Harmonico . . . . . . . . . . . . . . . 89
3.11 Parametros na avaliacao do fitness . . . . . . . . . . . . . . . . . . . . . 94
4.1 Definindo uma escala de referencia para a harmonia . . . . . . . . . . . . 106
4.2 Pesquisa sobre a qualidade das solucoes . . . . . . . . . . . . . . . . . . . 112
xxiv
Lista de Algoritmos
3.1 AG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2 Calculo do Crowding Distance dos indivıduos
(Deb, Agrawal, Pratap & Meyarivan 2000) . . . . . . . . . . . . . . . . . . 91
xxv
xxvi
“Music is the e↵ort we make to explain to ourselves how our brains work.
We listen to Bach transfixed because this is listening to a human mind.”
— Lewis Thomas
xxvii
xxviii
Nomenclatura
AE Algoritmo Evolucionario
AG Algoritmo Genetico
[ Bemol
CA Composicao Algorıtmica
CE Computacao Evolutiva
dB Decibeis
Hz Hertz
IA Inteligencia Artificial
IHC Interacao Homem-Computador
ME Musica Evolutiva
MIDI Musical Instrument Digital Interface
NSGA-II Non-dominated Sorting Genetic Algorithm - II
RNA Redes Neurais Artificiais
SST Sound Synthesis Technique
# Sustenido
1
2
Capıtulo 1
Introducao
1.1 Introducao
Este trabalho apresenta uma possıvel abordagem para Composicao Algorıtmica (CA),
processo no qual determinado algoritmo pode criar uma composicao de maneira au-
tomatica. Para a criacao destes algoritmos, e comum estudar como padroes ocorrem
em metodos tradicionais de composicao e como estes influenciam a formacao de novas
musicas. Existem varios padroes de composicao que podem ser algorıtmicos ou nao.
A criacao feita desta maneira e muito intrigante pois alem de haver a necessidade
de desvendar os padroes de composicao que podem ser algorıtmicos, e preciso trabalhar
com duvidas que surgem sobre os conceitos pessoais em relacao a arte em questao e as
expectativas sobre a habilidade de computadores para produzir obras de arte.
Os algoritmos para CA sao normalmente (i) estocasticos; (ii) baseados em regras;
ou (iii) baseados em IA, sendo que nos ultimos se encontram os metodos evolucionarios
(Miranda & Biles 2007).
Metodos baseados em Computacao Evolutiva (CE) podem ser empregados em di-
versas aplicacoes. Varias delas sao tarefas musicais, em uma area que se convencionou
chamar de Musica Evolutiva (ME). A CE tem grande potencialidade para auxiliar estas
tarefas musicais, ja que estas sao altamente relacionadas com tarefas de decisao.
A estrutura de um Algoritmo Genetico (AG) se adapta bem aos problemas de com-
posicao musical pois ambos funcionam com base em experiencias passadas que levam a
novas criacoes. Algoritmos geneticos podem comecar com um conjunto de informacoes
3
4 Introducao
de material ja existente e criar novas musicas, evoluindo a populacao e aplicando va-
riacoes nela por todo o processo evolucionario. Neste sentido, o processo evolucionario
compartilha similaridades com o processo criativo que ocorre em composicao. Neste
trabalho serao discutidos os maiores problemas na aplicacao destes tipos de metodos,
incluindo a maneira como as solucoes sao avaliadas.
Para definir quais tarefas podem ser solucionadas por estes tipos de algoritmos, deve-
se ponderar quais sao as tarefas executadas por musicos que poderiam ser auxiliadas por
estes metodos. Baseando-se no que musicos fazem, ha algumas classes de tarefas musicais
(Biles 2007a) fundamentais que podem ser definidas como:
Composicao Estao incluıdas nesta tarefa a criacao e desenvolvimento de harmonias,
melodias, arranjos e estruturas musicais. Este trabalho esta focado nesta tarefa.
Execucao Para tentar desenvolver uma execucao mais expressiva de uma representacao
musical.
Processamento Tarefa focada no tratamento de execucoes que nao sao exclusivamente
acusticas. Algoritmos podem ajudar tanto na mixagem de audio (equalizacao e
reverberacao, por exemplo) como na sıntese de sons (achar um som alvo ou criar
novos timbres).
Audicao Ouvintes artificiais podem tentar predizer a proxima nota de uma melodia
e ate serem usados como agentes geradores de medidas de avaliacao para com-
posicoes.
1.2 Justificativa
Algoritmos, ou regras para a resolucao de um problema em um numero finito de passos,
sempre foram utilizados por compositores como parte do processo criativo na musica
ocidental. Sem embargo, nem todos os processos musicais sao fielmente baseados em
algoritmos especıficos, o que gera a porcao artıstica do problema. Alguns processos
de composicao podem levar em consideracao experiencias passadas ou apenas serem
baseados na aleatoriedade de algumas decisoes.
Apenas estudos com estas consideracoes podem levar em conta a experiencia pessoal
de cada um, assim como estas refletem em produtos diferentes e como estas conclusoes
Introducao 5
podem ajudar no esclarecimento de questoes sobre a codificacao de aspectos que sao
puramente esteticos.
Contudo, o calculo da aptidao, ou o fitness, de um indivıduo na maioria dos sistemas
evolucionarios para arte e musica requerem um julgamento estetico, o que nao e facil de
se modelar ou implementar como um algoritmo. Por isso, estes sistemas normalmente
utilizam algum nıvel de interacao com o usuario, dando assim uma resposta ao sistema
sobre julgamentos esteticos subjetivos, como por exemplo em (Graf & Banzhaf 1995,
Lewis 2000, Moroni, Manzolli, Zuben & Gudwin 2000). Quando a arte em questao se
trata de imagens estaticas, a avaliacao interativa nao apresenta grandes problemas pois
varias alternativas podem ser exibidas ao usuario em paralelo, por exemplo, em uma
grade (Lewis 2008). Alem disso, existem alguns estudos e estrategias para minimizar
o numero de opcoes apresentadas ao usuario, o que reduz a fadiga em AE interativos
(Takagi 2001).
Por outro lado, em obras de arte temporais, tais como animacao e musica, a avaliacao
interativa das solucoes pode exigir grande atencao do mentor, que sempre pode estar
suscetıvel a ficar cansado, entediado, perder a atencao e outros problemas do tipo.
Esse aspecto e conhecido na literatura como fitness bottleneck, ou gargalo de fitness
(Biles 2001).
Dada a dificuldade de se basear sistemas musicais evolucionarios em avaliacao hu-
mana, alguns autores estudaram o desenvolvimento de sistemas automaticos, que po-
deriam desenvolver pecas de musicais ou de arte sem intervencao humana. Algumas
ideias incluem co-evolucao (Greenfield 2002), o desenvolvimento de medidas esteticas
confiaveis (Ross, Ralph & Zong 2006) e a evolucao de crıticos adaptativos (Machado,
Romero, Santos, Cardoso & Manaris 2004).
No contexto musical, uma abordagem interessante para tratar o problema de gargalo
de fitness e apresentada por Biles (2001), onde o uso de fitness como metodo de pressao
seletiva e eliminado do sistema evolucionario, criando uma versao de seu algoritmo, o
GenJam, livre de fitness . O algoritmo inicia com uma populacao de compassos sele-
cionados de um banco de dados e evolui esta populacao usando operadores geneticos
cuidadosamente selecionados, sem qualquer avaliacao de fitness. As populacoes finais
contem novas melodias originais. Apesar desta abordagem levantar questoes sobre a
pureza do Algoritmo Evolucionario1, o autor argumenta que seu sistema ainda e um
1Com “Algoritmo Evolucionario Puro”, pretendemos denotar aquele com os seguintes aspectos:representacao, avaliacao, selecao e operadores geneticos.
6 Introducao
AG, ou e pelo menos baseado em CE (Biles 2001).
Alem disto, com abordagens baseadas em CE , e possıvel o desenvolvimento de novos
padroes musicais, ja que no processo evolutivo diferentes modelos podem levar a novos
estilos ainda nao explorados. Assim, fazendo uso da CE, um estudo sobre as necessidades
matematicas do problema e compulsoriamente desenvolvido ao longo do projeto. Com
a tecnica, novos paradigmas de composicao podem ser explorados entao com base em
analises musicais anteriores, definido-se quais podem ser considerados algorıtmicos ou
nao. Alem disso, simples abordagens para composicao podem ser desenvolvidas para
compositores inexperientes ou para aqueles que queiram ajuda para desenvolver ideias
pre-formuladas.
1.3 Objetivos
Um passo inicial para qualquer tipo de desenvolvimento artıstico, algorıtmico ou nao,
e delinear o que pode ser considerado arte dentro do possıvel espaco de solucoes. Este
tipo de delineamento pode ser feito inclusive pela propria modelagem do algoritmo, ja
que arte nao prevista por um modelo de representacao de um algoritmo nao podera ser
gerada por ele.
Este delineamento pode ser feito com a definicao de algumas regras, que ficam nor-
malmente mais claras quando compondo para um estilo particular. Assim, o espaco de
busca pode ser restringido para algo mais facil de ser explorado. E importante definir
tambem se as regras serao criadas com base em definicoes de apostilas musicais ou com
base em experiencias existentes de outros compositores, decisao que pode levar a um
sistema mais ou menos criativo. Alem disso, em algoritmos evolutivos, as diferencas
entre mais de um estilo musical podem ser exploradas para gerar novos resultados.
Para mostrar a complexidade efetiva na modelagem destes problemas, aspectos alea-
torios, como barulho, acabam sendo menosprezados enquanto aspectos com estruturas
com conceitos bem definidos acabam sendo algoritmicamente comprimidos, abstraıdos
ou generalizados. Estruturas que nao podem entao ser bem comprimidas desta maneira
aparecem como as mais complexas (Galanter 2008). A Figura 1.1 exemplifica esta ideia.
O objetivo deste trabalho sera o desenvolvimento de aplicacoes que gerem com-
posicoes com melodia e harmonia, que podem entao ser unidas por uma estrutura de
nıvel mais alto. Esta ultima e uma proposta de algoritmo para geracao de musicas de
Introducao 7
Ordem Desordem
Com
plex
idad
e Ef
etiva
Simetria
FractaisSistemasCaóticos
Aleatoriedade
Vida Artificial
Figura 1.1: A complexidade de um sistema aumenta entre a ordem e a desor-dem(Galanter 2008)
maneira top-down, ou seja, definindo estruturas de nıvel mais alto primeiro e depois
criando a musica de acordo com o arcabouco criado em nıveis mais baixos.
Estruturas de nıvel mais alto podem representar partes de uma musica, como refroes
e versos, podem definir parametros, como volume e timbre, ou ate mesmo definir quais
instrumentos serao utilizados em uma composicao, enquanto estruturas de nıvel mais
baixo podem representar elementos musicais tao simples quanto frequencias. As melodias
e harmonias, que estarao em estruturas de nıvel mais baixo, terao suas definicoes guiadas
pelas estruturas de nıvel mais alto.
Para a criacao de musica, modulos de nıveis mais baixos devem ser criados. Estes sao
os geradores de melodia e harmonia descritos neste trabalho. Cada um destes modulos
pode utilizar informacoes recebidas por estruturas de mais alto nıvel ou por outros
modulos.
Se um algoritmo evolucionario livre de fitness e usado para a geracao de melodias,
8 Introducao
o numero de geracoes utilizadas e arbitrario e depende da experiencia do usuario. Se
o numero de geracoes e muito pequeno, a melodia final pode se parecer muito com a
inicial e nao ter muita originalidade. E desejavel que a solucao final seja original em
relacao a melodia inicial, especialmente quando seu autor nao e o usuario do algoritmo.
Apos um certo numero de geracoes, um takeover 2 ocorrera, mesmo com a ausencia de
uma funcao de fitness que force uma pressao seletiva, devido ao fenomeno de deriva
genetica3. Apos isto, todas as alteracoes na populacao serao provenientes da mutacao
apenas. Ocorre entao um compromisso entre originalidade e diversidade: durante o
processo evolucionario, a originalidade aumenta enquanto a diversidade diminui.
A procura de harmonias e outro campo de estudo, normalmente com a vantagem
de ter funcoes de fitness mais faceis de serem especificadas. Mostrou-se que algoritmos
podem criar harmonias com sucesso (Papadopoulos & Wiggins 1999). Varios destes
trabalhos descrevem sistemas para gerar harmonias de quatro partes para uma dada
melodia (chamada tambem de harmonizacao SATB). Neste problema, os algoritmos
propostos normalmente procuram um grupo de notas para cada nota original na melo-
dia e este problema pode ser facilmente contornado quando a progressao harmonica e
tambem dada com a melodia (Horner & Ayers 1995). De maneira analoga a metodos
para a geracao de melodias, o desenvolvimento de metodos de harmonizacao focados em
estilos particulares podem ser interessantes (McIntyre 1994).
Quando criam-se progressoes harmonicas para melodias ja existentes, e necessario
definir alguns fatores que devem ser penalizados ou recompensados no fitness de um
indivıduo. Contudo, estes fatores sao normalmente subjetivos e se baseiam fortemente
em preferencias do usuario. Assim, neste trabalho, apresenta-se uma abordagem de oti-
mizacao multiobjetivo para harmonizacao que seja capaz de evoluir harmonias enquanto
se trabalha o equilıbrio entre harmonias com ou sem tensao4.
E importante basear metodos de composicao em aspectos formais desenvolvidos para
musica tonal. Contudo, respeitar algum conjunto basico de regras nao garante que o
resultado tera sentido musical ou sera interessante. Criatividade e novas ideias podem
ate mesmo surgir da violacao de algumas regras, mas o problema e saber quais regras
violar e quando faze-lo. Nestes casos, e necessario a analise de algoritmos que tratem
2Em um Algoritmo Evolucionario, um takeover ocorre quando todos os indivıduos sao iguais e apopulacao nao apresenta diversidade alguma.
3A nao ser que haja uma taxa de mutacao tao alta que se sobreponha ao efeito do cruzamento deherdar caracterısticas de indivıduos de populacoes passadas.
4Tensao e criada em um acorde atraves de inclusao de uma nota dissonante extra que cria a neces-sidade de relaxamento ou liberacao para o ouvinte.
Introducao 9
varios objetivos para encontrar um conjunto de solucoes que representa um compromisso
entre regras em funcoes objetivo diferentes, levando ao menos a um conjunto de solucoes
que possam ser consideradas harmonias interessantes.
Criar um sistema de harmonizacao automatica demanda informacao suficiente sobre
o domınio especıfico, assim como em qualquer aplicacao computacional. Este trabalho
apresenta metodos possıveis para embutir este tipo de informacao nao apenas atraves
da definicao de uma funcao de fitness mas tambem implicitamente pelas operacoes do
AG. O modo como estes aspectos do algoritmo sao codificados faz uma distincao crucial
nos resultados encontrados pela aplicacao ja que e uma aplicacao para a simulacao de
comportamentos e criatividade humanos.
Neste trabalho, Algoritmos Geneticos sao inicialmente apresentados e alguns exem-
plos de como seus aspectos podem ser decididos no contexto musical. Assim, da-se uma
definicao mais especıfica de alguns termos musicais relativos a composicao que sao im-
portantes para compreender como os experimentos sao definidos. Faz-se, entao, uma
discussao sobre como uma funcao de fitness multiobjetivo pode ajudar usuarios com
preferencias diferentes ou mesmo desconhecidas.
Desta maneira, pode-se definir os principais objetivos deste trabalho como sendo a
analise de:
• Como o espaco de busca deve ser delineado de modo a nao limitar demasiadamente
a criatividade do sistema e nem levar a solucoes inadequadas
• Como atingir um bom equilıbrio entre originalidade e diversidade neste tipo de
evolucao artificial de melodias
• Quais criterios que podem ser utilizados para selecionar uma melodia entre varios
candidatos gerados pelo processo evolucionario
• Como pode ser feita a geracao de material artıstico sem intervencao humana
• Quais seriam indivıduos uteis para a geracao de musica em diferentes contextos de
tarefas musicais
• Como podem ser gerados operadores geneticos que sao musicalmente cientes
• Como representar melodias e harmonias que podem ser mono ou polifonicas
10 Introducao
• Como contornar o problema de gargalo de fitness quando avaliadores humanos sao
utilizados na evolucao dos indivıduos
• Quais criterios podem ser utilizados para terminar a execucao destes algoritmos
ou, em outras palavras, quando um resultado pode ser considerado suficientemente
evoluıdo neste contexto
• Como resolver problemas derivados do fenomeno de deriva genetica neste contexto
• Como diferencas de referencias de compositores podem ser tratadas com estes
metodos
• Em uma abordagem de representacao que utilize uma certa granularidade para
representar uma solucao, quais seriam valores convenientes
• Como o conhecimento sobre o domınio musical pode ser embutido em um AG alem
da funcao de fitness
Esta dissertacao resultou nas seguintes publicacoes:
• Freitas, A. R. R., Guimaraes, F. G. (2011). Originality and Diversity in the Ar-
tificial Evolution of Melodies. Genetic and Evolutionary Computation Conference
(GECCO ’11).
• Freitas, A. R. R., Guimaraes, F. G. (2011). Melody Harmonization in Evolutionary
Music Using Multiobjective Genetic Algoritms. 8th Sound and Music Computing
Conference (SMC ’11).
1.4 Revisao Bibliografica
Quando se pensa em CA, pode haver equıvocos ao relaciona-los com metodos computaci-
onais complexos. Na verdade, a utilizacao de algoritmos para criar composicoes e muito
mais antigo. Uma grande exemplo e em 1757, quando Johann Kimberger, tutelado de
Bach, publica um livro para ensinar leitores a compor polonaises e minuetos (Kirnberger
& Kupper 1994).
Depois da morte de Mozart, foi publicada e atribuıda a ele a autoria de Musikalisches
Wurfelspiel (Jogos de Dados Musicais), metodo que tambem criava composicoes atraves
Introducao 11
de numeros jogados em dados (Mozart 1787), o metodo foi publicado em 1793. O dado
e jogado para escolher aleatoriamente pequenas secoes de musica, que sao juntadas ao
final para formar uma peca inteira. Versoes computacionais do mesmo metodo foram
implementadas (Chuang 1995).
Os computadores com certeza criaram opcoes para as finalidades de composicao. Ja
no seculo XIX, em 1840, Ada Lovelace propoe a utilizacao da maquina analıtica para a
criacao de musica:
“Supposing, for instance, that the fundamental relations of pitched sound
in the signs of harmony and of musical composition were susceptible of such
expression and adaptations, the engine might compose elaborate and scientific
pieces of music of any degree of complexity or extent.” 5 (Alpern 1995)
Outro algoritmo para composicao utilizado na epoca em que computadores ainda
nao eram utilizados e o serialismo dodecafonico, ou metodo de doze tons, criado por
Arnold Schonberg na decada de 1920 (Hyde 1985). Neste metodo ocorre a repeticao de
um elemento atomico que sofre transformacoes. Decisoes sobre a peca eram tomadas em
relacao a series pre-formadas, o que automatizava bastante o processo de composicao.
O metodo dodecafonico assegura igualdade no numero de ocorrencias de cada nota
da escala temperada. Com uma base inicial, chamada de prime series, que e uma
permutacao das 12 notas da escala, percebe-se que e um metodo um pouco mais flexıvel,
ja que existem 12! (ou 4, 7⇥ 108) prime series possıveis. A composicao e feita por um
numero aleatorio de repeticoes das prime series, que a cada repeticao ha transformacoes,
que podem ser retrogadas ou inversas.
Ainda nos metodos algorıtmicos sem a utilizacao de computadores, John Cage, com-
positor inovador e polemico por suas composicoes semi-aleatorias, cria em 1951 um
metodo para composicao com a utilizacao do I-Ching como oraculo para tomar varias
decisoes, como qual nota usar e quando incluı-la na composicao (Pritchett 1996). O
metodo foi utilizado na composicao Imaginary Landscape no4, onde 24 interpretes utili-
zam 12 radios em tempo real.
A considerada primeira composicao gerada por computador e The Illiac Suite for
String Quartet, gerada por Lejaren Hiller e Leonard Isaacson. Varios artifıcios eram
5“Supondo, por exemplo, que as relacoes fundamentais dos sons com suas alturas tonais nos sinais deharmonia e de composicao musical fossem de tais expressoes e adaptacoes, a maquina poderia comporpecas musicais cientıficas e elaboradas de qualquer grau de complexidade ou extensao”
12 Introducao
usados, incluindo cadeias de Markov (Hiller 1981). A composicao foi feita em 1957 e
conseguiu codificar parametros estilısticos. O processo de composicao foi primeiramente
geracao de material pelo computador, depois modificar este material de acordo com
funcoes estabelecidas e por final selecionar os melhores resultados de acordo com o
conjunto de regras (Alpern 1995). Esse paradigma de geracao, modificacao e selecao
seria mais vezes utilizado no futuro.
O metodo de Hiller e proposto da seguinte maneira: primeiramente as notas sao
distribuıdas com probabilidade uniforme. Apos esta etapa, notas comecam a sofrer
restricoes. As regras utilizadas sao regras classicas, como escalas, e depois regras do
serialismo. Finalmente as notas recebem funcoes que sao aplicadas em relacao as notas
anteriores (Hiller 1959).
Um outro exemplo deste tipo de composicao e o formula composition (Felder &
Stockhausen 1977), criado por Karlheinz Stockhausen em 1970. O formula composition
e derivado do serialismo dodecafonico e conjuntos de formulas melodicas.
Para todos os algoritmos de CA existe uma enorme dificuldade para a introducao
de parametros externos ao processo de composicao. Exemplos destes parametros sao
dados do passado, como experiencias e dados culturais do ouvinte que influenciam na
maneira como ele interpretara a peca, e dados do presente, como formulas e teorias que
nao restrinjam demais as possibilidades do algoritmo ao mesmo tempo que nao gera
muito material musicalmente inadequado ou que nao seria considerado musica na maior
parte dos contextos.
Os metodos ate entao descritos foram basicamente estocasticos e baseados em regras,
o que leva a geracao de musicas muito pouco diversas na maioria das vezes. Como alter-
nativa a estes metodos, existem os metodos baseados em Inteligencia Artificial (IA), que
incluem Redes Neurais Artificiais (RNA), Automatos Celulares e Algoritmos Geneticos,
o foco deste trabalho. Atualmente, grande parte dos algoritmos modernos para as-
sistencia a musicos estao nesta categoria.
Algoritmos Geneticos tem uma grande extensao de aplicacoes em ciencia e enge-
nharia, em problemas complexos para os quais uma solucao especıfica e difıcil de se
encontrar. A capacidade de busca de AG chamou o interesse de varias comunidades
cientıficas, incluindo ate aplicacoes de arte e musica (Corne & Bentley 2001, Miranda
& Biles 2007, Romero & Machado 2007, Todd & Latham 1992). Houve varios estudos
envolvendo computacao evolucionaria e arte tentando entender a influencia possıvel de
sistemas bioinspirados e arte, tecnologia e avaliacao estetica (Romero & Machado 2007).
Introducao 13
O uso de Algoritmos Geneticos para a evolucao artificial e criacao de arte e musica e
um ramo conhecido como Arte ou Musica Evolutiva (Miranda & Biles 2007).
Varias aplicacoes foram desenvolvidas na area de execucao musical. Madsen & Wid-
mer (2005) estudaram como tendencias estilısticas de um certo artista podem ser explo-
radas com um Algoritmo Evolucionario (AE). Tambem relativa a execucao, a audiencia
pode influenciar uma execucao, de acordo com suas respostas (Biles & Eign 1995). Esta
resposta dos ouvintes tambem pode ocorrer online, como mostra o estudo feito por Put-
nam (1996), ou atraves de sensores de presenca, como descrito por Woolf & Yee-King
(2003). Experiencias tambem foram feitas com bio-feedback para ajudar a avaliacao e a
escolha das musicas por um DJ eletronico (Grahan-Rowe 2001).
Existem tambem varios estudos para aplicacoes musicais na quais as execucoes nao
sao exclusivamente acusticas. Estas aplicacoes estao baseadas nas areas de sıntese e mi-
xagem. Em relacao ao ultimo, AE podem ser muito uteis na aplicacao de efeitos e filtros
(Sharman & Esparcia-Alcazar 2003) ou para descobrir parametros de reverberacao que
correspondam as caracterısticas de uma sala especıfica (Mrozek &Wakefield 1996). Ja na
area de sıntese de sons, dois problemas principais se destacam: a procura de parametros
que alcancam um som-alvo (Vuori & Valimaki 1993) e a procura por novos timbres
(Horner, Beauchamp & Haken 1993). Mandelis (2001) desenvolveu uma aplicacao, cha-
mada Genophone, para o desenvolvimento de novos sons sem que o usuario conheca
detalhes da tecnica de Sound Synthesis Technique (SST) empregada.
Em relacao a audicao de musicas, muitas aplicacoes uteis podem surgir, principal-
mente para o desenvolvimento de ouvintes avaliadores que podem co-evoluir com musicas
nos AG, ja que a avaliacao e um dos maiores problemas para o desenvolvimento de sis-
temas evolutivos de CA. Um modulo ouvido (Jacob 1995) pode ser desenvolvido como
avaliadores de aptidao (Jacob 1996). Ja Federman (2003) desenvolveu um sistema para
predizer qual a proxima nota em uma sequencia melodica. Outra aplicacao neste sentido
envolve a coevolucao de cantores machos e crıticas femeas (Todd & Werner 1999), o que
so permite a evolucao de material relacionado.
Todas estas tarefas musicais estao relacionadas de algum modo com CA, que tem
varias aplicacoes baseadas em AE. CE pode ser utilizada primeiramente para gerar no-
vas ideias melodicas. Estas novas ideias podem se dar atraves de sequencias de notas
sem ritmo (Ralley 1995), sequencias de ritmo sem notas (Horowitz 1995) ou sequencias
de notas e ritmos (Biles 1994). Um dos estudos importantes desta area envolve ma-
neiras mais criativas de se tratar o problema da definicao de uma funcao de avaliacao
14 Introducao
(Waschka II 2007).
Brown (2002) descreve como varias aplicacoes de AG para analise musical e sıntese
de sons foram bem sucedidas. Uma das utilizacoes principais de AG neste contexto
e a formacao de melodias. Um algoritmo para a criacao de solos de jazz em tempo
real e proposto por Biles (1994), mostrando como o desenvolvimento de composicao
automatizada para um genero particular de musica pode ser abordado com AG. Isso e
feito com um AG que considera varias tarefas musicais, como audicao e improvisacao.
Apesar de varios resultados interessantes, a Musica Evolucionaria ainda encara varios
desafios (McCormack 2005).
A criacao de musica com programas de computador tem algumas caracterısticas
distintas quando comparadas a problemas classicos de otimizacao. E comum ver pro-
cedimentos onde um indivıduo de uma populacao representa um compasso que pode
ser usado em uma composicao final. Isso faz com que procurar uma boa populacao
com indivıduos diversos seja mais importante que a procura de um indivıduo otimo
(Waschka II 1999). Isso e uma caracterıstica particular a ser explorada em sistemas
feitos para criar arte.
Alguns compositores podem tambem querer estender ideias melodicas a partir de
uma ideia inicial. Neste sentido, AG podem gerar variacoes melodicas ou contra melo-
dias (Polito, Daida & Bersano-Begey 1997). Ja Jacob (1995) estudou como fragmentos
melodicos tambem podem ser combinados em linhas maiores. Alem de melodias, AE
tambem podem ser usados para determinar harmonias correspondentes a uma dada me-
lodia. Algoritmos podem gerar partes harmonicas (McIntyre 1994) ou gerar mudancas de
acordes (Horner & Ayers 1995). A tarefa de harmonizacao tambem pode ser direcionada
a um estilo especıfico, como demonstra o trabalho de Maddox & Otten (2000).
Para a criacao de arranjos, o problema nao e normalmente estudado diretamente, e
outras aplicacoes para o desenvolvimento de melodias sao normalmente usados (Jacob
1995), podendo ter certos ajustes para que as melodias se adaptem a instrumentos
especıficos.
Assim, AG podem ser utilizados para criacao e extensao de melodias, harmonias e
arranjos. Alem disso, e possıvel criar sistemas que trabalhem com estruturas musicais
de mais alto nıvel – como refroes e versos – de maneira top-down (Unemi & Senda 2002)
ou bottom-up (Jacob 1996).
No sentido de explorar similaridades entre o processo evolutivo e o musical (mais
Introducao 15
especificamente de serem processos temporais), Moroni, Manzolli, Zuben & Gudwin
(2000) desenvolveram um sistema em que a propria evolucao e uma composicao e a
interacao entre os indivıduos define o que ocorrera na proxima geracao. Isso demonstra
uma faceta de varios sistemas adaptativos para CA desenvolvidos ultimamente, que e a
busca por uma populacao de boa qualidade, em vez de uma solucao otima.
Dentre as diferentes analogias feitas com o processo biologico para geracao de musica,
outro trabalho no qual o processo evolutivo em si representa uma musica e o de Was-
chka II (2007), no qual cada indivıduo representa um compasso e metodos menos conven-
cionais de avaliacao das solucoes sao utilizados. Desta maneira, o ouvinte percebe que
o material entre uma geracao e a outra e relacionado, porem coerentemente modificado.
Processos de geracao musical em tempo real tambem podem ser utilizados, como feito
por Biles (2002a), que desenvolveu um sistema robusto para geracao de solos de jazz em
performances ao vivo. Sua aplicacao, GenJam, ou Genetic Jammer, faz improvisacoes
que sao calibradas com musicas cujas progressoes harmonicas sao complexas. A tarefa
de improvisacao pode ser muito estimulante pois tem caracterısticas de varias tarefas
musicais, como a audicao e a composicao, e precisa de algoritmos robustos, ja que o
improviso nao pode ser editado ao final do processo.
O algoritmo de Biles (2002a) pode improvisar tanto sozinho quanto em resposta
a outra pessoa e tem uma base de dados com varias musicas nas quais pode fazer
improvisos. Neste caso, varias ideias podem ser aproveitadas como potenciais indivıduos,
como um banco de dados com compassos relacionados ao estilo e a propria musica. O
sistema tem a qualidade de escutar o musico com o qual esta interagindo para criar
novas frases. Isso ocorre com a utilizacao de interface que pode converter alturas tonais
para codigos MIDI.
Alem da CE mais comum, outros artifıcios podem ser muito uteis no desenvolvimento
de sistemas de CA. Por exemplo, co-evolucao (Hillis 1990) pode ser utilizada para o
desenvolvimento simultaneo de composicoes (ou cantores) e crıticos, que avaliarao as
musicas criadas. Nestes casos, medidas de aptidao de indivıduos podem surgir das
interacoes entre os indivıduos.
O mesmo ocorre no trabalho de McCormack (2003), onde mundos artificiais sao
criados e neles seus agentes podem mover, criar ou ouvir sons; e no trabalho de Gartland-
Jones (2003), no qual blocos criam frases musicais com a interacao com outros blocos e
cada bloco carrega sempre uma respectiva frase. Trabalhos similares a estes podem ser
utilizados para criar frases que tenham uma relacao tematica entre si, sendo o caminho
16 Introducao
percorrido no processo evolutivo potencial material intermediario. Uma musica alvo
pode ser utilizada para medir a aptidao de indivıduos e forcar que estes convirjam para
algo parecido com este alvo.
AE podem ser uma ferramenta muito util para musicos e aplicacoes em varias areas
podem existir com relativo sucesso, dependendo do domınio em questao. Os domınios
especıficos devem reger como os avancos tecnologicos se darao e esta fase se apresenta
iminente, de tal modo que musica ja pode ser considerado um domınio no qual CE pode
ser, de fato, util.
1.5 Organizacao do Texto
O texto desta dissertacao encontra-se organizado da seguinte forma:
No Capıtulo 2 sao apresentados alguns aspectos importantes sobre CA e, para isso,
algumas definicoes necessarias para entender as composicoes. Neste capıtulo serao defini-
dos propriedades importantes dos sons, como altura tonal, volume e timbre, e como estas
caracterısticas afetarao as decisoes tomadas ao desenvolver um sistema de composicao
automatica.
No Capıtulo 3 sao discutidas as metodologias utilizadas para o desenvolvimento do
trabalho. Inicialmente sao apresentados os aspectos fundamentais de algoritmos evolu-
tivos e como estes devem ser definidos para a criacao de sistemas de composicao. Em
seguida, sao apresentadas as metodologias referentes aos geradores de melodia e harmo-
nia, e como seus parametros foram definidos.
No Capıtulo 4 estao os resultados obtidos com o algoritmo desenvolvido e cada um
de seus modulos. Sao feitos experimentos com cada um dos modulos e apresentadas
comparacoes de abordagens.
No Capıtulo 5, conclusoes sobre o assunto sao discutidas e uma serie de possıveis
trabalhos futuros sao definidos.
Capıtulo 2
Composicao Algorıtmica
Neste capıtulo sera apresentada uma discussao sobre Composicao Algorıtmica (CA),
alem de nocoes sobre conceitos musicais que sao importantes para qualquer aplicacao
computacional musical.
Pelo menos ao se tratar de musica ocidental, pode-se dizer que compositores sempre
usam, de uma maneira ou de outra, processos algorıtmicos1 para a criacao de suas
composicoes. Algoritmos fazem parte do processo criativo.
Nao obstante, a definicao de onde estao os processos algorıtmicos e mais difıcil. Isso
ocorre pois nem todos os processos sao intrinsecamente algorıtmicos, ja que se trata de
uma arte contextual. Assim, um passo inicial para se determinar um sistema de CA e
delinear limites entre o que e ou nao fundamentalmente algorıtmico. Alem disso, alguns
processos podem ser algorıtmicos, porem com um certo grau de aceitacao para quando
as regras deste algoritmo sejam quebradas para levar a resultados mais criativos.
A maioria dos compositores aplicam regras e especialmente passos especıficos quando
compoem. Porem, sistemas que coletem um grande conjunto de regras se assemelhara
a um livro de instrucoes musicais. Isso levara a criacao de musicas uteis para treino
musical mas nao muito artısticas em si.
Analisando como compositores trabalham, pode-se tambem deduzir que essas regras
podem ser utilizadas ou nao de acordo com um estilo particular de composicao, o que faz
com que a criacao de algoritmos especializados para um estilo especıfico normalmente
funcionem melhor.
1Com algorıtmico, denomina-se um processo ou conjunto de regras bem definidas a serem seguidasem operacoes de calculo ou solucao de problemas.
17
18 Composicao Algorıtmica
De qualquer maneira, o processo de CA e aquele no qual um conjunto de parametros
e passado para um algoritmo que retornara automaticamente uma resposta, que no caso
contera uma representacao musical. Este processo esta resumidamente apresentado na
Figura 2.1.
Informação MúsicaAlgoritmo
Figura 2.1: Representacao Esquematica do Processo de CA
2.1 Definicoes
Para a criacao de um sistema que criara musicas, e necessario compreender os elemen-
tos que formam a musica, ou seja, entender como definir a musica entre um conjunto
maior dos sons organizados temporalmente. E preciso antes entender o som, como onda
mecanica, para que se possa criar algoritmos que gerem resultados em seus subconjuntos
musicais.
Os sons sao um grande emaranhado de sinais, porem um som monotonico pode ter
a sua frequencia medida em hertz (Hz) e sua amplitude medida em decibeis. Assim,
e possıvel representar um onda sonora assim como na Figura 2.2. O eixo horizontal
representa o tempo enquanto o eixo vertical representa a amplitude da onda.
Os sons tem varias propriedades, sendo que as mais importantes para algoritmos de
composicao sao a altura tonal, o volume e o timbre. Para outras aplicacoes musicais, ou-
tras caracterısticas tambem devem ser analisadas, como o comprimento de onda, numero
de onda, intensidade, velocidade e direcao.
Neste capıtulo, algumas definicoes importantes serao apresentadas. Para mais deta-
lhes sobre os conceitos relacionados a teoria musical, Kennedy & Bourne (2004) oferece
uma boa referencia.
Composicao Algorıtmica 19
Tempo
Amplitude
Figura 2.2: Representacao de uma Onda de Som Senoidal
2.1.1 Altura Tonal
As notas musicais sao definidas pelas frequencias sonoras, ou seja, cada nota musical
corresponde a uma frequencia especıfica. A frequencia indica o numero de ocorrencias
de um certo evento, no caso, ciclos de onda. Essas frequencias sonoras sao medidas em
oscilacoes por segundo, que e a unidade de medida hertz (Hz), em honra a Heinrich
Hertz. O ouvido humano e limitado em relacao a percepcao das frequencias, sendo que
apenas frequencias entre 20 e 20.000 Hz podem ser percebidas e criar sensacoes neurais.
As frequencias podem ser compreendidas como notas pelo ouvido humano, e aı os
conceitos de altura tonal de cada nota devem ser utilizados. Quando a frequencia da
onda e muito baixa, ou seja, ocorre um menor numero de ciclos de onda por unidade de
tempo, diz-se que a nota e grave (ou baixa). Caso contrario, esta sera uma nota aguda
(ou alta). O conceito de altura tonal esta assim relacionado a frequencia percebida de um
som. Nao uma propriedade fısica mas um atributo subjetivo do som (Plack, Oxenham,
Fay & Popper 2005). Trata-se da maneira como humanos percebem estas frequencias e
as colocam em um certo contexto.
Representacoes de varias ondas senoidais de varias frequencias estao na Figura 2.3.
As ondas superiores tem as maiores frequencias, representando as notas mais agudas.
Novamente o eixo horizontal representa o tempo enquanto o eixo vertical representa a
amplitude da onda.
Varias frequencias estao relacionadas a uma nota, mas estes conceitos nao sao sinonimos.
Nas doze notas existentes em uma escala temperada, cada uma esta relacionada com
20 Composicao Algorıtmica
Tempo
Am
pli
tude
Figura 2.3: Representacao de Ondas de Diferentes Frequencias
mais de uma frequencia pois se uma frequencia x representa uma nota y, a frequencia
2x ainda representa a nota y, porem diz-se que a nota y esta em uma oitava musical
mais aguda. Em conceitos musicais, uma oitava e um intervalo entre uma nota e outra
com o dobro ou metade de sua frequencia. Este nome vem da sequencia das notas de
uma escala natural (do, re, mi, fa, sol, la, si, do), pois o segundo do e dito estar uma
oitava acima do primeiro.
Assim, pode-se deduzir que a relacao entre altura tonal e frequencia de onda e lo-
garıtmica. Isto quer dizer que precisa-se dobrar a frequencia para se avancar as 12 notas
da escala cromatica (do, do sustenido ou re bemol, re, re sustenido ou mi bemol, mi, fa,
fa sustenido ou sol bemol, sol, sol sustenido ou la bemol, la, la sustenido ou si bemol,
si, do) ou 7 notas de uma escala natural (do, re, mi, fa, sol, la, si, do) - considerando-se
ainda uma escala temperada.
Em partituras, as notas - com suas respectivas frequencias - sao representadas em
relacao a posicao da nota na pauta, como representado na Figura 2.4. Quanto mais acima
a nota esta representada na pauta, mais aguda ela e. A primeira nota representada e um
do, assim como a oitava nota na mesma pauta. Ambas as notas sao dos, porem o segundo
e mais agudo que o primeiro, tendo uma frequencia duas vezes maior (Olson 1967).
Dó
!Si
!Lá
" # !Dó
!Ré
!Mi
!Fá
!Sol
!Figura 2.4: Representacao das Alturas Tonais pela Posicao das Notas na Pauta
Composicao Algorıtmica 21
Quando a frequencia e multiplicada ou dividida por dois, a nota correspondente e a
mesma, porem em uma oitava diferente. Ja para definir quais notas estao neste intervalo
de frequencias duplicadas e necessario um esquema que e definido temperamento musical
(Mathieu 1997). Cada esquema pode representar estilos ou padroes de uma determinada
epoca. O esquema de afinacao normalmente utilizado no ocidente e aquele no qual uma
oitava e dividida em 12 notas, sendo que a distancia entre uma nota e a proxima e
sempre igual - um semitom. A vantagem deste temperamento em relacao aos outros e
que pode-se usar qualquer tonalidade sem preferencia, ja que cada tom esta tao afinado
(ou desafinado) quanto o outro.
Em relacao ao nome das notas, duas nomenclaturas principais sao comumente uti-
lizadas para representar a escala igualmente temperada: a latina e a anglo-saxonica
(Nattiez 1990). A diferenca esta representada na Tabela 2.12. Para aplicacoes compu-
tacionais, a nomenclatura anglo-saxonica e normalmente utilizada.
2.1.2 Volume
O volume esta relacionado com a amplitude de uma onda. Quando se quer definir sons
de diferentes volumes, os conceitos de sons altos e baixos nao podem ser usados, ja que
estes sao relacionados a altura tonal do som. Para se especificar a intensidade do som,
os sons devem ser definidos como sons fortes e fracos.
Sons mais fortes tem uma amplitude de onda maior. Na Figura 2.5, a amplitude da
nota representada dobra a partir do momento marcado no centro do grafico. Isso indica
que o volume sera duas vezes mais forte, apesar da nota ter a mesma altura.
Formalmente, a amplitude e a medida da magnitude da maxima perturbacao do meio
em um ciclo da onda, o que faz com que a unidade apropriada para medir a amplitude
dependa do tipo de onda. A amplitude de ondas sonoras costuma ser medida em decibeis
(dB), pois e util nesse caso uma unidade de medida logarıtmica.
Quando o ouvido humano percebe um som, o conceito de intensidade se aplica mais
do que o conceito de amplitude. Assim como frequencia e altura tonal nao sao sinonimos
e sim logaritmicamente relacionados, a percepcao da intensidade pelo ouvido humano e
2Os outros valores de frequencia que correspondem as mesmas notas podem ser calculados multipli-cando ou dividindo a frequencia por 2
22 Composicao Algorıtmica
Nomenclatura Latina Nomenclatura Anglo-Saxonica Frequencia (Hz)
Do C 261,63
Do sustenido C#
ou ou 277,18
Re bemol D[
Re D 293,66
Re sustenido D#
ou ou 311,13
Mi bemol E[
Mi E 329,63
Fa F 349,23
Fa sustenido F#
ou ou 369,99
Gol bemol G[
Sol G 392,00
Sol sustenido G#
ou ou 415,30
La bemol A[
La A 440,00
La sustenido A#
ou ou 466,16
Si bemol B[
Si B 493,88
Tabela 2.1: Notacoes para representacao das notas.
Composicao Algorıtmica 23
Tempo
Am
pli
tude
Amplitude 1Amplitude 2
Figura 2.5: Representacao de uma mesma nota com diferentes amplitudes
logarıtmica. O ser humano so percebe variacoes lineares na intensidade do som quando
a amplitude varia exponencialmente.
Para diferentes frequencias, a percepcao da intensidade do som pode tambem ser
diferente, principalmente proximo aos limites de 20 e 20.000 Hz. A faixa de frequencia
em que a percepcao e mais sensıvel pode ser melhor utilizada para musica, pois permite
que a dinamica musical seja melhor percebida.
O termo dinamica musical e usado para definir a notacao musical impressa para in-
dicar a dinamica de uma peca. Diferentemente da amplitude, a dinamica nao determina
nıveis especıficos de volume e sim como a execucao deve ser feita em relacao ao conjunto.
Todos os sinais sao derivados de palavras italianas. As gradacoes dinamicas relativas
mais basicas sao p (piano), que indica sons fracos, e f (forte), para sons fortes. Para
variacoes mais sutis, outras gradacoes podem ser utilizadas, como mostra a Tabela 2.2
(Kennedy & Bourne 2004).
Estas indicacoes sao relativas e sao quase totalmente deixadas a interpretacao do
musico, a medida que as le como escritas na Figura 2.6. O mais importante e que a
organizacao de intensidade relativa seja respeitada. Em alguns programas de notacao
musical, existe uma relacao padrao entre o parametro de velocidade da Musical Instru-
ment Digital Interface (MIDI) (parametro utilizado para controle de intensidade nesta
interface) para cada intensidade. Alguns programas podem dar a opcao desta confi-
guracao ao usuario. A Tabela 2.3 representa a relacao entre as gradacoes dinamicas e a
velocidade MIDI padrao no programa Logic Pro 8.
24 Composicao Algorıtmica
Sımbolo Nome Intensidade
ppp molto pianissimo tao fraco quanto possıvel
pp pianissimo muito fraco
p piano fraco
mp mezzo-piano moderadamente fraco
mf mezzo-forte moderadamente forte
f forte forte
↵ fortissimo muito forte
↵f molto fortissimo tao forte quanto possıvel
Tabela 2.2: Gradacoes dinamicas mais frequentes.
!sfzsf
!sff
10
" !rfz
!spp
!sp
!fp
!!fff
!ffff
!f
!mf
" # !ffpppp
!ppp
!ppppp
! !p
!mp
!pp
Figura 2.6: Representacao de diferentes gradacoes dinamicas em uma partitura
Mudancas graduais tambem podem ocorrer na musica. Os conceitos mais comuns
sao o crescendo e o decrescendo, que indicam um aumento e uma diminuicao - respecti-
vamente - gradual na intensidade. Os sımbolos sao linhas que sao juntas na esquerda,
Gradacao Velocidade
ppp 16
pp 33
p 49
mp 64
mf 80
f 96
↵ 112
↵f 126
Tabela 2.3: Exemplo de possıvel relacao entre intensidade e velocidade.
Composicao Algorıtmica 25
indicando que deve haver um aumento gradual de intensidade, ou na direita, indicando
o contrario. O sımbolo pode estar ao longo de varias notas e e normalmente escrito
abaixo da partitura. Um exemplo destes sımbolos em uma partitura estao representados
na Figura 2.7.
!!!"# !!! !!Figura 2.7: Sinais de Crescendo e Decrescendo
2.1.3 Timbres
Sons que tem a mesma altura e volume, ainda tem claramente outra caracterıstica que
os fazem substancialmente distinguıveis: o timbre. Ondas com diferentes timbres geram
sensacoes muito variadas ao ouvido humano e esta caracterıstica tambem nao pode ser
negligenciada (Ward 1970).
Quando o som e produzido por diferentes instrumentos musicais, pode-se identificar
os sons como sendo a mesma nota mas as caracterısticas sonoras sao muito distintas.
Alem do formato da onda, o modo como ouvimos o som tambem influencia o timbre dos
instrumentos.
Quando um objeto produz sons, varias ondas senoidais sao produzidas. A frequencia
mais baixa e a nota fundamental mas outros sobretons sao criados, e podem incluir
harmonicos. O harmonicos sao criados a partir de multiplos da frequencia fundamental.
Somando-se a amplitude da frequencia fundamental a dos harmonicos, a forma da onda
nao e mais senoidal. Assim, cada instrumento produz um formato de onda diferente.
Na Figura 2.8 estao representados os timbres de alguns diferentes instrumentos.
Envelope Sonoro
Alem da forma da onda existe um segundo aspecto que determina o timbre de um
instrumento: o envelope sonoro (Erickson 1975). O envelope sonoro depende da forma
como o som comeca, se mantem e termina ao longo do tempo.
O envelope sonoro tem 4 momentos principais:
26 Composicao Algorıtmica
Tempo
Am
pli
tude
ViolonceloFlautaOboéPianoXilofone
Figura 2.8: Formatos de onda de alguns instrumentos
Ataque O inıcio de cada nota.
Decaimento Apos o ataque, ocorre um decaimento ate que o som se estabilize.
Sustentacao A duracao da nota pelo instrumento. Isso pode ser controlado pelo musico
na maioria dos casos mas em alguns instrumentos, principalmente os de percussao,
isso nao e possıvel.
Relaxamento Fim da nota, quando a intensidade diminui. Pode ser brusco ou lento.
Esses momentos sao importantes para a identificacao de um certo instrumento. Um
som de piano seria muito dificilmente reconhecido se tivesse um ataque lento, ja que um
ataque rapido ao se pressionar uma tecla e muito caracterıstico deste instrumento.
De acordo com estes momentos principais, pode-se perceber tambem que a acustica
de um ambiente pode influenciar no timbre de instrumento. Isso ocorre principalmente
em relacao a duracao que estes momentos tem em diferentes ambientes.
2.1.4 Outras terminologias
Outros conceitos tambem sao importantes para a compreensao do metodos computaci-
onais propostos neste trabalho. Segue uma lista com os principais itens importantes:
Notas e frequencias A ideia de nota pode se referir ao sımbolo usado para representar
uma altura tonal e duracao ou a altura tonal de uma certa nota. Notas sao
Composicao Algorıtmica 27
a discretizacao de fenomenos musicais que facilitam a execucao, compreensao e
analise musical (Nattiez 1990). A relacao entre alturas tonais e frequencias e
logarıtmica, como pode ser visto na Tabela 2.1.
Como melhor definido na secao 2.1.1, e importante nao entender nota como sinonimo
de frequencia, mesmo cada nota tendo uma frequencia. A nota e uma percepcao
do ouvido humano enquanto a frequencia e uma nocao fısica para o osciloscopio
(Pierce 1999).
Percussao Instrumentos de percussao sao normalmente aqueles que produzem sons
quando sao batidos com a mao, varas, ou sao sacudidos. Apesar de ser um conceito
relativamente aberto, estes instrumentos incluem baterias, chimbais, xilofones, si-
nos e chocalhos.
Os instrumentos de percussao podem ter altura determinada ou nao. Os instru-
mentos de altura indeterminada sao usados normalmente para funcoes rıtmicas por
seus timbres. Neste tipo de instrumento, a altura tonal dos sons nao pode ser bem
determinada por motivos diversos. Isso faz com que estes instrumentos possam
acompanhar bem uma musica independente da harmonia da musica em questao.
Ja instrumentos de percussao de altura determinada permitem a afinacao de suas
notas. Esses instrumentos podem fazer o papel melodico ou harmonico de uma
musica, alem da funcao meramente rıtmica dos instrumentos de altura indetermi-
nada.
Melodia Uma sequencia de notas musicalmente satisfatoria pode ser considerada uma
melodia. Uma melodia pode ser descrita por suas notas e tempos de execucao. A
melodia precisa fazer sentido musicalmente e seus sons normalmente tem diferentes
duracoes. Assim, uma sequencia aleatoria de notas nao pode ser considerada uma
melodia. A Figura 2.9 apresenta um exemplo de melodia, com sua respectiva
harmonia acima da pauta e letra abaixo.
A sucessao de notas de uma melodia deve ser percebida como uma entidade unica.
Motivo E uma ideia musical ou fragmento musical recorrente, de alguma importancia
ou caracterıstico na composicao (Nattiez 1990). O motivo pode ter aspectos
melodicos, harmonicos ou rıtmicos, porem e normalmente imaginado em termos
melodicos.
Harmonia E o uso simultaneo de varias alturas tonais. Musicas orientadas por har-
monias que se movem em progressoes sao uma marca forte da musica ocidental
28 Composicao Algorıtmica
!ci
F
!"fe
!li da
!des
# !Mui
C!via
!tos
C" !de
$5
%G!
nos
!da
ri
#C! !
dada
!pra
% & !tascê
C
!béns
!G
"Ne
" !ta
!!vo
"que
'!Pa ra
!ssa
!Mui
Figura 2.9: Exemplo de melodia de Parabens a Voce
(Malm 1996). O estudo da harmonia envolve progressoes de acordes que normal-
mente governam a musica. A harmonia e o aspecto vertical da musica, enquanto
a melodia define seu aspecto horizontal.
Existem algumas tradicoes na musica ocidental que implicam em certas regras
harmonicas.
Apesar da harmonia se tratar de notas que soam simultaneamente, e possıvel
deduzir uma harmonia atraves de uma melodia que faca o uso de arpejos. Varias
pecas contem a harmonia implıcita em sua melodia.
Na Tabela 2.4 estao os nomes dos intervalos mais comuns entre as notas.
Combinacoes de notas com seus intervalos (acordes) definem a harmonia. Por
exemplo, no acorde C, ha 3 notas: C, E e G. Cada nota representa um grau da
escala e pode ser utilizada para formar um acorde.
Nenhuma nota corresponde sempre ao mesmo grau da escala, ja que a nota tonica
pode ser qualquer uma das 12 notas. Enquanto os nomes das notas sao fixos, o
conceito de intervalo e relativo. A grande implicacao disto e que qualquer musica
pode ser tocada em qualquer tom. A musica sera sempre a mesma, desde que os
intervalos empregados sejam os mesmos.
A Tabela 2.5 mostra um exemplo dos graus das escalas de do, mi e sol. Quando os
intervalos ultrapassam o oitavo grau, estes sao denominados intervalos estendidos.
Composicao Algorıtmica 29
Tonica Terceira Maior Terceira Menor Quinta
C E E[ G
D[ F F[ A[
D F# F A
E[ G G[ B[
E G# G B
F A A[ C
F# A# A C#
G B B[ D
A[ C C[ E[
A C# C E
B[ D D[ F
B D# D F#
Tabela 2.4: Intervalos de notas mais comuns
Grau 1 2 3 4 5 6 7 8
C D E F G A B C
Nota E F# G# A B C# D# E
G A B C D E F# G
Tabela 2.5: Exemplos de graus de intervalos
30 Composicao Algorıtmica
Os intervalos podem ser consonantes ou dissonantes. Estes sendo considerados
como produzindo sensacao de tensao enquanto aqueles produzem sensacao de re-
laxamento.
Os intervalos consonantes sao o unıssono, a oitava, a quinta, a quarta e as terceiras
maiores e menores. O terceiro deles e considerado imperfeito enquanto o segundo
e considerado perfeito. Em alguns casos, o intervalo de quarto grau pode ser
considerado dissonante.
Os outros intervalos, considerados dissonantes, dependem de resolucao de tensao
e certa preparacao que depende do estilo de musica.
Intervalos A combinacao de duas notas - tambem chamada de dıade - forma um in-
tervalo. Os intervalos verticais, quando duas notas ocorrem ao mesmo tempo, se
referem a harmonia. Ele pode ser classificado em relacao a distancia entre as notas.
Os intervalos horizontais - ou lineares -, se relacionam com a melodia, quando uma
nota e executada apos a outra. Pode ser classificado ascendente, se a segunda
nota e mais aguda que a primeira, ou descendente, caso contrario. O intervalo
horizontal e considerado conjunto se as notas tem uma distancia tonal de 1 ou 2
semitons.
Acordes E um conjunto de notas que tem relacao harmonica e sao percebidos como
soando em conjunto. As notas podem soar simultaneamente ou sucessivamente.
Os acordes mais comuns sao os compostos de 3 notas (trıades).
As notas que formam o acorde sao normalmente definidas pela nota principal,
a fundamental, e dois ou mais intervalos. O acorde pode ser entendido mesmo
quando todas as suas notas nao podem ser ouvidas simultaneamente. Nattiez
(1990) cita que podemos encontrar “acordes puros”em um trabalho musical mas
frequentemente devemos ir de um suposto pessoal para uma representacao mais
abstrata dos acordes sendo usados.
As quartas, quintas e oitavas eram consideradas intervalos perfeitos e as trıades
maiores e menores se tornaram a sonoridade padrao na musica ocidental. Tais
trıades podem ser descritas com uma nota fundamental, sua terceira e sua quinta.
O que define se o acorde e menor ou maior e se sua terceira e menor ou maior.
Tendo que a escala de do e C D E F G A B C, o acorde C maior (a trıade de do),
sera o proprio C (nota fundamental), E (terceira) e G (quinta). O acorde e maior
pois o intervalo de C para E e de 4 semitons - ou dois tons. Um acorde com a
Composicao Algorıtmica 31
Trıade Terceira Quinta Exemplo Sımbolos
Maior Maior Perfeita C-E-G C, CM, Cma, Cmaj
Menor Menor Perfeita C-E[-G Cm, Cmi, Cmin, C-
Aumentada Maior Aumentada C-E-G# C+, C+, Caug
Diminuta Menor Diminuta C-E[-G[ Cm([5), Co, Cdim
Tabela 2.6: Quatro tipos basicos de trıades
fundamental em D poderia ser construıdo utilizando-se a mesma escala (D F A).
Este acorde, porem, seria denominado D menor, ja que o intervalo entre D e F e
de apenas 3 semitons. Qualquer trıade construıda com esta escala sera menor ou
maior, com excecao da trıade de B, que sera diminuta.
Acordes de 4 notas, com setimas tambem sao amplamente utilizados. Uma vasta
quantidade de musica contemporanea e produzida com combinacoes trıades e
acordes com 7as. Algumas excecoes incluem musica classica moderna e jazz, que
nao raramente incluem acordes de pelo menos 5 notas.
Os acordes podem ser classificados em relacao ao numero de notas. Intervalos
de duas notas apenas podem nao ser considerados acordes (Surmani, Surmani
& Manus 2004) – podendo ser chamados assim de dıades ou intervalos. Porem,
os acordes normalmente utilizados em musica ocidental estao tao firmados como
conceito que dıades ou apenas melodias podem ser ouvidas com acordes implıcitos,
ja que o cerebro pode “completar”o acorde. Isso faz com que alguns autores
nao sejam tao restritivos em relacao ao numero mınimo de notas de um acorde
(Schellenberg, Bigand, Poulin-Charronnat, Garnier & Stevens 2005).
Outra classificacao util para acordes e a relativa aos graus da escala. No tom de
do maior, o primeiro grau da escala, chamado de tonica, e o proprio do. Assim, o
acorde do maior, construıdo sobre a primeira nota, pode ser notado com o numeral
romano I. Mesmo que o acorde do maior seja encontrado em outras escalas – como
nas escalas de la menor ou sol maior –, ele sera marcado com diferentes numerais.
Essa numeracao permite entender a funcao do acorde na tonalidade corrente.
O acorde normalmente tem a nota fundamental como a nota mais grave. Quando
isto nao acontece, o acorde pode ser definido como invertido.
Existem quatro tipos basicos de trıades que estao representados na Tabela 2.6.
32 Composicao Algorıtmica
Ja os acordes com setima sao construıdos pela adicao de uma quarta nota a trıade.
Existem varios tipos de acordes de setimas e eles dependem da trıade e da setima
adicionada (que pode ser maior ou menor).
Acordes estendidos sao aqueles que tem notas alem da setima nota da escala, como
a nona, a decima-primeira ou a decima-terceira. Estes acordes sao construıdos com
adicao de notas que estao fora das sete notas iniciais da escala diatonica.
As notas aqui citadas que para compor um acorde podem tambem ser alteradas
por acidentes3. Estas marcacoes sao feitas nas notas que estao sendo mudadas.
Estes acordes sao denominados acordes alterados.
Em alguns acordes, a terceira pode dar lugar a uma outra nota vizinha, a segunda
ou a quarta. Estes sao os acordes suspensos.
Ritmo Na terminologia musical, o ritmo define como os sons e silencios sao organizados
no tempo. Na musica ocidental, esta sempre relacionado com uma metrica. A
duracao de cada unidade de pulso e o tempo. O tempo e uma medida de quao
rapido os pulsos devem fluir.
Diferentes estilos de musica fazem uso diferente do ritmo e a notacao musical pode
ter informacao adaptada para instrumentos de percussao de altura tonal indefinida.
Estes instrumentos sao muitas vezes utilizados para manter os outros instrumentos
respeitando a metrica.
Compasso Os pulsos de uma musica tem uma duracao definida pelo tempo da musica e
podem ser agrupados em segmentos chamados de compassos. Uma musica normal-
mente consiste em varios compassos de mesmo tamanho e o numero de pulsos de
cada compasso e especificado no comeco da partitura (Nickol 1999). A formula do
compasso e escrita no inıcio da composicao e quando ocorre mudanca de formula.
O numerador da formula do compasso indica o numero de pulsos de um compasso
enquanto o denominador indica em quantas partes uma semibreve deve ser dividida
para formar uma unidade de tempo. A Figura 2.10 mostra a formula de uma
compasso 4/4. Isso quer dizer que uma unidade de tempo tem duracao de 1/4 da
semibreve e o compasso tem 4 unidades de tempo.
Na verdade, os conceitos de numerador e denominador nao podem ser aplicados
a formulas de compasso. Numerador e denominador devem estar com um traco e
tem a funcao de dividir o valor do numerador pelo do denominador. Ja em uma
3No caso de alteracoes na nota fundamental ou na terceira, o nome do acorde deve mudar
Composicao Algorıtmica 33
42! " #
44 "
43 $
Figura 2.10: Exemplos de Formulas de Compasso
formula de compasso 2/4 nao se pode multiplicar o numerador e o denominador
por um dado numero e obter uma formula equivalente.
Em termos computacionais, um compasso pode ser especificado pelos elementos
(⌘i
, ti
, �i
), onde ⌘i
representa a altura tonal de uma nota, ti
sua posicao de inıcio
no tempo, �i
sua duracao e i = 1, . . . , n e o numero de notas em um compasso.
No gerador melodico deste trabalho, por exemplo, cada compasso e um indivıduo
e se um indivıduo nao contem nota alguma, ele e considerado uma pausa. Esta
populacao de compassos se une para formar uma melodia. Assim, o objetivo nao e
entao encontrar o melhor indivıduo, mas sim uma boa populacao de indivıduos. No
final do processo varios deles podem ser escolhidos de uma maneira musicalmente
ciente para formar o resultado.
Timbre Sao as caracterısticas ou qualidade do som distintas da altura tonal e inten-
sidade. O timbre diferencia o som de diferentes instrumentos, mesmo quando
executam a mesma nota.
Formas musicais Alem dos elementos basicos, os sons tambem podem ser organizados
em estruturas de mais alto nıvel. Estas estruturas podem ser predefinidas, como
blues de 12 compassos ou formas de sonatas, levando a formas de composicao
top-down. Varios compositores ignoram estas estruturas e compoes de maneira
bottom-up, ou seja, iniciando com elementos de mais baixo nıvel. Assim, notas
podem formar frases, que por sua vez, formam versos.
Todavia, as estruturas musicais tendem a ser hierarquicas. Porem, nem sempre as
estruturas formadas pelo compositor e pelo ouvinte sao iguais.
Roads (2001) descreve escalas musicais de tempo (Tabela 2.7) que podem ser
usadas para organizar ideias musicais. Ao projetar um algoritmo de composicao,
a escala de tempo do produto do algoritmo deve ser considerada. Isso influencia
fundamentalmente nas formas de representacao a serem utilizadas.
34 Composicao Algorıtmica
Escala de tempo Perıodo de tempo Exemplos musicais
Infinito Infinidade Ondas de seno ideais da teoria de Fourier
Supra Dias, meses, anos, seculos Concerto, album, estilo musical
Macro Minutos ate horas Composicao individual
Meso Segundos ate minutos Frases, partes de uma peca
Objeto de som Segundos ou fracoes de segundos Nota, som discernıvel
Micro Milissegundos Partıcula de som, grao
Amostra Microssegundos Amostra digital individual
Subamostra Nanosegundos Eventos acima da frequencia de Nyquist
Infinitesimal Zero Funcao de impulso ideal
Tabela 2.7: Escalas de tempo musicais (Roads 2001)
As escalas entre segundos e horas sao normalmente comuns para musicos. Nestas
escalas estao inclusas pecas, frases, harmonias e melodias. A escala de objetos de som
trata das notas que sao percebidas individualmente. A escala de microtempo e utilizada
para sıntese de som ou fenomenos que ocorram abaixo do limiar do que pode ser perce-
bido como uma unidade individual. As escalas de amostra e subamostra sao unidades
de representacoes digitais de audio.
Por fim, a escala infinitesimal e utilizada apenas para modelos teoricos musicais que
podem ser uteis em alguns contextos especıficos, onde a duracao de um evento deve ser
a mais proxima possıvel de zero. No extremo oposto temos a supra-escala, que pode
determinar um perıodo estilıstico de um genero ou carreira de um artista, e a escala
infinita para qualquer coisa alem disto.
2.2 Definicoes de Musica
Qualquer problema a ser resolvido precisa primeiramente ser bem definido. A definicao
de musica, todavia, pode nao ser tao trivial do ponto de vista computacional.
Varias pessoas podem afirmar que alguns sons nao sao musica e sim barulho, o
que pode levar a pensar que barulho e a antıtese de musica. Todavia, e difıcil delimitar
exatamente quais sons sao barulho e quais sao musica pois estes conceitos sao individuais
e dependem das experiencias culturais do ouvinte.
Pode ser comum tambem imaginar que alguns ouvintes podem nao entender muito
bem de musica mas saberem de quais sons gostam. Ora, estas mesmas pessoas podem na
Composicao Algorıtmica 35
verdade estar apenas expressando que gostam do que ja conhecem como musica. Assim,
pessoas com diferentes opinioes e profundamente comprometidas com seus pontos de
vista podem achar difıcil explica-los.
Assim, musica e um domınio muito subjetivo e nao existe definicao de boas musicas
que atenda a todas as pessoas. As unicas caracterısticas concretas que podemos definir
e que musica e um meio aural e temporal, o que quer dizer que se deve, computacional-
mente, criar sistemas de sons organizados temporalmente.
2.2.1 A Arte da Musica
Um dos maiores problemas para criacao de sistemas musicais automaticos, assim como
os relativos a outras artes, e a definicao do problema, que leva em consideracao muitos
conceitos individuais para ser formulado matematicamente. A definicao feita pelo criador
do algoritmo pode aumentar ou diminuir substancialmente o espaco de possıveis solucoes
de um algoritmo.
A seguinte definicao pode ser encontrada no dicionario de Oxford (McKean 2005):
“
Music
noun
1. the art or science of combining vocal or instrumental sounds (or both)
to produce beauty of form, harmony, and expression of emotion : he
devoted his life to music.
• the vocal or instrumental sound produced in this way : couples were
dancing to the music — baroque music.
• a sound perceived as pleasingly harmonious : the background music
of softly lapping water.
2. the written or printed signs representing such sound : Tony learned to
read music.
• the score or scores of a musical composition or compositions : the
music was open on a stand.
”
36 Composicao Algorıtmica
Da primeira definicao de musica, infere-se que musica e considerada mais do que
apenas sons organizados no tempo mas tambem expressao de emocao e deve ter beleza
em sua forma, ou seja, estes sons devem ser organizados de uma forma harmoniosa
para o ouvinte. A maneira como estes sons podem ser organizados e subjetiva e sons
da natureza, como passaros ou cachoeiras, podem ou nao ser considerados musicais de
acordo com as preferencias de um certo ouvinte. Assim, de certo ponto de vista, musica
pode ser qualquer coisa desde que as pessoas queiram a reconhecer como tal, enquanto
barulho e reconhecido como perturbador ou desagradavel (Nattiez 1990).
Alem desta definicao, musica tambem pode ser vista por alguns como uma linguagem
(Ashby 2004). Deste modo, ela transmite conceitos dos compositores para os ouvintes,
podendo tambem utilizar generos especıficos de musica.
Como qualquer outra arte, musica tambem pode ser vista como algo definido pelo
contexto social do momento (Nattiez 1990). A base cultural de uma pessoa pode de-
terminar fortemente o que sera ou nao considerado musica. A exposicao de algumas
pessoas a apenas um tipo de musica pode criar conceitos particulares sobre a percepcao
musical. Isso pode fazer com que pessoas de cultura ocidental, por exemplo, sejam mais
acostumados a musicas que utilizam a escala diatonica.
Um exemplo de musica que desafia as formas da musica convencional e a 4’33”,
composta por Cage (1961), que contem 3 movimentos que sao percebidos como apenas
4 minutos e 33 segundos de silencio.
Apesar das possibilidades de tentativa de definir musica serem varias, de qualquer
maneira, o conceito ainda permanece subjetivo bastante para ser formulado matemati-
camente. Assim, mais discussao e necessaria para formularmos a base de um processo
qualquer de CA.
2.2.2 Musica como IHC
Alem dos conceitos basicos apresentados, e difıcil definir modelos matematicos, mesmo
que complexos, para definir musica enquanto arte ja que isso implica em codificar
questoes esteticas e subjetivas. Por isso e interessante entender por que e como isto
ocorre. Uma abordagem muito interessante e a tentativa de definicao a partir do modelo
de Norman (1988) para interacao do usuario. Este modelo esta na Figura 2.11.
O diagrama superior da Figura 2.11 mostra o modelo original de interacao do designer
Composicao Algorıtmica 37
Modelo Mentaldo Designer
Modelo Mentaldo Usuário
Imagem doSistema
Modelo Mentaldo Compositor
Modelo Mentaldo OuvinteComposição
Figura 2.11: Modelo de Norman para Interacao do Usuario (Norman 1988) eseu relativo musical (Biles 2007b)
com o usuario, que na verdade, nao consegue ter relacao direta alguma com o designer. O
designer pode criar recursos para o sistema que o usuario nao entendera completamente
e alguns recursos nao poderao ser usados pelo usuario. De qualquer maneira, a intencao
e que tanto o usuario como o designer tenham a mesma imagem do sistema, o que nunca
e completamente possıvel.
Biles (2007b) descreve como o modelo de Norman (1988) pode ser entendido do ponto
de vista musical. Esta analogia esta no diagrama inferior da Figura 2.11 e se baseia em
uma composicao no lugar da imagem do sistema. Agora, esta imagem inclui varios
aspectos definidos pelo designer (o compositor) que vao alem da partitura. A peca, seu
tıtulo, suas notas, o local da apresentacao, a aparencia e comportamento dos musicos e
as crıticas, assim como a partitura, influenciam a imagem sobre a composicao inferida
pela audiencia.
Assim como no modelo de Norman (1988), o modelo intencionado pelo compositor
nunca sera completamente compreendido pelo ouvinte. Da mesma maneira que um
sistema qualquer pode ter varios recursos que nao sao conhecidos ou compreendidos
pelo usuario, a peca tem estruturas de varios nıveis. Nuancas sobre as melodias podem
nao ser percebidas por um certo ouvinte.
O usuario, ou o ouvinte, absorve uma composicao tendo como referencia suas ex-
periencias passadas e sua cultura, o que leva diferentes pessoas a terem diferentes per-
cepcoes das mesmas musicas. Quando escuta uma musica, o ouvinte pode ter um modelo
mental mais desenvolvido para compreender aquele compositor especıfico, que pode ter
um estilo musical muito caracterıstico. Quando o ouvinte nao tem um modelo desenvol-
vido para certo estilo musical ou grupo de composicoes, provavelmente se perguntara o
38 Composicao Algorıtmica
que foi a peca que acabou de ouvir, dizer que nao entendeu ou simplesmente nao gostar.
Assim, para a mesma composicao, cada pessoa tem uma resposta diferente. Isso
faz com que seja difıcil o desenvolvimento de modelos matematicos para uma musica
“perfeita”, ao mesmo tempo que e um motivo pelo qual as pessoas gostam de musica:
as musicas nos falam individualmente.
Outra observacao importante que pode ser feita a partir do modelo de Norman (1988)
e que cada pessoa tem uma estrutura para cada musica. Quando se refere a organizacao
das estruturas de alto nıvel de uma musica, agora, e fundamental perceber que e im-
portante definir se esta organizacao de alto nıvel e a pretendida pelo compositor ou a
inferida pelo ouvinte. No papel de designer de algoritmos que criarao composicoes, na
maior parte das vezes se refere ao modelo do compositor.
Dependendo da configuracao do modelo, a organizacao das estruturas do ouvinte
e do compositor podem ser similares ou nao. Um exemplo e um jazz que tenha uma
estrutura muito comum de normalmente se iniciar com um tema, fazer uma improvisacao
e retornar ao tema principal. Varios ouvintes podem nao entender completamente quais
partes da musica sao improvisadas e pessoas que nao conhecem o modelo do compositor
podem pensar que toda a improvisacao nao e improvisada. Igualmente, alguns ouvintes
podem nao ter a mınima ideia do que e uma improvisacao.
Apesar disto, varios ouvintes podem nao entender bem o modelo do compositor e
gostarem da musica - ou entender bem a estrutura pretendida pelo compositor e odia-la.
Assim, ouvintes diferentes procuram e entendem coisas diferentes de maneiras diferentes.
Isso deixa mais claro ainda a dificuldade implıcita na criacao de modelos matematicos
para criacao de composicoes.
Sons da natureza podem ser organizados claramente. Exemplos sao os cantos dos
passaros, as quedas de cachoeiras ou sons naturais do funcionamento de um carro. Por
mais que estes sons tenham sido criados por um compositor nao-humano e nao tenham
uma intencao explıcita de serem organizados daquela maneira, estes sons estao organi-
zados no tempo, nao importa quem os organiza e como os organiza. Estruturas podem
ser organizados mesmo com a ausencia de qualquer compositor.
Composicao Algorıtmica 39
2.3 Conclusao
Neste capıtulo foi apresentado o conceito de CA e a terminologia indispensavel para
seguir com a analise de como a CE pode ajudar o ramo.
A seguir definicoes sobre a estrutura do som foram dadas, para que entao fossem
explicados conceitos musicais. O som e uma onda mecanica que pode ser representada
por sua variacao que tem uma frequencia, medida em Hz, uma amplitude, medida em
decibeis, e um timbre, que define o formato desta onda.
Por fim, apresentou-se como a musica pode ser percebida de diferentes maneiras e
em particular de acordo com sua analogia como IHC. Este modelo nos faz compreender
como a musica e uma peca com a qual o compositor pode passar suas intencoes para o
ouvinte. O ouvinte, porem, nunca confirma sua percepcao artıstica diretamente com o
compositor.
Estes conceitos sao fundamentais para a compreensao das metodologias aplicadas
neste trabalho e suas devidas justificativas.
40
Capıtulo 3
Metodologia
Este capıtulo descreve a abordagem utilizada neste trabalho para o desenvolvimento de
um sistema de CA.
Inicialmente, sao dadas as definicoes basicas de um AG e suas implicacoes no universo
musical. Nesta secao, alem das definicoes basicas de um AG, estuda-se com mais detalhes
como uma musica pode ser representada ou avaliada em relacao a uma medida de fitness .
Com uma definicao de AG, a proxima secao aborda os metodos especıficos utilizados
neste trabalho para geracao de musica de forma algorıtmica. Dois algoritmos diferentes
podem formar uma composicao, gerando separadamente melodias e harmonias.
3.1 Algoritmos Geneticos
A CE envolve os metodos baseados na evolucao natural (Darwin 2003). Solucoes para
problemas podem se juntar para formar potenciais novas solucoes que serao provavel-
mente melhores que a primeira em decorrencia de uma pressao seletiva. Estes metodos
foram inicialmente propostos para resolver problemas de otimizacao (Reeves 2010) pois
e uma tecnica util para difıceis problemas de busca onde ha uma maneira de avaliar
solucoes mas nao se conhece algoritmo capaz de encontrar a solucao otima em tempo
polinomial.
O que estas solucoes podem representar e uma questao muito ampla e inclui espe-
cificacoes de motores, programacoes de horarios com restricoes, musicas ou controle de
parametros de um processo qualquer. Em consequencia, estes algoritmos se tornaram
41
42 Metodologia
um arcabouco flexıvel para varios tipo de aplicacoes, incluindo trabalhos criativos.
Os principais componentes de um AG sao:
• Cromossomos com conhecimento sobre a estrutura da solucao. A informacao no
cromossomo mapeia a um fenotipo que passa por um processo de selecao natu-
ral. Os cromossomos podem representar informacao musical na forma de notas,
frequencias ou eventos.
• Um processo de selecao que julga as solucoes de acordo com uma funcao de ava-
liacao. Este operador seleciona quais cromossomos devem ter a oportunidade de
se reproduzir e passar parte de seus valores para as geracoes seguintes. Assim,
espera-se que geracoes mais avancadas tenham melhores indivıduos. O calculo do
fitness para tarefas musicais e normalmente heurıstico, interativo ou baseado em
regras (Miranda & Biles 2007). Cada um deles tem suas vantagens e desvantagens.
• Operadores Geneticos que sao estruturados considerando informacao e premissas
sobre como a busca de novas solucoes deve ser conduzida. Neste nıvel, estes opera-
dores devem ser capazes de combinar informacao previamente selecionada contida
em solucoes correntes de maneira efetiva e ter potencial para explorar todas as
solucoes possıveis. Alem disso, em sistemas musicais, estes operadores podem ser
guiados para nao gerar solucoes consideradas fora de contexto, ou inviaveis.
Estes sistemas podem, por exemplo, encontrar resultados para a tarefa de harmonizar
melodias (Phon-Amnuaisuk, Tuson & Wiggins 1999), porem existem algumas dificulda-
des. A primeira delas e que nao ha garantia de se encontrar a solucao otima, o que e
compreensıvel para programas dos quais se esperam que resolvam tais problemas. A
segunda complicacao e que AG podem se tornar sistemas com alto custo computacio-
nal quando muito conhecimento e adicionado ao sistema. Este tipo de conhecimento e
indispensavel para qualquer sistema que produz bons resultados.
E fundamental que pelo menos uma mınima base de conhecimento sobre a area seja
modelada para o AG para que este possa ao menos distinguir entre solucoes boas e
ruins. Para sistemas de CA, informacao deve ser embutida em todo o sistema para
que ocorram solucoes aceitaveis em termos de alturas tonais, duracoes e harmonia. E
importante considerar como embutir este tipo de informacao nao apenas na funcao de
fitness mas tambem em outras feicoes do algoritmo como a representacao das solucoes,
Metodologia 43
pois um algoritmo nao pode gerar nenhuma solucao nao codificavel em seu formato de
representacao.
Ha muita discussao sobre o papel de sistemas adaptativos em musica, principalmente
pela natureza do problema, que pode nao ser tao bem definido como outros problemas
de otimizacao1. De qualquer maneira, a CE oferece um arcabouco que pode ser extre-
mamente util para trabalhos criativos e nesta secao sera feita uma discussao sobre o
papel destes sistemas para aplicacoes musicais.
3.1.1 Biologia
Os AG sao heurısticas de busca que copiam de certo modo o comportamento da evolucao
natural assim como definida por Darwin (2003). E um metodo muito utilizado para a
procura de solucoes para problemas de otimizacao por sua grande flexibilidade.
Assim como na biologia, varias solucoes podem ter um genotipo (sua representacao)
com varios tracos herdaveis. Estes tracos sao transmitidos de geracao a geracao. Quando
um traco e herdado varias vezes, tem-se um sinal de que este seja uma traco positivo
para o problema em questao. Com o passar do tempo alguns indivıduos nao sobrevi-
vem e outros dao origem a nova geracao, com alguns tracos que estarao provavelmente
repetidamente presentes, a qual espera-se ter maior aptidao.
Em seus estudos iniciais, Darwin nao sabia exatamente como as variacoes ocorriam
entre as geracoes. Este problema foi resolvido pela genetica moderna, que criou a base
teorica para explicar os processos geneticos, como mutacoes e recombinacao, que levam a
variar mais substancialmente o genotipo dos novos indivıduos. As mutacoes podem gerar
opcoes de exploracao da solucao, que nao seriam exploradas apenas pelo cruzamento.
Como o genotipo leva sempre a um fenotipo, e uma selecao natural atua sobre
este, espera-se que os melhores indivıduos tenham maior chance de sobreviver para
as proximas geracoes. A representacao esquematica de um AG esta na Figura 3.1.
No algoritmo, uma populacao que e representada por cadeias de caracteres, chamadas
de cromossomos, formam os indivıduos, que nao sao nada mais do que possıveis solucoes
para um problema. Com o processo evolutivo, melhores solucoes passam a ser geradas
com o tempo. Um pseudocodigo simplificado de um AG pode ser descrito como no
1Assim como todas as aplicacoes destes metodos para criacao de arte
44 Metodologia
Pais
Avaliar a População
AvaliarDescendentes
Substituição
SeleçãoRecombinação
Mutação
Inicializar
Figura 3.1: Representacao Esquematica de um Algoritmo Evolutivo
Algoritmo 3.1.
Algoritmo 3.1: AGEntrada: Populacao de indivıduos, Funcao Objetivo
Resultado: Indivıduo
enquanto criterio de parada nao e satisfeito faca1
Lista dos Pais Selecao(Populacao de Indivıduos, Funcao Objetivo);2
Populacao Reproducao(Lista de Pais);3
Populacao Mutacao(Populacao);4
fim5
retorna O melhor indivıduo analisado durante o processo;6
A funcao-objetivo contem uma funcao capaz de analisar a qualidade de um indivıduo
e por isso e necessaria para que a lista dos pais seja gerada levando em consideracao
a qualidade destes indivıduos. Assim, esses indivıduos que provavelmente sao de boa
qualidade geram uma nova populacao que passara pelo mesmo processo.
Estes tipos de algoritmos tem varias funcoes musicais, area normalmente denominada
Musica Evolutiva (ME). As areas de maior atencao em ME sao composicao e design de
som. Naquela, a funcao-objetivo pode ser a similaridade com um determinado compo-
sitor ou estilo, podendo-se assim evoluir pecas a maneira de um compositor ou estilo
Metodologia 45
especıfico, como feito por Biles (1994). Quando o trabalho e desenvolvido no sentido
de um estilo particular de composicao, e mais facil definir criterios que levarao ao ob-
jetivo proposto. Ja em trabalhos com a necessidade de composicoes mais criativas ou
inovadoras, a criacao de um algoritmo e mais desafiadora.
Na area de design de som, a tecnica ja tem a sua eficacia comprovada para sintetizar
sons a partir de sons alvos ou desenvolver novos sons (Johnson 2003). O genotipo dos
indivıduos pode ser feito pelos parametros que definem os sons. Nos casos em que se
precisa achar sons parecidos com um certo instrumento tradicional, a proximidade com
o dado instrumento pode ser a funcao-objetivo. Ja para o procura de novos sons e mais
difıcil a relacao com funcoes objetivo e a avaliacao humana e a norma (Woolf 1999).
A melhor escolha dos operadores geneticos, da forma de representacao, funcao de
avaliacoes, assim como outros pontos da implementacao dependem muito do ramo de
aplicacao do algoritmo e uma analise dos experimentos realizados presentes na literatura
e fundamental para o desenvolvimento de um algoritmo deste tipo.
Talvez uma das mais intrigantes perguntas a serem respondidas antes de determinar
como criar um AE para CA e como determinar a qualidade de uma solucao e, caso esta
determinacao seja feita por um mentor humano, como evitar um gargalo de fitness , ou
seja, o tempo gasto para avaliar varias solucoes que pode atrapalhar ou ate impedir o
mentor de fazer uma avaliacao justa das solucoes. Alem disso, e importante definir quais
serao as solucoes iniciais, que podem ser diversas porem nao musicais, ou musicais e nao
criativas. Em muitos casos a definicao do problema nao e coerente, o que faz o algoritmo
convergir para solucoes “corretas”que nao atendem ao objetivo inicial.
AG sao sistemas muito complexos e difıceis de analisar. Varios resultados puramente
empıricos sao encontrados na literatura, sendo as vezes inconsistentes para a comparacao
entre metodos para a mesma aplicacao. Porem o entendimento de como os AE funcionam
sempre pode ser obtido por analise de alguns estudos previos que sao uteis para poupar
tempo consideravelmente no desenvolvimento de novos sistemas.
Nas proximas subsecoes serao analisadas quais questoes precisam de resposta para o
desenvolvimento de sistemas de CA baseados em AG.
46 Metodologia
3.1.2 Representacao
A representacao de um indivıduo e usualmente feita por uma cadeia de caracteres que
representa a solucao de alguma maneira. Nos AG mais tradicionais, essas cadeias eram
representadas apenas com 0s e 1s.
A representacao da solucao e denominada genotipo e dependendo da aplicacao es-
pecıfica, genotipos simples podem levar a fenotipos mais complexos. Estes genotipos
podem ter tamanho fixo, como na representacao de uma rota que passe sempre por n
cidades, ou variavel, como na representacao de uma melodia que pode ter um numero
indefinido de notas com suas respectivas duracoes.
De qualquer maneira, e sobre o fenotipo que o processo evolutivo atua. Diferentes
genotipos terao o mesmo valor de funcao-objetivo se estes levam a fenotipos iguais. As-
sim, pode-se inferir que diferentes representacoes podem existir para o mesmo problema.
Estas representacoes, porem, nao sao sempre igualmente boas.
Por exemplo, uma lista de tarefas pode ser representada por um vetor com os numeros
das tarefas possıveis em sua ordem de execucao ou por uma tabela na qual e marcado 1
quando a tarefa e executada em um certo horario e 0 quando nada acontece. A primeira
opcao provavelmente sera mais maleavel na maioria dos casos.
Em alguns casos a representacao de uma solucao e obvia, isto acontece quando a
solucao representa os parametros de processos. Neste caso, basta guardar os proprios
parametros do processo como genotipo da solucao. Em alguns casos uma representacao
boa pode nao ser tao obvia, como na codificacao de um compasso de uma musica.
O conjunto de todas as solucoes possıveis e denominado espaco de busca ou espaco
de solucoes. Representacoes ruins levam a uma difıcil exploracao deste espaco de busca
e o AE se torna inutil. Em ME, por exemplo, uma representacao mal feita pode gerar
solucoes que sejam ate boas de fato mas que utilizam notas que nao podem ser executadas
por instrumentos reais.
Assim, convem analisar como a representacao genetica dos componentes mais impor-
tantes para sistemas de CA pode ser feita. A representacao depende muito da expectativa
do comportamento do gerador musical, que pode respeitar apenas escalas previamente
definidas, utilizar cromatismos entre as notas ou ser totalmente livre. Existem basica-
mente 3 abordagens utilizadas para representar a altura tonal de cada nota em sistemas
de CA.
Metodologia 47
Absoluta Existem codigos MIDI que se referem a notas especıficas. Assim, pode-se usar
um numero para representar cada nota de maneira absoluta. A grande vantagem
desta abordagem e sua simplicidade.
Relativa As notas podem tambem ser especificadas em relacao a outra nota de re-
ferencia. Assim, apenas a diferenca entre a nota em questao e a nota de referencia
precisa ser especificada. Exemplos de notas que podem ser usadas como notas
de referencias sao a ultima nota de uma determinada frase, verso ou compasso; a
primeira nota de uma frase; a base da harmonia, ou seja, a nota fundamental da
harmonia no momento em que a nota e executada; ou qualquer outra nota que sirva
como base para a melodia. Nesta abordagem, quando ocorrem mudancas geneticas
no genotipo, o fenotipo continua sempre a corresponder a nota de referencia. O
genotipo pode ser mapeado em um fenotipo de acordo com a progressao harmonica
de dado compasso e a referencia de escalas como as da Tabela 3.1 (Biles 1994).
Deslocamento de Escala A harmonia pode ser utilizada para determinar um codigo
para cada nota. Deste modo, se se define que escalas serao sempre respeitadas as
notas poderao ser as notas em relacao a escala dada. Pode-se inclusive descartar
notas nao pertencentes as escalas em questao.
Outra abordagem possıvel para representacao das notas seria, e claro, o codigo da
frequencia absoluta de cada nota. Esta abordagem e raramente utilizada em sistemas de
composicao, ja que a intencao final e trabalhar com alturas tonais e nao com frequencias.
Alem das notas, e usualmente importante definir como sera representado o ritmo, o
tempo de inıcio e duracao de cada nota. A representacao mais comum e a orientada por
ritmo, ou seja, com o tempo definido em relacao as pulsacoes da musica. E necessario
lembrar de definir a duracao de cada nota quando projetar um modo de representacao
da solucao. Esse tipo de representacao e muito util para musicas que sao orientadas pela
pulsacao.
Outra abordagem e a absoluta, que e a utilizacao de medidas de tempo reais, como
milissegundos. Estas representacoes fogem ao contexto de musicas orientadas a pulsacao
e sao mais apropriadas para composicoes onde eventos acontecem em tempos especıficos.
Em alguns casos tambem e necessario codificar sequencias de eventos que podem re-
presentar linhas melodicas com seu ritmo e notas. Para isto, as abordagens normalmente
sao:
48 Metodologia
Tabela 3.1: Escalas que podem auxiliar o mapeamento do genotipo de umamelodia em fenotipo(Biles 2007b)
Acorde Escala Notas
Cmaj7 Maior (sem 4a) C D E G A B
C7 Mixolidiana (sem 4a) C D E G A B[
Cm7 Menor (sem 6a) C D E[ F G B[
Cm7[5 Locria (sem 2a) C E[ F G[ A[ B[
Cdim Diminuta W/H (Whole/Half ) C D E[ F F# G# A B
C+ Lidiana Aumentada C D E F# G# A B
C7+ Whole Tone C D E F# G# A#
C7#11 Lidiana Dominante C D E F# G A B[
C7#9 Alterada C D[ E[ E F# G# B[
C7[9 Diminuta H/W (Half /Whole) C D[ E[ E F# G A B[
Cm7[9 Frıgia C D[ E[ F G A B[
Cmaj7#11 Lidiana C D E F# G A B
Baseadas em posicao para a representacao de compassos ou frases. Nesta aborda-
gem, existe uma posicao de memoria disponıvel para cada pulso ou subdivisao de
pulso e a nota a ser executada fica salva nesta posicao. Assim, os genes representam
notas e ritmos ao mesmo tempo, enquanto o tamanho do cromossomo pode ser fixo
e ser definido pela granularidade da divisao tomada como necessaria (Biles 1994).
Por exemplo, com uma codificacao de 4 bits, o sımbolo 0 pode representar uma
pausa na melodia, 15 a continuidade da nota anterior e os sımbolos de 1 a 14 notas
especıficas, assim como na Tabela 3.2 e 3.3.
Baseadas em ordem para resolver tambem o problema de duracao. Nesta abordagem,
as notas sao salvas de acordo com a ordem em que aparecem na musica. Cada
nota e representada por sua altura, tempo e duracao.
Baseadas em arvores para abordagens que definam a musica como uma estrutura
hierarquica. Esta abordagem vem da programacao genetica (Johanson & Poli
1998). Os nos interiores podem mapear funcoes musicais como sequencias, re-
peticoes e acordes. Ja as folhas podem mapear notas, descansos ou melodias.
Assim existe a vantagem de se estender a estruturas de nıveis mais altos.
Metodologia 49
Tabela 3.2: Mapeamento possıvel para uma representacao baseada em posicao
Codigo Binario Valor Decimal Representacao
0000 0 Pausa
0001 1 C
0010 2 C#
0011 3 D
0100 4 D#
0101 5 E
0110 6 F
0111 7 F#
1000 8 G
1001 9 G#
1010 10 A
1011 11 A#
1100 12 B
1101 13 C
1110 14 C#
1111 15 Sustentacao
Tabela 3.3: Um indivıduo formado com o mapeamento da Tabela 3.2
Genotipo Binario 0010 — 1111 — 1111 — 0111 — 1100 — 0010 — 1111 — 1111
Genotipo Decimal 2 — 15 — 15 — 7 — 12 — 2 — 15 — 15
Fenotipo!" !# $ %!&$ % $ $'
3.1.3 Inicializacao e Estrutura da Populacao
Apos decidir a abordagem utilizada para representar o conteudo musical, e importante
definir como sera a populacao inicial do processo evolutivo.
Do ponto de vista tradicional dos AG, o mais comum seria gerar a populacao inicial
de maneira totalmente aleatoria. Isso da mais probabilidade ao AG de convergir para
50 Metodologia
solucoes boas pois mais opcoes do espaco de busca estao sendo exploradas. Este modo
de inicializar a populacao, apesar de ser natural na perspectiva de AG e normalmente
muito pouco musical e artıstico. Isso se deve principalmente ao fato desta abordagem
gerar intervalos horizontais muito largos na composicao. Alem disto, desta maneira,
compassos teriam uma distribuicao aleatoria de notas, o que pode nao ser considerado
muito musical.
Quando a populacao inicial e criada aleatoriamente e um mentor avalia a populacao
para definir sua funcao objetivo, esta avaliacao fica muito difıcil. Isso ocorre pois e
extremamente complicado distinguir qual melodia e mais musical em uma populacao
de melodias criadas aleatoriamente. Nesta populacao, provavelmente todas as melodias
serao igualmente ruins, o que impede o processo evolucionario. O importante e que haja
como definir pelo menos quais elementos da populacao sao bons ou ruins. Um exemplo
de uma aplicacao destas foi feita por Burton & Vladimirova (1997).
Para a criacao de um material inicial mais discernıvel, pode-se usar uma populacao
inicial semi-aleatoria. Neste caso, usa-se normalmente material “real”como populacao
inicial. Este material tera assim relacao com material real antes de partir para o processo
evolutivo. Assim, o processo evolutivo pode iniciar-se a partir deste material melodico
ate alcancar novas composicoes. Para a geracao deste material inicial semi-aleatorio,
existem aplicacoes utilizando desde geradores fractais (Gardner 1978) ate cadeias de
Markov (Hiller & Isaacson 1958). A ideia e criar inicializadores aleatorios inteligentes,
que pelo menos se assemelhem com musica, e assim possibilitar a avaliacao por um
mentor.
Uma terceira possibilidade para inicializar a populacao e a utilizacao de um banco de
dados de musicas de qualidade. Neste caso, e garantida a inicializacao da populacao com
indivıduos aceitaveis, o que torna o processo evolutivo um pouco mais facil com o que
pode ser considerado uma trapaca do ponto de vista dos AG onde a populacao inicial
e totalmente aleatoria para facilitar a exploracao do espaco de busca. Esta populacao
inicial pode vir tanto do usuario (Ralley 1995) quanto do estudo de um estilo especıfico
(Prerau 2001).
Mesmo com indivıduos que nao sejam criados de forma aleatoria, e possıvel desen-
volver outros indivıduos muito pouco relacionados com os iniciais, diversos e muito
musicais se existem operadores geneticos musicalmente cientes, como sera analisado na
secao 3.1.5. E importante que, caso possıvel, a origem de cada um destes compassos seja
sempre marcada como modo de manter a diversidade na populacao.
Metodologia 51
Apos a criacao destes indivıduos iniciais, a populacao tera os genotipos de seus in-
divıduos e suas informacoes associadas, como o fitness . A populacao e normalmente de
tamanho fixo e muda a cada geracao.
3.1.4 Selecao
Quando os indivıduos sao selecionados para reproduzir ou para sobreviver, isto nao
ocorre de forma totalmente aleatoria: os indivıduos mais aptos tem maior chance de
selecao. Isto e o que faz crer que apos algumas geracoes existirao indivıduos melhores
que seus ascendentes.
O modo mais simples para resolver este problema e o metodo da roleta. Neste
metodo, e utilizada uma roleta onde os indivıduos mais aptos tem uma maior parte
da roleta. Assim, a roleta gira e os indivıduos mais aptos normalmente sobrevivem,
deixando tambem uma chance para os indivıduos menos aptos, assim como demonstrado
na Figura 3.2.
A roleta é rodadaescolhendo-se um ponto aleatório
Melhor indivíduo temmaior quota da roleta
Pior indivíduo temmenor quota da Roleta
Figura 3.2: Metodo da Roleta
Neste esquema, sendo o fitness de um indivıduo denominado fi
, a porcentagem P (x)
referente ao indivıduo x na roleta e expressa pela Equacao 3.1, sendo n o tamanho da
populacao.
52 Metodologia
P (x) = fx
/
nX
i=1
fi
(3.1)
Um problema deste metodo e que no inıcio do processo as disparidades entre os bons
e ruins indivıduos sao muito grandes. Assim, este metodo pode favorecer os indivıduos
que sao relativamente aptos no inıcio mas nao seriam bons indivıduos finais para o
problema. Isto e denominado convergencia prematura.
Uma maneira simples de resolver este problema e utilizar uma selecao baseada em
posicoes, onde a possibilidade de selecao de um indivıduo nao fosse dependente de seu
fitness mas sim de sua posicao entre os melhores e piores indivıduos, de acordo com uma
formula especıfica, assim como na Figura 3.3.
PosiçãoProbabilidade de Seleção
Método 1Método 2
Figura 3.3: Duas Maneiras Possıveis de Fazer uma Selecao baseada em Posicoes
Na Figura 3.3, duas funcoes possıveis para fazer uma selecao baseada em posicoes
sao representadas. Com esta abordagem, os indivıduos sao ordenados do melhor para o
pior, sendo x a posicao do indivıduo nesta ordenacao. O valor de fx
que define a porcao
deste indivıduo na roleta, passa a ser f(x), de acordo com uma funcao como uma das
duas representadas na Figura 3.3. Deste modo, pode-se evitar a diferenca de valores na
roleta entre as primeiras e as ultimas geracoes.
O processo de selecao sera dependente do modo como os indivıduos sao avaliados.
A selecao pode ser totalmente baseada em aptidao, o que e o mais puro do ponto de
Metodologia 53
vista dos AG. Este e um modo bom de fazer o processo em esquemas de otimizacao
porem pode ser ruim para processos em que se usa a CE para gerar arte. Isso ocorre
pois as vezes, em arte, nao e importante encontrar o melhor indivıduo possıvel de acordo
com um criterio e sim achar uma populacao de frases boas e coerentes entre si. Esta
caracterıstica destaca bem a diferenca entre otimizacao e exploracao do espaco de busca.
A selecao tambem pode ser musicalmente ciente, onde os indivıduos selecionados
dependem da compatibilidade entre si ou existe um mentor humano que avalia os in-
divıduos. A utilizacao de um mentor pode ser boa para sistemas colaborativos mas tem
varias desvantagens sendo a maior delas o gargalo de fitness , onde o longo tempo levado
para a avaliacao atrasa muito o processo evolutivo.
Uma outra saıda possıvel, e fazer esta selecao aleatoriamente, o que tira a pressao
seletiva, fator fundamental dos AG. Estas abordagens podem ser apropriadas quando
existe uma medida de fitness porem deve-se estudar como a populacao pode melhorar
na falta desta medida. Estas especificidades serao melhor discutidas na secao 3.1.6.
Em sistemas evolutivos que trabalham com arte, e ainda mais importante que nem
sempre apenas os melhores indivıduos passem para as proximas geracoes, ja que a ma-
nutencao da diversidade pode ser tao importante quanto a geracao de bons indivıduos.
Assim como na natureza, nem sempre os melhores indivıduos sao os que procriam mais.
Na natureza, “errar”pode ser um modo importante de testar novas possibilidades. Na
definicao de um sistema destes, e necessario definir o quanto e possıvel explorar solucoes
que podem talvez ser vistas no momento como insuficientemente boas para explorar algo
diferente do que pode dominar a populacao.
3.1.5 Operadores Geneticos
A criacao de novos indivıduos atraves das geracoes e feita pelos operadores geneticos, que
possibilitam que nao so os indivıduos iniciais sejam testados mas que tambem ocorra
de fato um processo evolutivo. Os operadores mais comuns sao os de cruzamento e
mutacao, porem diferentes operadores mais complexos podem surgir dependendo da
area de aplicacao.
Estes operadores podem ser cegos ou guiados, ou seja, podem nao ocorrer de forma
totalmente aleatoria. Isto pode ajudar em aplicacoes musicais ja que nem sempre trans-
formacoes totalmente aleatorias sao bem vindas. Se o gene e uma nota, por exemplo, as
mutacoes podem ser guiadas para que certas regras harmonicas ou melodicas nao sejam
54 Metodologia
quebradas no processo.
O processo de cruzamento, via de regra, se baseia em criar um ponto de corte que
possa unir um elemento ao outro para criar um novo indivıduo enquanto a mutacao,
normalmente e feita atraves da troca de valor de um gene qualquer2. Exemplos basicos
destes operadores estao na Figura 3.4.
Cruzamento
Mutação
Figura 3.4: Operadores de Cruzamento e Mutacao
Cruzamento
No operador de cruzamento tradicional e escolhido um ponto de corte aleatorio para
a divisao dos pais e formacao dos filhos. Deste modo, o potencial da populacao pode
ser muito bem explorado ja que mais combinacoes entre os pais podem ser formadas
e os filhos podem ter fenotipos bem diferentes dos pais. Esta e uma boa abordagem
para problemas de otimizacao e problemas musicais que se reduzem a otimizacao, como
combinacao de sons e harmonia.
Quando se trata de ME, o operador de cruzamento quase nunca podera ser usado
plenamente na sua forma tradicional3 pois muitas vezes a intencao e gerar uma populacao
boa e nao um bom indivıduo apenas. Com a analise do fenotipo dos indivıduos, e possıvel
assim escolher pontos de corte que sejam vantajosos para a geracao de material melodico
como, por exemplo, os pulsos de uma musica. Alem do ponto de corte, a maneira como
2Nos casos mais simples, de 1 para 0, ou de 0 para 1.3Como forma tradicional, denota-se a forma antiga de utilizacao do operador: a nıvel de bits. Grande
parte das aplicacoes atuais nao utiliza esta forma de cruzamento.
Metodologia 55
o material e trocado entre os pais tambem pode ser usada para fazer o operador mais
musicalmente ciente.
Via de regra, em ME, os pontos de corte operam a nıvel de notas mais do que a nıvel
de bits. Isso ocorre pois a nıvel de bits novas notas poderiam ser geradas no cruzamento
e estas novas notas provavelmente levariam a solucoes que ou nao valem a pena ser
consideradas ou nao criam mudanca substancial no indivıduo. Essas mudancas seriam
provavelmente intervalos verticais absurdos, como o exemplo da Figura 3.5, onde e usado
como exemplo o mesmo mapeamento da Tabela 3.2 e o cruzamento a nıvel de bits cria
eventos que sao inexistentes em ambos os pais e fazem pouco sentido musical.
!
" #
"
#
!# #
!
"
#$
##
# ## #
!#
#
%
%
##
#
&&
&#! &
Filhos 2
Filhos 1
Pais
%
#$!
#
!
##
!Filho 2
!Filho 1
Filho 1
Pai 1
##
#
#
Filho 2
# !##
#' !
$'!#'
##
#Pai 2
##
#
!
!
&&#
Indivıduo Corte a esquerda Corte a direita Em decimal
Pai 1 0110 1100 1010 1101 111 1 1011 1010 1011 6 12 10 13 15 11 10 11
Pai 2 1110 1111 0000 1110 100 0 0110 0010 0000 14 15 0 14 8 6 2 0
Filho 1 0110 1100 1010 1101 111 0 0110 0010 0000 6 12 10 13 14 6 2 0
Filho 2 1110 1111 0000 1110 100 1 1011 1010 1011 14 15 0 14 9 11 10 11
Filho 1 0110 1100 1010 1101 1111 0110 0010 0000 6 12 10 13 15 6 2 0
Filho 2 1110 1111 0000 1110 1000 1011 1010 1011 14 15 0 14 8 11 10 11
Figura 3.5: Exemplo de Cruzamento a nıvel de bits e a nıvel de notas
Mutacao
O operador de mutacao e utilizado para que mais solucoes do espaco de busca possam
ser exploradas e e normalmente feito com uma simples mudanca do valor de um gene
qualquer do indivıduo (bit-flop). Esta abordagem raramente funciona em ME, principal-
mente por gerar deslocamentos horizontais muito grandes na melodia, alem de nao ter
relacao estetica qualquer com a arte em questao. Alem disto, no caso da utilizacao de
56 Metodologia
um mentor, este nao pode ouvir um excesso de opcoes absurdas de melodias geradas por
processos que apenas as mudam mas provavelmente nao as melhoram. Em sistemas que
funcionam em tempo real, tambem existe a expectativa que as geracoes futuras soem
bem logo apos a mutacao.
Em sistemas para criacao de arte e normalmente desejavel que os indivıduos mutados
sejam melhores do que seus ancestrais - ou pelo menos nao piores. Assim, em ME os
operadores nao podem ser “burros”e baseados em baixas probabilidades. As mutacoes
devem ser musicalmente significativas.
Uma alternativa muito simples e que os usuarios possam mutar estes indivıduos a
mao (Unemi & Senda 2002). Isso pode tambem ser considerado trapaca em relacao a
abordagens mais convencionais de CE porem pode gerar bons resultados para usuarios
interessados em gerar sons agradaveis mais do que mostrar do que a CE e capaz. Um
problema deste tipo de mutacao e o mesmo da utilizacao de um mentor para avaliacao
musical: o gargalo de fitness .
Operadores Musicais
Podem tambem entrar na fase de mutacao, outros operadores que facam mudancas no
indivıduo e que podem funcionar em paralelo. Operadores especıficos sempre ocorrem em
problemas de codificacao mais complexa. Alguns exemplos do que operadores musicais
podem fazer sao:
• Inverter as posicoes das notas de uma sessao aleatoriamente determinada de um
genotipo
• Levar uma sessao de um lugar para outro ou fazer uma troca entre duas partes.
• Adicionar copias extras de genes em outra parte da composicao
• Apagar partes da melodia ou troca-las por pausas
• Mudar a altura tonal de algumas ou todas as notas
• Deslizar a posicao das notas em um compasso
• Ordenar uma sessao de notas por suas alturas tonais
• Inverter os intervalos horizontais de uma melodia, considerando a media das alturas
tonais ou nao
Metodologia 57
• Uma mistura das opcoes descritas
Dependendo da maneira como a representacao e feita, estes operadores podem ter
efeitos diferentes sobre as musicas. No caso de representacao das notas por sua posicao,
onde e comum definir codigos para pausas ou para sustentacao de uma nota, a estrutura
rıtmica de uma frase pode mudar completamente com a utilizacao de alguns destes
operadores. No caso de uma representacao das alturas tonais relativas, heurısticas podem
definir que notas repetidas serao substituıdas por cromatismos, o que muda a forma como
uma ordenacao de uma sessao pela altura tonal pode atuar em um indivıduo.
Operadores tambem podem ser utilizados levando em consideracao condicoes da po-
pulacao corrente. Em alguns casos, em que cada indivıduo representa um compasso,
dois compassos podem funcionar como um compasso longo que pode sofrer a acao de
operadores especıficos.
Operadores especialmente projetados para a aplicacao especıfica podem fazer com
que o genotipo cresca ou encolha. Assim, estes devem ser utilizados com cuidados,
podendo ser definidas taxas de utilizacao destes operadores, que podem inclusive ser
modificadas em relacao a situacao da populacao. Por exemplo, cruzamento 100%, In-
versao 50%, Mutacao 5% e a probabilidade de duplicar sessoes depender da quantidade
de apagamento de sessoes utilizada. Em alguns casos, estas proprias taxas podem ser
controladas por um outro AE.
3.1.6 Funcao de Avaliacao e Definicao do Fitness
A avaliacao dos indivıduos e talvez a area que gera mais questionamentos em sistemas de
CA. Em qualquer sistema de producao artıstica automatica e muito difıcil decidir como
medir o fitness e quais as necessidades de uma boa solucao. E necessario responder estas
perguntas para que se defina quem produzira a proxima geracao. No fim do processo,
de uma maneira ou de outra, a qualidade de uma solucao devera ser medida por escalas
numericas.
Um ponto que nao pode ser esquecido e que de qualquer maneira a funcao de avaliacao
de uma solucao deve pelo menos distinguir entre bons e ruins indivıduos, pois e isto
que levara o processo adiante. Avaliacao pode ser uma simples funcao matematica ou
resultado de uma simulacao mais complexa. A avaliacao tambem depende muito da
aplicacao especıfica de um problema, cuja intencao de avaliacao pode ser a similaridade
58 Metodologia
com uma musica alvo, o respeito a teorias musicais ou tecnicas musicais especıficas.
A avaliacao de uma melodia, por exemplo, pode incluir varios aspectos esteticos.
Assim, a questao sera como codifica-los em escalas numericas que estejam bem forma-
lizadas. E difıcil criar definicoes matematicas para aspectos puramente esteticos e por
estas razoes, medidas totalmente automaticas de fitness costumam gerar varios pro-
blemas. Como alternativa a estas medidas automaticas, pode-se fazer o processo sem
fitness , com fitness mınimo ou aleatorio, como sera descrito nas proximas subsecoes.
Cada modo de avaliar os indivıduos possui problemas especıficos. As principais manei-
ras de se medir o fitness de indivıduos sao as seguintes:
• Automatico
– Heurısticas
– Baseados em regras
– Aprendidos
• Interativo
• Sem aptidao
Apostilas de formas musicais podem ser consideradas para definir aspectos a serem
avaliados em composicoes e demonstram ser naturalmente algorıtmicas. Isso ocorre
principalmente com aquelas baseadas em modelos ja existentes de estilos musicais. Um
problema de se basear demais neste metodo de criacao de regras e que pode se per-
der a essencia artıstica dos resultados. O objetivo da ME e sempre criar composicoes
proximas ao que compositores humanos realmente compoem e os metodos podem se
tornar ineficazes quando um excesso de regras e aplicado. O processo criativo nao se
baseia puramente em apostilas e composicoes boas normalmente quebram estas regras
de algum modo.
E importante lembrar que um AE sempre sera naturalmente limitado por seu pro-
jeto (genotipo, operadores, funcoes) e nao criara aspectos novos para os quais nao foi
programado. Os maiores problemas de avaliacao das solucoes e que nos casos em que a
aptidao e medida de forma automatica, a saıda deve ser formalmente codificada e esta
codificacao de aspectos esteticos e muito difıcil. Ja na aptidao humana, o problema e
que as solucoes devem ser comprimidas para que o mentor possa escutar pelo menos um
pouco de cada indivıduo antes de analisa-los.
Metodologia 59
Assim deve ser definido inicialmente no que sera baseada a avaliacao, em regras ou
em modelos de composicao reais. Mesmo musicas que podem ter de algum modo um
modelo especıfico podem mudar este modelo com o passar do tempo. Pode ocorrer
inclusive uma juncao destes diferentes modelos para a criacao de novas composicoes mas
nao se sabe se isto poderia ser considerada uma composicao, de fato, livre.
Independente de como as regras do sistema serao definidas, e necessario ter a base do
sistema no que os compositores realmente fazem. A criacao de musica nao e simplesmente
baseada em regras simples de composicao, pois estas regras sao definidas apenas quando
um certo perıodo musical passado e analisado. Nao se pode entao basear a musica
fortemente em modelos que sao normalmente descritos com fins pedagogicos e tem uma
forte tendencia a simplificar ou distorcer em demasia pensamentos que sao complexos
em sua raiz.
Existe um dilema claro na definicao destes parametros ja que um sistema essen-
cialmente baseado em regras provavelmente tera resultados que se assemelharao com
exercıcios ou replicas de musicas conhecidas. Enquanto isso, para a criacao de mate-
rial mais criativo, poder-se-ia imaginar um sistema com poucas regras, do qual sairiam
varias ideias criativas. Porem, neste caso a abordagem seria mais uma vez problematica
pois uma quantidade enorme de material inadequado seria gerada sem aproveitamento.
De qualquer maneira, e necessario fornecer opcoes de que algumas regras sejam que-
bradas em qualquer sistema em que exista a intencao de criar material mais criativo.
Senao, os sistemas serao mais criadores de replicas do que compositores. Tudo que o
computador avalia pode ser feito apenas de maneira algorıtmica.
Avaliacao Automatica
Varias funcoes de avaliacoes heurısticas foram desenvolvidas e normalmente levam em
consideracao avaliacoes e percepcoes do autor do algoritmo (Ames 1992). E um metodo
muito usado em melodias e normalmente definem consideracoes sobre intervalos, densi-
dade das notas sobre a quantidade de pausas, variedade rıtmica entre outras.
Percepcoes musicais do autor podem levar a conclusoes que ocorrem via de regra sobre
o processo de composicao. Estas percepcoes podem tambem, claro, vir de apostilas de
teoria musical. Usualmente, o autor do algoritmo desenvolve algum conceito e soma a
ele alguns valores. Os conceitos utilizados nestes algoritmos, deste modo, tendem a ser
fracos e ter validade questionavel.
60 Metodologia
Ja os sistemas de avaliacao automatica baseados em regras tem como fundamento
teorias musicais que tem regras constantes. Esses sistemas tenderao deste modo a gerar
musicas que sao muito similares entre si e terao dificuldades para perceber e avaliar
positivamente quando algo com alguma especificidade boa aparecer em alguma geracao.
Isso ocorre porque, por se tratar de arte, uma musica pode ser teoricamente correta
porem ruim.
O sistema pode ignorar musicas boas pois algumas composicoes sao boas justamente
por quebrar as regras propositalmente. Em alguns casos, pode ser ate suficiente encerrar
o algoritmo apos encontrar otimos locais em vez de continuar uma busca por um otimo
global. Estes sistemas baseados em regras tendem a funcionar melhor quando utilizados
para geracao de musica de um genero e contexto especıficos (Polito, Daida & Bersano-
Begey 1997).
Uma ultima possibilidade e utilizar esquemas de aptidao aprendidos, nos quais sao
utilizadas tecnicas mais robustas de avaliacao, como RNA (Biles, Anderson & Loggi
1996). Com a aplicacao destas tecnicas, espera-se obter funcoes de avaliacao mais ro-
bustas, sendo as proprias RNA a tecnica dominante. Estas tecnicas nao incluem por si
so feicoes musicais que sao facilmente computaveis.
As RNA podem utilizar como entrada caracterısticas observadas pelo autor, como
nas avaliacoes heurısticas, ou a melodia em si. A escolha desta entrada e crucial. Ape-
sar de parecer uma otima escolha para desenvolver avaliadores de sistemas de CA, as
experiencias com RNA mostram que elas nao conseguem desenvolver capacidade de
generalizacao alem do conjunto de exemplos com o qual e treinada (Biles, Anderson
& Loggi 1996). Isso provavelmente ocorre pela falta de caracterısticas computaveis e
falta de informacao, no caso das RNA que utilizam o proprio material melodico para
treinamento.
Interativo
Para todos os sistemas evolutivos para criacao de arte, sempre ocorre a discussao de
um modo de avaliacao das solucoes obvio: a avaliacao humana4. Teoricamente, a ava-
liacao poderia resolver todos os problemas existentes nos modos de avaliacao automatica.
4Este tipo de avaliacao pode ser utilizado para evoluir uma musica ou estilo especıfico quando aintencao e desenvolver um musico virtual que funcionara em tempo real mais tarde. Neste caso, omelhor e que esta evolucao seja direcionada a um estilo especıfico, para que o musico virtual nao percaa capacidade de generalizacao, alem de nao cansar o mentor.
Metodologia 61
Sem embargo, existem tambem varios problemas envolvidos na aplicacao deste modo de
avaliacao.
O primeiro deles, e talvez o mais obvio e simples, e que deve-se desenvolver um
sistema coerentemente funcional e robusto de IHC. A interface da aplicacao deve ser
simples para que o mentor possa focar em sua tarefa. Profissionais com interesse nesta
area precisam dar sua contribuicao para que usuarios com experiencia em musica possam
ter assistencia adequada para fazer seus julgamentos de forma simples e intuitiva.
Outro problema, e talvez mais complexo, e o tamanho da populacao. Este tamanho
da populacao normalmente vai de duzias a centenas de indivıduos e como a musica e
uma arte temporal, o usuario precisara de tempo para ouvir todos estes indivıduos por
todas as geracoes. Em sistemas de domınio temporais com avaliacao humana, existe este
problema denominado gargalo de fitness .
Uma maneira de resolver o problema do tempo necessario de uma maneira relativa-
mente simples e mostrar apenas alguns trechos da musica ao usuario. Por outro lado,
como a avaliacao de apenas um pedaco de uma composicao pode levar a conclusoes
precipitadas, isto gera um outro inconveniente que e uma decisao a ser tomada entre
o tamanho da amostra e a validade da avaliacao. Um ouvinte tambem pode dar uma
avaliacao insensata para a musica por ter escutado uma parte que nao gostou pois pes-
soas diferentes tem diferentes gostos em partes diferentes. Este problema e denominado
problema de granularidade.
Alem disto, a questao vai alem de o usuario ter ou nao tempo para fazer todas as
avaliacoes, ja que tarefas de avaliacao exigem concentracao do usuario, o que em musica
se diz quando o musico esta com ouvidos “frescos”para analisar e avaliar uma certa
musica. O usuario nao deve apenas avaliar as musicas individualmente mas compara-las
e dar notas boas a indivıduos que mesmo ruins sejam melhores do que os outros. Assim,
com o passar de pouco tempo, a avaliacao do mentor pode estar tao prejudicada que leve
a medidas de fitness piores do que as automaticas, enquanto deveriam apenas solucionar
seus problemas.
Sem aptidao
Em alguns casos, uma abordagem mais minimalista pode ser aplicada tanto ao problema
do gargalo de fitness quanto ao das dificuldades de codificacao de medidas automaticas
de estetica: fazer um AG sem pressao seletiva. Com esta abordagem os problemas
62 Metodologia
principais desaparecem enquanto novas questoes devem ser resolvidas.
A principal questao usando esta abordagem e como se pode obter controle da peca
se o processo de selecao se dara de forma aleatoria, o que tira a pressao seletiva que faz
com que a populacao evolua. A resposta desta questao deve estar fundamentalmente
nos processos que geram a populacao inicial, que devem ser robustos o suficiente para
gerar solucoes ja inicialmente robustas, e nos operadores geneticos, que devem manter a
musicalidade dos indivıduos com os quais estao trabalhando.
Nestes sistemas, o principal modo de controle sobre o estilo da peca e atraves da
populacao inicial, como mostram os experimentos de Waschka II (2007), que utilizou
o segundo movimento da Sinfonia no7 de Beethoven como populacao inicial para criar
sua obra, Empty Frames. As obras criadas por esta abordagem tiveram indicacoes de
sucesso como execucoes em varios paıses, gravacoes e crıticas positivas.
A vantagem desta abordagem pode ser criar novas melodias baseadas em melodias ja
existentes mesmo quando nao sao conhecidas as regras especıficas do estilo de composicao
da melodia de entrada. Assim, nao e necessario se apoiar apenas em regras musicais
antigas de estilos muito bem estudados, que podem levar o algoritmo a solucoes pouco
criativas, nem em percepcoes do autor que podem variar consideravelmente e ser pouco
confiaveis.
Um mentor pode ser utilizado na composicao mas desta vez nao para avaliar os
indivıduos e sim para controlar o processo de mutacao, fazendo assim uma trapaca
para embelezar os indivıduos para a proxima geracao. Estes artifıcios podem ser muito
bons em sistemas em que nao se procura bons indivıduos em relacao a uma codificacao
determinada mas sim uma populacao de indivıduos musicalmente bons que podem ser
utilizados em situacoes praticas.
Outro ponto e que pode haver certa discussao sobre a utilizacao de CE nestas
condicoes. Na verdade, a utilizacao de metodos biologicamente inspirados ainda se justi-
fica pois todo o arcabouco evolutivo ainda esta presente e util no processo, mesmo que a
pressao seletiva seja convenientemente fraca para convergir para solucoes que satisfacam
uma funcao objetivo previamente definida.
Estas medidas aleatorias de aptidao podem funcionar com regras mınimas, que pelo
menos deem menos preferencia a indivıduos que nao atendem a algumas expectativas.
Estas regras podem estar incluıdas no processo de avaliacao, como usual, ou embutidas
no proprio processo evolutivo, na escolha dos indivıduos. Um exemplo de regra possıvel e
Metodologia 63
que pedacos musicais que tenham frequencias muito altas nao possam reproduzir muitas
vezes, o que pode deixar a melodia mais natural.
Esta abordagem sera frequentemente usada quando a populacao inicial e gerada por
musicos, que podem criar um banco de dados. Uma populacao criada por musicos
dificilmente sera pior do que uma criada sem interferencia humana, ja que os metodos
para faze-lo sao baseados em codificacao da estetica humana. Em muitos casos de
aplicacoes artısticas, apenas mutacoes podem criar indivıduos tao bons quanto os pais,
sem ajuda de um mentor, com mudancas puramente artısticas.
Apesar deste modo de avaliacao nao refletir completamente o paradigma mais purista
do funcionamento de AE, pode levar a resultados que agradem ouvintes desinteressados
no modo como a peca foi produzida e sim em sua qualidade. De certo ponto de vista,
algoritmos com este tipo de avaliacao podem nao ser considerados CE. Por outro lado,
podem existir medidas de fitness implıcitas quando ocorre a utilizacao de heurısticas na
selecao dos compassos que farao cruzamento ou no modo como os operadores geneticos
serao aplicados em relacao a configuracao da populacao. De qualquer maneira, algorit-
mos deste tipo sao pelo menos inspirados em CE.
Eliminando-se o gargalo de fitness desta maneira alguns algoritmos podem nao ser
mais considerados CE, mesmo com o fitness implıcito dos operadores. Ja sendo inspirado
em CE e tendo operadores geneticos robustos, da perspectiva de algoritmos que geram
e testam solucoes ate certo criterio de parada ser atingido, estes algoritmos podem ser
algoritmos tao bons que nao precisam nem testar as solucoes (Biles 2002b). Isso cria
um paradoxo entre sistemas de arte evolutiva, com operadores geneticos inteligentes e
medidas de fitness burras, e a CE convencional, com operadores burros e medidas de
avaliacao inteligentes.
Finalmente, e importante tirar o foco desta questao na medida em que nao e muito
relevante se tais sistemas sao considerados CE ou nao, desde que funcionem bem.
3.1.7 Substituicao dos Pais
O processo de substituicao e usualmente emparelhado com o de selecao. Via de regra,
apenas indivıduos indicados pelo processo de selecao substituem os pais, porem, em
alguns casos, elitismo pode ser utilizado e uma certa quantidade dos melhores pais pode
ficar na proxima geracao de modo nao aleatorio.
64 Metodologia
A substituicao tambem pode ser de maneira contınua, a medida que os filhos sao
gerados, um a um, ou em estilo geracional, ou seja, a populacao inteira e substituıda
apos a geracao de todos os filhos.
Como em musica, muitas vezes, a busca por uma populacao boa que pode ser usada
em conjunto pode ser mais importante do que a descoberta de uma unica solucao otima,
algumas peculiaridades podem ocorrer no processo de substituicao dos indivıduos.
Quando e desejavel que haja, alem de varias solucoes de qualidade, solucoes que
sejam diversas entre si para serem usadas em um contexto mais amplo, a diversidade
entre os elementos pode ser levada em consideracao para a escolha dos elementos a serem
substituıdos. Essa abordagem deve ser considerada em sistemas onde toda a populacao
sera usada para a geracao de um conteudo musical mais amplo, como no estudo de Biles
(1994).
O modo como a substituicao ocorrera tambem deve ser bem analisado quando existe
a intencao de se criar algoritmos de CA que funcionem em tempo real, em que o tempo
de espera entre uma geracao e a outra nao pode ser muito longo. Nestes sistemas,
uma caracterıstica presente tanto na musica quanto na evolucao pode ser aproveitada
de maneira tacita: ambos sao processos temporais (Lischka 1991). Estudos deste tipo
foram feitos por Moroni, Manzolli, Zuben & Gudwin (2000).
As criacoes dos algoritmos realizadas em tempo real devem considerar uma base
harmonica que mudara em tempo real e pode ser uma repeticao da musica, uma pro-
gressao harmonica baseada no improviso ou uma modificacao de uma progressao ja
presente na musica. A consideracao de que o improviso pode ocorrer isoladamente, de-
senvolvendo ideias com ajuda de um mentor ou com uma base de dados de referencia,
ou em resposta ao improviso de outra pessoa complica substancialmente o problema.
Quando aproveitando a caracterıstica temporal da evolucao para geracao de com-
posicoes e importante notar o fato de que apos varias geracoes um processo ocorre em
algoritmos evolutivos: o takeover . Isto quer dizer que apos algumas geracoes os in-
divıduos comecam a ficar semelhantes entre si, o que no caso de uma analogia com o
processo temporal representara uma repeticao de material musical. Nestes casos, alguma
solucao deve ser tomada. Se esta repeticao de material musical leva a um fim coerente
do material musical, o algoritmo provavelmente pode ser encerrado. Se o takeover ocorre
muito prematuramente, uma opcao e reinicializar a populacao, aumentar o tamanho da
populacao inicial ou ambas.
Metodologia 65
Outra ultima opcao para o takeover pode ser manter alguns indivıduos de geracoes
passadas ainda como candidatos a reproducao (holdover). Assim como na biologia,
indivıduos podem reproduzir em tempos diferentes e talvez possam esperar mais de uma
geracao e ainda ter uma chance para reproduzir.
Alem disto, caso a populacao inicial nao seja gerada aleatoriamente, a populacao
pode receber indivıduos de um banco de dados externo de acordo com necessidades
especıficas do problema. Isso pode ocorrer trocando um indivıduo ruim por outro que
seja de alguma maneira considerado bom e que pode levar diversidade para a populacao
antes da convergencia para um takeover , esse indivıduo pode vir de outras partes da
musica quando uma representacao hierarquica da musica e utilizada.
3.1.8 Consideracoes
Talvez o principal fato a ser notado no desenvolvimento de sistemas evolutivos para CA
e que e uma tarefa na qual a discussao no domınio relevante e indispensavel. Qualquer
tentativa de criacao de sistemas de CA sem estudo sobre teoria musical nao sera frutıfera.
Quando o projeto passa a se concretizar e a interacao com musicos se torna real,
outra vertente pouco abordada tambem vem a tona: a transformacao do algoritmo
bruto em um sistema robusto com uma interface amigavel ao usuario. Isso faz com que
o sistema seja efetivamente utilizado por musicos e esta interacao real com o pessoal
da area aumenta as possibilidades de descoberta de novas potencialidades do algoritmo
em questao. Estas ferramentas para que compositores possam explorar as possibilidades
do programa de maneira mais simpatica sao ainda mais fundamentais para aplicacoes
direcionadas a execucoes ao vivo, uma area bastante promissora.
E clara a diversidade de opcoes que se abrem com a CE, como timbres impossıveis de
se atingir com instrumentos reais, que podem ser criados atraves de sistemas de sıntese
de som. Com a CE, um novo paradigma tambem surge para sistemas de composicao, ja
que podem ser criados sistemas que nao sao simplesmente baseados em regras simples e
podem mudar a abordagem na maneira de criar musicas mais criativas e elaboradas de
maneira automatica.
Algoritmos tem grande potencial para geracao de musicas, pois, assim como ja citado,
o processo de composicao e, de fato, em grande parte algorıtmico. O comportamento de
varios modelos sao de tal maneira em que se pode perfeitamente estabelecer analogias
com o que musicos realmente fazem. As possibilidades criativas de como a estetica pode
66 Metodologia
ser codificada em AE podem acrescentar muito as praticas tradicionais dos musicos.
Assim, mesmo sendo cedo para fazer conclusoes gerais sobre a area de ME, e per-
ceptıvel que existe muito potencial para o desenvolvimento de novas aplicacoes e que a
exploracao desta area evolutiva e adaptativa e frutıfera sem duvida alguma.
3.2 Gerador Melodico
O gerador de melodias proposto neste trabalho utiliza uma populacao de compassos com
uma avaliacao de fitness implıcita mınima. O processo de composicao e o proprio pro-
cesso evolucionario e todos os indivıduos de todas as geracoes sao candidatos a estarem
na melodia final.
Neste contexto, apresentamos neste trabalho um algoritmo evolucionario para a
evolucao de melodias representadas como uma populacao de varios compassos, sem a
intervencao de um humano como mentor do processo. Contudo, nossa abordagem se
diferencia de abordagens anteriores pelos seguintes aspectos:
• O gerador de melodias proposto tem uma populacao de compassos e uma medida
mınima de fitness
• A populacao de cada geracao representa uma melodia
• O processo de composicao e o proprio processo evolutivo e todos os indivıduos sao
candidatos a estarem na melodia final
• Os operadores geneticos sao criados e adaptados da literatura
• Uma estrategia baseada na ordem das notas e definida
• E proposto um metodo para monitorar o takeover e estas informacoes sao usadas
para selecionar a geracao da qual a populacao formara a melodia final retornada
pelo algoritmo
• Evita-se a dificuldade de definir o numero de geracoes necessarios para executar o
algoritmo simplesmente com sua execucao ate que ocorra um takeover
Com esta abordagem, tenta-se resolver o compromisso entre originalidade e diversi-
dade em um sistema evolucionario musical. Uma Matriz de Takeover e definida com
Metodologia 67
Tabela 3.4: Representacao de uma Solucao do Gerador Melodico
Faixa Canal Nota Velocidade Note on Note o↵
1 1 60 90 0.0 0.5
1 1 62 95 0.5 1.0
... ... ... ... ... ...
1 1 74 93 10.5 11.0
o objetivo de quantificar a relacao entre as melodias em diferentes geracoes. Atraves
desta Matriz, pode-se decidir qual melodia de um processo evolucionario inteiro pode
ser retornada como melodia final, em vez de usar apenas medidas usuais de avaliacao de
fitness . Esta decisao e baseada na variacao da Matriz de Takeover durante o processo.
Esta secao descreve o gerador de melodias implementado neste trabalho. Inicial-
mente, apresenta-se o modo como os compassos e melodias sao representados e os ope-
radores geneticos adaptados para esta representacao. Em seguida, da-se a definicao da
Matriz de Takeover, usada para selecionar a melodia final retornada pelo algoritmo.
3.2.1 Estrutura de Dados e Parametros
Para a representacao de melodias, o tamanho da representacao de uma solucao pode
ser fixo ou variavel, dependendo de suas necessidades. As vezes, a representacao de um
problema pode ser obvia mas isto nao acontece normalmente no processo de composicao
e formas de representacao mal planejadas podem levar a espacos de busca difıceis de se
explorar e algoritmos de composicao inuteis.
O gerador melodico utiliza uma abordagem pela ordem das notas para sua repre-
sentacao, que tem as alturas tonais representadas de maneira absoluta, o que permite a
designacao de qualquer nota a um instrumento qualquer. Isso faz com que o tamanho
de um indivıduo seja variavel. A estrutura basica de como uma solucao, ou conjunto de
solucoes, pode ser representada e mostrada na Tabela 3.4, onde cada linha representa um
evento. Para o gerador de melodias, a representacao de toda a populacao esta definida
em uma matriz em que cada linha representa um evento. Apos a execucao do algoritmo,
esta matriz pode ser convertida em um arquivo de formato MIDI.
As primeiras duas colunas representam a faixa e o canal utilizados para a execucao da
68 Metodologia
respectiva nota. Todas as notas executadas por um mesmo instrumento devem utilizar
a mesma faixa para que estas sigam mais tarde parametros especıficos que podem ser
determinados para certo instrumento. Ja cada canal representa um timbre com o qual
as notas podem ser executadas. Desta maneira, podemos ter duas faixas que usam o
mesmo canal para termos o mesmo timbre executando duas partituras diferentes.
As notas sao representadas de forma absoluta. Via de regra, apenas as notas da
escala igualmente temperada podem ser representadas pelo padrao MIDI. Cada numero
nao-negativo pode ser usado para representar uma nota, a partir do primeiro do. Como
referencia, quando os numeros sao mapeados em notas, a notacao anglo-saxonica (Tabela
2.1) e comumente utilizada.
A distancia tonal entre cada uma destas notas e de meio tom e as notas que nao
sao sustenidas sao consideradas notas naturais, ou as teclas brancas do teclado, como
na Figura 3.6. Assim, a distancia entre notas naturais pode ser de meio ou um tom. O
conjunto das notas naturais compoe tambem a escala natural de do. As notas que estao
entre as notas naturais podem ser consideradas sustenidas em relacao a mais baixa das
duas notas ou bemol em relacao a mais alta das duas notas. Quando representamos
notas de forma absoluta na notacao MIDI, normalmente nao se fala em nota bemois
pois o correspondente sustenido e utilizado.
C D E F G A B C D C D... ...
E F G A B
Figura 3.6: Notas em um Piano: as teclas brancas acionam as notas naturais
A primeira nota que pode ser representada com o numero 0 e o C0. Como existem
varias frequencias que correspondem a uma mesma nota, o numero 0 apos o C indica
que deve ser executado na frequencia mais baixa possıvel. Como existem 12 notas na
escala temperada e um numero para cada nota em uma representacao absoluta, qualquer
numero multiplo de 12 representara um do.
Da mesma maneira, qualquer multiplo de 12 mais 2 representa um D. Na concepcao
musical, quanto maior o numero apos a nota, ou a frequencia utilizada para reproduzi-la,
mais alta e a oitava utilizada. O nome deriva das sete notas da escala natural, sendo
Metodologia 69
que a oitava seria a primeira nota novamente porem em uma frequencia mais alta.
Como as notas sao representadas com valores absolutos, os operadores geneticos tem
a liberdade de gerar qualquer nota, contrastando assim com as formas de representacao
relativas baseadas em escalas musicais.
Na Tabela 3.4 tambem pode-se perceber uma coluna chamada velocidade e esta
pode assumir valores de 7 bits. O conceito de velocidade vem da ideia de que quanto
maior a velocidade com que se ataca um instrumento, maior sera a amplitude do som
gerado por ele. Assim, com os valores de velocidade podemos controlar a intensidade de
uma nota em relacao as outras.
Por ultimo, e necessario especificar quando uma nota deve ser executada e qual sua
duracao. Para isso, e necessario o valor de note on, onde sera especificado quando uma
nota deve ser executada, e o valor de note o↵ que deve ser igual ao valor do note on mais
a duracao desejada para a nota. As medidas sao em unidades de tempo relativas. Se se
tem um compasso de quatro pulsos e quer-se considerar que o tamanho do compasso sao
de 2 unidades relativas de tempo, para o primeiro compasso, temos o pulso 1 iniciando no
tempo 0.0, o pulso 2 em 0.5, o pulso 3 em 1.0 e o pulso 4 em 1.5. Assim, considerando-se
um compasso de tamanho n, qualquer valor k � 1 multiplicado por n resulta no tempo
em que o compasso k esta iniciando, sendo k um inteiro positivo.
Os operadores geneticos propostos trabalham basicamente com os valores das colunas
3, 5 e 6, que sao relacionadas aos parametros (⌘i
, ti
, �i
), sendo ⌘i
2 {0, . . . , 127} a altura
tonal de uma nota i, ti
2 R+
a posicao de inıcio desta nota no tempo e �i
2 R⇤+
a duracao
desta.
Como uma representacao baseada na ordem das notas e utilizada, melodias sao repre-
sentadas como uma lista de elementos com alturas tonais e posicoes no tempo (⌘i
, ti
, �i
).
Isso cria a possibilidade de qualquer valor de tempo para ti
e �i
. Este modelo tem feicoes
diferentes das estruturas de cromossomos baseados na posicao dos genes, como feito por
Biles (2007b). Em abordagens baseadas em posicao, cada gene representa uma fracao
de tempo e indivıduos tem um tamanho fixo. Cada gene tem um valor de ⌘i
enquanto
a propria posicao de um gene define ti
. Alem das notas, alguns valores adicionais sao
necessarios para representar eventos de pausas ou sustentacoes das notas para parar ou
manter as notas soando. So assim, o valor de �i
pode ser definido – porem apenas como
valores multiplos da duracao de apenas um gene.
Uma melodia com qualquer estrutura rıtmica pode ser representada em um esquema
70 Metodologia
de representacao baseado em ordem. Assim, esta opcao e mais apropriada para este
trabalho pois assim resultados com relacao estetica com a populacao inicial podem ser
gerados. Alem disto, outras implicacoes desta escolha ocorrem na aplicacao dos opera-
dores geneticos, como descrito nas proximas secoes.
No gerador de melodias, cada compasso e um indivıduo. Se nao existem notas em um
dado compasso, este e considerado uma pausa e pode continuar no processo evolutivo
normalmente. Para nao haver a necessidade de percorrer toda a tabela a procura de
indivıduos, pode ser criado um vetor que aponta para a posicao inicial de cada indivıduo,
assim como na Figura 3.7. Deste modo, a populacao deixa de ser a lista de notas e eventos
em si e cada indivıduo passa a ser um ponteiro para a posicao da lista onde estao as
notas as quais e relativo. Os ponteiros que nao apontam para lugar algum da lista nao
tem eventos e representam um compasso de pausa apenas.
Indivíduos
x x x x x x x x x x x x x x x x x x x x x x x x x
Eventos/Notas
Figura 3.7: Ponteiros para a posicao dos indivıduos
Para a geracao de melodias, e utilizada uma abordagem na qual cada indivıduo re-
presenta um compasso. Assim, como e muito comum em sistemas de arte evolutiva, o
objetivo maior nao e exatamente a geracao de um indivıduo otimo e sim de uma po-
pulacao de indivıduos bons. Com varios indivıduos bons, ao fim do processo, varios
indivıduos podem ser escolhidos de maneira musicalmente ciente para formar uma po-
pulacao final.
Na selecao projetada para este gerador melodico, algumas vantagens apenas possıveis
em sistemas que nao trabalham em tempo real foram exploradas. A principal delas e que
os indivıduos utilizados como resposta do algoritmo e considerados como os melhores
nao precisam ser necessariamente os da ultima geracao analisada.
Como uma medida boa da qualidade de uma populacao de melodias, tomadas como
um todo para compor uma peca maior, pode ser a diversidade, esta ultima pode nao
ser maior na ultima geracao analisada, a medida que o takeover tera ocorrido ou estara
Metodologia 71
iminente. O modo de avaliar a qualidade das solucoes implicitamente por sua diversidade
em relacao aos outros elementos e feito por um metodo criado denominado matriz de
takeover e sera melhor definido na secao 3.2.4.
3.2.2 Operadores Geneticos
Mutacoes e cruzamentos entre dois pais, sem consideracao de sexo5, sao utilizados para
conduzir melodias iniciais a material novo, que tera com certeza relacao com o estilo da
populacao inicial escolhida pelo autor. A medida que a evolucao ocorre, a relacao entre o
material musical utilizado e o novo sendo gerado podera ser percebido pelo usuario. Nos
compassos 3 e 4 da Figura 3.8 estao representados dois filhos possıveis de um cruzamento
entre os pais dos compassos 1 e 2, tendo o tempo 3 como ponto de corte.
! ! !!!Filho2
!!! ! !!! !!"3
!Filho1
!!! !Pai1
! !!!! !! ! !!#" ! !!Pai2
Figura 3.8: Cruzamento Melodico
Os operadores geneticos sao as principais ferramentas para a criacao de novos in-
divıduos e eles podem ser guiados para considerar algum tipo de conhecimento implıcito
do problema (Michalewicz & Fogel 2004). Operadores guiados corrigem o genotipo para
que solucoes absurdas nao sejam geradas.
Tradicionalmente a escolha do ponto de corte e feita aleatoriamente, o que e bom
para explorar o potencial da populacao. Isto e apropriado para tarefas musicais que
podem ser reduzidas a um problema de otimizacao, como a combinacao/geracao de
sons e geracao de harmonias. Porem, como as vezes nao queremos um indivıduo bom
mas uma populacao, o ponto de corte pode ser limitado a pontos que sao vantajosos
musicalmente, analisando-se o fenotipo primeiro.
Nao e interessante para o gerador de melodias ter simplesmente um percentual das
5A consideracao de sexo pode ser comum em ME, ja que a relacao existente entre dois indivıduoscom material musical pode ser uma boa medida de fitness
72 Metodologia
primeiras notas de um pai e outro percentual das ultimas notas do outro pai pois isto
nao seria musicalmente ciente. Assim, o ponto de corte do gerador de melodias e feito
em relacao aos pulsos do compasso e apenas os valores inteiros sao aceitos. Assim, um
filho gerado de dois pais com o ponto de corte no inıcio do tempo 3 em um compasso de
4 tempos tera as notas dos tempos 1 e 2 do pai 1 e as notas dos tempos 3 e 4 do pai 2.
Se o pai 2 for uma pausa, todos os pulsos herdados do pai 2 serao pausas.
Ja a mutacao simples e feita dando um novo valor a um gene, isso esta representado
no compasso 2 da Figura 3.9. No exemplo, a quarta nota sofre uma mutacao de meio
tom. Todas as mutacoes da Figura 3.9 estao feitas sobre o compasso 1, que e uma escala
natural de do.
! !!Apagamento e Sustentação
!"!8
Apagamento e Pausa#!! !!" !!#!$
!$ !Duplicação dos pulsos 2 e 3
! !! !! %! !6 !!!!!$5 !Troca entre pulsos 2 e 3
!! !!!
!! ! ! !!Inversão dos pulsos 2 a 3
!!!! !! !!Inversão do Compasso Inteiro
$3 ! !
!! !! &!!!Escala de Dó
Mutação simples
!! !!!! ! !!'$
Figura 3.9: Mutacoes do Gerador Melodico
Este simples bit-flop da mutacao simples raramente gera boas solucoes em tarefas
musicais que nao tem funcoes de avaliacao bem definidas, sendo assim um operador
que nao e recomendavel ser usado as cegas. Por isto foi determinado que esta mutacao
simples nao seja apenas um bit-flop, mas sim a mudanca do valor de uma nota inteira
que nao podera criar um intervalo vertical muito maior do que o original, o que e o
problema mais serio de simples mutacoes aleatorias de bit-flop nestes tipos de aplicacao.
A mutacao simples deste trabalho pode alterar uma nota no intervalo de no maximo 2
Metodologia 73
semitons.
Os operadores geneticos musicais devem ser guiados, podendo ocorrer correcoes no
genotipos para que estes nao representem solucoes absurdas. Este tipo de controle
pode ser necessario principalmente quando ocorre uma mutacao, que nao respeita regras
musicais para ocorrer, e pode gerar solucoes que nao sao mais consideradas factıveis
para a maioria dos usuarios. E importante lembrar que por se tratar de arte evolutiva,
agora o conceito de solucoes factıveis pode depender mais de preferencias do usuario do
que outros problemas de otimizacao onde a definicao de uma funcao de avaliacao e mais
clara. Assim, uma alternativa pode ser dar opcoes para o usuario.
E tambem comum definir taxas para a aplicacao de cada um destes operadores,
pois eles podem levar a resultados indesejaveis quando taxas inconvenientes sao usadas
(Back, Ho↵meister & Schwefel 1991). Estas taxas podem ate ser ajustadas durante o
processo ou ajustadas por outro algoritmo evolucionario. Neste trabalho, as mutacoes
inicialmente propostas que copiam ou apagam partes da melodia (compassos 7 a 9 da
Figura 3.9) serao definidas com uma taxa de aplicacao de 0%, ja que estas mudam
diretamente o tamanho dos compassos. A utilizacao destes operadores pode levar a uma
rapida perda de material genetico da populacao inicial alem de levar a uma populacao
final com menos notas que a original, no caso do apagamento de notas, ou serem difıceis
de trabalhar em uma populacao de compassos se uma duplicacao gasta mais de um
compasso, no caso da duplicacao de um trecho.
Exceto estes dois operadores, todos os outros tem a mesma probabilidade de serem
aplicados.
O uso de uma representacao baseada em ordem das melodias implica em algumas di-
ferencas nos resultados destes operadores. Em uma representacao baseada em posicao,
os genes representam notas mas tambem sustentacoes e pausas. Assim estes eventos
tambem estao suscetıveis a serem mudados pelos operadores. Nestes casos, a aplicacao
dos operadores pode mudar os genes em maneiras que criam novos eventos de sus-
tentacao, pausas ou notas, modificando o numero e duracao de notas. Em contraste,
em uma representacao baseada na ordem das notas, a posicao das notas no tempo pode
ser mais facilmente herdada dos pais ja que os elementos (⌘i
, ti
, �i
) estao explicitamente
definidos nos cromossomos.
74 Metodologia
3.2.3 Fitness Implıcito Mınimo
Um dos maiores problemas para a geracao de musica com AG e a definicao de uma
funcao de fitness adequada. Inicialmente, pode-se pensar sobre as necessidades basicas
das solucoes, fazendo processos que compoem em um estilo particular de musica mais
eficiente. A intencao deste trabalho, porem, e basear o processo no modo como compo-
sitores trabalham de fato (Wiggins, Papadopoulos, Phon-Amnuaisuk & Tuson 1998).
Modelos baseados em regras podem simplificar em demasia a essencia dos processos
musicais para tornar o processo mais simples e ajudar na identificacao de indivıduos bons
ou ruins. Porem, algumas musicas podem ser definidas como boas justamente quando
quebram “regras”e isto deve ser previsto algoritmicamente em sistemas criativos de
composicao. Contudo, estes modelos podem nao avaliar como a musica e composta de
fato, ja que o comportamento do compositor depende do contexto no qual ele vive. Estes
contextos variam e nao sao excessivamente baseados em regras didaticas.
Outra abordagem possıvel e a similaridade com uma musica alvo, o que e util quando
se cria musicas com alguma relacao entre a populacao inicial e a musica alvo. Neste
trabalho, a ideia contraria sera utilizada. Ou seja, criar-se-a uma nova melodia tendo-se
uma melodia previamente conhecida como populacao inicial.
Uma abordagem de selecao com um fitness mınimo e aplicada na populacao que vem
de uma melodia pre-definida, permitindo a emergencia de criatividade da aplicacao dos
operadores geneticos. Um fitness mınimo pode permitir eliminar pelo menos solucoes
muito ruins, que seriam musicalmente ineficientes de acordo com um conjunto mınimo de
regras embutido em uma funcao de fitness . Os operadores geneticos devem ser eficientes
e robustos para as melodias pois caso contrario, nao ha pressao seletiva para forcar as
melodias a convergirem a algo melhor novamente.
Em nossos experimentos, duas abordagens serao testadas: (i) selecao livre de fitness
ou nao tendenciosa e (ii) uma funcao de fitness mınima que mantem as notas em uma
escala natural. Na segunda funcao de fitness , a penalizacao e dada a qualquer nota fora
da escala. De qualquer maneira, todos os indivıduos terao o mesmo valor de fitness na
maioria dos casos e a selecao de indivıduos e nao tendenciosa.
Segue abaixo conceitos utilizados neste gerador melodico.
Fitness Aleatorio: Uma funcao de fitness aleatoria leva a um sistema evolucionario
livre de fitness . Um modo facil de implementar esta caracterıstica e usar a selecao
Metodologia 75
para reproducao uniforme (ou nao tendenciosa), sem pressao seletiva.
Fitness mınimo implıcito: Uma funcao de fitness implıcita e a funcao que imple-
menta um conjunto mınimo de regras musicais ou restricoes quando analisa-se um
indivıduo. Indivıduos recebem penalidades e recompensas baseados na satisfacao
destas regras ou restricoes. O problema se torna similar a um Problema de Sa-
tisfacao de Restricoes (CSP) (Kumar 1992). Se regras demais sao adicionadas a
funcao de fitness , a criatividade musical e impedida. E discutıvel se deve-se aplicar
um conjunto de regras pre-existentes ao tentar basear algoritmos no que composi-
tores realmente fazem (Jacob 1996). Compositores nao se baseiam excessivamente
em apostilas musicais que tem apenas intencao de analisar estilos especıficos de
musica e transmitı-los de maneira didatica.
Takeover : Em algoritmos evolucionarios, a palavra takeover se refere ao fenomeno
no qual a populacao se torna copias de um ou poucos indivıduos da populacao
(Eiben & Smith 2003). Tipicamente, o tempo de takeover e o numero de geracoes
(na media) que o takeover leva para ocorrer, e tem sido usado para caracterizar
metodos de selecao diferentes usados em algoritmos evolucionarios (Goldberg &
Deb 1991). Neste trabalho, os indivıduos representam compassos e a populacao
representa a melodia. Neste contexto, o takeover ocorre quando todos os compassos
de uma populacao sao iguais e a habilidade de se gerar material novo fica limitada6.
O takeover leva entao a melodias com padroes repetitivos.
3.2.4 Avaliacao das Solucoes e Selecao pela Matriz de Takeover
A avaliacao e sempre um processo relativamente complicado na geracao de melodias seja
pela falta de regras, que leva a resultados inadequadas para o contexto, ou pelo excesso,
que leva a resultados previsıveis e pouco musicais, o que sera mais proximo de exercıcios
dos que musica propriamente dita.
Como a geracao de melodias e uma tarefa que demanda muita criatividade e uma
avaliacao com muitas regras pode levar a criacao de meras replicas ou exercıcios, foi uti-
lizada uma abordagem mais proxima de uma selecao sem aptidao com regras mınimas,
o que permite criatividade ao mesmo tempo que elimina as solucoes que seriam inade-
quadas.
6Os unicos indivıduos diferentes da populacao serao devidos ao operador de mutacao.
76 Metodologia
Inicialmente, pode-se pensar em definir apenas necessidades extremamente basicas
da solucao, o que leva processos que desenvolvem musica em um estilo particular a obter
sucesso mais facilmente. Com uma aptidao mınima, podem surgir questionamentos sobre
a pureza do AE7 sendo utilizado mas a questao e bem maior que esta. Ora, mesmo nao
havendo um problema do ponto de vista da CE, ainda temos o problema que e criar o
metodo de CA e a questao central prevalece: como melhorar a populacao ao passar do
tempo.
O metodo de selecao e usualmente baseado no fitness dos indivıduos. Dados os
valores de fitness, podem ser decididos fatores que intensifiquem a busca, como a maior
probabilidade de selecao para os mais aptos, ou que aumentem a diversidade das solucoes
analisadas, como ajudar indivıduos que nao tem muita aptidao a se reproduzirem. Essa
e a forma predominante que mantem a pureza do metodo evolutivo.
Este metodo e muito util quando queremos que a melhor solucao apareca apos varias
iteracoes de indivıduos que nao sao utilizados. Porem, em musica, as vezes nao queremos
a melhor frase possıvel de um processo evolutivo e sim um conjunto de frases boas. Essa
caracterıstica mostra a principal diferenca entre a simples otimizacao em busca de uma
solucao e a exploracao do espaco de busca na intencao de ter um conjunto de solucoes
boas e coerentes entre si.
Para um algoritmo que tem o objetivo de criar novas melodias em tempo real, a
qualidade das solucoes precisa aumentar com o tempo e uma das medidas que pode ser
usada como fitness mınimo e a manutencao da diversidade. No caso deste gerador de
melodias, que nao funciona em tempo real, outra estrategia pode ser utilizada. Como
a populacao pode ser controlada pelo compositor com a populacao inicial, que leva a
resultados diversos e relacionados entre si, o problema da diversidade pode ser tambem
resolvido mais facilmente do que em algoritmo que geram estruturas em tempo real pois
nem todos os resultados gerados pelo algoritmo serao utilizados.
Como a maioria dos indivıduos terao o mesmo fitness na maior parte do tempo,
os melhores indivıduos nao estao necessariamente nas ultimas geracoes do algoritmo.
Na verdade, estas ultimas solucoes nem sao desejaveis, ja que estas ultimas geracoes
sao caracterizadas por um takeover (mesmo sem uma pressao seletiva que favoreca os
indivıduos mais aptos de uma populacao, o takeover ocorre devido ao fenomeno de deriva
genetica). A diversidade nestas geracoes e assim pequena e ha varios pedacos similares
7Pureza do AE em relacao a pressao seletiva, que e fundamental para a geracao de melhores solucoesem relacao a funcao de fitness definida.
Metodologia 77
de melodia por toda a populacao. Como a populacao representa a melodia, o takeover
se torna uma melodia repetitiva, como a da figura 3.10.
! !! "! !! #$ !"5 !!!" !!# #! !! !! ! ! !! !! #! !!" ! !
!! ! !!!! " #$ " !!!!"# #% !!!# ! !! ! !! " !!! !! ! !!
Figura 3.10: Configuracao de uma Populacao na qual Ocorreu um Takeover
Neste processo de takeover , pode-se perceber que um indivıduo domina a populacao
inteira. Essa ocorrencia pode ser facilmente identificada em casos nos quais a populacao
passa a se assemelhar a da Figura 3.10 e o problema deve ser contornado. Com a
populacao inicial tendo grande controle da peca, esta populacao pode ser reiniciada,
trocada ou sofrer alteracoes.
O conjunto de melodias mais interessantes, desta maneira, nao estara nem nas ultimas
geracoes, pois havera uma convergencia para o takeover , nem nas geracoes iniciais, onde
a populacao ainda esta muito relacionada com a inicial. Define-se neste trabalho este
equilıbrio como compromisso entre originalidade8 e diversidade. Como a mudanca
das solucoes de diversas para originais nao acontece em uma escala linear, selecionar a
geracao que esta no meio do caminho entre estes dois extremos nao e sempre a melhor
escolha. Precisa-se entao de um melhor criterio para selecionar uma melodia entre varios
candidatos gerados pelo processo evolutivo.
Originalidade e diversidade tem um papel importante na definicao de uma boa melo-
dia para ser retornada pelo algoritmo. O compromisso entre originalidade e diversidade
entre melodias de diferentes geracoes pode ser uma alternativa para quantificar se um
grupo de indivıduos e realmente bom.
Como o objetivo do gerador de melodias e retornar uma populacao de qualidade
e nao o melhor indivıduo de um numero de geracoes, tem-se a vantagem de que os
melhores indivıduos nao precisam estar nas ultimas geracoes. Por isso, a analise de
quais indivıduos podem ser retornados em relacao a analise do fitness por diversidade
entre os indivıduos pode ser feita apos todo o processo evolutivo e a populacao que tera
uma maior diversidade nao estara proxima as ultimas geracoes, ja que nestas ha uma
8Originalidade em relacao ao material utilizado como populacao inicial
78 Metodologia
convergencia para um takeover .
Assim, considerando-se que os operadores geneticos sao robustos o suficiente para
gerar solucoes boas por todas as geracoes, o criterio de quais indivıduos sao os melhores
para serem retornados fica implicitamente a cargo do compromisso entre a originalidade,
presente nas ultimas geracoes, que ja sao muito originais em relacao as geracoes iniciais,
e a diversidade, que e maior nas primeiras geracoes, quando se esta tao longe quanto
possıvel de um takeover .
Como a avaliacao esta implıcita no modo em que ocorre a evolucao, o controle de
algoritmo tambem pode ser feito direto no modo como a evolucao ocorre e nao apenas
nas funcoes de avaliacao. Principalmente, no uso conveniente da populacao inicial e no
modo como ela pode ser reinicializada durante a execucao do algoritmo.
Em composicao, tarefa onde a criatividade e altamente relevante, pode ser levada em
consideracao a diversidade que o indivıduo gerara em relacao aos indivıduos presentes.
Esta e uma medida de qualidade do indivıduo que nao conduz a um takeover precipitado
e muitas vezes nao musical ou pelo menos nao criativo como acontece com outras medidas
de fitness .
Como e importante ter-se uma solucao final diversa e consequentemente criativa,
uma boa medida de fitness de um indivıduo e o compromisso entre a originalidade e
diversidade que este gera na populacao corrente, que pode ser uma medida tambem
de qualidade da populacao. Quando sao geradas estruturas para execucao em tempo
real, esta tambem e uma otima medida, porem e difıcil de se definir quais medidas de
diversidade serao usadas entre melodias diferentes.
Como o gerador de melodias nao tem a intencao de gerar estruturas em tempo real,
outra abordagem foi utilizada. O algoritmo inicia com uma populacao de um dado
tamanho e retorna uma outra populacao de compassos de outro tamanho qualquer.
Assim, e apenas necessario definir qual das geracoes criadas durante o processo devem
ser retornadas. Faz-se entao uma decisao tendo em mente o compromisso existente entre
diversidade e originalidade.
Nas geracoes iniciais, as melodias sao muito parecidas com a melodia inicial e podem
nao ser consideradas suficientemente originais caso a populacao inicial nao tenha sido
criada pelo proprio compositor usuario do algoritmo. Ja nas ultimas geracoes, proximas
ao takeover , as solucoes guardam poucos tracos da populacao inicial porem podem ser
pouco musicais. Assim, quando ocorre o takeover , o gerador de melodias deve retornar
Metodologia 79
!2
!2
!3
!3
!3
!2
Crossover 2+3 !3
4
" !2
!3
!3
!3
!1
!2
!2
!2
!1
Crossover 1+2
!1
!1
!1
!1
!1
!3
!2
!1
Crossover 1+3
!3
Individual 3! !3
!2
!2
!!3
!" # !3
!3
!3
!3
!1
!1
2
!1
!1
1
Individual 1
!1
!1
!1
2
!2
!2
!2
3
!2
Individual 2
!
Figura 3.11: Melodia com os marcadores da populacao inicial
os indivıduos de uma certa geracao intermediaria que equilibre estes dois conceitos.
Assim, o takeover , que seria um motivo para reinicializar a populacao em estruturas
de tempo real, aqui e um motivo para encerramento do algoritmo. Precisamos entao
calcular quando ocorre o takeover .
Para manter a populacao longe de um takeover por um tempo maior, uma abor-
dagem de holdover tambem e utilizada. Apos cada geracao, um de seus indivıduos e
escolhido para ser mantido, o que significa que o indivıduo tambem sera um candidato
para procriar na proxima geracao. Esta estrategia evita uma rapida convergencia do
algoritmo.
Para descobrir se ja ocorreu o takeover em uma dada populacao, cada nota da po-
pulacao inicial foi marcada com um numero que lembra de qual compasso da populacao
inicial esta pertencia. Estes valores nao se alteram quando uma nota sofre mutacao. Um
exemplo de aplicacao de cruzamento em uma populacao com os marcadores da populacao
inicial sao mostrados na Figura 3.11. Neste exemplo, os tres primeiros compassos sao
a populacao inicial e os outros sao resultados de um cruzamento. E interessante notar
que algum material genetico ja foi perdido neste processo (pulsos 3 e 4 do indivıduo 1 e
pulsos 1 e 2 do indivıduo 3).
Um caso simples no qual e facil de se descobrir quando ocorre o takeover e quando
todas as notas da ultima geracao vieram de apenas um indivıduo da populacao inicial.
Porem, isto nao ocorre sempre, pois pode ocorrer o aparecimento de indivıduos com
notas provenientes de diferentes indivıduos da solucao inicial - ja que apenas pontos que
definam um tempo inteiro do compasso sao aceitos para o cruzamento. Esses indivıduos
se reproduzem de tal maneira que o takeover ocorre apenas entre eles. Desta maneira,
nenhuma combinacao de cruzamento e capaz de levar os indivıduos a terem notas de
apenas um indivıduo da solucao inicial.
80 Metodologia
Como os pontos de corte possıveis de cruzamento sao apenas os tempos do compasso,
pode-se criar outra solucao para identificar o takeover : verificar a origem das notas que
ocorrem em cada tempo dos compassos. Por exemplo, se todas as notas dos tempos 1 e
2 de todos os indivıduos vem do indivıduo x da populacao inicial e todos os tempos 3 e
4 vieram do indivıduo y da populacao inicial, pode-se igualmente constatar um takeover
que nao seria descoberto pela abordagem descrita anteriormente.
Nestes casos, uma solucao mais geral pode ser utilizada para identificar um takeover .
Verifica-se a origem de cada evento em cada pulso do compasso, ja que estes estao limi-
tadas aos possıveis pontos de corte definidos. Por isso, propoe-se a matriz de takeover ,
definida a seguir:
• Para cada geracao, a matriz T, com dimensao n⇥ p e gerada, onde n e o numero
de pulsos em cada compasso e p e o numero de indivıduos. Cada elemento Tij
da matriz da os valores percentuais de origem de cada evento, de acordo com os
pulsos e considerando os indivıduos da populacao inicial.
Inicializando-se a matriz com 0 em todas as suas posicoes, para cada nota da geracao
corrente e acrescentado 1 a posicao da matriz correspondente ao respectivo indivıduo da
populacao inicial e tempo em que esta a nota. Apos este procedimento, todos os valores
da matriz sao divididos pelo somatorio dos valores do tempo correspondente.
A Tabela 3.5 mostra dois exemplos de Matriz de Takeover. A tabela em a) mostra
T para um geracao inicial, onde 25% das notas em cada pulso sao provenientes deste
mesmo indivıduo.
Quando a populacao se aproxima de um takeover , estes percentuais se aproximam
de 100%, o que significa que todas as notas de um pulso vem do mesmo indivıduo da
geracao inicial. No exemplo b) da Tabela 3.5, todas as notas da suposta populacao no
pulso 3 vem do indivıduo 2 da geracao inicial. Neste exemplo, o material genetico do
indivıduo 1 foi completamente perdido.
Isto gera uma matriz que representa em valores percentuais a origem de cada nota,
como mostram as matrizes de exemplo da Tabela 3.5. Podemos perceber que todos os
valores da tabela serao proximos a 1/n, sendo n o numero de pulsos por compasso. A
medida que se aproxima das geracoes finais, os valores da tabela se aproximam de 1,
ja que algumas notas da populacao inicial acabam dominando um tempo especıfico da
Metodologia 81
Tabela 3.5: Matriz com Percentual de Origem das Notas em Dois Casos Dife-rentes
a)
Pulso Ind.1 Ind.2 Ind.3 Ind.4
1 0.25 0.25 0.25 0.25
2 0.25 0.25 0.25 0.25
3 0.25 0.25 0.25 0.25
4 0.25 0.25 0.25 0.25
b)
Pulso Ind.1 Ind.2 Ind.3 Ind.4
1 0 0 1.0 0
2 0 1.0 0 0
3 0 1.0 0 0
4 0 0 0 1.0
populacao final. Na matriz de exemplo, todas as notas da populacao no tempo 3 vieram
do indivıduo 2.
Mesmo quando ocorrem mutacoes nas notas, elas continuam sendo consideradas de
algum indivıduo da populacao inicial pois caso contrario, seria mais difıcil de se iden-
tificar o takeover enquanto solucoes menos musicais poderiam impedir o algoritmo de
encerrar sua execucao. Quando ocorre o takeover , os valores da matriz param de variar
entre uma geracao e outra.
Os descendentes de uma geracao podem substituir um a um ou substituir a populacao
inteira de uma so vez. Esta ultima e a abordagem utilizada em relacao aos indivıduos
que sao potenciais reprodutores na proxima geracao. Porem, de fato, todos os indivıduos
de todas as geracoes sao guardados para a posterior utilizacao da matriz de takeover .
Alem disto, esta abordagem facilita o artifıcio do holdover, no qual um indivıduo da
geracao passada e mantido nos potenciais reprodutores da nova geracao, apesar de nao
pertencer a ela.
Ja que e importante ter uma solucao final com alta diversidade assim como original em
relacao a melodia inicial, especialmente quando seu autor nao e o usuario do algoritmo,
precisa-se agora avaliar o compromisso entre estes objetivos nas geracoes.
Para fazer isto, durante o processo evolucionario, cada geracao (da primeira ate
aquela na qual um takeover foi declarado) recebe um valor definido como valor de com-
82 Metodologia
Tabela 3.6: Calculo de um Valor de Compromisso
Pulso Ind.1 Ind.2 Ind.3 Ind.4 �i
1 0.50 0.25 0.15 0.10 0.18
2 0 1.00 0 0 0.50
3 0.25 0.25 0.25 0.25 0
4 0.20 0.30 0.50 0.10 0.17
Total 0.85
promisso. Este valor de compromisso e definido como:
1. O desvio padrao dos valores de cada pulso (cada linha na matriz de takeover) sao
calculados. Um alto desvio padrao em um pulso significa que a origem nas notas
deste pulso sao menos igualmente distribuıdas do que eram no comeco do processo.
2. Os valores de desvio padrao de todos os pulsos sao somados para criar o valor de
compromisso que e designado a geracao corrente.
Matematicamente, o valor de compromisso c e dado por:
c =nX
i=1
�i
=nX
i=1
2
4
vuut1
p
pX
j=1
(Tij
� µ)2
3
5 (3.2)
A Tabela 3.6 mostra o calculo de um valor de compromisso de 0, 85. O valor de
compromisso e usado para monitorar o processo, dando a ideia de uma distribuicao
da origem de todas as notas em uma geracao especıfica. Se o valor do desvio padrao
acumulado e proximo de 0, as notas sao igualmente distribuıdas e a geracao corrente
e provavelmente proxima a melodia original. Por outro lado, um alto valor de desvio
padrao acumulado pode indicar um takeover prestes a ocorrer. Assim, e possıvel mo-
nitorar o avanco de uma melodia diversa na direcao de uma melodia mais original, a
medida que esta transformacao nao ocorre linearmente.
Ao final, como explicado acima, o compromisso entre originalidade e diversidade deve
ser trabalhado. Com os valores de compromisso dados pela matriz de takeover , e entao
Metodologia 83
possıvel encontrar uma melodia que nao e muito proxima a um takeover nem tao similar
a melodia original, a ponto de nao ser considerada uma nova melodia. Para fazer isto,
a mediana de todos os valores de compromisso e utilizada para selecionar a geracao
da qual os compassos finais serao retornados como resultado. Geracoes com valores de
compromisso proximos a mediana formam bons candidatos para o resultado retornado
pelo algoritmo. Escolhe-se arbitrariamente entao os indivıduos na geracao com o valor
mais proximo a mediana para serem retornados como uma nova melodia.
3.3 Gerador Harmonico
O gerador harmonico tem como entrada uma melodia previamente gerada e gera uma
harmonia com um segundo AG. A tarefa de harmonizar melodias pode ser considerada
de certo modo mais simples do que a tarefa de criacao de melodias, pois esta e mais
dificilmente conversıvel em uma tarefa de otimizacao do que aquela.
Para este tipo de abordagem um novo esquema para representacao de harmonias
que define acordes em relacao aos compassos, ou fracoes de compasso, que pode levar a
resultados que diferem daqueles algoritmos normalmente propostos para harmonizacao
SATB, nos quais um grupo de notas e definido para cada nota na melodia. Alem disto,
cinco notas sao permitidas em um acorde, sendo que algumas podem nao ser usadas.
Diferentemente da geracao de melodias, a criacao de harmonias e uma tarefa que
pode ser mais facilmente resolvida com AG ja que a definicao do fitness pode ser a
relacao existente entre a harmonia criada e a melodia em questao. Assim, o AG gera
harmonias em relacao as notas da melodia dada e do campo harmonico da composicao.
No seu caso mais simples, cada acorde do gerador harmonico sera composto por uma
trıade, que inclui as 1a, 3a e 5a notas da escala correspondente. Por exemplo, no campo
harmonico natural de do maior da Tabela 3.7, a trıade de do sera do (1a), mi (3a) e sol
(5a). Como o intervalo entre C e E e de 2 tons, este e considerado um acorde maior. No
mesmo campo harmonico, se se quer a trıade do acorde que tem base na segunda nota
da escala natural teremos a trıade re (1a), fa (3a) e la (5a). Este e um acorde menor, ja
que o intervalo entre a primeira e a terceira nota da trıade e de 1 tom e meio.
Tal como para as outras aplicacoes, e necessario compreender a natureza do problema
e tentar transmitir este conhecimento ao algoritmo. As proximas subsecoes descrevem
84 Metodologia
Tabela 3.7: Notas do Campo Harmonico Natural de Do
1 2 3 4 5 6 7
Notacao Anglo-saxonica C D E F G A B
Notacao Latina Do Re Mi Fa Sol La Si
como isso e feito em varias partes do processo, incluindo a representacao das solucoes e
no modo que elas interagem entre si na abordagem evolucionaria.
3.3.1 Representando Harmonias
E importante ter uma representacao das solucoes que seja conveniente para mapear as-
pectos fundamentais da musica ocidental, nomeadamente alturas tonais e acordes. Ainda
considerando regras implıcitas de composicao ocidental, o grupo de notas formando a
trıade de um acorde especıfico e normalmente a base do processo de harmonizacao. As
outras caracterısticas de acordes sao normalmente descritas pelo grau da escala no qual
uma nota dada esta.
Como sistemas de afinacao de escalas igualmente temperadas910 sao o padrao na
musica ocidental, na maior parte dos casos, pode ser conveniente usar distancias relativas
entre as notas ao inves de valores de altura tonal absolutos. Assim, o resultado final
pode ser normalizado para representar esta solucao em um tom conveniente para o
usuario. Tambem no resultado final, a oitava na qual cada nota sera executada pode ser
convenientemente decidida, assim como a duracao de cada nota do acorde que formara
seu ritmo.
Os nomes das notas estao especificados na Tabela 3.8, com o grau das notas respecti-
vas, considerando a escala natural de do. Existem doze notas, sete delas representando
graus da escala natural (a escala de do e considerada no exemplo da Tabela 3.8). O
grau das notas restantes devem ser representados em relacao ao grau de sua nota mais
proxima (por exemplo, F# pode ser 5-). O intervalo entre duas notas consecutivas e um
intervalo de semitom (por exemplo, C e C#, ou E e F). Um intervalo de dois semitons e
um intervalo de um tom (por exemplo, C e D, ou E e F#). Mais informacao sobre estas
9O sistema de temperamento igual e baseado na divisao de uma oitava em doze semitons com amesma distancia entre si.
10Uma oitava e o intervalo entre duas notas, uma tendo metade ou o dobro da frequencia da outra.
Metodologia 85
Tabela 3.8: Notas
Notas C C# D D# E F F# G G# A A# B
Grau 1 - 2 - 3 4 - 5 - 6 - 7
definicoes pode ser encontrada em (Kennedy & Bourne 2004).
A representacao deve ser significativa para o domınio especıfico, que e apenas a
representacao de harmonias neste segundo AG. Assim, uma harmonia dada e definida
por um grupo de vetores, cada um deles definindo um conjunto especıfico de notas, que
devem ser executadas durante este compasso especıfico. Este esquema de representacao
considera um grau de granularidade m dos acordes no qual um grau m = 1 significa que
um acorde sera procurado para cada compasso.
E comum definir uma granularidade para esquemas de representacao em aplicacoes
computacionais para musica (Biles 2001) ja que o espaco de busca seria infinito caso
contrario. Se o usuario quer mais acordes por compasso, e apenas necessario aumentar
o valor de m. Desda maneira, m se torna um parametro do algoritmo ou um aspecto do
problema. Outra solucao possıvel para a variacao na granularidade dos resultados finais e
ter um banco de dados com algumas progressoes de acordes de diferentes granularidades
que poderiam ser usadas entre acordes do resultado final.
Neste trabalho, propoe-se uma forma de representacao da harmonia como na Tabela
3.9, onde e possıvel perceber que as frequencias absolutas das notas nao estao represen-
tadas. Estas frequencias nao sao inicialmente relevantes no contexto de harmonias pois
a altura tonal de todas as notas podem ser definidas em relacao a nota fundamental,
enquanto sua propria altura tonal pode ser previamente definida em relacao a uma nota
conveniente.
A utilizacao de 5 notas torna possıvel o uso de uma trıade e duas notas extras no
mesmo acorde. A 5a nota pode ser utilizada ou nao, como no compasso 2 da Tabela 3.9,
pois isso levaria a varias penalidades inevitaveis durante a avaliacao de solucoes mais
simples, nas quais notas alem da trıade nao sao desejaveis, como sera visto em subsecoes
seguintes. Assim, pode nao haver uma nota na 5a posicao de um compasso e um acorde
pode ter 4 ou 5 notas.
Esta modelagem evita a geracao de solucoes com largos intervalos verticais pois a
86 Metodologia
Tabela 3.9: Representacao de uma harmonia
Compasso 1 2 ... n
5a Nota E ... D
4a Nota C D ... F
3a Nota G A ... D
2a Nota E F ... B
Nota fundamental C D ... G
fundamental e usada como uma ancora para decidir a altura tonal das outras notas. A
nota fundamental define a altura tonal da nota mais grave enquanto as outras notas
sao definidas com o menor intervalo vertical possıvel em relacao a ultima nota. Esta
codificacao faz o sistema tambem ser mais flexıvel que outros com apenas 4 notas (que
nao tem a capacidade de representar alguns acordes dissonantes) e evita problemas como
intervalos verticais muito largos (por causa da definicao das notas em termos relativos
a fundamental), que seria provavelmente tratado com penalidades na funcao de fitness
se outras abordagens de representacao fossem usadas.
As notas podem ser representadas por numeros inteiros de 1 a 12 pois a codificacao
nao precisa definir a qual oitava pertence a nota. Os numeros de 1 a 12 nao preci-
sam necessariamente sempre corresponder as mesmas notas ja que a harmonia pode ser
transposta para qualquer tom quando o genotipo e passado para o fenotipo. Assim,
na representacao da Tabela 3.9, os nomes das notas sao meramente representativos.
Isso acontece pois um sistema de igual temperamento e usado no trabalho e consequen-
temente a relacao dos intervalos entre as notas se torna mais importante que o valor
absoluto de cada nota. O conjunto de notas em cada acorde j e representado por:
hj
=⌦⌘1j
, ⌘2j
, ⌘3j
, ⌘4i
, ⌘5j
↵, j = 1, . . . , n (3.3)
onde ⌘ij
2 {0, . . . , 12} e 0 significa a ausencia de uma nota.
Metodologia 87
3.3.2 Operadores Geneticos
A criacao de novos cromossomos atraves das geracoes e feita por operadores geneticos
cuidadosamente projetados, que de fato permitem a ocorrencia do processo evolucionario.
Os operadores mais comuns sao a mutacao e o cruzamento, apesar de operadores mais
complexos poderem ser projetados para um campo especıfico de problemas. Estes ope-
radores podem ser cegos ou guiados, o que significa que eles nem sempre ocorrem de
uma maneira completamente aleatoria. Operadores guiados podem ajudar aplicacoes
musicais ja que mudancas completamente aleatorias em cromossomos nao sao conveni-
entes em algumas situacoes. Por exemplo, se um gene representa uma nota, a mutacao
pode ser guiada para respeitar algumas regras harmonicas ou melodicas.
Alguns operadores musicais comuns sao utilizados na implementacao deste trabalho
para fazer o processo evolucionario mais eficiente. Kennedy & Bourne (2004) descre-
vem alguns possıveis operadores para harmonizacao, porem, com um esquema de repre-
sentacao diferente. Alem do cruzamento, todos os outros operadores ocorrem na fase de
mutacao. A probabilidade de se entrar na fase de mutacao e de 20% e cada operador de
mutacao tem outra probabilidade de ocorrer. Este valor de 20% e definido relativamente
alto pois algumas das mutacoes possıveis que nao afetam muito a qualidade das solucoes
tem uma grande chance de serem escolhidos. A probabilidade de se entrar na fase de
cruzamento e de 90% e apenas um cruzamento musical pode ocorrer. Os operadores
musicais utilizados para evoluir harmonias estao descritos abaixo:
Cruzamento musical O cruzamento implementado neste trabalho nao trabalha a nıvel
de bits, ja que isso poderia levar a muitas solucoes aleatorias. Similarmente ao cru-
zamento comum, um ponto de corte e escolhido entre os pais e estes compartilham
informacao considerando os genes (ou os dados) a esquerda e a direita deste ponto
de corte na representacao dos indivıduos. Contudo, a informacao de um compasso
e inseparavel e o ponto de corte deve ser entre 2 compassos. A selecao de apenas
um ponto de corte e conveniente pois assim nao se quebram muitas relacoes entre
os compassos, o que e considerado na avaliacao das harmonias. Usar mais pontos
de corte seria muito disruptivo. A probabilidade de um cruzamento e de 90%.
Mutacao da altura tonal Mudancas na altura tonal de uma das notas em um com-
passo. A maior mudanca possıvel em uma nota e de 1 tom pois mesmo com alguns
intervalos verticais muito largos sendo aceitaveis, muitos deles levam a resultados
pouco musicais. Um intervalo maior pode ser alcancado pela aplicacao de mais de
88 Metodologia
um operador ou mesmo por varias mutacoes na altura tonal mas nao com uma
unica mutacao da altura tonal. Intervalos de no maximo um tom tambem forcam o
algoritmo a explorar mais acordes dissonantes pois uma nota de uma trıade nunca
sera mutada para outra nota da trıade. Note que intervalos realmente muito lar-
gos nao sao mesmo previstos pela representacao. A probabilidade de usar este
operador e de 30%. Se nao ha nota alguma na posicao aleatoriamente selecionada
(apenas possıvel na quinta nota de um compasso), o operador nao e aplicado.
Troca entre o mesmo acorde Para trocar a posicao das notas no mesmo compasso.
Este operador cria inversoes em um acorde dado. A probabilidade de usar este
operador e de 50%. Se uma posicao sem nota e selecionada, uma nova posicao e
selecionada.
Reinicializacao do acorde Reinicializa todas as notas de um compasso usando uma
trıade com uma nota da melodia no compasso correspondente. Isso gera novos
acordes com uma grande possibilidade de serem aceitaveis. Todas as trıades tem a
mesma probabilidade de serem escolhidas e a probabilidade de se aplicar o operador
e de 15%.
Copia Copia a informacao de um compasso para outro, criando a repeticao de alguns
acordes na harmonia. A probabilidade deste operador e de 5%.
A probabilidade de se entrar na fase de mutacao e definida como 20% devido a
algumas mutacoes que nao alteram expressivamente o fitness das solucoes, como a troca
de notas entre o mesmo acorde, que pode apenas interferir na condicao da posicao da
nota fundamental.
A Tabela 3.10 resume os operadores geneticos utilizados neste trabalho com suas
respectivas probabilidades de serem aplicados.
3.3.3 Harmonizacao Multiobjetivo
Duas funcoes de avaliacao sao definidas para resolver o compromisso entre dissonancia ou
simplicidade das harmonias. Isto e feito considerando que harmonias contendo acordes
com apenas a trıade simples (fundamental, terceira e quinta) ou a trıade simples mais
a setima em alguns casos sao boas harmonias de acordo com o criterio de simplicidade.
Nestas harmonias, uma setima nao e considerada uma nota desejavel a nao ser em um
Metodologia 89
Tabela 3.10: Operadores Geneticos do Gerador Harmonico
Operadores Geneticos Probabilidade
Fase de Cruzamento 90%
1: Cruzamento musical 100%
Fase de Mutacao 20%
1: Mutacao de altura tonal 30%
2: Troca entre notas 50%
3: Reinicializacao do acorde 15%
4: Copia de acorde 5%
contexto no qual ela resulta em uma nota apropriada do acorde seguinte. A maximizacao
de uma funcao de fitness definida pela funcao simplicidade f1
representara a avaliacao
deste tipo de harmonias.
Uma segunda funcao de avaliacao a ser maximizada, chamada funcao dissonancia f2
,
valoriza mais harmonias com dissonancia em seus acordes, e compassos com mais notas
do que a trıade sao normalmente recompensados. Apesar desta consideracao, notas alem
da trıade que nao se encaixam a melodia sao penalizados da mesma maneira que seriam
na primeira funcao de avaliacao.
Talvez poderia ser possıvel conciliar ambos os objetivos se se soubesse previamente
as preferencias do usuario ou se o projetista do algoritmo se tornasse o proprio usuario
e usasse suas proprias preferencias para pesar opcoes contraditorias. Enquanto alguns
objetivos sao normalmente comuns a todas as harmonias, tal com definir trıades es-
pecıficas para guiar a progressao de acordes, alguns objetivos sao muito contraditorios
de acordo com as preferencias do usuario. Por exemplo, a inclusao de notas dissonantes
necessariamente dara diferentes recompensas e penalidades em funcoes diferentes.
Uma outra ideia poderia ser permitir alguns compassos a atender objetivos diferen-
tes. No caso deste trabalho, isso resultaria em uma harmonia que e dissonante em alguns
compassos e simples em outros. Mesmo com harmonias dissonantes podendo tambem
ter acordes simples em alguns casos, provavelmente esta abordagem teria resultados
que desagradariam a maior parte dos usuarios ja que nenhuma preferencia seria aten-
dida. Fazendo isto, as possibilidades entre harmonias complexas e simples nao seriam
exploradas.
90 Metodologia
Figura 3.12: Metodo de Classificacao do NSGA-II
Assim, a definicao de uma unica funcao objetivo envolveria um estagio de definicao de
preferencias do usuario. Mesmo com esta definicao previa de preferencias, cada melodia
tem um conjunto possıvel de harmonias que nao e possıvel conhecer qual funcao este
conjunto atende mais. Isso significa que a nao ser que a preferencia do usuario seja ter
harmonias que atendam apenas uma funcao o maximo possıvel, a harmonia resultante
de uma execucao mono-objetivo pode ter varios resultados simples e dissonantes para
um mesmo conjunto de parametros. Por outro lado, a abordagem multiobjetivo permite
que o usuario conheca as possibilidades do espaco de busca em vez de fazer uma escolha
cega de parametros.
Por estes motivos, uma abordagem multiobjetivo foi aplicada neste trabalho. Com
esta abordagem, o usuario pode obter um conjunto de harmonias que se encaixam a
melodia e representam o equilıbrio entre as regras contidas nas duas funcoes objetivos.
Depois o usuario pode escolher uma harmonia do conjunto de resultados e definir as
preferencias enquanto escuta as possibilidades de solucoes.
Para aplicar a abordagem multiobjetivo para o problema de harmonizacao, emprega-
se neste trabalho o Non-dominated Sorting Genetic Algorithm - II (NSGA-II) (Deb,
Agrawal, Pratap & Meyarivan 2000). Neste metodo, as solucoes sao agrupadas em
conjuntos de solucoes candidatas pertencentes a mesma frente de Pareto e sao ordenadas
de acordo com seus grupos antes de passar pelos processos reprodutivos do AG. Este
metodo de ordenacao das solucoes esta representado na Figura 3.12.
Metodologia 91
Neste metodo, o fitness de um indivıduo e definido pelo numero da fronteira nao
dominada ao qual ele pertence, e o problema artificialmente se torna de minimizacao,
tendendo a selecionar os indivıduos que tem o menor numero de fronteira nao dominada.
A estimativa da densidade das solucoes em volta de um indivıduo tambem e con-
siderada no metodo para classificar os indivıduos da mesma fronteira (Deb, Agrawal,
Pratap & Meyarivan 2000). A quantidade idistancia
e a estimativa da densidade no ponto
de um indivıduo e dar mais valor a indivıduos em locais menos densos do fronteira ajuda
a exploracao de diversidade das solucoes. Este conceito e definido por Deb, Agrawal,
Pratap & Meyarivan (2000) como crowding distance. O calculo deste valores para cada
indivıduo esta detalhado no Algoritmo 3.2.
Algoritmo 3.2: Calculo do Crowding Distance dos indivıduos
(Deb, Agrawal, Pratap & Meyarivan 2000)
Entrada: Conjunto de solucoes I
l |I|; /* numero de soluc~oes em I */1
para todo i faca2
I[i]distancia
= 0; /* inicializa as distancias */3
fim4
para cada objetivo m faca5
I ordenar(I,m); /* ordena pelo valor da func~ao objetivo */6
I[1]distancia
I[l]distancia
=1; /* ajuda os pontos extremos */7
para i 2 ate (l � 1) faca /* para os outros pontos */8
I[i]distancia
= I[i]distancia
+ (I[i+ 1].m� I[i� 1].m);9
fim10
fim11
Neste metodo, I[i].m e o valor do indivıduo de acordo com a funcao objetivo m. A
ordenacao das solucoes domina a complexidade do algoritmo, que e O(mN logN) no
pior caso.
3.3.4 Avaliacao das Solucoes
E comum imaginar um mentor humano para avaliar as solucoes quando geradores mu-
sicais estao em questao, tendo assim uma avaliacao legıtima. Esta nao e sempre uma
abordagem indicada, primeiramente, porque a avaliacao e tendenciosa na direcao das
92 Metodologia
preferencias dos usuarios. Outro fator que nao pode ser negligenciado e que um mentor
humano e sempre suscetıvel a ficar cansado, entediado e perder a atencao.
Alem disto, o uso de um mentor humano evitaria o estudo de como a funcao de
fitness deve funcionar, e consequentemente, negligenciar a propria natureza do problema.
Uma questao clara de preferencias do mentor pode ser entre harmonias dissonantes
ou simples, que e objeto de estudo deste gerador harmonico. Alem disto, o objetivo
principal deste trabalho e produzir um sistema automatico capaz de funcionar com base
em conhecimento musical apenas. Isso nos permite analisar o comportamento do sistema.
Para classificar quao boa e uma solucao, e necessario definir como conhecimento
sobre o assunto sera definido no sistema. Como previamente descrito, grande parte
deste conhecimento ja esta implementado nos operadores geneticos mas estes nao sao
capazes de distinguir quais sao boas ou mas solucoes. O fitness de uma solucao e dado
de acordo com as duracoes das notas e intervalos verticais da harmonia.
E necessario determinar fatores que podem ou nao ser desejaveis as solucoes, como
descrito abaixo com as penalidades usadas neste trabalho.
• Trıades: A trıade e a estrutura basica de um acorde na musica ocidental. A
ausencia de trıades tem uma penalidade de 40 neste trabalho. Se ha uma terceira
mas a quinta esta ausente, a penalidade se reduz a 15 na funcao simplicidade f1
e 5 na funcao dissonancia f2
. Com a trıade, ha duas notas livres que podem ser
usadas para criar tensao.
• Acordes Dissonantes: Eles podem ou nao ser desejaveis. Este e o aspecto que
mais justifica a utilizacao de duas funcoes objetivo. Neste trabalho, notas fora da
trıade sao consideradas dissonantes e sao penalizadas na funcao simplicidade em
10 enquanto sao recompensadas em 10 na funcao dissonancia. Uma setima nao
e penalizada na funcao simplicidade se ela leva a uma outra nota da trıade do
compasso seguinte com um intervalo de meio tom. Duas notas dissonantes levam
a uma penalidade de 20 nas duas funcoes se elas estao a uma distancia de meio
tom.
• Intervalos largos: Nao e muito usual ter intervalos largos demais nos acordes, tais
como 12 tons entre duas notas consecutivas. Este problema e normalmente tratado
com a penalizacao de intervalos largos. Neste trabalho, este problema e resolvido
pela representacao da solucao, que ja nao considera intervalos extremamente largos
Metodologia 93
pois a distancia entre as notas e definida quando estas sao transcritas do genotipo
para o fenotipo.
• Notas e Acordes Invalidos: Notas que nao pertencem as escalas implicitamente
definidas pela melodia sao penalizadas em 30. Uma nota e considerada invalida na
funcao simplicidade se (i) ela nao pertence a escala principal implıcita da melodia
e (ii) ela nao existe no respectivo compasso da melodia. Uma nota e considerada
invalida na funcao dissonancia se (i) ela nao pertence a escala implıcita principal
de melodia, (ii) ela nao existe no compasso respectivo da melodia, (iii) ela nao
leva a outra nota no acorde seguinte atraves de um cromatismo e (iv) nao ha
notas dissonantes a meio tom de distancia no acorde. A penalidade para esta
restricao e de 30 pois ela deve ser uma penalidade maior que a recompensa por
notas dissonantes na funcao dissonancia.
• Evitar unıssonos: Nao e desejavel haver unıssonos gastando notas que poderiam
ser usadas para formar novos acordes. Unıssonos da nota fundamental podem ser
normais enquanto unıssonos da terceira nao sao normalmente aceitos. A maior
parte dos unıssonos sao penalizados em 5, unıssonos das terceiras sao penalizados
em 10 e unıssonos com a fundamental nao sao penalizados.
• Omissao de notas: Quando a trıade nao esta completa. Como ha 5 possıveis
notas no esquema de representacao proposto, e possıvel ter notas extras sem excluir
notas da trıade. A omissao da quinta pode ser considerada normal para se adicionar
notas extras. A unica restricao relativa a ausencia de notas e a ausencia de trıades
ja discutidas.
• Extensao das notas: As notas devem respeitar uma extensao de alturas tonais
para evitar variacoes estranhas entre os acordes. Neste esquema de representacao,
a altura tonal de cada nota e definida quando o genotipo e passado para fenotipo.
Nao ha, assim, necessidade de penalizacao neste aspecto.
• Setimas Significativas: Setimas que levam a outra nota no acorde seguinte sao
recompensadas em 10 na funcao dissonancia. Elas sao recompensadas em 10 na
funcao simplicidade apenas se levam a uma terceira no acorde seguinte.
• Progressoes: Progressoes especıficas de acordes ou cadencias na harmonia po-
dem ter algum tipo de preferencia, especialmente quando compondo em um estilo
particular de musica. Este tipo de recompensa nao e considerado neste trabalho
94 Metodologia
Tabela 3.11: Parametros na avaliacao do fitness
Condicao Funcao Funcao
Simplicidade Dissonancia
1: Ausencia de trıade -40 -40
1.1: Ausencia de quintas -15 -5
2: Nota dissonante -10 +10
2.1: Setima significativa 0 +10
2.2: Dissonancia de meio tom -20 -20
3: Unıssonos -5 -5
3.1: Unıssono da terceira -10 -10
3.2: Unıssono da fundamental 0 0
4: Nota Invalidaa -30 -30
5: Setima significativab +10 +10
6: Posicao da fundamental +10 +3aNote que as condicoes para que uma nota seja considerada invalida sao diferentes em cada funcao.
bNote que as condicoes para que uma setima seja considerada significativa sao diferentes em cada funcao.
pois na verdade ela recompensa implicitamente alguns generos de musica que uti-
lizam estas progressoes muito frequentemente. Estes tipos de regra nao podem ser
consideradas gerais mesmo quando apenas musica ocidental e considerada.
• Posicao da Nota Fundamental: Ter alguma recompensa a acordes com sua nota
fundamental como primeira nota, ou nota mais grave do acorde. Caso contrario,
nao haveria diferenca de fitness entre acordes invertidos e a maior parte do acordes
tenderia sempre a estar invertida. O valor de recompensa e 10 na funcao simplici-
dade e 3 na funcao dissonancia.
A tabela 3.11 mostra brevemente as condicoes de avaliacao usadas neste trabalho e
a sua influencia associada na funcao de fitness.
3.3.5 Executando a harmonia
Apos a definicao de quais acordes serao tocados em quais compassos, e preciso converte-
los em partituras. Essas partituras finais serao representadas da mesma maneira que as
Metodologia 95
!""" " ""
" ""#"
" " "
!Baixo $
""""" "
"#"
""!"
""
"
! $
" """
"!
Guitarra
$! ""
$% &' &
Figura 3.13: Dois Compassos em Do Maior Criados Pelo Gerador Harmonico
melodias do gerador melodico. O resultado de todo este processo sera anexado a novas
faixas (coluna 1 da representacao das melodias, como na Tabela 3.4) no arquivo MIDI
final.
Podem ser definidos ritmos que sempre seguem o mesmo padrao, porem, com acordes
diferentes. Mostramos um exemplo no qual a criacao do baixo e feita com uma variacao
entre a nota base e sua 5a, assim como o exemplo da Figura 3.13, que representa dois
compassos de baixo no qual a base e do maior. As notas utilizadas para o baixo estao
na quinta oitava permitida pela codificacao MIDI.
As notas referentes ao segundo instrumento da base estao uma oitava acima da oitava
central do baixo, na sexta oitava da codificacao. Uma guitarra pode ser utilizada para
representar este instrumento, por exemplo. A base do segundo instrumento normalmente
tem uma relacao com a faixa do baixo e comumente trabalha com as notas do acorde
que ainda nao foram emitidas por outros instrumentos.
No possıvel exemplo para execucao da solucao, a faixa do segundo instrumento gerado
para a base contem as mesmas notas do baixo nos mesmos tempos, porem uma oitava
acima. Alem disso, um outro ritmo que inclui as outras notas da trıade e colocado junto
as notas do primeiro instrumento. Um exemplo de dois compassos criados para guitarra
estao tambem na Figura 3.13.
3.4 Conclusao
Neste capıtulo foram descritas as abordagens utilizadas para os experimentos descritos
a seguir neste trabalho.
Inicialmente, um AG basico e definido e sao demonstradas as suas implicacoes para
96 Metodologia
que seja aplicado a tarefas musicais.
Em seguida, o capıtulo trata de metodos de geracao de melodia e harmonia separa-
damente. Assim, os metodos podem ser combinados para gerar uma musica completa.
Para o problema proposto nesta dissertacao, diferentes AG devem ser definidos para
resolver os problemas especıficos. Particularmente, a evolucao de harmonias pode ser
feita atraves de um AG mais classico, que utiliza funcoes de fitness para dividir bons e
maus indivıduos.
Entretanto, abordagens e visoes diferentes devem ser analisadas para que se possa
resolver o problema em questao. Com a geracao de musica nao e diferente, e as possibi-
lidades de configuracao dos AG devem ser exploradas.
Nos capıtulos seguintes, descreve-se os experimentos gerados com estes algoritmos e
suas implicacoes.
Capıtulo 4
Resultados
4.1 Introducao
Neste capıtulo, durante a analise das abordagens utilizadas, sao mostrados experimentos
especıficos que ajudam a compreensao completa do funcionamento dos algoritmos, seus
valores de compromisso, takeovers e possıveis resultados.
Primeiramente, e analisado o funcionamento do gerador de melodias e a influencia de
seus possıveis parametros, como a melodia inicial e a medida de fitness . Em seguida, o
gerador de harmonias e analisado em relacao a sua efetividade e em relacao a avaliacao
humana dos resultados.
4.2 Gerador de Melodias
4.2.1 Base de dados
Diferentes melodias foram utilizadas para analisar as possibilidades do metodo. Os pri-
meiros experimentos envolvem a geracao de uma nova melodia tendo como referencia
para o algoritmo 16 compassos retirados de Samba de Uma Nota So. Estes compassos
foram retirados de partes diversas do musica e sao mostrados na Figura 4.1. Os com-
passos 1-8 sao retirados do verso enquanto os compassos 9-16 sao retirados do refrao.
Esta pode ser considerada uma boa musica para analisar o algoritmo, ja que o verso tem
uma melodia simples, com apenas duas notas e um padrao rıtmico repetitivo, enquanto
97
98 Resultados
!"! !" !! ! ! # $13
% " ! #" &" ! ! ! !!" ! !" ! !" !" ! !" !" !"! ! !!"! ! ! # $9
% ! # &" ! ! ! !! ! !" ! !" !" ! !" !" !
' $ !' (! ! $ !5
% ! !$ !' $ !! ! ! ! !' ( !!' $ ' (! $% ) ! !!' $ !! $! ! ! ! !!' ( !
Figura 4.1: 16 compassos de Samba de Uma Nota So.
!! !"! !!"!!" !# $ ! !" ! ! !! !" "Figura 4.2: Escala Cromatica
o refrao, mais sofisticado, contem 9 de 12 notas possıveis.
Para analisar a real influencia da populacao, assim como da funcao de fitness , um
outro caso e analisado com um exemplo um pouco mais simples mostrado na Figura 4.2.
Para analisar os efeitos de uma execucao livre de fitness em uma melodia inicial que
ja respeita alguns padroes, a melodia de Parabens a Voce mostrada na Figura 4.10 e
utilizada.
!!!"5 #!!!!$ $!!%!
! !!" & % ! !! !! ! $ ! ! $ !$ '
Figura 4.3: Melodia de Parabens a Voce
Resultados 99
0
100
200
300
400
500
4 8 16 32Indivíduos
Gerações
Figura 4.4: Numero de geracoes para alcancar o takeover
4.2.2 Resultados e Discussao
Como o algoritmo encerra quando um takeover e encontrado, o numero de geracoes do
algoritmo varia em diferentes execucoes. O boxplot na Figura 4.4 mostra o numero de
geracoes necessarias para que ocorra um takeover para diferentes tamanhos de populacao.
O algoritmo foi executado 100 vezes para cada tamanho de populacao.
A Figura 4.5 apresenta o grafico com os valores de compromisso de 56 geracoes em
uma execucao do algoritmo usando a melodia inicial proposta (Figura 4.1). A mediana
de todos estes valores de compromisso ocorre na decima segunda geracao. Note que o
valor de compromisso nao varia linearmente atraves das geracoes e a mediana de todos
estes valores pode ocorrer antes ou depois do meio do processo evolucionario.
Tres diferentes experimentos sao feitos com esta melodia, utilizando (i) o verso, (ii)
o refrao e (iii) ambos como populacao inicial. Comecando com a melodia aqui definida
como a mais simples (compassos 1-8), a Figura 4.6 apresenta um resultado possıvel do
algoritmo que usa os primeiros 8 compassos da melodia da Figura 4.1.
100 Resultados
0 10 20 30 40 500.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Geração
Valo
r de
Com
prom
isso
Figura 4.5: Valores de compromisso de 56 geracoes
!"!! ! # !5
$ ! ! # ""! # " !! ! ! # !" !#!!
! # !"! #! !# ! # !$ % "!" ! ! !! # !"!" !!
Figura 4.6: Um resultado utilizando o verso da musica
Resultados 101
!"! ! !!#! $ !6 % & !$ !"! "! ! "" !" ! ! &!! "
" ! !"! " !"%4 !"! !" !! "! "! !! !$
" ' !" ! &% ( !" " !#!)" !"!" !) * " !! !" ! !! !" !
Figura 4.7: Um resultado utilizando o refrao da musica
O resultado herda o padrao repetitivo da melodia original usada como referencia.
Todas as notas sao executadas no inıcio do pulso, exceto no quarto pulso que sempre
tem uma pausa e entao uma nota. Apesar dos resultados lembrarem o estilo da solucao
inicial, eles nao copiam simplesmente pedacos de melodia da populacao inicial. Assim,
o resultado e uma melodia que pode ser considerada nova. Uma nota re gerada por
mutacao tambem aparece na melodia nova.
Para contrastar o primeiro resultado com uma melodia mais complexa, a Figura 4.7
mostra os resultados obtidos usando os compassos 9-16 como populacao inicial. Mais
uma vez, o resultado final compartilha certas caracterısticas com a populacao inicial tais
como uma maior variedade de notas, sendo varias delas de mesma duracao (um oitavo
de um compasso). Tambem a extensao das notas e similar, de D# ate A# (usando 19
semitons) na populacao inicial e de F to G# (usando 15 semitons) na melodia resultante.
Comparando os dois primeiros experimentos, alguma evidencia de que os resultados
finais herdam o estilo da populacao inicial pode ser mais claramente percebida. Assim,
a populacao inicial pode ser um meio de controle do algoritmo, em vez da definicao de
regras estritas para um estilo particular de musica.
A influencia da estrutura rıtmica da populacao inicial pode ser percebida a medida
que a simplicidade ou complexidade do ritmo do resultado final e mantida em ambos
os casos. Mutacoes que alteram muito a estrutura rıtmica da melodia podem levar
facilmente a resultados ineficientes, especialmente quando varias subdivisoes de um pulso
sao permitidas como pontos de cruzamento. Permitir apenas pontos de cruzamento
musicalmente relevantes e uma das razoes pelas quais a musicalidade dos resultados e
mantida.
102 Resultados
! "# $" " " " "13 % "& $ "& ' ""# "! ' ""# "! $ " ! $ "& '"# $ "&&
(# $ "! "! '% "# " " "9 "# ' "! " " "# $ ""' " # "! ' "! $ " "## "! " "#"!# '"# " " " " "&5 % " "# $ "&! '' "&! "##" "# $ " " # "! ' ""! $ " " "
" "" " "& ' """ "% ) ! "" ' "'!" """ # # "! $ $ "& $##" " "# "!
Figura 4.8: Um resultado utilizando todos os compassos como populacao inicial
Uma nova cancao poderia ser construıda imitando-se o estilo da musica original e
partes desta nova cancao poderiam resultar do gerador melodico com partes diferen-
tes da cancao original. Mas mais do que isso pode ser feito: todas as partes de uma
musica podem ser utilizadas simultaneamente, formando resultados como os mostrados
na Figura 4.8.
Nestes tipos de experimentos, utilizando estilos diferentes de melodias, e importante
notar que o algoritmo nao tem a capacidade de distinguir quais compassos pertencem
a um estilo diferente e produzir uma nova melodia com alguns compassos em cada
estilo. Em vez disto, as caracterısticas dos diferentes compassos muito provavelmente se
misturam e formam um especıfico “estilo intermediario”.
O estilo de uma musica pode mudar consideravelmente se restricoes sao impostas
a indivıduos atraves de qualquer funcao de fitness tendenciosa. Isso pode mudar ca-
racterısticas originais da melodia dando preferencias a certos indivıduos. Usar tambem
exemplos demonstrativos, como o da Figura 4.2, que nao sao muito musicais e util para
comparar a influencia da populacao inicial do algoritmo e seus operadores. A Figura 4.9
mostra um experimento no qual os resultados podem exemplificar esta suposicao.
A populacao inicial e uma execucao de cada uma das notas com intervalos de meio
tom entre si, usando sempre a mesma duracao para as notas. Pelo menos para varios
musicos, esta sequencia de notas seria apenas utilizada como um exercıcio ou aqueci-
mento antes de uma apresentacao. Os resultados alcancados usando um AG livre de
Resultados 103
a) Populacao Inicial - Uma escala cromatica comecando de C!! !"! !!"!!" !# $ ! !" ! ! !! !" "b) Resultado 1 - Usando um AG livre de fitness
!" ! ! ! ! !# $ ! !!" !" "! % !!!" ! " !c) Resultado 2 - Usando um AG de fitness mınimo
!!!" ! ! !# !! !! ! !! !! !Figura 4.9: Utilizando uma escala cromatica como populacao inicial
fitness pode ser considerado tao musical (ou nao musical) como a escala cromatica uti-
lizada como populacao inicial. Eles nao respeitam escalas especıficas, assim como a
populacao inicial, e o padrao rıtmico e tambem o mesmo.
Por outro lado, o resultado utilizando uma abordagem baseado em fitness mınimo
que penaliza indivıduos com notas fora da escala de C fizeram a melodia final respeitar
este aspecto. Mesmo com o padrao rıtmico repetitivo novamente herdado da populacao
inicial, a restricao aplicada as notas fez a melodia inteira soar muito mais conservadora
em relacao a escala diatonica.
A desvantagem da abordagem baseada em fitness mınimo e que uma limitacao forte
foi imposta as melodias mesmo com os indivıduos tendo o mesmo valor de fitness na
maioria da geracoes. Isso leva a um resultado que perdeu parte de sua ligacao com a
melodia original, fazendo o algoritmo perder uma de suas feicoes. Neste caso especıfico,
os resultados utilizando uma abordagem baseada em fitness mınimo pode ser melhor
pois nao havia uma melodia inicial boa, que e o modo mais efetivo de controlar os
resultados de uma solucao livre de fitness . Assim, a abordagem baseada em fitness pode
ter limitado a ligacao entre os resultados e uma melodia ruim. Mesmo com a melodia
inicial nao sendo considerada boa por varias pessoas, o usuario pode ter a intencao
explıcita de criar uma outra melodia ruim tendo a primeira como uma referencia para
controlar o algoritmo.
Em casos nos quais as solucoes iniciais sao muito musicais e criativas, estas restricoes
poderiam provavelmente restringir esta criatividade da solucao inicial, tornando-a uma
104 Resultados
a) Populacao Inicial - Parabens a Voce
!!!"5 #!!!!$ $!!%!
! !!" & % ! !! !! ! $ ! ! $ !$ '
b) Resultados com uma selecao livre de fitness
! " ! "! !5
# ! ! !!! ! !! !! ! !
! "" ! !! !# $ ! !!" !! ! !! !!
Figura 4.10: Utilizando Parabens a Voce como populacao inicial
melodia mais simples. Nestas abordagens, melodias como a da Figura 4.7 nunca seriam
geradas.
Tambem a medida que o algoritmo tem resultados relacionados a populacao inicial,
uma abordagem livre de fitness pode ser utilizada com uma populacao inicial boa que
ja respeita algumas regras especıficas. Isso resultaria em novas melodias que podem
ser criativas mas serao tambem relacionadas com a populacao inicial. Nestes casos, um
controle de fitness pode ate remover algum controle sobre o algoritmo, se o usuario
espera ter algo similar a populacao inicial.
Por exemplo, uma melodia inicial simples que respeita a escala natural de do prova-
velmente resultara em outra melodia simples que ainda respeita a escala ate certo ponto.
O proximo experimento pode dar evidencia disto.
A Figura 4.10 mostra uma solucao inicial simples que respeita a escala natural de C.
Aplicando um esquema de selecao livre de fitness , a solucao final e tambem uma solucao
simples que nem tem notas que duram fracoes pequenas de tempo nem desrespeitam a
escala original de C. Todo o controle do algoritmo e assim feito pela populacao inicial
em vez de se usar funcoes de fitness que poderiam mudar o estilo dos resultados.
Resultados 105
!""#5 """"""$ $""%
" %" " "# & " "" "" " $ " $$ ' "
Figura 4.11: Melodia de Parabens a Voce
4.3 Gerador de Harmonias
4.3.1 Parametros e Dados de Entrada
Experimentos foram realizados com uma populacao de 100 indivıduos aleatoriamente
inicializados com 100 execucoes do algoritmo. Valores aleatorios entre 1 e 12 foram
dados a cada nota, exceto na nota 5 de cada compasso, que recebeu valores de 0 a 12,
onde 0 significa que nenhuma nota sera executada. A representacao das solucoes e feita
assim como demonstrada anteriormente na Tabela 3.9.
Uma melodia conhecida e utilizada como problema a ser resolvido para dar uma me-
lhor ideia das capacidades do algoritmo. Esta melodia, novamente retirada de Parabens
a Voce, e representada na Figura 4.11. O problema e representado agora por uma ma-
triz na qual cada coluna representa um compasso e doze linhas representam as notas
possıveis em um dado compasso. Esta representacao da mesma melodia da Figura 4.11
esta na Tabela 4.1. No processo de mapeamento, os dois Gs antes do primeiro compasso
sao considerados como estando no compasso 1.
Somando os valores de todas as colunas, como feito na coluna total, e possıvel ter
uma ideia de qual escala e implicitamente usada na melodia. Caso contrario, e necessario
encontrar em quais compassos as excecoes da escala acontecem e quais escalas podem
ser consideradas possıveis para o problema.
No exemplo da Tabela 4.1, apenas notas naturais sao representadas na coluna total,
deduzindo-se que a escala implıcita dada pela melodia e C - ou qualquer outra escala
relativa, como A menor. A escala utilizada em uma musica assim como a quantidade de
cada nota podem ser mais tarde utilizadas na funcao de fitness .
Se uma melodia nao tem notas suficientes para definir completamente qualquer das
106 Resultados
Tabela 4.1: Definindo uma escala de referencia para a harmonia
Measure 1 2 3 4 5 6 7 8
Notes Total
C 1 0 0 2 1 0 1 2 7
C# 0 0 0 0 0 0 0 0 0
D 0 0 1 0 0 0 1 0 2
D# 0 0 0 0 0 0 0 0 0
E 0 0 0 2 1 0 1 0 4
F 0 0 0 0 0 2 0 0 2
F# 0 0 0 0 0 0 0 0 0
G 3 2 1 0 1 0 0 0 7
G# 0 0 0 0 0 0 0 0 0
A 1 0 1 0 0 1 0 0 3
A# 0 0 0 0 0 0 0 0 0
B 0 1 0 0 0 1 0 0 2
escalas previamente definidas na coluna total, uma escala que contenha todas as notas da
coluna total sera escolhida. Por outro lado, se a melodia tem tantas notas que qualquer
escala falta alguma nota para corresponder a coluna total, alguns compassos da melodia
devem ser considerados excecoes ate que um padrao de excecoes corresponda a coluna
total.
Apenas escalas naturais foram consideradas neste experimento. Apesar disto, e facil
perceber que qualquer escala pode ser utilizada com este metodo.
4.3.2 Resultados e Discussao
Para demonstrar como os operadores influenciam a execucao do AG, a Figura 4.12
mostra a influencia de cada condicao na funcao de fitness em toda a populacao apos 100
execucoes do algoritmo. Cada grupo de barras mostra a influencia media das restricoes
durante cada grupo de 20 geracoes.
As restricoes sao numeradas no eixo x na mesma maneira que sao numeradas na
Tabela 3.11. Os valores de influencia consideram a influencia media de todos os in-
divıduos na geracao dada, considerando as funcoes f1
e f2
. E claro que a presenca de
Resultados 107
1−20 41−60 81−100 121−140 161−180−200
−150
−100
−50
0
50
Geração
Influ
ência
no
Fitn
ess
Ausência de TríadeNotas dissonantesUníssonosNotas inválidasSétima significativasPosição da Tônica
Figura 4.12: Perfil de fitness atraves das geracoes
unıssonos tem o maior peso na avaliacao das solucoes. Isso acontece principalmente por
causa das solucoes com bons valores na funcao simplicidade f1
. Estes indivıduos nao
tem varias notas dissonantes e estas sao substituıdas por unıssonos de outras notas. O
grafico considera as 200 geracoes iniciais do experimento.
A Figura 4.13 mostra uma solucao retirada da frente de Pareto com um bom valor na
funcao simplicidade (fitness (50, 61)). A harmonia gerada e muito simples e tem muita
similaridade com a harmonia original da musica, representada na Figura 4.14, a qual o
algoritmo nao tem acesso explıcito. As unicas diferencas seriam os acordes menores, que
sao inexistentes na cancao original (Dm e o acorde relativo menor de F).
A possibilidade de se gerar harmonias similares a original e uma evidencia de que
o algoritmo esta resultando em solucoes musicais. Isso nao significa que uma solucao
que nao se parece com a original nao e musical. Tais harmonias podem ser encontradas
mas copiar ou encontrar a harmonia original de uma melodia nao e o objetivo deste
trabalho. Por este motivo, testes “ground truth”, baseados nas harmonias originais, nao
se aplicam a este algoritmo pois a intencao e criar harmonias factıveis tao diversas e
criativas quanto possıvel.
A Figura 4.15 mostra uma solucao retirada da frente de Pareto com um bom valor na
108 Resultados
!" !!5 #$! ! ! !CC7% Dm
! % !G!
!G7
%% &! ! $! ! !C
!" ' ! !!!C
!Am
%
Figura 4.13: Solucao 1
! C! "!#
5 !!F
!!$C7 $G! % ! !
! %! ! C!! ! !# & ! !
G
$!C
$G
$' ! !
Figura 4.14: A harmonia original
Resultados 109
!C
!!"5 #!!
F
!!$D6
$Em7!! % !
F!!" & ! % ! !!! !
G6
$ ! !D
$! !G7/add6
$ '
Figura 4.15: Solucao 2
funcao dissonancia, especificamente fitness (�40, 101). E possıvel notar que o algoritmo
pode gerar harmonias mais complexas mesmo para uma melodia simples.
E tambem interessante notar que a solucao tem um acorde D, que nao pertence a
escala implıcita da melodia (Dm pertenceria). Contudo, este D esta em um compasso
onde nao ha a nota F, que seria a terceira de um Dm. Assim, a nota F# do acorde D
da harmonia nao e penalizada na funcao dissonancia pois ela leva cromaticamente ao
acorde seguinte (F4).
Tambem de acordo com as regras determinadas, o algoritmo pode ser considerado
bem sucedido ja que todos os indivıduos na frente de Pareto das ultimas geracoes exa-
minadas quebraram poucas restricoes na funcao simplicidade e tiveram valores positivos
de fitness para a funcao dissonancia.
A efetividade do algoritmo e seus operadores foi medida pelo hipervolume das fren-
tes de Pareto (Fonseca, Knowles, Thiele & Zitzler 2005) usando um ponto de referencia
(�1200,�1200). A Figura 4.16 representa informacoes relativas aos hipervolumes gera-
dos atraves de 200 geracoes (considerando 100 execucoes) com o eixo x representado em
escala logarıtmica.
Um exemplo da evolucao das frentes de Pareto em uma unica execucao do algo-
ritmo esta representada na Figura 4.17. As linhas representam os pontos dominados
pelo Pareto em uma dada geracao enquanto os pontos representam o fitness de todas as
solucoes avaliadas pelo algoritmo. Em todas as execucoes da algoritmo, os valores extre-
mos de fitness encontrados como resposta para a funcao simplicidade foram (�310, 251) e(120, 121) enquanto os valores extremos encontrados na funcao dissonancia foram (70, 21)
e (�60, 251). Os Paretos finais tiveram uma media de 21,08 indivıduos, ou 21,08
100
n, sendo
110 Resultados
100 101 1020.8
1
1.2
1.4
1.6
1.8
2x 106
Geração
Hip
ervo
lum
e
MédiaMedianaMáximoMínimoPercentil 25Percentil 75
Figura 4.16: Evolucao do hipervolume
n o numero inicial de indivıduos, e um valor de fitness medio de (4, 38, 178, 14).
O algoritmo avaliou 20,000 solucoes em 200 geracoes e o hipervolume medio do Pareto
final foi 1, 8197⇥ 106 (desvio padrao de 3, 1243⇥ 104) enquanto o Pareto inicial formado
por 100 solucoes aleatorias teve um hipervolume medio de 9, 3421⇥ 105. Um Pareto
produzido por 20.000 solucoes aleatoriamente geradas teve um hipervolume medio de
1, 1833⇥ 106 (desvio padrao de 3, 0844⇥ 104).
Para confirmar a confiabilidade da funcao de fitness em relacao a conceitos externos
de arte, uma pesquisa tambem foi feita com 12 participantes. Estes foram pedidos a dar
uma medida de qualidade de 12 harmonias retiradas das frentes de Pareto em diferentes
geracoes.
A seguinte abordagem foi utilizada para selecionar as harmonias avaliadas pelos par-
ticipantes. O hipervolume medio na primeira geracao e g0
= 9, 3421⇥ 105 e na ultima
geracao e g200
= 1, 8197⇥ 106. Por conseguinte, � = g200
� g0
= 8, 8554⇥ 105. As
geracoes com hipervolumes medios mais proximos a g0
+ (i � 1) �
n�1
foram usados com
amostras alem das geracoes 0 e 200, sendo n o numero de amostras e i a amostra desejada.
Este metodo foi utilizado pois a evolucao dos hipervolumes acontece logaritmicamente,
como pode ser percebido na Figura 4.16.
Resultados 111
−1200 −1000 −800 −600 −400 −200 0 200−1200
−1000
−800
−600
−400
−200
0
200
400
Fitness function 1
Fitn
ess
func
tion
2
Figura 4.17: Evolucao das frentes de pareto
112 Resultados
Tabela 4.2: Pesquisa sobre a qualidade das solucoes
Geracao Harm.1 Harm.2 Harm.3 Media
0 2,0 1,1 4,3 2,5
6 (100,7782) 4,3 5,6 4,0 4,6
16 (101,2041) 5,1 5,0 4,1 4,7
200 (102,3010) 8,7 7,7 7,5 8,0
Media 5,0 4,9 5,0 5,0
Usando este metodo com n = 4, as geracoes 0, 6, 16 e 200 (ou 0, 100.7782, 101.2041,
102.3010) foram escolhidas. Tres harmonias foram retiradas de cada uma destas geracoes,
duas dos extremos das frentes de Pareto, com bons valores nas funcoes f1
e f2
, e a outra
do meio do Pareto.
Os participantes eram nao musicos e todas as notas dadas por eles foram normalizadas
para uma escala de 0 a 10. As harmonias foram apresentadas em uma ordem aleatoria e
os participantes nao sabiam a qual geracao ou regiao do pareto cada harmonia pertencia.
Os participantes foram pedidos para ordenar as harmonias por ordem de preferencia
para definir uma nota de 1 a 12 a estas harmonias. As notas finais foram definidas
pela classificacao da harmonia respectiva. Os resultados medios sao apresentados na
Tabela 4.2. As harmonias 1 e 3 sao as melhores de acordo com as funcoes simplicidade
e dissonancia, respectivamente. A harmonia 2 representa uma posicao intermediaria do
Pareto.
Os resultados indicam uma pequena tendencia de preferencia pelas harmonias com
bons valores na funcao simplicidade (harmonias 1). Contudo, isso nao necessariamente
significa que qualquer uma das funcoes tem a habilidade de representar o processo de
harmonizacao mais efetivamente que a outra, pois estes numeros podem apenas estar
mostrando preferencias dos participantes.
Uma representativamente melhor avaliacao humana para indivıduos nas ultimas
geracoes e um bom sinal de que as funcoes de fitness estao de fato representando o
que pode ser considerada uma boa harmonia, pelo menos no contexto dos participan-
tes da pesquisa. E tambem interessante notar a divergencia entre as notas da ultima
geracao e as outras. Harmonias que desrespeitam apenas poucas restricoes impostas
pelas funcoes de fitness (geracao 16) tiveram notas muito baixas (apenas 84% mais al-
Resultados 113
tas que solucoes completamente aleatorias) em relacao as solucoes finais que tiveram
notas significativamente mais altas (320% mais alta que as solucoes iniciais). Isso ofe-
rece evidencias para inferir que, de acordo com a avaliacao humana, solucoes quebrando
poucas restricoes podem ser consideradas quase tao inadequadas quanto solucoes que
quebram varias restricoes ou ate solucoes aleatorias.
De qualquer maneira, quanto mais alta foi a avaliacao humana dos resultados, maior
foram os valores de fitness retornados pelo algoritmo. Apesar de avaliacoes de solucoes
poderem depender fortemente de analises estilısticas, isso da fortes evidencias de que a
codificacao descrita neste trabalho representa pelo menos em parte o que os participantes
da pesquisa consideram uma harmonia bem sucedida enquanto e capaz de funcionar com
diferentes preferencias dos usuarios. Afinal, estes sao os principais objetivos do algoritmo
proposto.
4.4 Conclusao
Os experimentos apresentados demonstram abordagens para resolver duas tarefas musi-
cais diferentes.
Para a geracao de melodias, e possıvel perceber a influencia da populacao inicial
nos resultados da abordagem apresentada assim como e possıvel perceber diferentes
implicacoes da maneira como o AG e especificado. O algoritmo pode assim ser usado
para gerar novas ideias mas tambem para expandir ideias previamente existentes.
Ja em relacao a geracao de harmonias, foi demonstrada a efetividade do metodo
NSGA-II para o problema definido utilizando-se a medida do hipervolume das solucoes
obtidas. A geracao de novas harmonias, tanto dissonantes quanto simples, puderam ser
realizadas para uma mesma melodia.
114
Capıtulo 5
Conclusoes
5.1 Conclusoes
Talvez o fato mais importante a ser notado no desenvolvimento de sistemas evolu-
cionarios para CA e que esta e uma tarefa na qual discussao no domınio relevante e
estritamente necessaria. Qualquer tentativa de se criar um sistema composicional sem
discussao sobre teoria musical e desnecessaria. Os algoritmos propostos neste trabalho
mostram que e possıvel criar novas composicoes e misturar elementos conhecidos relaci-
onados a novas musicas. Apesar da influencia da populacao inicial no resultado final das
melodias, o modo como o algoritmo e controlado pode levar a resultados completamente
novos ja que regras estritas (como uma funcao de fitness usual) nao sao aplicadas no
processo evolucionario.
A influencia rıtmica parcialmente explica o funcionamento do gerador de melodias
e como ele gera musica de generos similares, ja que ele mantem uma grande parte da
estrutura rıtmica da melodia inicial. Isto nao deve ser um problema de criatividade
se houver um banco de dados de melodias grande o suficiente para cobrir varios tipos
de estruturas melodicas de onde o gerador pode aprender. De fato, novas melodias
criativas puderam ser criadas a partir das iniciais. Ao final, e muito difıcil identificar de
qual melodia da populacao inicial a solucao herdou seu estilo.
Ainda no gerador de melodias, mudancas atraves das geracoes tem mais importancia
do que a procura por um resultado particular que satisfaz melhor um conjunto especıfico
de regras. Assim, e mais significante ter operadores cientes musicalmente robustos que
funcoes de fitness baseadas em regras que podem ao contrario remover alguma criati-
115
116 Conclusoes
vidade dos resultados. A matriz de takeover e uma boa abordagem nova desenvolvida
para encontrar um bom conjunto de solucoes relacionadas entre si.
As melodias, como um resultado do processo criativo, nao podem ser criadas baseadas
apenas em regras musicais simples, o sistema deve ter alguma experiencia implıcita sobre
o que compositores humanos fazem. Mais do que isto, um processo que cria melodias com
menos regras pode ser muito mais facil de ser implementado e usado quando comparado
com algoritmos que usam o artifıcio de um mentor humano para avaliar a populacao
inteira. Este algoritmo pode nao apenas ser util para desenvolver novas ideias mas
tambem para estender e mesclar ideias previamente criadas, que podem ser competitivas
com ideias geradas por humanos.
Melodias, como resultado do processo criativo que sao, podem ser criadas sem base
em velhas regras musicais que limitam a criatividade da composicao. Alem disto, o
processo de criacao de melodias com menos regras e avaliacao automatica pode funcionar
de maneira mais facil em relacao ao com avaliacao humana devido ao problema do gargalo
de avaliacao do fitness que e automaticamente resolvido e acaba com o trade-o↵ entre
tamanho da amostra e qualidade da avaliacao.
Os experimentos com duas funcoes de fitness para avaliar as harmonias tornaram cla-
ros aspectos importantes deste tipo de algoritmo. O conhecimento implıcito do sistema
tem grande influencia nos resultados. O modo como solucoes que sao boas em relacao
a apenas uma funcao de avaliacao diferem de outras solucoes com outros padroes de
preferencia demonstram este aspecto claramente. Esta abordagem possibilita que o al-
goritmo ignore preferencias estritamente especıficas do usuario e gere um conjunto de
solucoes factıveis.
O algoritmo convergiu para varias solucoes interessantes como as da Figura 4.15.
Estas solucoes sao resultado da flexibilidade embutida na sistema que leva a outro com-
promisso a ser analisado: aquele entre diversidade e obediencia a certas regras. A ultima
opcao nao e normalmente util para compositores procurando novas ideias. Ja sistemas
com criatividade podem gerar conjuntos com varias solucoes factıveis em vez de dar
sempre a mesma solucao excessivamente baseada em regras.
Modelos baseados em regras podem ser mais eficientes em alguns casos especıficos de
harmonizacao, especialmente quando compondo em um estilo especıfico. Nao obstante,
sistemas evolucionarios tem claras vantagens de flexibilidade e possibilidades de novas
solucoes criativas. A abordagem multiobjetivo demonstra como estas possibilidades de
novas solucoes criativas podem ser utilizadas.
Conclusoes 117
5.2 Trabalhos Futuros
Seguem sugestoes de trabalhos futuros que podem ser realizados em todas as etapas de
desenvolvimento deste trabalho.
Metodos que permitissem que o AG tivesse uma ideia de como a musica inteira deve
ser e que tivessem algum tipo de influencia externa poderiam provavelmente levar a
melhores abordagens. Atualmente, a maior parte das condicoes de avaliacao de uma
solucao consideram apenas o acorde seguinte, no maximo. Seria interessante imaginar
sistemas que pudessem analisar os compassos como um todo antes de aplicar os opera-
dores geneticos.
Existe trabalho potencial na representacao das solucoes. A mesma notacao musical
que faz a comunicacao mais facil entre musica pode ser eficiente quando se procura
uma solucao otima com um AG, ja que e uma linguagem criada para representar mais
eficientemente a linguagem dos acordes. Tambem, foi concluıdo que a codificacao de
acordes com 5 vozes nao foi muito fundamental para o gerador harmonico pois cerca
de 76% das solucoes nao utilizaram a quinta nota nos experimentos feitos. Apesar
disto, varias solucoes usaram a quinta nota mas tambem continham unıssonos no acorde.
Talvez, uma boa abordagem seja eliminar a quinta da trıade quando se criar acordes
dissonantes em vez de haver uma posicao opcional.
Na geracao de melodias, outras abordagens podem ser estudadas para a manutencao
da diversidade da populacao. Entre elas, as principais seriam (i) abordagens multiobje-
tivo, (ii) organizacao da populacao nichos e (iii) a utilizacao de sistemas imunologicos.
Alem ainda existe potencial trabalho a ser desenvolvido na formacao da solucao final
para que nesta haja uma relacao mais harmoniosa entre os compassos que foram unidos.
Um planejamento de mais alto nıvel antes da inicializacao do AG pode ser util para
extrair mais informacao sobre o problema antes do inıcio do processo evolucionario. Isso
permitiria o desenvolvimento de melhores operadores especıficos para o domınio e um
processo musicalmente ciente mais eficiente. Os algoritmos atuais aqui descritos operam
apenas em nıveis temporais locais e nao globais, como a organizacao da musica com
repeticoes, frases ou motivos.
Em trabalhos futuros, uma definicao mais aprofundada de quais aspectos sao regras
podem levar a uma abordagem evolucionaria ainda criativa que poderia ser mais baseada
em regras.
118 Conclusoes
Alem da avaliacao implıcita do gerador melodico, testes utilizando a matriz de take-
over - que contem uma medida de diversidade da populacao - para diferenciar o fitness
de indivıduos que criam mais diversidade no conjunto seriam importantes.
Ja que a populacao inicial tem tal importancia na geracao de melodias e importante
tambem criar uma base de dados de melodias que podem ser usadas como populacao
inicial. A partir daı, pode-se definir novas regras, como por exemplo impedir material
utilizado na criacao de um verso de ser utilizado em outro verso em uma heurıstica de
nıvel mais alto.
Referencias Bibliograficas
Alpern, A. (1995). Techniques for algorithmic composition of music, On the web:
http://hamp. hampshire. edu/˜ adaF92/algocomp/algocomp 95.
Ames, C. (1992). Quantifying musical merit, Journal of New Music Research 21(1): 53–
93.
Ashby, A. (2004). The pleasure of modernist music: listening, meaning, intention, ide-
ology, Univ of Rochester Pr.
Back, T., Ho↵meister, F. & Schwefel, H.-P. (1991). A survey of evolution strategies,
Proceedings of the Fourth International Conference on Genetic Algorithms, pp. 2–
9.
Biles, J. (1994). Genjam: A genetic algorithm for generating jazz solos, Proceedings of
the International Computer Music Conference, Citeseer, pp. 131–131.
Biles, J. (2001). Autonomous genjam: eliminating the fitness bottleneck by eliminating
fitness, Proceedings of the GECCO-2001 Workshop on Non-routine Design with
Evolutionary Systems, San Francisco.
Biles, J. (2002a). Genjam: evolutionary computation gets a gig, Proceedings of the 2002
Conference for Information Technology Curriculum, Rochester, New York, Society
for Information Technology Education, Citeseer.
Biles, J. (2002b). Genjam in transition: from genetic jammer to generative jammer,
Proceedings of Generative Art, Milan, Italy.
Biles, J. (2007a). Evolutionary Computation for Musical Tasks, Evolutionary Computer
Music pp. 28–51.
Biles, J. (2007b). Improvizing with genetic algorithms: Genjam, Evolutionary Computer
Music pp. 137–169.
119
120 REFERENCIAS BIBLIOGRAFICAS
Biles, J., Anderson, P. & Loggi, L. (1996). Neural network fitness functions for a musi-
cal iga, Proceedings of the International ICSC Symposium on Intelligent Industrial
Automation (IIA’96) and Soft Computing (SOCO’96). .
Biles, J. & Eign, W. (1995). Genjam populi: Training an iga via audience-mediated
performance, Proceedings of the 1995 International Computer Music Conference,
Vol. 12.
Brown, A. R. (2002). Opportunities for evolutionary music composition, Proceedings of
the Australasian Computer Music Conference, Melbourne, pp. 27–34.
Burton, A. R. & Vladimirova, T. (1997). Genetic algorithm utilizing neural network eva-
luation for musical composition, Proceedings of the 1997 International Conference
on Artificial Neural Networks and Genetic Algorithms. Springer-Verlag, Berlin. .
Cage, J. (1961). Silence: lectures and writings, Wesleyan Univ Pr.
Chuang, J. (1995). Mozarts musikalisches wurfelspiel, URL: http://sunsite. univie. ac.
at/Mozart/dice .
Corne, D. W. & Bentley, P. J. (eds) (2001). Creative Evolutionary Systems, The Morgan
Kaufmann Series in Artificial Intelligence, Morgan Kaufmann.
Darwin, C. (2003). The origin of species, Signet Classic.
Deb, K., Agrawal, S., Pratap, A. & Meyarivan, T. (2000). A fast elitist non-dominated
sorting genetic algorithm for multi-objective optimization: Nsga-ii, Parallel Problem
Solving from Nature PPSN VI, Springer, pp. 849–858.
Eiben, A. E. & Smith, J. E. (2003). Introduction to Evolutionary Computing, Natural
Computing Series, Springer.
Erickson, R. (1975). Sound structure in music, Univ of California Pr.
Federman, F. (2003). The nextpitch learning classifier system: Representation, infor-
mation theory and performance, Leonardo 36(1): 47–50.
Felder, D. & Stockhausen, K. (1977). An interview with karlheinz stockhausen, Pers-
pectives of New Music 16(1): 85–101.
Fonseca, C., Knowles, J., Thiele, L. & Zitzler, E. (2005). A tutorial on the performance
assessment of stochastic multiobjective optimizers, Third International Conference
on Evolutionary Multi-Criterion Optimization (EMO 2005), Vol. 216.
REFERENCIAS BIBLIOGRAFICAS 121
Galanter, P. (2008). Complexism and the role of evolutionary art, The Art of Artificial
Evolution pp. 311–332.
Gardner, M. (1978). White and brown music, fractal curves and 1/f fluctuations, Sci-
entific American 238(4): 16–32.
Gartland-Jones, A. (2003). Musicblox: a real-time algorithmic composition system in-
corporating a distributed interactive genetic algorithm, Proceedings of the 2003 in-
ternational conference on Applications of evolutionary computing, Springer-Verlag,
pp. 490–501.
Goldberg, D. E. & Deb, K. (1991). A comparative analysis of selection schemes used in
genetic algorithms, Foundations of Genetic Algorithms, Morgan Kaufmann, pp. 69–
93.
Graf, J. & Banzhaf, W. (1995). Interactive evolution of images, in D. B. Fogel (ed.), Pro-
ceedings of the Fourth Annual Conference on Evolutionary Programming, pp. 53–65.
Grahan-Rowe, D. (2001). Computer dj uses biofeedback to pick tracks, New Scientist .
Greenfield, G. R. (2002). Simulated aesthetics and evolving artworks: a coevolutionary
approach, Leonardo 35(3).
Hiller, L. (1959). Computer music, Scientific American 201(6): 109–120.
Hiller, L. (1981). Composing with computers: A progress report, Computer Music
Journal 5(4): 7–21.
Hiller, L. & Isaacson, L. (1958). Musical composition with a high-speed digital computer,
Machine models of music pp. 9–21.
Hillis, W. (1990). Co-evolving parasites improve simulated evolution as an optimization
procedure, Physica D: Nonlinear Phenomena 42(1-3): 228–234.
Horner, A. & Ayers, L. (1995). Harmonisation of musical progression with genetic
algorithms, ICMC Proceedings 1995, pp. 483–484.
Horner, A., Beauchamp, J. & Haken, L. (1993). Methods for multiple wavetable synthesis
of musical instrument tones, Journal-Audio Engineering Society 41: 336–336.
Horowitz, D. (1995). Generating rhythms with genetic algorithms, Proceedings of the
national conference on artificial intelligence, John Wiley & Sons LTD, pp. 1459–
1459.
122 REFERENCIAS BIBLIOGRAFICAS
Hyde, M. (1985). Musical form and the development of schoenberg’s”twelve-tone
method”, Journal of Music Theory 29(1): 85–143.
Jacob, B. (1995). Composing with genetic algorithms, Proceedings of the 1995 Interna-
tional Computer Music Conference .
Jacob, B. (1996). Algorithmic composition as a model of creativity, Organised Sound
1(03): 157–165.
Jobim, A. C. & Mendonca, N. (1959). Samba de uma nota so.
Johanson, B. & Poli, R. (1998). Gp-music: An interactive genetic programming system
for music generation with automated fitness raters, Genetic Programming pp. 181–
186.
Johnson, C. (2003). Exploring sound-space with interactive genetic algorithms, Leonardo
36(1): 51–54.
Kennedy, M. & Bourne, J. (2004). The concise Oxford dictionary of music, Oxford
University Press, USA.
Kirnberger, J. & Kupper, H. (1994). Der allezeit fertige Polonoisen-und Menuettencom-
ponist, Musikwiss. Inst.
Kumar, V. (1992). Algorithms for constraint-satisfaction problems: A survey, AI Ma-
gazine 13(1): 32–44.
Lewis, M. (2000). Aesthetic evolutionary design with data flow networks, Proceedings
of Generative Art, Milan, Italy.
Lewis, M. (2008). Evolutionary visual art and design, in P. Machado & J. Romero
(eds), The Art of Artificial Evolution: A Handbook on Evolutionary Art and Music,
Springer, pp. 3–37.
Lischka, C. (1991). Understanding music cognition: a connectionist view, Representati-
ons of musical signals, MIT Press, p. 445.
Machado, P., Romero, J., Santos, M., Cardoso, A. & Manaris, B. (2004). Adaptive
critics for evolutionary artists, Applications of evolutionary computing pp. 437–446.
Maddox, T. & Otten, J. (2000). Using an evolutionary algorithm to generate four-part
18th century harmony, Mathematics and Computers in Modern Science: Acoustics
and Music, etc pp. 83–89.
REFERENCIAS BIBLIOGRAFICAS 123
Madsen, S. & Widmer, G. (2005). Exploring similarities in music performances with an
evolutionary algorithm, Proceedings of The 18th International FLAIRS Conference,
AAAI Press.
Malm, W. (1996). Music cultures of the Pacific, the Near East, and Asia, Prentice Hall.
Mandelis, J. (2001). Genophone: An evolutionary approach to sound synthesis and
performance, Proceedings ALMMA pp. 37–50.
Mathieu, W. (1997). Harmonic experience: tonal harmony from its natural origins to
its modern expression, Inner Traditions International, Rochester, Vt.
McCormack, J. (2003). Evolving sonic ecosystems, Kybernetes 32(1): 184–202.
McCormack, J. (2005). Open problems in evolutionary music and art, Applications on
Evolutionary Computing pp. 428–436.
McIntyre, R. (1994). Bach in a box: The evolution of four part baroque harmony using
the genetic algorithm, Evolutionary Computation, 1994. IEEE World Congress on
Computational Intelligence., Proceedings of the First IEEE Conference on, IEEE,
pp. 852–857.
McKean, E. (2005). The New Oxford American Dictionary, Oxford University Press
New York, NY:.
Michalewicz, Z. & Fogel, D. (2004). How to solve it: modern heuristics, Springer-Verlag
New York Inc.
Miranda, E. R. & Biles, J. A. (2007). Evolutionary computer music, Springer Verlag.
Moroni, A., Manzolli, J., Zuben, F. & Gudwin, R. (2000). Vox populi: An interactive
evolutionary system for algorithmic music composition, Leonardo Music Journal
pp. 49–54.
Mozart, W. (1787). Musikalisches wurfelspiel: Anleitung so viel walzer oder schleifer mit
zwei wurfeln zu componieren ohne musikalisch zu seyn noch von der composition
etwas zu verstehen, Kochel Catalog of Mozarts Work KV1 Appendix 294d or KV6
516f .
Mrozek, E. & Wakefield, G. (1996). Perceptual matching of low-order models to room
transfer functions, Proceedings of the International Computer Music Conference,
International Computer Music Association, pp. 111–113.
124 REFERENCIAS BIBLIOGRAFICAS
Nattiez, J. (1990). Music and discourse: Toward a semiology of music, Princeton Univ
Pr.
Nickol, P. (1999). Learning to Read Music: How to Make Sense of Those Mysterious
Symbols, How to Books Ltd.
Norman, D. (1988). The design of everyday things., Basic Book Inc./New York .
Olson, H. (1967). Music, physics and engineering, Dover Pubns.
Papadopoulos, G. & Wiggins, G. (1999). Ai methods for algorithmic composition: A
survey, a critical view and future prospects, AISB Symposium on Musical Creativity,
Citeseer, pp. 110–117.
Phon-Amnuaisuk, S., Tuson, A. & Wiggins, G. (1999). Evolving musical harmonisa-
tion, Artificial neural nets and genetic algorithms: proceedings of the international
conference in Portoroz, Slovenia, 1999, Springer Verlag Wien, p. 229.
Pierce, J. (1999). Introduction to pitch perception, Music, cognition, and computerized
sound, MIT Press, p. 70.
Plack, C., Oxenham, A., Fay, R. & Popper, A. (2005). Pitch: neural coding and percep-
tion, Springer Verlag.
Polito, J., Daida, J. & Bersano-Begey, T. (1997). Musica ex machina: composing 16th-
century counterpoint with genetic programming and symbiosis, Evolutionary Pro-
gramming VI, Springer, pp. 113–123.
Prerau, M. (2001). On the possibilities of an analytic synthesis system, Proceedings of
the European Conference on Artificial Life 2001 Workshop: Artificial Life Models
for Musical Applications.
Pritchett, J. (1996). The Music of John Cage, Cambridge Univ Pr.
Putnam, J. (1996). A grammar-based genetic programming technique applied to music
generation, Evolutionary Programming V, MIT Press, Cambridge, MA pp. 363–368.
Ralley, D. (1995). Genetic algorithms as a tool for melodic development, Urbana
101: 61801.
Reeves, C. (2010). Genetic algorithms, Handbook of Metaheuristics pp. 109–139.
Roads, C. (2001). Microsound., Massachusetts Institute of Technology .
REFERENCIAS BIBLIOGRAFICAS 125
Romero, J. J. & Machado, P. (2007). The art of artificial evolution: A handbook on
evolutionary art and music, Natural Computing Series, Springer.
Ross, B. J., Ralph, W. & Zong, H. (2006). Evolutionary image synthesis using a model of
aesthetics, Proceedings of the IEEE Congress on Evolutionary Computation, CEC
2006, Vancouver, BC, pp. 1087–1094.
Schellenberg, E., Bigand, E., Poulin-Charronnat, B., Garnier, C. & Stevens, C. (2005).
Children’s implicit knowledge of harmony in western music, Developmental Science
8(6): 551–566.
Sharman, K. & Esparcia-Alcazar, A. (2003). Evolutionary methods for designing digital
filters, Contemporary Music Review 22(3): 5–19.
Surmani, A., Surmani, K. & Manus, M. (2004). Alfred’s Essentials of Music Theory: A
Complete Self-Study Course for All Musicians, Alfred Publishing Co., Inc.
Takagi, H. (2001). Interactive evolutionary computation: fusion of the capabilities of EC
optimization and human evaluation, Proceedings of the IEEE 89(9): 1275–1296.
Todd, P. & Werner, G. (1999). Frankensteinian methods for evolutionary music compo-
sition, Musical networks: Parallel distributed perception and performance pp. 313–
339.
Todd, S. & Latham, W. (1992). Evolutionary art and computers, Academic Press,
Orlando, FL, USA.
Unemi, T. & Senda, M. (2002). A study on building a support system for music compo-
sition by simulated breeding method. extension to multi-part., Joho Shori Gakkai
Kenkyu Hokoku 2002(40): 133–138.
Vuori, J. & Valimaki, V. (1993). Parameter estimation of non-linear physical models by
simulated evolution-application to the flute model, Proceedings of the International
Computer Music Conference, International Computer Music Association, pp. 402–
402.
Ward, W. (1970). Musical perception, Foundations of modern auditory theory 1: 407–
447.
Waschka II, R. (1999). Avoiding the fitness bottleneck: Using genetic algorithms to com-
pose orchestral music, International Computer Music Conference ICMC99, pp. 201–
203.
126 REFERENCIAS BIBLIOGRAFICAS
Waschka II, R. (2007). Composing with genetic algorithms: Gendash, Evolutionary
Computer Music pp. 117–136.
Wiggins, G., Papadopoulos, G., Phon-Amnuaisuk, S. & Tuson, A. (1998). Evolutio-
nary methods for musical composition, Proceedings of the CASY98 Workshop on
Anticipation, Music and Cognition .
Woolf, S. (1999). Sound Gallery: An Interactive Artificial Life Artwork, PhD thesis,
MSc Thesis, School of Cognitive and Computing Sciences, University of Sussex.
Woolf, S. & Yee-King, M. (2003). Virtual and physical interfaces for collaborative
evolution of sound, Contemporary Music Review 22(3): 31–41.
Indice Remissivo
Acorde, 14, 28, 30–32, 48, 83–86, 88, 89,
92–95, 107, 109, 117
Algoritmo
Evolucionario, 45, 46, 57, 58, 63, 66, 76
Genetico, 3, 12–14, 41–43, 45, 46, 49,
50, 53, 61, 74, 83, 85, 90, 95, 96,
102, 106, 113, 117
Altura Tonal, 16, 18–21, 26, 27, 32, 33, 46,
56, 57, 69, 84–89, 93
Amplitude, 18, 19, 21, 23, 25, 39, 69
Avaliacao, 5, 12, 13, 15, 42, 45, 50, 53, 56–
63, 66, 67, 73, 75, 78, 85, 87–89, 91,
94, 97, 107, 112, 113, 116–118
Compasso, 5, 14, 15, 32, 33, 46–48, 50, 56,
57, 63, 66, 67, 69–73, 75, 78–80, 83,
85, 87–89, 92–95, 97, 99, 101, 102,
105, 106, 109, 117
Composicao Algorıtmica, 3, 10, 12, 13, 15–
18, 36, 39, 41, 42, 45, 46, 57, 60,
64, 65, 76, 115
Computacao Evolutiva, 3, 6, 13, 15, 16, 39,
41, 43, 53, 56, 62, 63, 65, 76
Crowding Distance, 91
Cruzamento, 43, 53–55, 57, 63, 71, 79, 87,
101
Escala, 11, 12, 19–21, 28, 30–33, 36, 46, 47,
57, 58, 68, 69, 72, 74, 77, 83, 84,
93, 103–106, 109, 112
Fitness, 5, 8, 9, 41, 42, 45, 51–53, 56–58,
61, 63, 66, 67, 71, 74–78, 83, 86,
88, 89, 91, 92, 94, 96–98, 102–107,
109, 110, 112, 113, 115, 116, 118
Implıcito, 63
Mınimo, 58, 74, 76, 103
Funcao, 8, 9, 13, 42, 44–46, 50, 57, 62,
73–75, 86, 89–94, 98, 102, 105–107,
109, 110, 112, 115, 116
Gerador Melodico, 33, 66, 67, 70–72, 74,
77, 78, 97, 102, 115, 118
Harmonia, 6–9, 11, 14, 16, 27, 28, 30, 41,
42, 47, 54, 71, 83, 85, 87–90, 92–94,
96, 107, 109, 110, 112, 113, 116
Hipervolume, 109, 110, 113
Inteligencia Artificial, 3, 12
Interacao Homem-Computador, 36, 39, 61
Intervalo
Horizontal, 30, 50, 56
Vertical, 30, 55, 72, 85–87, 92
Musica Evolutiva, 3, 13, 44, 46, 54–56, 66,
71
Matriz de Takeover, 66, 67, 71, 80–82, 116,
118
Melodia, xiv, 5–9, 14, 16, 27, 28, 30, 31, 33,
37, 41, 42, 46–48, 50, 55, 56, 58–60,
127
128 INDICE REMISSIVO
62, 63, 66, 67, 69–78, 81–83, 88–90,
93, 95–99, 101–107, 109, 113, 115,
116, 118
MIDI, 15, 23, 47, 67, 68, 95
Motivo, 27
Multiobjetivo, 8, 9, 90
Mutacao, 53–56, 62, 72, 73, 79, 87, 88
Nota, xiv, 8, 11–13, 19–21, 25–28, 30–33,
37, 42, 46–48, 50, 53, 55–57, 59, 61,
65–70, 72–74, 79–89, 92–95, 97, 98,
101–107, 109, 112, 117
NSGA-II, 90, 113
Operadores Geneticos, 5, 45, 50, 53, 62, 63,
66, 67, 69–71, 73, 74, 78, 87, 88, 92,
117
Pareto, 90, 91, 107, 109, 110, 112
Percussao, 26, 27, 32
Redes Neurais Artificiais, 12
Representacao, 5, 6, 18, 30, 33, 42, 43, 45–
48, 57, 65, 67–70, 73, 83–88, 92, 93,
95, 105, 117
Ritmo, 13, 32, 47, 48, 84, 95, 101
Roleta, 51
Selecao, 5, 12, 42, 43, 51–53, 63, 70, 74–76,
87, 104
SST, 13
Takeover, 64–66, 70, 71, 75–83, 99, 116
Timbre, 7, 13, 16, 18, 25–27, 33, 39, 65, 68
Valor de Compromisso, 82, 83, 97, 99
Velocidade, 18, 23, 69
Volume, 7, 16, 18, 21, 23, 25