COMPOSICIÓN MUSICAL A TRAVÉS DEL USO DE ALGORITMOS GENÉTICOS

85
COMPOSICIÓN MUSICAL A TRAVÉS DEL USO DE ALGORITMOS GENÉTICOS Tesista: Ezequiel Moldaver Directores: M. Ing. Hernán Merlino y M. Ing. Enrique Fernández Hoja 1/85

description

COMPOSICIÓN MUSICAL A TRAVÉS DEL USO DE ALGORITMOS GENÉTICOS

Transcript of COMPOSICIÓN MUSICAL A TRAVÉS DEL USO DE ALGORITMOS GENÉTICOS

  • COMPOSICIN MUSICAL A TRAVS DEL USO

    DE ALGORITMOS GENTICOS

    Tesista: Ezequiel Moldaver

    Directores: M. Ing. Hernn Merlino y

    M. Ing. Enrique Fernndez

    Hoja 1/85

  • ndice de Contenidos

    1) Introduccin.....................................................................................................................................5

    2) Objetivos..........................................................................................................................................6

    3) Problema a resolver..........................................................................................................................7

    4) Definicin de soluciones a los problemas planteados......................................................................9

    5) Estado de la cuestin......................................................................................................................10

    5.1) Algoritmos Genticos.............................................................................................................10

    5.2) Redes Neuronales...................................................................................................................11

    5.3) Composicin musical.............................................................................................................11

    5.3.1) Criterio de composicin musical....................................................................................11

    5.4) Trabajos Realizados................................................................................................................12

    6) Desarrollo de la solucin...............................................................................................................13

    6.1) Armado de la Red Neuronal...................................................................................................20

    6.2) Arquitectura del sistema.........................................................................................................23

    7) Validacin de la solucin................................................................................................................32

    7.1) A travs de penalizaciones.....................................................................................................32

    7.2) A travs del aprendizaje de gustos musicales........................................................................33

    8) Plan de trabajo................................................................................................................................34

    9) Conclusiones..................................................................................................................................35

    10) Referencias...................................................................................................................................36

    ANEXOS............................................................................................................................................40

    Anexo I: Manual de Usuario [47].......................................................................................................41

    TuxGuitar............................................................................................................................................41

    Los Primeros Pasos...................................................................................................................41

    Las barras de herramientas........................................................................................................43

    Anexo II: Ejemplos de Cruza y Mutacin..........................................................................................49

    Cruza..............................................................................................................................................49

    Mutacin........................................................................................................................................50

    Anexo III: Conceptos Musicales [48].................................................................................................52

    Lectura Musical.............................................................................................................................52

    Las claves..................................................................................................................................52

    Nombre de las notas..................................................................................................................53

    Hoja 2/85

  • La clave de sol...........................................................................................................................53

    Las lneas adicionales................................................................................................................53

    La clave de fa............................................................................................................................53

    Memorizacin de notas.............................................................................................................54

    Uso combinado de clave de sol y fa..........................................................................................54

    La notacin rtmica...................................................................................................................55

    Las figuras musicales................................................................................................................55

    El comps..................................................................................................................................56

    La indicacin de comps...........................................................................................................56

    Las lneas divisorias..................................................................................................................57

    El puntillo..................................................................................................................................57

    La ligadura................................................................................................................................58

    Unidad de tiempo y comps......................................................................................................58

    Los silencios..............................................................................................................................59

    Compases simples y compuestos..............................................................................................60

    Las alteraciones.........................................................................................................................61

    Las armaduras de clave.............................................................................................................61

    Las claves de do........................................................................................................................62

    Intervalos.......................................................................................................................................62

    Tonos y semitonos.........................................................................................................................63

    Calificacin o especie de un intervalo...........................................................................................64

    Las segundas..................................................................................................................................65

    Identificacin de segundas........................................................................................................65

    Las terceras....................................................................................................................................66

    Identificacin de terceras..........................................................................................................67

    Las cuartas.....................................................................................................................................68

    Identificacin de cuartas...........................................................................................................68

    Las quintas.....................................................................................................................................69

    Identificacin de quintas...........................................................................................................69

    Las sextas.......................................................................................................................................70

    Identificacin de sextas.............................................................................................................70

    Las sptimas...................................................................................................................................71

    Identificacin de sptimas.........................................................................................................71

    Las octavas.....................................................................................................................................72

    Hoja 3/85

  • Alteraciones...................................................................................................................................72

    Consonancias y disonancias...........................................................................................................73

    Enarmona......................................................................................................................................73

    Intervalos ascendentes y descendentes..........................................................................................73

    Intervalos compuestos y simples...................................................................................................74

    Intervalos meldicos y armnicos.................................................................................................74

    Semitonos cromticos y diatnicos................................................................................................74

    Relacin matemtica de los intervalos...........................................................................................75

    Acordes..........................................................................................................................................75

    Las inversiones..............................................................................................................................75

    Las triadas......................................................................................................................................76

    Formacin de triadas en las escalas mayores............................................................................77

    Formacin de triadas en las escalas menores............................................................................78

    Triadas y grados de las escalas..................................................................................................78

    Identificacin de triadas............................................................................................................79

    Otra forma de identificar las triadas..........................................................................................80

    Los acordes de sptima..................................................................................................................81

    Acordes de novena.........................................................................................................................82

    Escalas...........................................................................................................................................83

    La escala menor.........................................................................................................................84

    Escalas relativas........................................................................................................................85

    La tonalidad...................................................................................................................................85

    Hoja 4/85

  • 1) Introduccin

    La composicin musical es el arte que tiene como objetivo la creacin de obras musicales, es una

    actividad humana que sirve para la expresin, comunicacin y entendimiento entre personas. Se

    podra dividir en 2 partes bsicas: la meloda y la armona. La primera, segn la Real Academia

    Espaola (RAE)[1] es La parte de la msica que trata del tiempo con relacin al canto, y de la

    eleccin y nmero de sones con que han de formarse en cada gnero de composicin los perodos

    musicales, ya sobre un tono dado, ya modulando para que el canto agrade al odo, siendo la

    segunda la unin de tres o ms sonidos simultneos, entendiendo que el canto o meloda producido

    por una sola voz es homnimo, con dos voces se producen intervalos armnicos y, a partir de 3

    voces o sonidos simultneos hablamos de armona.

    Este trabajo se enfocar en el uso de los algoritmos genticos (AAGG)[1], [2] con el fin de mezclar

    armonas y melodas de forma que se genere una composicin musical de buen sonido para el odo,

    lo que significa que el contexto de cada nota respaldar la sonoridad de la misma provocando que

    no se genere un efecto disonante de forma permanente, que se genere una disonancia momentnea

    es permisible ya que es parte de la misma msica generar tensin a travs de pequeos intervalos

    poco agradables al odo. Si bien los AAGG no fueron diseados para imitar comportamiento

    humano sino para resolver problemas u optimizar soluciones, pero se puede pensar en la

    composicin de la msica como el problema de encontrar una cancin que suene bien al tomar en

    consideracin el conjunto de todas las composiciones posibles como el espacio de soluciones, este

    espacio no est estructurado, es decir, que las buenas soluciones pueden estar junto a las malas; al

    cambiar algunas notas clave en una pieza, sta puede llegar a ser menos interesante, aunque

    parezcan parecidas. La idea principal es mezclar de forma aleatoria distintos temas musicales de

    forma iterativa, en cada iteracin se seleccionarn las mejores canciones para ser la base de la

    iteracin siguiente. Adems, en base a una variable probabilstica se realizar un cambio aleatorio

    sobre uno de los compases de alguno de los temas, que tambin ser elegido al azar. Luego de

    varias repeticiones se obtendrn como resultado distintas piezas musicales que sern totalmente

    distintas a las primeras, generando de esta forma, nueva msica.

    Con el fin priorizar la estructura de temas agradables o buscados por el usuario se utilizarn redes

    neuronales (RRNN)[3], [4] que sern entrenadas para permitirle a ste un procesamiento automtico

    de composicin basado en sus gustos e inclinaciones musicales. Las mismas sern entrenadas con

    este fin para interpretar de todas las canciones candidatas en cada iteracin y seleccionar aquellas

    que, de acuerdo a la estructura generada por el entrenamiento, sean las que el usuario hubiese

    Hoja 5/85

  • elegido.

    El presente documento consta de las siguientes secciones:

    2) Objetivos: definicin y explicacin del fin de este proyecto.

    3) Problema a resolver: planteo de los distintos aspectos y situaciones que dieron origen a la

    idea de esta tesis.

    4) Definicin de las soluciones al problema planteado: explicacin de las formas y mtodos

    que se necesitan para resolver lo que se ha planteado en el punto 3.

    5) Estado de la cuestin: se detallan conceptos sobre algoritmos genticos, redes neuronales y

    composicin musical; adems se especifica sobre los trabajos realizados en el rea que

    compete al tema de la tesis.

    6) Desarrollo de la solucin: se explica detalladamente la implementacin que se hizo de la

    solucin explicada en el punto 3, se muestran los diagramas de clases y de paquetes

    correspondientes y se explican los patrones utilizados.

    7) Validacin de la solucin: consiste en la evaluacin del sistema desarrollado para resolver

    los problemas planteados. De esta evaluacin se desprender si todo lo que se plante

    anteriormente fue resuelto de manera correcta, explicando los puntos fuertes y dbiles a

    travs de lo que se pueda observar de manera emprica.

    8) Conclusiones: se describen los aspectos que de la solucin que decantan de los resultados

    obtenidos en las pruebas de validacin.

    9) Plan de trabajo: se especifica el tiempo estimado para la realizacin de cada parte que

    constituye trabajo detallado en el punto anterior.

    10) Referencias: se mencionan las citas que se han utilizado para la preparacin de este

    documento.

    2) Objetivos

    El proyecto tiene diversos objetivos que se encuentran orientados a las distintas aristas que tiene la

    composicin musical. Cuando un msico o compositor musical se encuentra sin inspiracin

    permanente puede utilizar cmo mtodo de ayuda para superar esta situacin el compositor musical

    a travs de AAGG. El primer objetivo de todos los que se van a plantear es que las canciones

    generadas por la herramienta sean agradables al odo, es decir, las partes disonantes deben ser

    armnicas y deben ser una minora en proporcin a las que no. No tendra sentido que una persona

    componga un tema que sea desagradable al escucharlo, si bien hay distintos gneros musicales y

    existen personas que no les gustan unos y si otros, dentro de cada gnero existen ciertos

    Hoja 6/85

  • comportamientos intrnsecos a l que hacen que stos tengan una estructura ms o menos definida y,

    dentro de esta, sern agradables al odo de las personas a las que les gusta ese tipo de msica. El

    segundo objetivo es netamente legislativo, para proteger la propiedad intelectual de los

    compositores. Las canciones generadas por el algoritmo de composicin musical no deben ser

    plagio de las partituras que les dieron origen. Se fijar un criterio el cul debe cumplirse

    estrictamente para no ser victimarios del delito de plagio, respetando de esta manera a toda la

    comunidad artstica de la cul se forma parte. Se debe ser muy cuidadoso a la hora de producir un

    nuevo contenido artstico ya que este puede incurrir en el delito de violacin a la ley 11.723 de

    Propiedad Intelectual de la Repblica Argentina, por estos motivos se fija este objetivo

    completamente orientado al proteccionismo y el respeto. Como tercer parte este programa debe

    respetar los gustos musicales del usuario, se buscar que la respuesta del sistema sea una clara

    consecuencia de la entrada que se le de al mismo, suponiendo de esta forma que el usuario quiera

    usar como base generadora de su composicin las partituras iniciales, manteniendo ciertas

    caractersticas de los mismos, vindose afectadas en parte, lo suficiente como para generar una

    cancin que cumpla con el segundo objetivo pero a la vez se cumpla con el que se esta definiendo

    en este punto. Por ltimo, el software debe generar una partitura con ciertos criterios definibles

    por el compositor, todas las transformaciones que sufran las partituras de entrada al sistema deben

    estar reguladas a gusto y capricho del usuario, pudiendo definir distintos tipos de restricciones o

    reglas a travs de las cules se premien o se castiguen ciertas mezclas o caractersticas musicales

    que se puedan ir dando a lo largo del proceso iterativo de composicin, cumpliendo as con las

    metas que est buscando el usuario en funcin de poder manejar algunas de las variables que se

    encuentran libradas al azar dentro de la ejecucin del programa.

    3) Problema a resolver

    Un msico muchas veces cae en mesetas de inspiracin que limitan su produccin musical, la

    mayora de las veces esto sucede luego de haber tenido una etapa muy fructfera en cuanto a

    composicin. Adems, un compositor sufre de momentos efmeros de iluminacin que muchas

    veces terminan decantando en pequeas piezas musicales que quedan condenadas, en general, al

    olvido.

    Por ello, se necesitara implementar una solucin que permita obtener un material en crudo para ser

    escuchado, estudiado, analizado y, finalmente, modificado a criterio del msico con el fin de

    servirle a ste de ayuda para los momentos de poca inspiracin. Este material debe poder obtenerse

    de manera flexible tanto de las pequeas piezas que se componen como de canciones completas ya

    Hoja 7/85

  • que no siempre se cuentan con las primeras.

    Dado que en la msica oriental existen 12 notas musicales y distintos tipos de combinacin entre

    ellas es difcil para un algoritmo saber cuando una pieza suena bien o no, adems existen estudios

    llamados de armona que se encargan de este tipo de cuestin. Si bien existen las disonancias,

    sonidos tensos o poco agradables al odo, stas enriquecen la composicin quitndole la monotona

    de seguir algn tipo de escala conocida para ese tipo de estructura de cancin. Adems, las mismas

    pueden ser una introduccin a un cambio de tonalidad haciendo de pase o puente entre una y otra.

    Por ltimo, queda sealar, que siempre la msica queda reducida al criterio del compositor, lo que

    busca, siente y quiere expresar, no existen reglas que descarten la disonancia, pero por oro lado a

    nadie le gustara una cancin que en cada una de sus partes haya tensin o sea totalmente disonante.

    Por una cuestin de respeto tanto a la comunidad artstica como al pblico y de idoneidad, una

    cancin no debe ser un plagio de otra. No existe un criterio uniforme que determine cuando una

    pieza musical ha copiado a otra, esto genera varias preguntas:

    1. Con que tenga alguna mnima parte igual ya implica que un artista a copiado a otro?

    2. Qu significa una mnima parte? Cunto es?

    3. Cmo se determina esto en los gneros ms populares dnde las canciones son ms

    parecidas ente ellas?

    4. Qu y cunto tienen que tener de distinto para diferenciarse?

    Se podran escribir muchos interrogantes similares que nos den cuenta que este es un problema

    complejo y difcil de solucionar. Tanto es as que en los juicios sobre plagio no se aplica otro

    criterio que no sea el de os peritos musicales, no hay un mtodo o regla exacta que nos permita

    descubrir o determinar si se ha incurrido en una violacin a la propiedad intelectual.

    Cada artista tiene su estilo bien marcado, esta esta caracterstica no puede ser simplificada a algunas

    pocas formas y recursos musicales, es mucho ms complejo que eso. Se sabe que la bsqueda de

    una identidad musical le lleva varios aos de trabajo y esfuerzo a cualquier compositor o msico de

    cualquier gnero. Adems, una vez que se encuentra el mismo, no se deben estancar en la

    simplicidad de haber llegado a su (primera) meta, el camino recin empieza, ahora quedar la

    profundizacin del concepto, las variaciones para no caer en la monotona, la evolucin de lo que se

    ha encontrado, etc. es un trabajo arduo y continuo que no tiene un fin determinado.

    Ms all del gnero o estilo musical que se este buscando respetar, generar o lograr, el compositor

    puede estar interesado en que no estn presentes ciertas caractersticas musicales en funcin de sus

    objetivos. Que el usuario pueda tratar de evitar una conjuncin de notas disonantes, exceso de

    silencio en los compases, muchas idas y vueltas en cuanto a los tiempos musicales a lo largo de la

    cancin y la cantidad de notas mximas y mnimas por comps es fundamental para poder llegar a

    Hoja 8/85

  • las metas que un msico se propone cuando busca algn tipo de inspiracin a partir de la cul

    desarrollar sus habilidades. Este problema tambin se puede plantear de la forma inversa, es decir,

    que en vez de que se evite que se formen ciertas particularidades en las partituras generadas, se

    desee fomentarlas.

    4) Definicin de soluciones a los problemas planteados

    Con el fin de solucionar el primer problema planteado, poder generar temas musicales agradables al

    odo, se ha pensado en que la mejor solucin para no caer en la rigidez y la monotona es usar el

    criterio del usuario. Esto no significa que el mismo tendr la ardua tarea de identificar en cada paso

    de cada iteracin si las canciones que se estn generando son o no agradables al odo, por el

    contrario, esto implicar que el compositor defina cules son las primeras soluciones al problema de

    composicin para el algoritmo gentico y, de esta manera, ya estar dando por sentado las bases de

    las posibles combinaciones entre partituras que se den en las distintas instancias de la evolucin en

    el proceso de composicin automtica. Si bien no se puede planear o imaginar todas las

    combinaciones posible que pueden tener las piezas musicales entre ellas, se puede hacer un anlisis

    general sobre el problema a travs del los tonos de las canciones. Hay tonos que pueden combinarse

    con otros sin ser disonantes, otros que generan una disonancia de tensin que puede enriquecer

    mucho el tema y otros que finalmente no podran mezclarse porque no podra cumplir con la regla

    de generar canciones agradables al odo. La cantidad de temas, su longitud, sus variaciones, sus

    tonos, todas sus caractersticas y sus proporciones quedaran en manos del usuario en funcin de

    establecer y sentar las bases para la composicin.

    En funcin de no caer una violacin a la propiedad intelectual el algoritmo gentico no slo ir

    mezclando los distintos compases de las diferentes canciones, sino que tambin, aplicar una

    mutacin o modificacin de los compases de manera estadstica que producir una gran variacin

    de las canciones de las cuales partimos. De esta forma y, a partir de las iteraciones evolutivas que se

    establezcan, se ir modificando paso a paso cada una de las piezas musicales que se encuentran

    como parte del proceso de composicin automtica. Dado que estas variaciones no son

    determinsticas en cuanto a cundo se producen, sino que por el contrario es un proceso estocstico,

    otra vez se ver involucrado el usuario para definir una probabilidad de ocurrencia de este

    fenmeno.

    En funcin de poder respetar los gustos o preferencias musicales de un usuario se definir la

    implementacin de un sistema de premios y castigos para poder fomentar y desalentar ciertas

    caractersticas o propiedades de acuerdo a lo que el usuario est buscando. Si se desea componer un

    Hoja 9/85

  • tema de rock se alentar que estn presentes todas las particularidades que posee el gnero, en

    cambio, si se busca formar una pieza musical de jazz, se pedir que las combinaciones que se

    premien sean otras totalmente distintas. Por este motivo, se intentar generar una cantidad de reglas

    genricas que abarquen un gran espectro de posibilidades y, que de acuerdo a su combinacin y

    especificacin le permitan al compositor poder expresarse con mnimas limitaciones para poder

    llegar a su objetivo. Si bien el sistema de restricciones definido por las reglas que exprese el usuario

    no es determinstico en funcin de lo buscado, si lo ser en funcin de las canciones que mejor se

    adapten a stas.

    El compositor puede estar buscando que su composicin se encuentre sesgada por ciertos rasgos

    que no son comunes a un gnero o estilo musical, para ello sera ideal poder contar con una

    herramienta que con tan solo recibir partituras que posean estos rasgos extraiga su idea principal,

    musicalmente hablando, con el fin de plasmarla en la composicin final. Como un ejemplo de ello

    se podra decir que se est queriendo llegar a componer una cancin que sea un HIT, esto no es

    propio de ninguna rama de la msica. Para poder lograr la solucin a este problema se puede

    entrenar una red neuronal que procese el tipo de cancin que el usuario especifique y obtenga un

    modelo con tal de respetar el criterio definido musicalmente. Como contraste a esto, tambin se

    solicitar al compositor que indique las partituras que estn alejadas de los objetivos o no cumplan

    con la idea musical que se desea encontrar.

    5) Estado de la cuestin

    5.1) Algoritmos Genticos

    Los AAGG[1], [2] son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y

    optimizacin. Estn basados de la teora de la evolucin de Darwin (1859)[5]. La idea bsica del

    mismo es generar una poblacin inicial que evolucione a travs del tiempo (proceso iterativo)

    dnde en cada iteracin sobreviven los individuos ms aptos por sobre los ms dbiles. La

    evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de

    una adecuada codificacin de las mismas.

    Este tipo de solucin algortmica se emplea en problemas dnde el tiempo computacional en buscar

    la resolucin ptima es tan elevado que se hace inaceptable dada la naturaleza de la situacin. Por lo

    que se decide buscar una solucin que est acorde a las necesidades planteadas en un tiempo

    significativamente menor. Para ello se busca una cantidad inicial de soluciones vlidas que irn

    evolucionando hasta llegar al nivel de eficiencia deseado. Este conjunto de individuos cruzar sus

    Hoja 10/85

  • datos generando de esta manera un nuevo espectro de soluciones de las que sobrevivirn los que se

    acerquen ms a la resolucin esperada. Tambin existe un proceso de mutacin probabilstica que se

    lleva a cabo muy rara vez, su objetivo es modificar un dato de un individuo y de esta forma

    asegurarse que:

    La convergencia del algoritmo no sea muy pronta.

    La diversidad de la poblacin interviniente sea lo suficientemente amplia como para

    comparar la mayor cantidad de individuos.

    5.2) Redes Neuronales

    Las RRNN[3], [4] son un paradigma de aprendizaje y procesamiento automtico inspirado en la forma

    en que funciona el sistema nervioso de los animales. La misma consta en un red de N capas de

    neuronas interconectadas, existe un estrato de entrada de datos y uno de salida (en el caso de las

    redes de una capa ser la misma). Existen varios tipos de RRNN, pero en este trabajo usaremos las

    del tipo Backpropagation. stas redes se entrenan teniendo un set de datos de entrada y su

    correspondiente set de datos de salida (esperados), cuando la red no da el resultado esperado se le

    indica y sta cambia la disposicin interna con tal de obtener la salida esperada. De esta manera la

    RN adquiere el conocimiento deseado para luego aplicarlo en las situaciones que se le invoquen.

    5.3) Composicin musical

    La composicin musical[1], [6] es un proceso creativo que pertenece a la naturaleza humana. La

    misma expresa situaciones, vivencias, experiencias, sensaciones, sentimientos, etc. que pueden estar

    acompaados de una letra que complemente el significado de cada comps, estrofa o parte musical

    compuesta. Cada tipo de msica distinta (msica popular, msica folclrica, msica contempornea,

    msica de cine, etc) trae aparejado un estilo, forma de componer, reglas propias de meloda y

    armona, instrumentos involucrados, etc. conocido, utilizado y estudiado por msicos.

    Una arista de la composicin musical que ha trado aparejadas muchas historias y peleas entre

    compositores es el criterio que establece qu es una cancin (musicalmente) nueva y qu es un

    plagio a creaciones ya existentes. En este tema no hay un estndar que lo indique a nivel mundial,

    pero la legislacin de cada pas establece sus propios criterios para tal fin.

    5.3.1) Criterio de composicin musical

    El artculo 10 de la ley 11.723 de Propiedad Intelectual de la Repblica Argentina define a lo que en

    derecho se conoce como derecho de cita de la siguiente manera:Cualquiera puede publicar con fines didcticos o cientficos, comentarios, crticas o notas referentes a las

    Hoja 11/85

  • obras intelectuales, incluyendo hasta mil palabras de obras literarias o cientficas u ocho compases enlas musicales y en todos los casos slo las partes del texto indispensable a ese efecto.Quedan comprendidas en esta disposicin las obras docentes, de enseanza, colecciones, antologas y

    otras semejantes.

    Cuando las inclusiones de obras ajenas sean la parte principal de la nueva obra, podrn los tribunales fijar

    equitativamente en juicio sumario la cantidad proporcional que les corresponde a los titulares de los

    derechos de las obras incluidas.

    5.4) Trabajos Realizados

    Se han desarrollado varios estudios en base al estudio del arte computacional[7], [8], [9], [10], [11], [12], en

    particular para este caso aplicaciones de Desarrollo de la soluciones RRNN y AAGG para la

    composicin musical[3], [4], [13] , [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25],

    [26], [27], [28], [29], [30], [31], [32], [33], [34], pero todos de diferentes enfoques, anlisis y

    conclusiones; incluso hasta se han grabado discos y se ha promocionado este tipo de arte

    tecnolgico. Los enfoques ms importantes son:

    Gibson and Byrne[35] hicieron un trabajo basado en la armonizacin de melodas usando solamente

    las notas tnicas subdominantes (la cuarta nota de una escala musical, Ej. en la escala de Do la

    subdominante es el Fa) y dominantes (la quinta nota de una escala musical, Ej. en la escala de Do la

    dominante es el Sol) de los acordes pertenecientes de las melodas estudiadas.

    Jacob[36] present su trabajo de composicin en el cul los AAGG son usados para identificar y

    diferenciar melodas aceptables para el odo humano, las mismas son tomadas de la salida que

    produce un proceso de generacin de msica estocstico. A partir de esa eleccin comienza el

    proceso de mejora y refinamiento propio del AG. McIntyre[37] realiz estudios de armonizacin de

    4 partes usando una armona barroca.

    Uno de los proyectos ms conocidos es GenJam (Biles)[38], [39], [40], [41], [42], un AG que genera solos de

    jazz en base a una sucesin de acordes. Establece escalas para la improvisacin de acuerdo al

    acorde utilizado en el momento. Dada la progresin de los mismos se analiza y se establecen las

    notas en base a las escalas musicales. Mientras la aplicacin da una muestra en tiempo real de como

    quedara el solo, el usuario aprueba o rechaza la misma dando de esta manera un entrenamiento a

    una red neuronal que luego tomar las decisiones por el usuario de forma automtica.

    Se ha hecho un trabajo similar (George Papadopoulos and Geraint Wiggins)[43] para establecer una

    meloda dada la progresin de acordes que se recibe, en este caso se establece una funcin de

    aptitud y no una red neuronal para elegir a los individuos ms aptos. Esta investigacin se focaliz

    en intentar reproducir el comportamiento humano de la composicin por lo que se utilizan una

    funcin de aptitud basada en conocimiento psicolgico musical. El trabajo abordado por esta tesis

    Hoja 12/85

  • se diferenciar de los dos ltimos mencionados ya que se enfocar en la composicin musical desde

    todos los puntos de vista y maneras de trabajar, no slo se podrn componer nuevas melodas sino

    que tambin nuevas progresiones de acordes. Tambin se trabajar con distintos tipos de mtodos

    en la determinacin de los individuos ms aptos, lo que llevar a un entendimiento con el usuario

    para adaptar los AAGG a su gusto. Finalmente se evaluar a la partitura generada aplicando el

    criterio explicado en el punto 2.3 que determinar si sta es realmente una nueva pieza musical de

    forma genuina y autntica o es un plagio de alguna de las partituras originales.

    Una caracterstica a destacar es que la forma en la que trabajaremos podremos utilizar como fuentes

    de composicin melodas o progresiones de acordes que pertenezcan a cualquier ritmo musical lo

    que aporta una riqueza en el producto final que no se posee en los trabajos hasta ahora

    mencionados.

    Se comparar contra el software de composicin musical llamado Easy Music Composer[45] y el

    producido por esta tesis usando el criterio explicado en el punto 2.3.1 con el fin de mostrar el salto

    cualitativo que esta produce.

    Este software recibe como entrada una secuencia de acordes que luego es armonizada utilizando

    armonas pertenecientes a su base de datos, generando de esta manera la composicin musical

    buscada. Se ha seleccionado este software para la comparacin ya que ambos comparten el universo

    de la composicin automtica, pero sabiendo que ambos lo encaran de distintas aproximaciones.

    Se pretende demostrar que el mtodo de aproximacin a travs de AAGG mejora la composicin

    automtica de msica en funcin de los criterios de propiedad intelectual del resultado generado.

    6) Desarrollo de la solucin

    Como se puede apreciar en la seccin 2 se ha trabajado arduamente con la msica y los algoritmos

    genticos. Lo que no se ha hecho es tratar de componer nuevas melodas o temas musicales usando

    este tipo de abstraccin. Siempre las melodas estaban dadas y el algoritmo realizaba distintos

    trabajos con diversos focos en cada uno de ellos. El objetivo de este trabajo es romper totalmente

    con los esquemas de investigacin y desarrollo que se han utilizado en el rea, intentando

    componer, tal como lo hace una persona, nuevas piezas musicales. Para ello se trabajar con una

    cantidad inicial de partituras de temas ya existentes o recin compuestos que en los que se quiera

    investigar, sobre ellos se considerar a cada comps como un cromosoma del individuo

    interviniente y entre ellos se realizar la cruza. Luego de varias iteraciones cada uno de los temas

    originales se vern totalmente modificados en estructura, tiempos, ritmos, sonoridades, etc.

    generando de esta manera canciones nuevas. De la morfologa, estructura y sonoridad de stas

    Hoja 13/85

  • puede nacer la inspiracin que busca el compositor, o, directamente una nueva composicin musical

    de manera automtica. Adems, los AAGG, al depender del azar pueden producir muchas

    soluciones diferentes, lo que es necesario en los ambientes creativos.

    Como funcin de aptitud (para elegir las mejores canciones de cada iteracin) se utilizarn tres

    posibilidades distintas:

    1. Un archivo de configuracin en el cul se especificarn ciertos parmetros asociados a las

    combinaciones musicales buscadas penando las que no se produzcan en ese sentido.

    2. El usuario podr entrenar una red neuronal que permita discernir que melodas son las

    buscadas y seguirn en pie dando origen a la poblacin siguiente y que melodas pasarn al

    olvido.

    Se usado un software open source para utilizar su modelado, abstraccin, grfica, etc. para la

    escritura de las partituras musicales a procesar. En el mismo tambin se disean, escriben y guardan

    los archivos de datos correspondiente a la entrada de la aplicacin a desarrollar. El archivo de salida

    ser de igual formato que los que ingresan, para ser reproducidos, nuevamente se apelar al editor

    de partituras en cuestin. Por estar desarrollado en el lenguaje de programacin Java, ser un

    software OpenSource, su simpleza en cuanto a la usabilidad, su capacidad de abrir y guardar en los

    formatos ms conocidos de partituras, se eligi el TuxGuitar como editor de partituras.

    En la tesis se tomar el criterio explicado en el punto 2.3.1 como parmetro para determinar si la

    composicin musical hecha a travs de algoritmos genticos genera canciones nuevas o no, es decir,

    si las piezas resultantes contienen hasta 8 compases idnticos, sin importar el orden, a alguna de las

    melodas que les dieron origen, se considerar que no a compuesto msica, que se est plagiando;

    en caso contrario diremos que el resultado es genuinamente original.

    Se podrn mezclar cualquier instrumento excepto la batera ya que no sigue las mismas reglas de

    escritura musical de una partitura que cualquiera de los otros instrumentos que existen. El formato

    para escuchar las canciones resultantes ser mediante el protocolo de comunicacin MIDI.

    Se desarroll un sistema que en base a una entrada de partituras musicales genera, de acuerdo a la

    funcin de aptitud elegida, una partitura sin violar la ley de propiedad intelectual con respecto a las

    originales, que es la que mejor se adapta segn lo seleccionado por la funcin de aptitud.

    La aplicacin toma la configuracin para su funcionamiento a travs de un XML. El mismo define

    varios parmetros para el uso de AAGG de la siguiente manera:

    Hoja 14/85

  • El encabezado XML, la etiqueta songComposer, su hijaconfiguration y sus atributos son

    obligatorios. Los 3 atributos establecen los siguientes parmetros:

    evolutions: nmero de iteraciones o evoluciones que va a tener el algoritmo.

    mutationRate: nmero que especifica la probabilidad de que ocurra una mutacin por cada

    vez que se evala si una cancin debe mutar, es decir que si el valor es 1000, ocurrir (de

    manera aproximada) una mutacin por cada 500 iteraciones si tenemos dos canciones a

    evaluar.

    crossoverRate: nmero que representa a partir de que punto aproximado se hace el cruce de

    partituras entre dos canciones elegidas al Desarrollo de la solucion azar cuando se cruzan

    partituras en bsqueda de otras nuevas.

    Luego de especificar estos parmetros generales se espera que se especifiquen 2 rutas, la primera

    indica la carpeta que contiene los archivos de entrada o partituras iniciales, la segunda establece el

    archivo de salida. Se especifican con los tags inputPath y outputFile como hijos de

    configuration, un ejemplo sera:

    /home/ezequiel/SongComposer/songs/eleccion/

    /home/ezequiel/SongComposer/songs/output/prueba.tg

    Finalmente debe especificarse el tipo de funcin de aptitud abriendo la correspondiente etiqueta

    llamada fitnessFunction e indicndolo en el atributo type. Los valores pueden ser XML para

    usar el sistema de penalizaciones que se va a especificar con los hijos de este tag o NeuralNet

    para usar RRNN.

    El primer caso es un sistema de penalizaciones que se aplica cuando se dan ciertas condiciones.

    Todas las canciones empiezan con un puntaje determinado y se le van restando las penalizaciones,

    el individuo ms apto ser el que tenga mayor cantidad de puntos. Vale aclarar que para hacer el

    camino inverso al de la penalizacin, es decir, la premiacin de alguna condicin o caracterstica

    musical presente, se puede penalizar con un valor menor a cero, por lo que la misma se

    transformara en una adicin de puntos en lugar de una quita. Esta funcionalidad inversa puede ser

    aplicada a cualquier tipo restriccin.

    Las 3 condiciones que hoy se contemplan son las siguientes:

    Hoja 15/85

  • 1. Restriccin de notas: penaliza que en un mismo comps se encuentren dos notas

    especificadas (expresadas en notacin americana, DO-RE-MI-FA-SOL-LA-SI es

    equivalente a C-D-E-F-G-A-B), se evalan para todos los compases de la partitura. La

    etiqueta que se debe usar para indicar esta restriccin es noteRestriction y sus atributos

    son:

    penalty: nmero entero que indica la penalidad a aplicar.

    firstNote: primer nota que debe estar presente para aplicar la penalidad.

    secondNote: segunda nota que debe estar presente para aplicar la penalidad.

    Ejemplo de uso:

    2. Restriccin de tiempos: penaliza que en una misma partitura se encuentren los dos tiempos

    especificados (Ejemplo 2/4, 4/4, etc). El tag que especifica la restriccin es

    tempoRestriction y sus atributos son:

    penalty: nmero entero que indica la penalidad a aplicar.

    firstTempo: primer tiempo que debe estar presente para aplicar la penalidad.

    secondTempo: segundo tiempo que debe estar presente para aplicar la penalidad.

    Ejemplo de uso:

    3. Restriccin de cantidad de notas: penaliza la cantidad de notas, ya sea mnima o mxima,

    que se encuentran en un comps a lo largo de toda la partitura. La etiqueta que configura la

    restriccin es para mximo de notas maxNotesPerMeasureRestriction y para mnimo

    minNotesPerMeasureRestriction y sus atributos son:

    penalty: nmero entero que indica la penalidad a aplicar.

    NotesPerMeasure: cantidad de notas en la cul se empieza a aplicar la restriccin.

    Ejemplo de uso:

    Un ejemplo de uso con todas las restricciones es el siguiente:

    /home/ezequiel/SongComposer/songs/eleccion/

    /home/ezequiel/SongComposer/songs/output/prueba.tg

    Hoja 16/85

  • El segundo tipo de funcin de aptitud se establece a travs de una red neuronal, puede ser una que

    ya hallamos entrenado o se puede entrenar una nueva red. La misma es del tipo Backpropagation y

    tiene 4 capas, una de entrada, dos ocultas y una de salida. La primer capa tiene la cantidad de

    neuronas igual a la menor cantidad de compaces de las canciones con las cules se entren, la

    segunda y la tercer capa se configuran con el XML de configuracin, la ltima slo tiene una

    neurona que indica de 0 a 1 la preferencia de ese tema para continuar en la siguiente iteracin del

    algoritmo gentico.

    Para especificar los parmetros de configuracin y de aprendizaje de la red neuronal se usa la

    etiqueta learningConfiguration como hija de fitnessFunction. La misma tiene los siguientes

    atributos:

    trainingCicles: nmero que indica la cantidad de ciclos que va a usar la red para entrenarse

    tratando de llegar a los valores esperados

    neuronsHiddenLayer1: nmero que indica cuntas neuronas tiene la primera de las capas

    ocultas.

    neuronsHiddenLayer2: nmero que indica cuntas neuronas tiene la segunda capa oculta.

    Ejemplo de uso:

    Para que la red pueda ser entrenada hay que pasar la direccin a una carpeta que contenga las

    partituras que representen los objetivos buscados y otra a una carpeta que contenga las canciones

    que poseen propiedades que no nos interesan de un tema. Estos parmetros se especifican con tags

    propios que sern hijos de learningConfiguration, los mismos son pathTotrainingFolderGood y

    pathTotrainingFolderBad respectivamente. Luego de ser entrenada la red se guarda en disco para

    que pueda ser utilizada ms adelante, esto se establece con otra etiqueta hermana de las dos

    indicadas anteriormente, la misma se llama pathToSaveNeuralNet.

    Hoja 17/85

  • Un ejemplo de uso de esta configuracin es:

    /home/ezequiel/SongComposer/songs/eleccion/

    /home/ezequiel/SongComposer/songs/output/prueba.tg

  • La invocacin del programa se hace de la siguiente manera, generando la salida mostrada a

    continuacin:

    $ java -jar SongComposer.jar

    SongComposer

    - Modo de uso para procesar:

    java -jar SongComposer.jar pathToConfigurationXMLFile

    - Modo de uso para abrir el editor de partituras (TuxGuitar):

    java -jar SongComposer.jar -tuxguitar

    Esta manera de ejecucin sin argumentos nos muestra los usos que la aplicacin puede tener. El

    primer ejemplo mostrado recibe la ruta al archivo XML de configuracin cuya conformacin y

    variantes se explic anteriormente. El segundo, se utiliza para abrir el editor de partituras usado

    para este proyecto, el TuxGuitar 1.2.

    Durante la ejecucin de composicin se muestran por salida estndar el nmero de evolucin por el

    cul se esta atravesando y, ya sobre el final de la corrida, se muestra cunto se tard y qu compaces

    son iguales a las canciones originales de las cules se parti. La informacin mencionada se muestra

    de la siguiente forma:

    Evolucion: 1997

    Evolucion: 1998

    Evolucion: 1999

    Se guardo la mejor cancion

    Compas 7 fittest igual compas 7 de Twist And Shout

    Compas 20 fittest igual compas 20 de Twist And Shout

    Compas 59 fittest igual compas 59 de La Bolsa

    Compas 62 fittest igual compas 62 de La Bolsa

    Compas 39 fittest igual compas 39 de Avalancha

    Compas 40 fittest igual compas 40 de Avalancha

    Compas 57 fittest igual compas 57 de El muelle de San Blas

    Compas 62 fittest igual compas 62 de Oye Mi Amor

    Compas 12 fittest igual compas 12 de Don't Look Back In Anger (Acoustic)

    Compas 14 fittest igual compas 14 de Don't Look Back In Anger (Acoustic)

    Compas 28 fittest igual compas 28 de Don't Look Back In Anger (Acoustic)

    Compas 59 fittest igual compas 59 de Don't Look Back In Anger (Acoustic)

    Compas 62 fittest igual compas 62 de Don't Look Back In Anger (Acoustic)

    Hoja 19/85

  • Compas 53 fittest igual compas 53 de Angie

    Compas 45 fittest igual compas 45 de Lucky

    Compas 50 fittest igual compas 50 de Lucky

    Compas 22 fittest igual compas 22 de Amigo

    Compas 45 fittest igual compas 45 de Amigo

    Compas 61 fittest igual compas 61 de Amigo

    Se tardaron: 0hs 0m 11s

    Esta informacin nos permite ver fcilmente si nuestro tema final incurre en la violacin a la ley de

    propiedad intelectual o no, es decir, que si la salida nos muestra que nuestro tema compuesto tiene

    ms de 8 compaces iguales a alguno de los temas que le dio origen estamos en infraccin.

    Una vez finalizada la ejecucin se abre el editor de partituras para poder ver, evaluar y escuchar lo

    que se ha generado.

    6.1) Armado de la Red Neuronal

    Para serializar los datos ha que tener en cuenta que en una partitura todos los datos que se pueden

    leer se pueden asociar y combinar sin ninguna limitacin, desde las notas propiamente dichas (es

    infinito cun aguda o grave es una nota, la nica limitacin aqu es el instrumento, cuntas teclas

    tiene el piano, cuntos trastes la guitarra, el largo del violn o el chelo, etc), la cantidad de notas (en

    un comps o que suenan en simultneo), sus tiempos asociados (redonda, blanca, negra, semi

    corchea, etc) hasta la cantidad de compaces. Dadas las caractersticas de estas variables se dise

    una manera de serializar los datos que tenga en cuenta todos estos aspectos.

    Se tuvieron que plantear ciertas limitaciones para establecer el universo en el cul la aplicacin se

    va a manejar. Las mismas son:

    Se determin que habr una relacin unvoca entre neuronas de entrada y compaces de las

    canciones, al ser un nmero variable entre todas ellas se fij que se evaluarn solamente los

    compaces de la cancin que tenga menor cantidad de ellos, todos los compaces que superen

    ese nmero no sern evaluados.

    Ejemplo: Si tenemos 3 canciones: A, B y C que tienen respectivamente 50, 60 y 100

    compaces solamente se tomarn en cuenta los primeros 50 generando una red neuronal con

    ese nmero de neuronas en la primer capa.

    Se fij la nota ms grave y la nota ms aguda de acuerdo a un instrumento de referencia, en

    este caso, la guitarra. Por lo que por su conformacin la nota ms grave es un Mi mayor

    tocando la sexta cuerda (la ms gruesa) sin presionar ningn traste, lo que comnmente se

    llama al aire. De la misma forma, por una limitacin fsica del instrumento, se establece la

    Hoja 20/85

  • nota ms aguda que se puede producir, que en este caso, se logra tocando la 1er cuerda (la

    ms fina) en el ltimo traste, comnmente, el nmero 29.

    Por una cuestin de simplicidad a la hora de abordar el problema se decidi ignorar en la

    serializacin los efectos que una nota o un conjunto de notas pueda llegar a tener.

    Dado que una partitura puede tener escrita todos los instrumentos y no es compatible

    mezclarlos deliberadamente se toma en cuenta solamente el primer track de la cancin, es

    decir, que todos los tracks ms all del elegido para ser evaluado sern ignorados.

    A partir de estas bases se estableci un nmero correspondiente a cada nota, para la ms grave un 1,

    para la siguiente un 2 y as sucesivamente hasta alcanzar el nmero mximo alcanzable por el

    instrumento. En la prctica se observ que la red funcionaba mucho mejor con datos normalizados

    por lo que finalmente la nota serializada es: N nota / N nota mxima. En cada comps se suman

    todas las serializaciones de las notas generando la entrada de datos para la red. Cuando la nota sea

    un silencio se tomar el valor cero para el mismo.

    Usando esta configuracin y forma de manejar los datos se tienen en cuenta la cantidad de notas

    que se encuentran en un comps y sus valores intrnsecos. Tambin se valora, de acuerdo a la escala

    normal utilizada, las octavas de preferencia de las notas; no es lo mismo un Mi grave que uno

    agudo, esto se produce al tener una distinta representacin numrica como dato de entrada

    serializado para el uso de la red neuronal. Los valores mas agudos tendrn un valor ms cercano a

    uno dado que se producen a medida que se avanza sobre el traste de la guitarra y los sonidos ms

    graves sern representados por nmeros cercanos al 0. De forma menos ortodoxa tambin es tenido

    en cuenta el tiempo de cada nota y el del comps en la modelizacin en cuestin, esto sucede

    porque musicalmente cuando se define un tiempo para un comps o serie de compaces se limita el

    tamao del tiempo de las notas, si el tiempo de un comps es definido en 4/4 entran o 4 negras o 2

    blancas o 1 redonda y si se lo define en 3/3 se pueden escribir o 3 negras o 1 blanca y una negra

    pero no una redonda; entonces al sumar cada nota del comps habr distintos valores medios por

    comps de acuerdo a este tipo de caracterstica.

    La eleccin de la funcin de transferencia fue un paso importante para este proyecto, de acuerdo

    con las variantes que haba disponibles se eligieron las que podan resolver mejor este problema y,

    empricamente se hicieron distintas pruebas para determinar la mejor opcin de todas. Las

    posibilidades ms importantes eran:

    Lineal y = b * x : Es la funcin de transferencia ms simple que existe, se transfiere a la

    siguiente capa el valor de entrada aplicndole solamente una transformacin lineal. Este tipo

    de funcin se utiliza generalmente para transferir una entrada de datos a dos capas paralelas

    Hoja 21/85

  • de procesamiento, este uso se muestra en el siguiente diagrama:

    Biased y = x + biasn (biasn es el bias de la ensima neurona): Esta tipo de transferencia es

    una extensin de la lineal porque aplica una transformacin lineal pero a la vez difiere en

    dos aspectos:

    1. Al usar biases la transformacin se va modificando durante la fase de entrenamiento.

    2. No tiene un multiplicador como parte de la funcin.

    Sigmoid y=1/(1+ex) : Aplica una transferencia no lineal con un rango de datos que va

    desde cero a uno, es un buena funcin para ser utilizada en las capas ocultas de una red

    neuronal.

    TanH y=(exex)/(ex+ex ) : Es similar a la Sigmoid, slo que se aplica la tangente

    hiperblica y por lo tanto la salida quedar limitada en un rango comprendido entre menos

    uno y uno.

    SoftMax y=ex /j=1

    c

    ex : Como la Sigmoid tiene una salida que cubre el rango entre cero y

    uno, pero la gran diferencia es que la suma de todas las neuronas de la misma capa suman 1.

    Gracias a esta caracterstica la salida de esta funcin de transferencia puede ser interpretada

    como probabilstica. Su uso ms frecuente es en redes neuronales supervisadas para la

    clasificacin entre C elementos.

    Logartmica y=log(1+x)si x1y=log(1x )si x

  • La estructura interna de la red depende de la cantidad de informacin que debe aprender, por lo que

    para hacerla ms flexible se pueden configurar el nmero de neuronas de las 2 capas ocultas de la

    misma. Empricamente se comprob que para memorizar los 40 primeros compaces de entre 25 y

    30 canciones se necesitan 10 neuronas en cada una de las capas.

    La conformacin de la cantidad de neuronas por capa de la red siempre sigue el siguiente patrn:

    1. Capa de entrada de datos: La mnima cantidad de compaces que posean de los temas de

    aprendizaje.

    2. Primer capa oculta: Se configura mediante el XML.

    3. Segunda capa oculta: Se configura mediante el XML.

    4. Capa de salida de datos: La ltima capa se resume a la probabilidad de que ese tema sea el

    buscado. Si el nmero es cercano a uno estamos en presencia de patrones musicales de

    agrado para el usuario, para el caso contrario el lmite es el cero.

    La morfologa de la red neuronal depende del entrenamiento que se le d a la misma (dado que en

    ese momento se establecer la cantidad de neuronas de entrada, es decir, la cantidad de compaces

    que se tomarn en cuenta para la evaluacin), la configuracin que se escriba en el archivo XML

    para las capas ocultas y, finalmente, la capa de salida de datos que revelar la probabilidad de que

    ese tema contenga la idea musical que se est buscando. Esta flexibilidad que se posee permite al

    usuario afrontar problemas de menor y mayor embergadura en cuanto se refiere a la composicin

    musical buscada solamente cambiando el archivo de configuracin que recibe la aplicacin. Si se

    desea trabajar con estilos de msica cuyos temas en general son de duracin extendida slo se debe

    agregar ms neuronas en las capas ocultas ya que para la capa de entrada se identifica

    automticamente la cantidad de neuronas necesarias para llevar a cabo su procesamiento; en

    cambio, si se desea trabajar con un universo de temas musicales cuya caracterstica es tener una

    corta duracin slo se debe disminuir el nmero de neuronas de las capas ocultas.

    6.2) Arquitectura del sistema

    La aplicacin hace uso de tres frameworks, los mismos son:

    1. JGAP[46] 3.4.4: Este framework esta ntegramente desarrollado en Java y se utiliza para

    modelizar algoritmos genticos. A travs de la implementacin de los conceptos de herencia

    y sobrecarga de mtodos se le indica qu es un individuo, qu es un gen, cul es la funcin

    de aptitud y cmo se realiza el entrecruzamiento y la mutacin de los mismos. Una vez

    indicado esto se le establecen los parmetros generales del algoritmo, cmo el nmero de

    evoluciones, la probabilidad de las mutaciones, etc. y, finalmente, se le especifican las

    soluciones iniciales. Cuando el algoritmo ha llegado a su fin se puede obtener el resultado

    Hoja 23/85

  • del mismo.

    Para la realizacin de esta tesis no slo hubo que seguir las indicaciones anteriormente

    sealadas sino que tambin se tuvo que investigar, extender y modificar distintos conceptos

    estndar de la configuracin convencional del framework.

    2. Joone 2.0.0: Esta herramienta de trabajo se utiliza para el diseo, modelizacin, desarrollo y

    uso de redes neuronales de distintos tipos. Para poder dominar todos sus aspectos, el

    framework trae un manual de referencia que permite, a travs de explicaciones y ejemplos,

    entender para qu sirve cada funcin de transferencia, las conexiones y cmo se deben

    programar las distintas funcionalidades de acuerdo a lo que est buscando el usuario.

    Programando el diseo morfolgico y funcional de la red se obtiene el primer paso para su

    uso, se le debe indicar cuntas capas va a tener, el nmero de neuronas por capa, el tipo de

    conexin entre las neuronas de una capa con la siguiente, la funcin de transferencia y las

    salidas esperadas tanto para los casos positivos como para los negativos.

    Con el fin de poder reutilizar una red entrenada bajo ciertos aspectos y conceptos, se debi

    implementar una forma de guardar la red en disco y su contraprestacin de levantar ese

    archivo y restaurar la red sin modificaciones.

    3. TuxGuitar 1.2: Esta aplicacin es un software autnomo para la escritura de partituras

    musicales, no es un framework para ser utilizado como herramienta. Pero al ser de cdigo

    abierto y libre, se ha incluido como parte de la aplicacin desarrollada utilizando la

    modelizacin de todos los aspectos que tiene una partitura: compaces, notas, tiempos de las

    notas, efectos, tiempos de compaces, pistas, etc. Como no se contaba con documentacin

    sobre cmo se deban utilizar los distintos conceptos del modelo programtico se tuvo que

    investigar profundamente el cdigo fuente y, adems, se tuvo que escribir un correo

    electrnico a uno de los desarrolladores con el fin de evacuar algunas dudas que se tenan

    sobre la implementacin que haban realizado.

    Se cre una estructura general de clases con el fin de permitir extenderlo fcilmente para aadir otro

    tipo de funcin de aptitud y agregar ms restricciones.

    La primer capa de clases que representan la composicin musical y el tipo de funcin de aptitud a

    usar,. Existe una clase general SonComposer que implementa todo lo necesario y relativo a la

    composicin musical usando solamente algoritmos genticos, luego de ella se extienden las

    distintas clases que implementan las modificaciones necesarias para componer una cancin en las

    distintas posibilidades que hoy se ofrecen. Hay un clase abstracta y general para la utilizacin de

    redes neuronales, luego de esta se derivan dos clases, cada una para un fin distinto. La clase

    SongComposerNNTrained se utiliza para modelar todo lo necesario para entrenar una red neuronal

    Hoja 24/85

  • con todos los parmetros que la aplicacin deja introducir, posteriormente al entrenamiento se

    procede a guardar los datos en la ruta establecida y finalmente se utilizar la red como funcin de

    aptitud del algoritmo. El segundo caso, la clase SongComposerNNSaved, se instancia cuando se

    desea utilizar una RRNN ya entrenada y, por lo tanto, la intencin es cargar los datos del disco para

    usarlos de la misma forma que el caso anterior.

    Para obtener las instancias se usa un objeto de configuracin al cul se le pasa el XML de

    configuracin del software y ste a partir de la lectura e interpretacin de los datos genera el objeto

    deseado (o un error si hay problemas de configuracin) devolviendo el objeto padre sin necesidad

    de especificar a la capa de ejecucin en qu modelo se correr. Bsicamente se implement un

    patrn de diseo llamado Factory.

    La estructura definida anteriormente sin el objeto de configuracin (no se muestra porque no tiene

    ningn sentido) de se muestra en el siguiente diagrama:

    Hoja 25/85

  • Hoja 26/85Figura 2: Diagrama de clases de la configuracin

  • Otro tema importante en el diseo del sistema es la capa que se ocupa de la funcin de aptitud

    propiamente dicha. Las clases mostradas arriba ya se encargaron de generar las restricciones o la

    red neuronal para ser usados en la etapa de evaluacin dentro de cada iteracin.

    Para el uso de restricciones se provee un sistema fcilmente extensible en el caso de que surja la

    necesidad de crear o generar nuevas restricciones de acuerdo a las necesidades del usuario. Existe

    una clase abstracta llamada Restriction que sienta las bases para cualquier restriccin que se desee

    adicionar, posee adems de los constructores un nico mtodo que aplica las penalizaciones o

    premiaciones a una cancin dada. Sobre esta clase base heredan otras dos clases que representan a

    las restricciones de una y dos variables, ambas clases tambin abstractas. Las restricciones que

    penalizan o premian (de acuerdo a la configuracin que se les haya dado) que dos notas se

    encuentren dentro de un mismo comps o que dos tiempos se mezclen en una misma partitura son

    implementadas a partir de la clase que representa a las restricciones de dos variables, en cambio

    para las restricciones que se aplican a una sola variable, como la cantidad mnima de notas que tiene

    que poseer un comps o, como contraposicin la cantidad mxima permitida heredan de una clase

    general y abstracta que posee las caractersticas generales de ambas, ya que la lgica es la misma, la

    nica diferencia se encuentra en si la cantidad de notas que se encuentra en cada comps excede el

    lmite superior o inferior establecido.

    Este sistema de restricciones se genera a travs de un XML que se va leyendo y cada nodo de cada

    restriccin es pasado a cada una de ellas para que se generen. Se usa una clase, otra vez

    implementando el patrn Factory, que se le pasa un nodo y devuelve una restriccin. Estas se

    acumulan en una lista que luego sera aplicada a la partitura.

    En el caso de que se use a una red neuronal como funcin de aptitud se decidi tener un Singleton

    con la misma y que el objeto que representa la funcin de aptitud obtenga la instancia para trabajar

    e ir evaluando cancin a cancin los resultados que devuelve la red previamente entrenada de

    acuerdo a los criterios y gustos que se expresan en las canciones que se usaron para tal fin.

    La ejecucin de la aplicacin usando RRNN es mucho ms costosa que usando unas simples

    restricciones, esto se debe a varios motivos: el tiempo que lleva entrenar la red, que la algoritmia

    que se usa para evaluar con una red neuronal es muchsimo ms compleja que algunos for anidados

    para recorrer toda la estructura de la cancin, la serializacin y desserealizacin de los datos para

    traducir las canciones a la entrada de la red y vice versa, etc.

    El diagrama de clases que muestra lo recientemente explicado se encuentra a continuacin.

    Hoja 27/85

  • Hoja 28/85

    Figura 3: Diagrama de clases de las funciones de aptitud.

  • Con el fin de usar el framework de abstraccin e implementacin de algoritmos genticos se

    necesita especificar y programar los mtodos correspondientes a cada uno de los componentes que

    posee este tipo de algoritmo. Para este trabajo se us a las canciones como cromosomas y a cada

    comps como gen del cromosoma. Tambin se tuvo que crear la funcin de aptitud correspondiente

    para evaluar cada uno de las composiciones musicales. Se cre una clase que se encarga de rankear

    a cada cancin cromozoma segn la puntuacin que este obtenga de la funcin de aptitud que se

    haya definido en el XML de configuracin de la aplicacin.

    Se utiliz una clase llamada NoteNumberConverter con el fin de convertir las notas de cada cuerda

    y posicin donde se pulsa esa cuerda al cifrado americano, que es el que se utiliza para la restriccin

    de notas dentro de un mismo comps. Esta clase tambin se encarga de obtener el nmero de nota

    tomando a la nota ms grave que puede producir la guitarra como un 0 y a partir de all la siguiente

    ser un 1 y as sucesivamente. Por ltimo, la misma se encargar de normalizar una nota en para

    luego ser utilizada como entrada de la red neuronal.

    Para poder utilizar correctamente la API de redes neuronales JOONE, se debi extender de la

    configuracin original y genrica que se provee con el fin de poder aplicar a los requerimientos

    especficos de este modelo de RRNN que se aplica a la msica.

    Se desarroll un algoritmo en la clase ResultVerifier para la comprobacin de una de las premisas

    fundamentales de esta tesis: que las canciones compuestas por la aplicacin no incurra en una

    violacin de la propiedad intelectual que decanta de las partituras que le dieron origen.

    En el diagrama de clases que se muestra a continuacin se muestran las clases y funcionalidades

    anteriormente descriptas y algunas clases ms como las clases de excepciones que se crearon para

    ser lanzadas si ocurre algn error en la interpretacin del XML de configuracin, el enumerado que

    representa cada una de las restricciones existentes, el enumerado que representa los dos mtodos de

    funcin de aptitud que se soportan hoy en da, y por ltimo, las dos clases que se encargan de ser las

    fbricas de clases especificas que devuelven una clase genrica aplicando de este modo el patrn

    Factory a las distintas restricciones que se desarrollaron para este trabajo y la generacin de un

    compositor musical sin importar de que tipo es (del tipo que utiliza RRNN mezclado con AAGG o

    el que es AAGG puro).

    Hoja 29/85

  • Hoja 30/85

    Figura 4: Diagrama de clases del modelo de red neuronal, notas y restricciones

  • Por ltimo se mostrar un diagrama de paquetes que muestra de manera general cmo es la

    estructura del programa. Dentro del paquete org se encuentran todas las clases de los 3 frameworks

    utilizados para el desarrollo. El paquete principal es el llamado songcomposer y a partir de l

    cuelgan las distintas clases y paquetes que hacen al funcionamiento macro y micro de la aplicacin

    en cuestin.

    Hoja 31/85

    Figura 5: Diagrama de paquetes general.

  • 7) Validacin de la solucin

    Se han diseado 2 casos totalmente distintos para probar la solucin desarrollada. La idea bsica es

    probar las distintas aristas a nivel de composicin que brinda la herramienta, validando tanto el

    mtodo de penalizaciones como el de aprendizaje va redes neuronales.

    En todos los casos se evaluar la existencia o no de violaciones a la ley de propiedad intelectual, ya

    que el propio sistema en la salida indica si se ha cado en el plagio.

    Se cuenta con una amplia base de datos de partituras de canciones que se deben adaptar a lo que se

    est buscando. Dado que siempre se mezcla la primera pista de partituras se debe proceder a editar

    la misma y colocar la pista con la que se desea trabajar como track principal. Una vez hecho esto se

    puede hacer un pulido ms fino eliminando algunos silencios y/o corrigiendo algunos compaces en

    funcin de las tonalidades de las dems partituras o en base a lo que se est buscando.

    Cabe aclarar que para utilizar el software y tener respuestas satisfactorias, se deben tener muy en

    cuenta las soluciones iniciales que se le brindan al algoritmo gentico, ya que a partir de ellas se

    delimita el universo de las posibles soluciones, estableciendo de esta forma un espectro de

    resultados posibles.

    7.1) A travs de penalizaciones

    Usando el sistema de penalizaciones como funcin de aptitud se hicieron 50 pruebas distribuidas en

    10 casos distintos con 5 repeticiones por caso. La definicin de los 10 casos se dieron en base a los

    siguientes parmetros:

    Probabilidad de mutaciones.

    Cantidad de evoluciones.

    Factor de cruza.

    Partituras iniciales.

    Restricciones de cantidad de notas (tanto mximas como mnimas).

    Restricciones de tiempos.

    Restricciones de mezcla de notas especificas por comps.

    Los distintos parmetros se eligieron en funcin de las caractersticas musicales de las partituras con

    las que se trabaj. Pues no tiene sentido alguno establecer restricciones de tiempos que no existan

    en las partituras o penalizar cierta conjuncin de notas dentro de un comps cuando dicha

    combinacin notas tampoco podra producirse.

    Lo primero que se puede destacar de las validaciones realizadas es que es raro que las soluciones de

    Hoja 32/85

  • composicin musical automtica se repitan con frecuencia, slo ocurri el 4% de los casos, en otras

    palabras, de las 50 canciones generadas nicamente hay 4 que son iguales, lo que representa una

    repeticin en 2 casos.

    Lo segundo para destacares que ms all de las restricciones que se pongan en cuanto a la cantidad

    de notas mximas de un comps un factor importante en este aspecto es la probabilidad de

    mutaciones con respecto a la cantidad de evoluciones, ya que esta mezcla 2 compases al azar y

    genera que se sumen la cantidad de notas que poseen ambos. Entonces, al haber una gran cantidad

    de iteraciones sobre el mismo espacio de canciones genera que inevitablemente se den estas

    condiciones a pesar de su penalizacin. Esto se debe a que la penalizacin pierde su poder

    restrictivo en el sentido mas estricto porque todas las canciones habrn tenido muchas notas en un

    mismo comps.

    Otro factor que merece ser mencionado es que si se superan las 200 evoluciones la probabilidad de

    plagio se reduce muchsimo y se coloca en el 2% mientras que por debajo de este nivel es

    crticamente alto, llegando al 40% de plagio sobre las partituras originales. Esto se debe a que al

    haber ms iteraciones sobre el algoritmo gentico se generan ms cruzas entre canciones y ms

    mutaciones, por lo que se van mezclando hasta perder su morfologa original.

    El ltimo tema a discutir es la sonoridad generada en las soluciones que se obtienen. En este sentido

    se observar que la misma depende bsicamente de la compatibilidad musical entre las partituras

    originales es un arma de doble filo, porque en un margen mnimo se obtienen resultados

    interesantes si la disonancia de los tonos a mezclar es mnima, pero si cada tema tiene un tono

    distinto no quedar nada que se pueda rescatar musicalmente como tal, si podra ser el disparador

    para el compositor, pero difcilmente salga algo agradable al odo humano. Existen otros factores

    que afectan en menor medida pero le dan forma al resultado final, ellos son todas las condiciones y

    caractersticas de configuracin.

    Empricamente se pudo comprobar que los resultados producidos no pueden llegar a ser en su

    totalidad una nueva cancin, pero si pueden tomarse distintas fracciones de la partitura, realizar

    conjunciones, variaciones sobre la misma, etc. como disparadores para ayudar al compositor en la

    ardua tarea de generar msica cuando cae en una meseta de inspiracin propia.

    7.2) A travs del aprendizaje de gustos musicales

    Para generar partituras a travs del uso de RRNN se hicieron 10 pruebas. Se tomaron 5 voluntarios,

    dos de ellos con conocimientos musicales en cuanto a composicin, partituras, armona, etc. y se les

    propuso hacer 2 pruebas a cada uno. Hay que tener en cuenta que este tipo de pruebas es muy

    costosa en cuestin de tiempo ya que hay que entrenar una red neuronal para que aprenda los

    Hoja 33/85

  • criterios de cada voluntario, luego hay que definir los parmetros del algoritmo y finalmente esperar

    que se produzcan los resultados; en total, el proceso completo lleva aproximadamente 5 horas ya

    que el entrenamiento y ejecucin de los conocimientos es una tarea muy costosa en cuanto al

    procesamiento.

    Si bien los resultados producidos no son muchos, no se han visto casos de plagio con respecto a las

    partituras originales. Esto puede deberse ya a que diferencia del caso anterior la funcin de aptitud

    es general, es decir, se toma a la cancin como un todo para evaluar los gustos de la persona que la

    entren y no restricciones estrictas sobre las distintas caractersticas de cada uno de los compaces,

    lo cul genera ms flexibilidad ante los cambios que pueda llegar a producir el algoritmo sobre las

    piezas musicales.

    En cuanto a los resultados producidos se puede observar que al igual que en el caso anterior no se

    podra tomar la pieza musical resultante como producto terminado ya que hay algunas partes de la

    partitura que no son agradables al odo, pero la mayora de la partitura corresponde con una

    composicin musical agradable y armnica al odo humano. Sin embargo, los voluntarios aprobaron

    las canciones que compusieron justificando que respetaba en un amplio margen sus gustos y la

    forma de la cul haban entrenado la red. Cabe destacar que las soluciones iniciales brindadas al

    algoritmo gentico deban compartir algunas caractersticas de las canciones con las que se

    entrenaron la red ya que el espectro musical es extremadamente amplio y no tiene sentido, por

    ejemplo, entrenar una red con temas caractersticos de pop y aplicarla a temas de heavy metal. Esta

    restriccin es en base a cada usuario y se aplica su razonabilidad a la hora de utilizar la herramienta

    en cuestin. Si, en cambio, se permite cierto tipo de diversidad musical ya que esto enriquecer el

    producto final, pero debe ser aplicado con valores razonables.

    8) Plan de trabajo

    1. Investigacin sobre software a utilizar para modelar la parte de edicin de partituras y

    aprendizaje de la utilizacin del mismo.

    Tiempo estimado: 35 das.

    2. Investigacin y desarrollo del modelado de datos para la utilizacin del algoritmo gentico.

    Tiempo estimado: 35 das.

    3. Investigacin, seleccin y desarrollo de de los parmetros de la funcin de aptitud que

    establecen por los usuarios.

    Tiempo estimado: 80 das.

    Hoja 34/85

  • 4. Investigacin y desarrollo del modelado de datos para la utilizacin de la red neuronal como

    funcin de aptitud.

    Tiempo estimado: 80 das.

    5. Compaginacin final de la tesis.

    Tiempo estimado: 40 das.

    9) Conclusiones

    A la primera conclusin que se puede llegar a partir de las pruebas que sean realizado es que el

    sistema sirve, como mnimo, de manera de disparador de composicin para el msico que se

    encuentra en una depresin productiva, que no se encuentra inspirado. Al utilizar esta herramienta y

    jugar con ella puede utilizar los compaces ms jugosos de a cuerdo a su bsqueda como primer paso

    de una cancin. Quedar a su criterio completar los baches de poca sonoridad que se pueden

    generar o seguir ejecutando la herramienta y realizar una conjuncin de todos los resultados

    producidos y as llegar a una composicin completamente automtica en varios pasos.

    Un resultado importante que nos arrojan los anlisis realizados es que es difcil que se caiga en una

    violacin a la ley 11.723 de Propiedad Intelectual de la Repblica Argentina, lo cul es un gran

    logro ya que sin esto el fin de la herramienta se vera reducido ampliamente. No tiene sentido usar

    una ayuda para componer que plagie las partituras de entrada del sistema, generara mucho ms

    trabajo para el compositor ya que debera ocuparse de cambiar la cancin generada lo suficiente

    como para no incurrir en este delito.

    Un aspecto novedoso de esta herramienta es que permite convertir a cualquier persona en un

    compositor musical ya que no es necesario que se tenga conocimientos de msica, solamente

    entender bsicamente cmo funciona un algoritmo gentico, que ya de por si es una idea bsica que

    al estar basada en la Teora de la Evolucin la mayora de las personas conocen. Con indicarle a una

    red neuronal cules son las canciones que a uno le gustan, las que no le gustan y seleccionar una

    cantidad de canciones para que sean la entrada del programa alcanza para que la implementacin de

    los algoritmos haga el resto y produzca un resultado acorde. De esta manera la herramienta permite

    universalizar el proceso de composicin y ponerlo al alcance de la mano de cualquier persona. Cabe

    destacar que la msica que se genere de este modo respetar lo ms posible los resultados musicales

    buscados por el usuario, dependiendo de lo posible que eso sea de acuerdo al estmulo de entrada

    que se le brinde. Por lo que esta herramienta no slo permite convertir a cualquier persona en

    compositor sino que tambin reflejar la idea musical del mismo.

    Hoja 35/85

  • Una arista fundamental que posee el sistema de composicin es, que ms all de los criterios que el

    usuario intente tratar de imponer tanto con una red neuronal como con penalizaciones, los

    resultados siempre estarn sujetos a las partituras de entrada que se le hayan brindado. No tiene

    sentido tratar de imponer un castigo a la cantidad de notas mnimas o mximas cuando en las

    canciones que se barajan se violan ambas restricciones, esto provocar que todas las partituras sean

    penalizadas de igual forma, por lo que no habr diferencias entre ellas a la hora de seleccionar las

    ms aptas para la siguiente evolucin. El mismo punto de vista puede ser aplicado para las redes

    neuronales, ya que la red intentar memorizar ciertas estructuras, escalas, notas, etc. y si la entrada

    al programa no tiene nada que ver con el entrenamiento el comportamiento ser completamente

    azaroso. La buena eleccin de criterios y canciones de entrenamiento con respecto a la msica con

    la cul se va a trabajar ser fundamental para acercarse ms y ms a las ideas musicales a las que se

    desea llegar.

    10) Referencias

    [1] URL: http://es.wikipedia.org/wiki/Composici%C3%B3n_musical. Pgina vlida al 20/09/2011.

    [2] Mitchell, M. (1996) An Introduction to Genetic Algorithms. Cambridge, MA: MIT

    Press/Bradford Books.

    [3] Ross, P. M. and D. Corne (1995). Applications of Genetic Algorithms. AISB Quarterly 89, 23-

    30.

    [4] Braun H., Weisbrod J. Evolving Feedforward Neural Networks. Proc. of the 1993 International

    Conference on Artificial Neural Nets and Genetic Algorithms

    [5] Griffith N. and Todd P. M, editors. Musical Networks. MIT Press, 1997.

    [6] Darwin, C.R. (1859) On the Origin of Species. London: John Murray.

    [7] URL:http://www.jardindegente.com.ar/index.php?nota=prensa_365_1. Pgina vlida al

    20/09/2011.

    [8] Spector, L., and Alpern A. 1994. Criticism, Culture, and the Automatic Generation of Artworks.

    In Proceedings of the Twelfth National Conference on Artificial Intelligence, AAAI-94, pp. 3-8.

    Menlo Park, CA and Cambridge, MA: AAAI Press/The MIT Press.

    [9] Todd, P. M. & Werner, G. M. (1999). Frankensteinian Methods for Evolutionary Music

    Composition. In Griffith and Todd, P. M. (Eds.) Musical networks: Parallel perception and

    performance, 313-339.

    [10] Todd, P.M. (1988) A sequential network design for musical applications. In D. Touretzky, G.

    Hinton, & T. Sejnowski (Eds.), Proceedings of the 1988 Connectionist Models Summer School (pp.

    Hoja 36/85

  • 76-84). San Mateo, CA: Morgan Kaufmann.

    [11] Todd, P.M. (1989) A connectionist approach to algorithmic composition. Computer Music

    Journal, 13(4), 27-43.

    [12] Todd S. & Latham, W. (1992) Evolutionary Art and Computers. New York: Academic Press.

    [13] Wiggins G., Papadopoulos G., Phon-Amnuaisuk S., and Tuson A.. Evolutionary Methods for

    Musical Composition. International Journal of Computing Anticipatory Systems (inpress), 1999.

    [14] Bharucha, J.J. & Todd, P.M. (1989) Modeling the perception of tonal structure with neural nets.

    Computer Music Journal, 13(4), 44-53. Also in P.M. Todd & D.G. Loy (Eds.), Music and

    Connectionism (pp. 128-137). Cambridge, MA: MIT Press.

    [15] Burton A. and Vladimirova T.. A Genetic Algorithm Utilising Neural Network Fitness

    Evaluation for Musical Composition. In International Conference on Genetic Algorithms and

    Artificial Neural Networks, 1997a.

    [16] Burton A. R. & Vladimirova T. (1999). Generation of Musical Sequences with Genetic

    Techniques. Computer Music Journal, 23 (4), 59-73.

    [17] Burton, A. and Vladimirova, T. (1997). Applications of Genetic Techniques to Musical

    Composition.

    [18] Feulner J., Hrnel D.. MELONET: Neural Networks that Learn Harmony Based Melodic

    Variations. Proc. of the 1994 International Computer Music Conference, ICMA rhus 1994

    [19] Feulner J., Neural Networks that Learn and Reproduce Various Styles of Harmonization. Proc.

    of the 1993 International Computer Music Conference, ICMA Tokyo 1993

    [20] Giomi F. and Ligabue M. Computational Generation and Study of Jazz.

    [21] Griffith N. and Todd P.M. (Eds.) (1998). Musical networks: Parallel distributed perception and

    performance. Cambridge, MA: MIT Press/Bradford Books.

    [22] Hrnel, D., & Ragg, T. (1996) Learning musical structure and style by recognition, prediction

    and evolution. In Proceedings of the 1996 International Computer Music Conference (pp. 59-62).

    San Francisco: International Computer Music Association.

    [23] Horner, A. & Goldberg, D. E. (1991). Genetic algorithms and Computer Assisted Music

    Composition. ICMC91 Proceedings, San Francisco: International Computer Music Association,

    479-482.

    [24] Horner, A. and Goldberg, D. (1991). Genetic algorithms and computer-assisted composition. In

    Proceedings of the Fourth International Conference on Genetic Algorithms.

    [25] Horner, A., & Ayers, L. (1995) Harmonization of musical progressions with genetic

    algorithms. In Proceedings of the 1995 International Computer Music Conference (pp. 483-484).

    San Francisco: International Computer Music Association.

    Hoja 37/85

  • [26] Horner, A., Assad, A., & Packard, N. (1994) Artificial music: The evolution of musical strata.

    Leonardo Music Journal, 3, 81.

    [27] Horowitz, D. (1994). Generating rhythms with genetic algorithms. In Proceedings of the

    International Computer Music Conference.

    [28] Koza, J. (1993) Genetic Programming. Cambridge, MA: MIT Press/Bradford Books.

    [29] Moore, J.H. (1994) GAMusic: Genetic algorithm to evolve musical melodies.

    [30] Moroni A., Manzoulli J., Von Zuben F., Gudwin R., Vox Populi: Evolutionary computation

    for music evolution. In P.J. Bentley, D. W. Corne, Creative evolutionary Systems, Morgan

    Kaufmann, 2002, pp. 205-221.

    [31] Putnam, J.B. (1994) Genetic Programming of Music. Unpublished manuscript. Socorro, NM:

    New Mexico Institute of Mining and Technology.

    [32] Ralley D. (1995). Genetic algorithms as a tool for melodic development. In Proceedings of the

    1995

    [33] Ralley D. Genetic algorithms as a tool for melodic development. In Proceedings of the

    International Computer Music Conference, 1995.

    [34] Thywissen, K. (1996) GeNotator: An environment for investigating the application of genetic

    algorithms in computer assisted composition. In Proceedings of the 1996 International Computer

    Music Conference. San Francisco: International Computer Music Association.

    [35] Towsey, M., Brown, A., Wright, S., & Diederich, J. (2000). Interactive Music Composition

    using Genetic Algorithms. Paper presented at the 7thConf. of the International Society for the Study

    of European Ideas (ISSEI), 14-18 August, 2000, University of Bergen, Norway.

    [36] Gibson, P. and Byrne, J. (1991). Neurogen, musical composition using genetic algorithms and

    cooperating neural networks. In Proceedings of the 2nd International Conference in Artificial

    Neural