Download Composición Musical a Través del Uso de Algoritmos Genéticos
Document related concepts
Transcript
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 Índice de Contenidos 1) Introducción.....................................................................................................................................5 2) Objetivos..........................................................................................................................................6 3) Problema a resolver..........................................................................................................................7 4) Definición de soluciones a los problemas planteados......................................................................9 5) Estado de la cuestión......................................................................................................................10 5.1) Algoritmos Genéticos.............................................................................................................10 5.2) Redes Neuronales...................................................................................................................11 5.3) Composición musical.............................................................................................................11 5.3.1) Criterio de composición musical....................................................................................11 5.4) Trabajos Realizados................................................................................................................12 6) Desarrollo de la solución...............................................................................................................13 6.1) Armado de la Red Neuronal...................................................................................................20 6.2) Arquitectura del sistema.........................................................................................................23 7) Validación de la solución................................................................................................................32 7.1) A través de penalizaciones.....................................................................................................32 7.2) A través 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 Mutación..........................................................................................49 Cruza..............................................................................................................................................49 Mutación........................................................................................................................................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 líneas adicionales................................................................................................................53 La clave de fa............................................................................................................................53 Memorización de notas.............................................................................................................54 Uso combinado de clave de sol y fa..........................................................................................54 La notación rítmica...................................................................................................................55 Las figuras musicales................................................................................................................55 El compás..................................................................................................................................56 La indicación de compás...........................................................................................................56 Las líneas divisorias..................................................................................................................57 El puntillo..................................................................................................................................57 La ligadura................................................................................................................................58 Unidad de tiempo y compás......................................................................................................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 Calificación o especie de un intervalo...........................................................................................64 Las segundas..................................................................................................................................65 Identificación de segundas........................................................................................................65 Las terceras....................................................................................................................................66 Identificación de terceras..........................................................................................................67 Las cuartas.....................................................................................................................................68 Identificación de cuartas...........................................................................................................68 Las quintas.....................................................................................................................................69 Identificación de quintas...........................................................................................................69 Las sextas.......................................................................................................................................70 Identificación de sextas.............................................................................................................70 Las séptimas...................................................................................................................................71 Identificación de séptimas.........................................................................................................71 Las octavas.....................................................................................................................................72 Hoja 3/85 Alteraciones...................................................................................................................................72 Consonancias y disonancias...........................................................................................................73 Enarmonía......................................................................................................................................73 Intervalos ascendentes y descendentes..........................................................................................73 Intervalos compuestos y simples...................................................................................................74 Intervalos melódicos y armónicos.................................................................................................74 Semitonos cromáticos y diatónicos................................................................................................74 Relación matemática de los intervalos...........................................................................................75 Acordes..........................................................................................................................................75 Las inversiones..............................................................................................................................75 Las triadas......................................................................................................................................76 Formación de triadas en las escalas mayores............................................................................77 Formación de triadas en las escalas menores............................................................................78 Triadas y grados de las escalas..................................................................................................78 Identificación de triadas............................................................................................................79 Otra forma de identificar las triadas..........................................................................................80 Los acordes de séptima..................................................................................................................81 Acordes de novena.........................................................................................................................82 Escalas...........................................................................................................................................83 La escala menor.........................................................................................................................84 Escalas relativas........................................................................................................................85 La tonalidad...................................................................................................................................85 Hoja 4/85 1) Introducción La composición musical es el arte que tiene como objetivo la creación de obras musicales, es una actividad humana que sirve para la expresión, comunicación y entendimiento entre personas. Se podría dividir en 2 partes básicas: la melodía y la armonía. La primera, según la Real Academia Española (RAE)[1] es “La parte de la música que trata del tiempo con relación al canto, y de la elección y número de sones con que han de formarse en cada género de composición los períodos musicales, ya sobre un tono dado, ya modulando para que el canto agrade al oído”, siendo la segunda “la unión de tres o más sonidos simultáneos, entendiendo que el canto o melodía producido por una sola voz es homónimo, con dos voces se producen intervalos armónicos y, a partir de 3 voces o sonidos simultáneos hablamos de armonía”. Este trabajo se enfocará en el uso de los algoritmos genéticos (AAGG)[1], [2] con el fin de mezclar armonías y melodías de forma que se genere una composición musical de buen sonido para el oído, 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 momentánea es permisible ya que es parte de la misma música generar tensión a través de pequeños intervalos poco agradables al oído. Si bien los AAGG no fueron diseñados para imitar comportamiento humano sino para resolver problemas u optimizar soluciones, pero se puede pensar en la composición de la música como el problema de encontrar una canción que suene bien al tomar en consideración 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 iteración se seleccionarán las mejores canciones para ser la base de la iteración siguiente. Además, en base a una variable probabilística se realizará un cambio aleatorio sobre uno de los compases de alguno de los temas, que también será elegido al azar. Luego de varias repeticiones se obtendrán como resultado distintas piezas musicales que serán totalmente distintas a las primeras, generando de esta forma, nueva música. Con el fin priorizar la estructura de temas agradables o buscados por el usuario se utilizarán redes neuronales (RRNN)[3], [4] que serán entrenadas para permitirle a éste un procesamiento automático de composición basado en sus gustos e inclinaciones musicales. Las mismas serán entrenadas con este fin para interpretar de todas las canciones candidatas en cada iteración 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: definición y explicación 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) Definición de las soluciones al problema planteado: explicación de las formas y métodos que se necesitan para resolver lo que se ha planteado en el punto 3. 5) Estado de la cuestión: se detallan conceptos sobre algoritmos genéticos, redes neuronales y composición musical; además se especifica sobre los trabajos realizados en el área que compete al tema de la tesis. 6) Desarrollo de la solución: se explica detalladamente la implementación que se hizo de la solución explicada en el punto 3, se muestran los diagramas de clases y de paquetes correspondientes y se explican los patrones utilizados. 7) Validación de la solución: consiste en la evaluación del sistema desarrollado para resolver los problemas planteados. De esta evaluación se desprenderá si todo lo que se planteó anteriormente fue resuelto de manera correcta, explicando los puntos fuertes y débiles a través de lo que se pueda observar de manera empírica. 8) Conclusiones: se describen los aspectos que de la solución que decantan de los resultados obtenidos en las pruebas de validación. 9) Plan de trabajo: se especifica el tiempo estimado para la realización de cada parte que constituye trabajo detallado en el punto anterior. 10) Referencias: se mencionan las citas que se han utilizado para la preparación de este documento. 2) Objetivos El proyecto tiene diversos objetivos que se encuentran orientados a las distintas aristas que tiene la composición musical. Cuando un músico o compositor musical se encuentra sin inspiración permanente puede utilizar cómo método de ayuda para superar esta situación el compositor musical a través de AAGG. El primer objetivo de todos los que se van a plantear es que las canciones generadas por la herramienta sean agradables al oído, es decir, las partes disonantes deben ser armónicas y deben ser una minoría en proporción a las que no. No tendría sentido que una persona componga un tema que sea desagradable al escucharlo, si bien hay distintos géneros musicales y existen personas que no les gustan unos y si otros, dentro de cada género existen ciertos Hoja 6/85 comportamientos intrínsecos a él que hacen que éstos tengan una estructura más o menos definida y, dentro de esta, serán agradables al oído de las personas a las que les gusta ese tipo de música. El segundo objetivo es netamente legislativo, para proteger la propiedad intelectual de los compositores. Las canciones generadas por el algoritmo de composición musical no deben ser plagio de las partituras que les dieron origen. Se fijará un criterio el cuál debe cumplirse estrictamente para no ser victimarios del delito de plagio, respetando de esta manera a toda la comunidad artística de la cuál se forma parte. Se debe ser muy cuidadoso a la hora de producir un nuevo contenido artístico ya que este puede incurrir en el delito de violación a la ley 11.723 de Propiedad Intelectual de la República 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 composición las partituras iniciales, manteniendo ciertas características de los mismos, viéndose afectadas en parte, lo suficiente como para generar una canción 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 través de las cuáles se premien o se castiguen ciertas mezclas o características musicales que se puedan ir dando a lo largo del proceso iterativo de composición, cumpliendo así con las metas que esté buscando el usuario en función de poder manejar algunas de las variables que se encuentran libradas al azar dentro de la ejecución del programa. 3) Problema a resolver Un músico muchas veces cae en mesetas de inspiración que limitan su producción musical, la mayoría de las veces esto sucede luego de haber tenido una etapa muy fructífera en cuanto a composición. Además, un compositor sufre de momentos efímeros de iluminación que muchas veces terminan decantando en pequeñas piezas musicales que quedan condenadas, en general, al olvido. Por ello, se necesitaría implementar una solución que permita obtener un material en crudo para ser escuchado, estudiado, analizado y, finalmente, modificado a criterio del músico con el fin de servirle a éste de ayuda para los momentos de poca inspiración. Este material debe poder obtenerse de manera flexible tanto de las pequeñas piezas que se componen como de canciones completas ya Hoja 7/85 que no siempre se cuentan con las primeras. Dado que en la música oriental existen 12 notas musicales y distintos tipos de combinación entre ellas es difícil para un algoritmo saber cuando una pieza suena bien o no, además existen estudios llamados de armonía que se encargan de este tipo de cuestión. Si bien existen las disonancias, sonidos tensos o poco agradables al oído, éstas enriquecen la composición quitándole la monotonía de seguir algún tipo de escala conocida para ese tipo de estructura de canción. Además, las mismas pueden ser una introducción a un cambio de tonalidad haciendo de “pase” o puente entre una y otra. Por último, queda señalar, que siempre la música 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 gustaría una canción que en cada una de sus partes haya tensión o sea totalmente disonante. Por una cuestión de respeto tanto a la comunidad artística como al público y de idoneidad, una canción 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 mínima parte igual ya implica que un artista a copiado a otro? 2. Qué significa una mínima parte? Cuánto es? 3. Cómo se determina esto en los géneros más populares dónde las canciones son más parecidas ente ellas? 4. Qué y cuánto tienen que tener de distinto para diferenciarse? Se podrían escribir muchos interrogantes similares que nos den cuenta que este es un problema complejo y difícil 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 método o regla exacta que nos permita descubrir o determinar si se ha incurrido en una violación a la propiedad intelectual. Cada artista tiene su estilo bien marcado, esta esta característica no puede ser simplificada a algunas pocas formas y recursos musicales, es mucho más complejo que eso. Se sabe que la búsqueda de una identidad musical le lleva varios años de trabajo y esfuerzo a cualquier compositor o músico de cualquier género. Además, una vez que se encuentra el mismo, no se deben estancar en la simplicidad de haber llegado a su (primera) meta, el camino recién empieza, ahora quedará la profundización del concepto, las variaciones para no caer en la monotonía, la evolución de lo que se ha encontrado, etc. es un trabajo arduo y continuo que no tiene un fin determinado. Más allá del género o estilo musical que se este buscando respetar, generar o lograr, el compositor puede estar interesado en que no estén presentes ciertas características musicales en función de sus objetivos. Que el usuario pueda tratar de evitar una conjunción de notas disonantes, exceso de silencio en los compases, muchas idas y vueltas en cuanto a los tiempos musicales a lo largo de la canción y la cantidad de notas máximas y mínimas por compás es fundamental para poder llegar a Hoja 8/85 las metas que un músico se propone cuando busca algún tipo de inspiración a partir de la cuál desarrollar sus habilidades. Este problema también 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) Definición de soluciones a los problemas planteados Con el fin de solucionar el primer problema planteado, poder generar temas musicales agradables al oído, se ha pensado en que la mejor solución para no caer en la rigidez y la monotonía es usar el criterio del usuario. Esto no significa que el mismo tendrá la ardua tarea de identificar en cada paso de cada iteración si las canciones que se están generando son o no agradables al oído, por el contrario, esto implicará que el compositor defina cuáles son las primeras soluciones al problema de composición para el algoritmo genético 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 evolución en el proceso de composición automática. Si bien no se puede planear o imaginar todas las combinaciones posible que pueden tener las piezas musicales entre ellas, se puede hacer un análisis general sobre el problema a través del los tonos de las canciones. Hay tonos que pueden combinarse con otros sin ser disonantes, otros que generan una disonancia de tensión que puede enriquecer mucho el tema y otros que finalmente no podrían mezclarse porque no podría cumplir con la regla de generar canciones agradables al oído. La cantidad de temas, su longitud, sus variaciones, sus tonos, todas sus características y sus proporciones quedarían en manos del usuario en función de establecer y sentar las bases para la composición. En función de no caer una violación a la propiedad intelectual el algoritmo genético no sólo irá mezclando los distintos compases de las diferentes canciones, sino que también, aplicará una mutación o modificación de los compases de manera estadística que producirá una gran variación 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 composición automática. Dado que estas variaciones no son determinísticas en cuanto a cuándo se producen, sino que por el contrario es un proceso estocástico, otra vez se verá involucrado el usuario para definir una probabilidad de ocurrencia de este fenómeno. En función de poder respetar los gustos o preferencias musicales de un usuario se definirá la implementación de un sistema de premios y castigos para poder fomentar y desalentar ciertas características 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 estén presentes todas las particularidades que posee el género, 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 genéricas que abarquen un gran espectro de posibilidades y, que de acuerdo a su combinación y especificación le permitan al compositor poder expresarse con mínimas limitaciones para poder llegar a su objetivo. Si bien el sistema de restricciones definido por las reglas que exprese el usuario no es determinístico en función de lo buscado, si lo será en función de las canciones que mejor se adapten a éstas. El compositor puede estar buscando que su composición se encuentre sesgada por ciertos rasgos que no son comunes a un género o estilo musical, para ello sería 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 composición final. Como un ejemplo de ello se podría decir que se está queriendo llegar a componer una canción que sea un HIT, esto no es propio de ninguna rama de la música. Para poder lograr la solución a este problema se puede entrenar una red neuronal que procese el tipo de canción que el usuario especifique y obtenga un modelo con tal de respetar el criterio definido musicalmente. Como contraste a esto, también se solicitará al compositor que indique las partituras que están alejadas de los objetivos o no cumplan con la idea musical que se desea encontrar. 5) Estado de la cuestión 5.1) Algoritmos Genéticos Los AAGG[1], [2] son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados de la teoría de la evolución de Darwin (1859)[5]. La idea básica del mismo es generar una población inicial que evolucione a través del tiempo (proceso iterativo) dónde en cada iteración sobreviven los individuos más aptos por sobre los más débiles. La evolución de dichas soluciones hacia valores óptimos del problema depende en buena medida de una adecuada codificación de las mismas. Este tipo de solución algorítmica se emplea en problemas dónde el tiempo computacional en buscar la resolución óptima es tan elevado que se hace inaceptable dada la naturaleza de la situación. Por lo que se decide buscar una solución que esté acorde a las necesidades planteadas en un tiempo significativamente menor. Para ello se busca una cantidad inicial de soluciones válidas que irán 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 sobrevivirán los que se acerquen más a la resolución esperada. También existe un proceso de mutación probabilística 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 población 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 automático 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 disposición 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) Composición musical La composición 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 acompañados de una letra que complemente el significado de cada compás, estrofa o parte musical compuesta. Cada tipo de música distinta (música popular, música folclórica, música contemporánea, música de cine, etc) trae aparejado un estilo, forma de componer, reglas propias de melodía y armonía, instrumentos involucrados, etc. conocido, utilizado y estudiado por músicos. Una arista de la composición musical que ha traído aparejadas muchas historias y peleas entre compositores es el criterio que establece qué es una canción (musicalmente) nueva y qué es un plagio a creaciones ya existentes. En este tema no hay un estándar que lo indique a nivel mundial, pero la legislación de cada país establece sus propios criterios para tal fin. 5.3.1) Criterio de composición musical El artículo 10 de la ley 11.723 de Propiedad Intelectual de la República Argentina define a lo que en derecho se conoce como “derecho de cita” de la siguiente manera: “Cualquiera puede publicar con fines didácticos o científicos, comentarios, críticas o notas referentes a las Hoja 11/85 obras intelectuales, incluyendo hasta mil palabras de obras literarias o científicas u ocho compases en las musicales y en todos los casos sólo las partes del texto indispensable a ese efecto. Quedan comprendidas en esta disposición las obras docentes, de enseñanza, colecciones, antologías y otras semejantes. Cuando las inclusiones de obras ajenas sean la parte principal de la nueva obra, podrán 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 composición 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, análisis y conclusiones; incluso hasta se han grabado discos y se ha promocionado este tipo de arte tecnológico. Los enfoques más importantes son: Gibson and Byrne[35] hicieron un trabajo basado en la armonización de melodías usando solamente las notas tónicas 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 melodías estudiadas. Jacob[36] presentó su trabajo de composición en el cuál los AAGG son usados para identificar y diferenciar melodías aceptables para el oído humano, las mismas son tomadas de la salida que produce un proceso de generación de música estocástico. A partir de esa elección comienza el proceso de mejora y refinamiento propio del AG. McIntyre[37] realizó estudios de armonización de 4 partes usando una armonía barroca. Uno de los proyectos más conocidos es GenJam (Biles)[38], [39], [40], [41], [42], un AG que genera solos de jazz en base a una sucesión de acordes. Establece escalas para la improvisación de acuerdo al acorde utilizado en el momento. Dada la progresión de los mismos se analiza y se establecen las notas en base a las escalas musicales. Mientras la aplicación da una muestra en tiempo real de como quedaría 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 automática. Se ha hecho un trabajo similar (George Papadopoulos and Geraint Wiggins)[43] para establecer una melodía dada la progresión de acordes que se recibe, en este caso se establece una función de aptitud y no una red neuronal para elegir a los individuos más aptos. Esta investigación se focalizó en intentar reproducir el comportamiento humano de la composición por lo que se utilizan una función de aptitud basada en conocimiento psicológico musical. El trabajo abordado por esta tesis Hoja 12/85 se diferenciará de los dos últimos mencionados ya que se enfocará en la composición musical desde todos los puntos de vista y maneras de trabajar, no sólo se podrán componer nuevas melodías sino que también nuevas progresiones de acordes. También se trabajará con distintos tipos de métodos en la determinación de los individuos más 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 auténtica o es un plagio de alguna de las partituras originales. Una característica a destacar es que la forma en la que trabajaremos podremos utilizar como fuentes de composición melodías 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 composición 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 armonías pertenecientes a su base de datos, generando de esta manera la composición musical buscada. Se ha seleccionado este software para la comparación ya que ambos comparten el universo de la composición automática, pero sabiendo que ambos lo encaran de distintas aproximaciones. Se pretende demostrar que el método de aproximación a través de AAGG mejora la composición automática de música en función de los criterios de propiedad intelectual del resultado generado. 6) Desarrollo de la solución Como se puede apreciar en la sección 2 se ha trabajado arduamente con la música y los algoritmos genéticos. Lo que no se ha hecho es tratar de componer nuevas melodías o temas musicales usando este tipo de abstracción. Siempre las melodías 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 investigación 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 recién compuestos que en los que se quiera investigar, sobre ellos se considerará a cada compás como un cromosoma del individuo interviniente y entre ellos se realizará la cruza. Luego de varias iteraciones cada uno de los temas originales se verán totalmente modificados en estructura, tiempos, ritmos, sonoridades, etc. generando de esta manera canciones nuevas. De la morfología, estructura y sonoridad de éstas Hoja 13/85 puede nacer la inspiración que busca el compositor, o, directamente una nueva composición musical de manera automática. Además, los AAGG, al depender del azar pueden producir muchas soluciones diferentes, lo que es necesario en los ambientes creativos. Como función de aptitud (para elegir las mejores canciones de cada iteración) se utilizarán tres posibilidades distintas: 1. Un archivo de configuración en el cuál se especificarán ciertos parámetros 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 melodías son las buscadas y seguirán en pie dando origen a la población siguiente y que melodías pasarán al olvido. Se usado un software open source para utilizar su modelado, abstracción, gráfica, etc. para la escritura de las partituras musicales a procesar. En el mismo también se diseñan, escriben y guardan los archivos de datos correspondiente a la entrada de la aplicación 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 cuestión. Por estar desarrollado en el lenguaje de programación Java, ser un software OpenSource, su simpleza en cuanto a la usabilidad, su capacidad de abrir y guardar en los formatos más 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 parámetro para determinar si la composición musical hecha a través de algoritmos genéticos genera canciones nuevas o no, es decir, si las piezas resultantes contienen hasta 8 compases idénticos, sin importar el orden, a alguna de las melodías que les dieron origen, se considerará que no a compuesto música, que se está plagiando; en caso contrario diremos que el resultado es genuinamente original. Se podrán mezclar cualquier instrumento excepto la batería 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 comunicación MIDI. Se desarrolló un sistema que en base a una entrada de partituras musicales genera, de acuerdo a la función de aptitud elegida, una partitura sin violar la ley de propiedad intelectual con respecto a las originales, que es la que mejor se adapta según lo seleccionado por la función de aptitud. La aplicación toma la configuración para su funcionamiento a través de un XML. El mismo define varios parámetros para el uso de AAGG de la siguiente manera: <?xml version="1.0" encoding="UTF-8"?> <songComposer> <configuration evolutions="2000" mutationRate="10000" crossoverRate="0.6"> Hoja 14/85 El encabezado XML, la etiqueta “songComposer”, su hija“configuration” y sus atributos son obligatorios. Los 3 atributos establecen los siguientes parámetros: • evolutions: número de iteraciones o evoluciones que va a tener el algoritmo. • mutationRate: número que especifica la probabilidad de que ocurra una mutación por cada vez que se evalúa si una canción debe mutar, es decir que si el valor es 1000, ocurrirá (de manera aproximada) una mutación por cada 500 iteraciones si tenemos dos canciones a evaluar. • crossoverRate: número 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 búsqueda de otras nuevas. Luego de especificar estos parámetros 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 sería: <?xml version="1.0" encoding="UTF-8"?> <songComposer> <configuration evolutions="2000" mutationRate="10000" crossoverRate="0.6"> <inputPath>/home/ezequiel/SongComposer/songs/eleccion/</inputPath> <outputFile>/home/ezequiel/SongComposer/songs/output/prueba.tg</outputFile> Finalmente debe especificarse el tipo de función de aptitud abriendo la correspondiente etiqueta llamada “fitnessFunction” e indicándolo 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 más apto será el que tenga mayor cantidad de puntos. Vale aclarar que para hacer el camino inverso al de la penalización, es decir, la premiación de alguna condición o característica musical presente, se puede penalizar con un valor menor a cero, por lo que la misma se transformaría en una adición de puntos en lugar de una quita. Esta funcionalidad inversa puede ser aplicada a cualquier tipo restricción. Las 3 condiciones que hoy se contemplan son las siguientes: Hoja 15/85 1. Restricción de notas: penaliza que en un mismo compás se encuentren dos notas especificadas (expresadas en notación americana, DO-RE-MI-FA-SOL-LA-SI es equivalente a C-D-E-F-G-A-B), se evalúan para todos los compases de la partitura. La etiqueta que se debe usar para indicar esta restricción es “noteRestriction” y sus atributos son: • penalty: número 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: <noteRestriction penalty="1" firstNote="C" secondNote="C#" /> 2. Restricción 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 restricción es “tempoRestriction” y sus atributos son: • penalty: número 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: <tempoRestriction penalty="4" firstTempo="2/4" secondTempo="2/3" /> 3. Restricción de cantidad de notas: penaliza la cantidad de notas, ya sea mínima o máxima, que se encuentran en un compás a lo largo de toda la partitura. La etiqueta que configura la restricción es para máximo de notas “maxNotesPerMeasureRestriction” y para mínimo “minNotesPerMeasureRestriction” y sus atributos son: • penalty: número entero que indica la penalidad a aplicar. • NotesPerMeasure: cantidad de notas en la cuál se empieza a aplicar la restricción. Ejemplo de uso: <minNotesPerMeasureRestriction penalty="100" notesPerMeasure="3" /> Un ejemplo de uso con todas las restricciones es el siguiente: <?xml version="1.0" encoding="UTF-8"?> <songComposer> <configuration evolutions="2000" mutationRate="10000" crossoverRate="0.6"> <inputPath>/home/ezequiel/SongComposer/songs/eleccion/</inputPath> <outputFile>/home/ezequiel/SongComposer/songs/output/prueba.tg</outputFile> <fitnessFunction type="XML"> <noteRestriction penalty="-1" firstNote="C" secondNote="F" /> Hoja 16/85 <noteRestriction penalty="1" firstNote="D" secondNote="C#" /> <noteRestriction penalty="3" firstNote="F" secondNote="F#" /> <noteRestriction penalty="2" firstNote="G" secondNote="F#" /> <tempoRestriction penalty="4" firstTempo="2/4" secondTempo="2/3" /> <maxNotesPerMeasureRestriction penalty="4" notesPerMeasure="7" /> <minNotesPerMeasureRestriction penalty="100" notesPerMeasure="3" /> </fitnessFunction> </configuration> </songComposer> El segundo tipo de función de aptitud se establece a través 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 cuáles se entrenó, la segunda y la tercer capa se configuran con el XML de configuración, la última sólo tiene una neurona que indica de 0 a 1 la preferencia de ese tema para continuar en la siguiente iteración del algoritmo genético. Para especificar los parámetros de configuración y de aprendizaje de la red neuronal se usa la etiqueta “learningConfiguration” como hija de “fitnessFunction”. La misma tiene los siguientes atributos: • trainingCicles: número que indica la cantidad de ciclos que va a usar la red para entrenarse tratando de llegar a los valores esperados • neuronsHiddenLayer1: número que indica cuántas neuronas tiene la primera de las capas ocultas. • neuronsHiddenLayer2: número que indica cuántas neuronas tiene la segunda capa oculta. Ejemplo de uso: <learningConfiguration trainingCicles="200000" neuronsHiddenLayer1="10" neuronsHiddenLayer2="10"> Para que la red pueda ser entrenada hay que pasar la dirección 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 parámetros se especifican con tags propios que serán 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 más 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 configuración es: <?xml version="1.0" encoding="UTF-8"?> <songComposer> <configuration evolutions="2000" mutationRate="10000" crossoverRate="0.6"> <inputPath>/home/ezequiel/SongComposer/songs/eleccion/</inputPath> <outputFile>/home/ezequiel/SongComposer/songs/output/prueba.tg</outputFile> <fitnessFunction type="NeuralNet"> <learningConfiguration trainingCicles="200000" neuronsHiddenLayer1="10" neuronsHiddenLayer2="10" <pathTotrainingFolderGood>/home/ezequiel/SongComposer/songs/C</pathTotrainingFol derGood> <pathTotrainingFolderBad>/home/ezequiel/SongComposer/songs/D</pathTotrainingFold erBad> </learningConfiguration> </fitnessFunction> </configuration> </songComposer> Para usar una red neuronal ya entrenada se debe especificar la ruta al archivo en disco, la misma se especifica con el nombre “pathToLoadNeuralNet”. No se deben especificar los datos de configuración de aprendizaje porque no corresponde al modelo que vamos a utilizar al cargar la red. Un ejemplo de uso de esta configuración es: <?xml version="1.0" encoding="UTF-8"?> <songComposer> <configuration evolutions="2000" mutationRate="10000" crossoverRate="0.6"> <inputPath>/home/ezequiel/SongComposer/songs/eleccion/</inputPath> <outputFile>/home/ezequiel/SongComposer/songs/output/prueba.tg</outputFile> <fitnessFunction type="NeuralNet"> <pathToLoadNeuralNet>/home/ezequiel/SongComposer/NN/red.nnet</pathToLoadNeuralNe t> </fitnessFunction> </configuration> </songComposer> Hoja 18/85 La invocación del programa se hace de la siguiente manera, generando la salida mostrada a continuación: $ 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 ejecución sin argumentos nos muestra los usos que la aplicación puede tener. El primer ejemplo mostrado recibe la ruta al archivo XML de configuración cuya conformación 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 ejecución de composición se muestran por salida estándar el número de evolución por el cuál se esta atravesando y, ya sobre el final de la corrida, se muestra cuánto se tardó y qué compaces son iguales a las canciones originales de las cuáles se partió. La información 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 información nos permite ver fácilmente si nuestro tema final incurre en la violación a la ley de propiedad intelectual o no, es decir, que si la salida nos muestra que nuestro tema compuesto tiene más de 8 compaces iguales a alguno de los temas que le dio origen estamos en infracción. Una vez finalizada la ejecución 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 limitación, desde las notas propiamente dichas (es “infinito” cuán aguda o grave es una nota, la única limitación aquí es el instrumento, cuántas teclas tiene el piano, cuántos trastes la guitarra, el largo del violín o el chelo, etc), la cantidad de notas (en un compás o que suenan en simultáneo), sus tiempos asociados (redonda, blanca, negra, semi corchea, etc) hasta la cantidad de compaces. Dadas las características 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 cuál la aplicación se va a manejar. Las mismas son: • Se determinó que habrá una relación unívoca entre neuronas de entrada y compaces de las canciones, al ser un número variable entre todas ellas se fijó que se evaluarán solamente los compaces de la canción que tenga menor cantidad de ellos, todos los compaces que superen ese número no serán evaluados. Ejemplo: Si tenemos 3 canciones: A, B y C que tienen respectivamente 50, 60 y 100 compaces solamente se tomarán en cuenta los primeros 50 generando una red neuronal con ese número de neuronas en la primer capa. • Se fijó la nota más grave y la nota más aguda de acuerdo a un instrumento de referencia, en este caso, la guitarra. Por lo que por su conformación la nota más grave es un Mi mayor tocando la sexta cuerda (la más gruesa) sin presionar ningún traste, lo que comúnmente se llama “al aire”. De la misma forma, por una limitación física del instrumento, se establece la Hoja 20/85 nota más aguda que se puede producir, que en este caso, se logra tocando la 1 er cuerda (la más fina) en el último traste, comúnmente, el número 29. • Por una cuestión de simplicidad a la hora de abordar el problema se decidió ignorar en la serialización 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 canción, es decir, que todos los tracks más allá del elegido para ser evaluado serán ignorados. A partir de estas bases se estableció un número correspondiente a cada nota, para la más grave un 1, para la siguiente un 2 y así sucesivamente hasta alcanzar el número máximo alcanzable por el instrumento. En la práctica se observó que la red funcionaba mucho mejor con datos normalizados por lo que finalmente la nota serializada es: N° nota / N° nota máxima. En cada compás 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 configuración y forma de manejar los datos se tienen en cuenta la cantidad de notas que se encuentran en un compás y sus valores intrínsecos. También 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 representación numérica como dato de entrada serializado para el uso de la red neuronal. Los valores mas agudos tendrán un valor más cercano a uno dado que se producen a medida que se avanza sobre el traste de la guitarra y los sonidos más graves serán representados por números cercanos al 0. De forma menos ortodoxa también es tenido en cuenta el tiempo de cada nota y el del compás en la modelización en cuestión, esto sucede porque musicalmente cuando se define un tiempo para un compás o serie de compaces se limita el tamaño del tiempo de las notas, si el tiempo de un compás 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 compás habrá distintos valores medios por compás de acuerdo a este tipo de característica. La elección de la función de transferencia fue un paso importante para este proyecto, de acuerdo con las variantes que había disponibles se eligieron las que podían resolver mejor este problema y, empíricamente se hicieron distintas pruebas para determinar la mejor opción de todas. Las posibilidades más importantes eran: • Lineal y = b * x : Es la función de transferencia más simple que existe, se transfiere a la siguiente capa el valor de entrada aplicándole solamente una transformación lineal. Este tipo de función 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: Figura 1: Diagrama de conexión del Linear Layer. • Biased y = x + biasn (biasn es el bias de la enésima neurona): Esta tipo de transferencia es una extensión de la lineal porque aplica una transformación lineal pero a la vez difiere en dos aspectos: 1. Al usar biases la transformación se va modificando durante la fase de entrenamiento. 2. No tiene un multiplicador como parte de la función. • −x y=1/(1+ e ) : Aplica una transferencia no lineal con un rango de datos que va Sigmoid desde cero a uno, es un buena función para ser utilizada en las capas ocultas de una red neuronal. • TanH x −x x −x y=(e −e )/(e + e ) : Es similar a la Sigmoid, sólo que se aplica la tangente hiperbólica y por lo tanto la salida quedará limitada en un rango comprendido entre menos uno y uno. c • x x SoftMax y=e / ∑ e : Como la Sigmoid tiene una salida que cubre el rango entre cero y j=1 uno, pero la gran diferencia es que la suma de todas las neuronas de la misma capa suman 1. Gracias a esta característica la salida de esta función de transferencia puede ser interpretada como probabilística. Su uso más frecuente es en redes neuronales supervisadas para la clasificación entre C elementos. • Logarítmica y=log(1+ x)si x≥1 : En este caso el resultado de la función va de cero a y=log(1−x ) si x <1 infinito. Esta relación nos permite evitar la saturación de procesar muchos elementos entre cero y uno, dónde la Sigmoid y la TanH tienen una curva de respuesta de muy poca pendiente. • Seno y=sin ( x) : Este tipo de transferencia suele utilizarse para problemas que poseen cierta periodicidad en su estructura. El rango de salida es de menos a uno. La función de transferencia que se utilizó para resolver el aprendizaje sobre la composición musical buscada fue la Sigmoid. Hoja 22/85 La estructura interna de la red depende de la cantidad de información que debe aprender, por lo que para hacerla más flexible se pueden configurar el número de neuronas de las 2 capas ocultas de la misma. Empíricamente 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 conformación de la cantidad de neuronas por capa de la red siempre sigue el siguiente patrón: 1. Capa de entrada de datos: La mínima 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 número es cercano a uno estamos en presencia de patrones musicales de agrado para el usuario, para el caso contrario el límite es el cero. La morfología 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 tomarán en cuenta para la evaluación), la configuración 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 composición musical buscada solamente cambiando el archivo de configuración que recibe la aplicación. Si se desea trabajar con estilos de música cuyos temas en general son de duración extendida sólo se debe agregar más neuronas en las capas ocultas ya que para la capa de entrada se identifica automáticamente la cantidad de neuronas necesarias para llevar a cabo su procesamiento; en cambio, si se desea trabajar con un universo de temas musicales cuya característica es tener una corta duración sólo se debe disminuir el número de neuronas de las capas ocultas. 6.2) Arquitectura del sistema La aplicación 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 genéticos. A través de la implementación de los conceptos de herencia y sobrecarga de métodos se le indica qué es un individuo, qué es un gen, cuál es la función de aptitud y cómo se realiza el entrecruzamiento y la mutación de los mismos. Una vez indicado esto se le establecen los parámetros generales del algoritmo, cómo el número 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 realización de esta tesis no sólo hubo que seguir las indicaciones anteriormente señaladas sino que también se tuvo que investigar, extender y modificar distintos conceptos estándar de la configuración convencional del framework. 2. Joone 2.0.0: Esta herramienta de trabajo se utiliza para el diseño, modelización, 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 través de explicaciones y ejemplos, entender para qué sirve cada función de transferencia, las conexiones y cómo se deben programar las distintas funcionalidades de acuerdo a lo que esté buscando el usuario. Programando el diseño morfológico y funcional de la red se obtiene el primer paso para su uso, se le debe indicar cuántas capas va a tener, el número de neuronas por capa, el tipo de conexión entre las neuronas de una capa con la siguiente, la función 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 contraprestación de levantar ese archivo y restaurar la red sin modificaciones. 3. TuxGuitar 1.2: Esta aplicación es un software autónomo para la escritura de partituras musicales, no es un framework para ser utilizado como herramienta. Pero al ser de código abierto y libre, se ha incluido como parte de la aplicación desarrollada utilizando la modelización 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 documentación sobre cómo se debían utilizar los distintos conceptos del modelo programático se tuvo que investigar profundamente el código fuente y, además, se tuvo que escribir un correo electrónico a uno de los desarrolladores con el fin de evacuar algunas dudas que se tenían sobre la implementación que habían realizado. Se creó una estructura general de clases con el fin de permitir extenderlo fácilmente para añadir otro tipo de función de aptitud y agregar más restricciones. La primer capa de clases que representan la composición musical y el tipo de función de aptitud a usar,. Existe una clase general SonComposer que implementa todo lo necesario y relativo a la composición musical usando solamente algoritmos genéticos, luego de ella se extienden las distintas clases que implementan las modificaciones necesarias para componer una canción en las distintas posibilidades que hoy se ofrecen. Hay un clase abstracta y general para la utilización 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 parámetros que la aplicación deja introducir, posteriormente al entrenamiento se procede a guardar los datos en la ruta establecida y finalmente se utilizará la red como función 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 intención 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 configuración al cuál se le pasa el XML de configuración del software y éste a partir de la lectura e interpretación de los datos genera el objeto deseado (o un error si hay problemas de configuración) devolviendo el objeto padre sin necesidad de especificar a la capa de ejecución en qué modelo se correrá. Básicamente se implementó un patrón de diseño llamado Factory. La estructura definida anteriormente sin el objeto de configuración (no se muestra porque no tiene ningún sentido) de se muestra en el siguiente diagrama: Hoja 25/85 Hoja 26/85 Figura 2: Diagrama de clases de la configuración Otro tema importante en el diseño del sistema es la capa que se ocupa de la función 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 evaluación dentro de cada iteración. Para el uso de restricciones se provee un sistema fácilmente 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 restricción que se desee adicionar, posee además de los constructores un único método que aplica las penalizaciones o premiaciones a una canción dada. Sobre esta clase base heredan otras dos clases que representan a las restricciones de una y dos variables, ambas clases también abstractas. Las restricciones que penalizan o premian (de acuerdo a la configuración que se les haya dado) que dos notas se encuentren dentro de un mismo compás 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 mínima de notas que tiene que poseer un compás o, como contraposición la cantidad máxima permitida heredan de una clase general y abstracta que posee las características generales de ambas, ya que la lógica es la misma, la única diferencia se encuentra en si la cantidad de notas que se encuentra en cada compás excede el límite superior o inferior establecido. Este sistema de restricciones se genera a través de un XML que se va leyendo y cada nodo de cada restricción es pasado a cada una de ellas para que se generen. Se usa una clase, otra vez implementando el patrón Factory, que se le pasa un nodo y devuelve una restricción. 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 función de aptitud se decidió tener un Singleton con la misma y que el objeto que representa la función de aptitud obtenga la instancia para trabajar e ir evaluando canción a canción 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 ejecución de la aplicación usando RRNN es mucho más 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 muchísimo más compleja que algunos for anidados para recorrer toda la estructura de la canción, la serialización y desserealización 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 continuación. Hoja 27/85 Figura 3: Diagrama de clases de las funciones de aptitud. Hoja 28/85 Con el fin de usar el framework de abstracción e implementación de algoritmos genéticos se necesita especificar y programar los métodos 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 compás como gen del cromosoma. También se tuvo que crear la función de aptitud correspondiente para evaluar cada uno de las composiciones musicales. Se creó una clase que se encarga de rankear a cada canción cromozoma según la puntuación que este obtenga de la función de aptitud que se haya definido en el XML de configuración de la aplicación. Se utilizó una clase llamada NoteNumberConverter con el fin de convertir las notas de cada cuerda y posición donde se pulsa esa cuerda al cifrado americano, que es el que se utiliza para la restricción de notas dentro de un mismo compás. Esta clase también se encarga de obtener el número de nota tomando a la nota más 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 configuración original y genérica que se provee con el fin de poder aplicar a los requerimientos específicos de este modelo de RRNN que se aplica a la música. Se desarrolló un algoritmo en la clase ResultVerifier para la comprobación de una de las premisas fundamentales de esta tesis: que las canciones compuestas por la aplicación no incurra en una violación de la propiedad intelectual que decanta de las partituras que le dieron origen. En el diagrama de clases que se muestra a continuación se muestran las clases y funcionalidades anteriormente descriptas y algunas clases más como las clases de excepciones que se crearon para ser lanzadas si ocurre algún error en la interpretación del XML de configuración, el enumerado que representa cada una de las restricciones existentes, el enumerado que representa los dos métodos de función de aptitud que se soportan hoy en día, y por último, las dos clases que se encargan de ser las fábricas de clases especificas que devuelven una clase genérica aplicando de este modo el patrón Factory a las distintas restricciones que se desarrollaron para este trabajo y la generación 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 Figura 4: Diagrama de clases del modelo de red neuronal, notas y restricciones Hoja 30/85 Por último se mostrará un diagrama de paquetes que muestra de manera general cómo 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 aplicación en cuestión. Figura 5: Diagrama de paquetes general. Hoja 31/85 7) Validación de la solución Se han diseñado 2 casos totalmente distintos para probar la solución desarrollada. La idea básica es probar las distintas aristas a nivel de composición que brinda la herramienta, validando tanto el método de penalizaciones como el de aprendizaje vía 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 caído 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 más fino eliminando algunos silencios y/o corrigiendo algunos compaces en función de las tonalidades de las demás 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 genético, 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 través de penalizaciones Usando el sistema de penalizaciones como función de aptitud se hicieron 50 pruebas distribuidas en 10 casos distintos con 5 repeticiones por caso. La definición de los 10 casos se dieron en base a los siguientes parámetros: • Probabilidad de mutaciones. • Cantidad de evoluciones. • Factor de cruza. • Partituras iniciales. • Restricciones de cantidad de notas (tanto máximas como mínimas). • Restricciones de tiempos. • Restricciones de mezcla de notas especificas por compás. Los distintos parámetros se eligieron en función de las características 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 conjunción de notas dentro de un compás cuando dicha combinación notas tampoco podría producirse. Lo primero que se puede destacar de las validaciones realizadas es que es raro que las soluciones de Hoja 32/85 composición musical automática se repitan con frecuencia, sólo ocurrió el 4% de los casos, en otras palabras, de las 50 canciones generadas únicamente hay 4 que son iguales, lo que representa una repetición en 2 casos. Lo segundo para destacares que más allá de las restricciones que se pongan en cuanto a la cantidad de notas máximas de un compás 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 penalización. Esto se debe a que la penalización pierde su poder restrictivo en el sentido mas estricto porque todas las canciones habrán tenido muchas notas en un mismo compás. Otro factor que merece ser mencionado es que si se superan las 200 evoluciones la probabilidad de plagio se reduce muchísimo y se coloca en el 2% mientras que por debajo de este nivel es críticamente alto, llegando al 40% de plagio sobre las partituras originales. Esto se debe a que al haber más iteraciones sobre el algoritmo genético se generan más cruzas entre canciones y más mutaciones, por lo que se van mezclando hasta perder su morfología 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 básicamente de la compatibilidad musical entre las partituras originales es un arma de doble filo, porque en un margen mínimo se obtienen resultados interesantes si la disonancia de los tonos a mezclar es mínima, pero si cada tema tiene un tono distinto no quedará nada que se pueda rescatar musicalmente como tal, si podría ser el disparador para el compositor, pero difícilmente salga algo agradable al oído humano. Existen otros factores que afectan en menor medida pero le dan forma al resultado final, ellos son todas las condiciones y características de configuración. Empíricamente se pudo comprobar que los resultados producidos no pueden llegar a ser en su totalidad una nueva canción, 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 música cuando cae en una meseta de inspiración propia. 7.2) A través del aprendizaje de gustos musicales Para generar partituras a través del uso de RRNN se hicieron 10 pruebas. Se tomaron 5 voluntarios, dos de ellos con conocimientos musicales en cuanto a composición, partituras, armonía, 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 cuestión 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 parámetros del algoritmo y finalmente esperar que se produzcan los resultados; en total, el proceso completo lleva aproximadamente 5 horas ya que el entrenamiento y ejecución 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 función de aptitud es general, es decir, se toma a la canción como un todo para evaluar los gustos de la persona que la entrenó y no restricciones estrictas sobre las distintas características de cada uno de los compaces, lo cuál genera más 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 podría tomar la pieza musical resultante como producto terminado ya que hay algunas partes de la partitura que no son agradables al oído, pero la mayoría de la partitura corresponde con una composición musical agradable y armónica al oído humano. Sin embargo, los voluntarios aprobaron las canciones que “compusieron” justificando que respetaba en un amplio margen sus gustos y la forma de la cuál habían entrenado la red. Cabe destacar que las soluciones iniciales brindadas al algoritmo genético debían compartir algunas características 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 característicos de pop y aplicarla a temas de heavy metal. Esta restricción es en base a cada usuario y se aplica su razonabilidad a la hora de utilizar la herramienta en cuestión. 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. Investigación sobre software a utilizar para modelar la parte de edición de partituras y aprendizaje de la utilización del mismo. Tiempo estimado: 35 días. 2. Investigación y desarrollo del modelado de datos para la utilización del algoritmo genético. Tiempo estimado: 35 días. 3. Investigación, selección y desarrollo de de los parámetros de la función de aptitud que establecen por los usuarios. Tiempo estimado: 80 días. Hoja 34/85 4. Investigación y desarrollo del modelado de datos para la utilización de la red neuronal como función de aptitud. Tiempo estimado: 80 días. 5. Compaginación final de la tesis. Tiempo estimado: 40 días. 9) Conclusiones A la primera conclusión que se puede llegar a partir de las pruebas que sean realizado es que el sistema sirve, como mínimo, de manera de disparador de composición para el músico que se encuentra en una depresión productiva, que no se encuentra inspirado. Al utilizar esta herramienta y jugar con ella puede utilizar los compaces más jugosos de a cuerdo a su búsqueda como primer paso de una canción. Quedará a su criterio completar los baches de poca sonoridad que se pueden generar o seguir ejecutando la herramienta y realizar una conjunción de todos los resultados producidos y así llegar a una composición completamente automática en varios pasos. Un resultado importante que nos arrojan los análisis realizados es que es difícil que se caiga en una violación a la ley 11.723 de Propiedad Intelectual de la República Argentina, lo cuál es un gran logro ya que sin esto el fin de la herramienta se vería reducido ampliamente. No tiene sentido usar una ayuda para componer que plagie las partituras de entrada del sistema, generaría mucho más trabajo para el compositor ya que debería ocuparse de cambiar la canción 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 música, solamente entender básicamente cómo funciona un algoritmo genético, que ya de por si es una idea básica que al estar basada en la Teoría de la Evolución la mayoría de las personas conocen. Con indicarle a una red neuronal cuáles 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 implementación de los algoritmos haga el resto y produzca un resultado acorde. De esta manera la herramienta permite universalizar el proceso de composición y ponerlo al alcance de la mano de cualquier persona. Cabe destacar que la música que se genere de este modo respetará lo más posible los resultados musicales buscados por el usuario, dependiendo de lo posible que eso sea de acuerdo al estímulo de entrada que se le brinde. Por lo que esta herramienta no sólo permite convertir a cualquier persona en compositor sino que también reflejará la idea musical del mismo. Hoja 35/85 Una arista fundamental que posee el sistema de composición es, que más allá de los criterios que el usuario intente tratar de imponer tanto con una red neuronal como con penalizaciones, los resultados siempre estarán sujetos a las partituras de entrada que se le hayan brindado. No tiene sentido tratar de imponer un castigo a la cantidad de notas mínimas o máximas 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 más aptas para la siguiente evolución. 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 elección de criterios y canciones de entrenamiento con respecto a la música con la cuál se va a trabajar será fundamental para acercarse más y más a las ideas musicales a las que se desea llegar. 10) Referencias [1] URL: http://es.wikipedia.org/wiki/Composici%C3%B3n_musical. Página válida 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, 2330. [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. Página válida 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., Hörnel 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] Hörnel, 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. ICMC’91 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 Networks. [37] Jacob, B. (1995). Composing with genetic algorithms. In Proceedings of the International Computer Music Conference. [38] McIntyre, R. (1994). Bach in a box: The evolution of four-part baroque harmony using the genetic algorithm. In Proceedings of the IEEE Conference on Evolutionary Computation. [39] Biles, J.A. (1994). Genjam: A genetic algorithm for generating jazz solos. In Proceedings of the International Computer Music Conference. [40] Biles J.A, Autonomous GenJam: Eliminating the Fitness Bottleneck by Eliminating Fitness, Workshop on Non-routine Design with Evolutionary Systems, Genetic and Evolutionary Computation Conference, 2001. [41] Biles, J., Anderson, P., and Loggi, L. (1996). Neural network fitness functions for a musical Hoja 38/85 IGA. Technical report, Rochester Institute of Technology. [42] Biles, J.A. (1995a) The Al Biles Virtual Quintet: GenJam. Compact disc recording DRK-CD144. Rochester, NY: Dynamic Recording Studios. [43] Biles, J.A. (1995b) GenJam Populi: Training an IGA via audience-mediated performance. In Proceedings of the 1995 International Computer Music Conference (pp. 347-348). San Francisco: International Computer Music Association. [44] Papadopoulos and Wiggins G.. A Genetic Algorithm for the Generation of Jazz Melodies. In STeP’98, Jyväskylä,Finland, 1998. [45] URL:http://www5f.biglobe.ne.jp/~mcs/emc.html. Página válida al 20/09/2011. [46] URL:http://sf.net/projects/jgap. Página válida al 20/09/2011. [47] URL: http://www.bibliotecalibre.cl/programas/manual/manualTuxGuitar.pdf [48] URL: http://www.ulp.edu.ar/comunicacion/libros_ulp/musica1/files/libro.pdf Hoja 39/85 ANEXOS Hoja 40/85 Anexo I: Manual de Usuario [47] TuxGuitar Los Primeros Pasos Crear un nuevo archivo: Lo primero que tiene que hacer es asegurarse de que tiene un archivo de nuevo a trabajar. Cuando inicia TuxGuitar, usted ya debe tener un documento en blanco tablatura listo para editar. Sin embargo, si usted necesita para empezar de nuevo con otro documento en blanco, todo lo que tienes que hacer es clic en el botón "Nuevo" (resaltado en rojo abajo). Ahora que tenemos el documento en blanco, sólo tenemos que crear nuestra primera pista. Entonces, la verdadera diversión puede comenzar. Preparación de la primera pista para la reproducción: En la parte inferior de la pantalla, debería ver una ventana de lista de pistas que se parecerá a la de abajo. La lista de pistas es muy útil pero el centro de información compacto que proporciona un acceso rápido a muchos de los aspectos más importantes de su canción. Hay mucho que decir sobre la lista de pistas, pero no vamos a excavar demasiado profundo en ello ahora, para que no se debe confundir los recién llegados. Por ahora, baste decir que la ventana de las pistas nos ayudará a mantenerse organizado, mientras que editamos nuestro tablatura. Como usted probablemente ha notado, ya existe una pista lista para que al iniciar un documento de nueva pestaña. Usted sólo puede pensar en temas como instrumentos. Si usted tiene una canción con dos guitarras y una línea de bajo que es necesario transcribir, tendrá tres pistas. Concepto bastante simple. Esto se pone mejor cuando: siempre y cuando usted tiene un banco de sonidos instalado para su máquina virtual Java, cada pista se reproduce un sonido al reproducir el Hoja 41/85 archivo en TuxGuitar. Ahora, vamos a entrar a configurarlo, porque como usted puede ver, nuestra primera pista quiere reproducir sonidos de piano, y ciertamente no estamos usando TuxGuitar para piano. Así que: haga doble clic en cualquier lugar de "Track 1" o "Piano" para abrir el diálogo de propiedades de pista, como se ve a continuación. Utilizando el diálogo de Propiedades de pista: El cuadro de diálogo Propiedades es donde vamos a ir a la configuración de cómo queremos que cada pista a la reproducción. Hay tres secciones principales en el cuadro de Propiedades, y se establecen de la siguiente manera (cajas rojas añadido para mayor claridad): # 1: Nombre de la canción: Lo que se teclea en el cuadro de aquí es lo que aparecerá en la lista de pistas que hemos visto anteriormente. Como puede ver, hemos llamado a nuestra pista "Guitarra Rítmica," pero usted puede poseer cualquier nombre que desee. También puede configurar el color de la pista aparecerá en la lista de pistas. # 2: Instrumento (es decir, el sonido de la pista se reproducirán): Este es el sonido que el tema volverá a reproducir de su banco de sonidos de JVM. La mayoría de soundbanks tienen una plétora de sonidos que van mucho más allá de las guitarras, así que sea tan creativo como usted desea. No espere que la calidad del sonido es demasiado excelente, sin embargo. En la mayoría de los casos, estos sonidos por debajo de "realista". Esto es realmente sólo para fines de referencia. (Es posible que este disparador de otros, sonidos, posiblemente, mejor a través de la TuxGuitar-alsa plugin, sino que es una lección para otro día, y quizás otro autor). También puede consultar "percusión Track" para tener que jugar los sonidos de batería, si se desea incluir en las fichas. Una nota al margen en la sección de configuración del instrumento: Si no son capaces de cambiar Hoja 42/85 esta configuración, es probable que tenga un problema de banco de sonidos. Esta cuestión ha sido tratada en los foros TuxGuitar, así como en la documentación principal, así que compruebe que para la ayuda. # 3: Tuning: Esta es bastante autoexplicativo. Puede establecer el número de cadenas para su instrumento (es decir, 4 si eres un bajista, 3, si estás en Los Presidentes de los Estados Unidos de América) y la afinación del instrumento, en caso de usar afinaciones alternativas. Es importante asegurarse de que tiene su afinación correcta, o bien el personal de puntuación real de tus pestañas será inexacta, y nadie quiere eso. Una vez que tenga todo listo a su gusto, haga clic en Aceptar. Ahora, si nos fijamos en la lista de pistas de nuevo, verá que los cambios han tenido efecto. Y con eso, usted está listo para iniciar la edición de partituras con el sonido. Las barras de herramientas Por defecto, usted notará bastante pocas barras de herramientas que recubre la parte superior de la pantalla, te da acceso con un clic a alguna de las opciones más utilizadas en TuxGuitar. Si bien pueden ser un poco intimidante en su conjunto, son realmente muy simple cuando se rompen abajo, y le puede ahorrar mucho tiempo con algunas de las tareas más comunes asociadas con la edición de la tablatura. Así que echemos un vistazo rápido a cada una de las barras de herramientas. Preasignados atajos de teclado se indica entre paréntesis, pero tenga en cuenta: antes de accesos directos asignados pueden ser re-asignados de acuerdo a sus propias preferencias, y opciones más unanassigned pueden ser asignados a través de Configuración> Configuración de teclas. Una nota al margen sobre las barras de herramientas-no sólo se puede seleccionar qué barras de herramientas son visibles, vaya a Configuración> Configurar TuxGuitar> Barras de herramientas, también puede cambiar el orden de ellos para ajustarse mejor a sus necesidades haciendo clic y arrastrando sobre el "asa "en el lado izquierdo de cada barra de herramientas individuales. Una última cosa antes de comenzar: el conocimiento previo de la teoría de la música se asume en esta página. Hay un par de enlaces en la duración de la «Nota» que puede ayudar si usted no sabe la teoría mucho todavía, pero para cubrir el verdadero "significado de la música" de todas estas opciones requeriría un manual completo en sí mismo. Esta página sólo se TuxGuitar explicar la funcionalidad relacionada con las barras de herramientas en un esfuerzo por evitar largas discusiones en la teoría de la música de aliento. Administración de archivos Usted ha visto y utilizado este menú un millón de veces, así que no pasará mucho tiempo en ella. Básicamente, la barra de menú Archivo le ofrece las siguientes opciones: Crear nuevo archivo (Ctrl + N) Abrir archivo (Ctrl + O) Guardar archivo (Ctrl + S) Archivo Guardar como ... (F12) Imprimir (Ctrl + P) Vista previa de impresión Nada demasiado complejo aquí, así que vamos a pasar a lo largo de la derecha. Hoja 43/85 (Estas opciones y más puede acceder a través del menú "File" desplegable que aparece en la parte superior de la pantalla.) Deshacer / Rehacer Otro grupo muy común de las opciones que más o menos explicarse. El icono de la izquierda va a deshacer la última acción (Ctrl + Z), y el icono de la derecha rehacer lo que ha deshecho (Ctrl + Y). (Estas opciones y más puede acceder a través del menú "Edición" desplegable que aparece en la parte superior de la pantalla.) El modo de edición (Se aplica sólo a la edición) Ahora estamos consiguiendo un poco más interesante. Este menú se establecen algunas opciones para quienes prefieren editar a través de la puntuación personal en lugar de utilizar tablatura. Tenga en cuenta que estos ajustes sólo afectan al personal de puntuación (el conjunto superior de las líneas con la notación musical estándar en ellos). Si sólo editar a través del personal de tablatura, you pretty puede ignorar estas configuraciones, porque no hará ninguna diferencia en su flujo de trabajo. (Si su puntuación de personal no es visible, desplácese hacia abajo en esta página y ver el "layout" del menú.) Selección del modo Al hacer clic en el icono de la primera con la llave en la que le pondrá en la selección de modo. En este modo, puede pulsar el ratón en cualquier parte del personal de puntuación, y es simplemente mover el cursor de reproducción a esa ubicación, sin realizar ningún cambio en la partitura. Bueno para moverse rápidamente en la puntuación sin tener que preocuparse accidentalmente alterar las notas. Puntuación Modo Edición Al hacer clic en el icono del medio con el lápiz sobre ella te pondrá en Modo Puntuación Edition. En este modo, puede escribir notas en el personal de puntuación haciendo clic donde desee que la nota de ir. Usted puede insertar notas en las líneas o los espacios, y que tendrá la duración que ha seleccionado actualmente en la barra de duración de la nota (que se detallan más abajo). Una nota: esta opción solo sólo insertar notas de tono natural (es decir, sin pisos o punzantes). Si desea insertar objetos punzantes / pisos o pre-cambio de notas existentes para objetos punzantes / pisos, tendrá que entrar Sharp / Flat Mode. Sharp / Flat Mode Al hacer clic en el icono con el símbolo de Sharp / apartamento en que le llevará a Sharp / Flat Mode. Como se indicó anteriormente, Sharp / Flat Mode es simplemente una subopción de Modo Puntuación Edition. Usted tiene que usar Sharp / Flat Mode si desea introducir notas agudas o planas o pre-cambio de las notas existentes para agudos o plana. (Estas opciones y más puede acceder a través del menú "Edición" desplegable que aparece en la parte superior de la pantalla.) Hoja 44/85 Propiedades de Canción Si bien la barra de herramientas de propiedades de sólo tiene realmente un icono, es de particular importancia si usted planea imprimir o exportar las pestañas en cualquier momento. Al hacer clic sobre este icono abrirá sus propiedades canción ficha, en la que se pueden establecer las siguientes opciones: • Nombre (de la canción) • Artista (intérprete) • Autor (propietario de los derechos de autor) • Album La razón de esta configuración es de tal importancia es que cualquier cosa que escriba en los cuadros Nombre y Autor aparecerá en la primera página de sus partituras al imprimir o exportar, y si los dejas en blanco, simplemente se recibe un gran grasa "Sin título" por "Anónimo" en su lugar. Así que asegúrese de que establece que si usted planea ver estas fichas fuera de TuxGuitar! La diferencia puede verse a continuación. (Estas opciones y más puede acceder a través de la composición del "menú desplegable en la parte superior de la pantalla.) Hoja 45/85 Añadir / Eliminar pista Llega un momento en casi cualquier canción cuando una guitarra no es suficiente. Cuando esté listo para comenzar a introducir pistas de otro instrumento, simplemente haga clic en el icono con el signo "+" en el mismo para añadir una nueva pista. Si usted decide que no necesita una pista, haga clic en el icono con el signo "-" para quitarlo. En el botón Quitar pista eliminar la pista que está seleccionado actualmente pista (actualmente seleccionado aparecerá resaltado gris en la lista de pistas en la parte inferior de la pantalla). (Estas opciones y más (incluido un práctico "Clone Track" opción) se puede acceder desde el menú "Track" desplegable que aparece en la parte superior de la pantalla.) Duración de la Nota Este es otro bastante simples barra de herramientas. Los primeros siete iconos simplemente cambiar la nota (s) en la posición actual del cursor a lo que usted seleccione, que van desde toda la nota a sesenta y demás-la nota. Esto es útil si usted necesita hacer un cambio que es más que un incremento de la nota (es decir, cuarto de nota a nota XVI). Alternativamente puede usar la teclas +/ - en un teclado numérico estándar para mover un incremento a la vez. Una nota al margen sobre la teclas + / -: desde la versión .9, la mayoría de los teclados de portátiles no admiten el uso de la = / + tecla para disminuir la duración de la nota. Los desarrolladores son conscientes de este error, y están trabajando fuera. La tecla "-" en los teclados de computadora portátil debe funcionar, pero no la = / + tecla. Los últimos tres iconos cambiar el valor de una nota de de puntos, doble de puntos, y una gran variedad de "tupla" valores. Nota Este menú te ofrece dos opciones con respecto a la edición de la nota. Al hacer clic en el icono de la primera "atar" la nota seleccionada a la anterior. Esta función, básicamente, tiene el valor de dos notas y los combina en una sola. El uso más común para esta función es cuando usted tiene una nota que comienza en una de las medidas y termina en el siguiente. La vinculación observa es en realidad una forma de mantener el puntaje limpio y organizado. Si necesita más información, puede que desee a la investigación notación musical a través de los enlaces de arriba. Al hacer clic sobre el icono en segundo lugar con la A7 "," hará que aparezca el editor de acordes. El editor de cuerda es un tiempo útil herramienta de ahorro de utilizar para buscar, crear, e insertar formaciones acorde a su tablatura. Mientras que el editor de acordes merece mayor análisis, es un tema es mejor dejar para otra página y otro día. (Estas opciones y más puede acceder a través de la "Nota" del menú desplegable que aparece en la parte superior de la pantalla.) Composición Composición de la barra de herramientas te da algunas opciones para el establecimiento de la Hoja 46/85 estructura y la métrica de la canción. Una vez más, para una explicación más profunda de lo que cada uno de estos medios y la forma de utilizar plenamente ellos, se refieren a los vínculos de la teoría de la música en la duración de la "Nota" sección. Al hacer clic en el primer icono con el signo de interrogación le permitirá ajustar el tempo de la canción. Las nuevas canciones en su defecto TuxGuitar a 100 latidos / min, pero usted puede fijar su propio ritmo a cualquier cosa entre 30-320 latidos / min. TuxGuitar también apoya los cambios de tempo durante toda la canción, y la creación de ellos es tan fácil como colocar el cursor de reproducción en la medida en que desea que el ritmo a los cambios, y haciendo clic en el icono. Cualquier tempo establecido en la primera medida de la canción será el ritmo predeterminado ya sea en toda la canción, o hasta que se establezca otro tempo en cualquiera de las siguientes medidas. Al hacer clic en el icono junto con el 4 / 4 gráfico abrirá el cuadro de diálogo de compás, que es bastante sencilla. Usted tiene un menú desplegable para cada mitad de la firma del tiempo, así como un "hasta el final" casilla de verificación. TuxGuitar apoya la firma de múltiples cambios durante toda la canción, y muy similar a los cambios de tempo, son tan fáciles de crear que hacer clic en el icono y el establecimiento de una firma nueva hora en la medida en la que desea que cambie. Marcando "Hasta el final" le causa a su vez la firma recién seleccionados para continuar o bien al final de la canción, o hasta que se cambie manualmente el tiempo de la firma en cualquiera de las siguientes medidas. Si desactiva la "Hasta el final" le causa a la firma nueva hora para atravesar sólo la medida se agrega a, tras lo cual se reajustará automáticamente a la firma del tiempo utilizado por la medida anterior. (Estas opciones y más puede acceder a través de la composición del "menú desplegable en la parte superior de la pantalla.) Próximos tres iconos se utilizan para repetir el control. Toda persona familiarizada con la notación de la música debe estar familiarizado con estas - usted puede abrir y cerrar la sección de repetición. Al cerrar, obtendrá un cuadro de diálogo para especificar repeatings cuántos va a producir. El último icono es utilizado para marcar los finales alternativos en la repetición. Un diálogo especial también se producirá, lo que le permite elegir en qué ciclo de este final se jugará. Transporte Estos son los controles de reproducción de la canción. Los botones son para reproducir / pausar, detener la reproducción, la medida anterior, la medida siguiente, a partir de la canción y al final de la pista. Marcadores Es muy útil para añadir un marcador en una canción, para marcar alguna parte de la canción (verso, coro, solista, etc) Marcador de los controles de la barra de herramientas le permiten crear un marcador, la lista de marcadores y navegar por ellos (anterior, siguiente, primero, último). Diseño Existen varios tipos de diseño en TuxGuitar. Todos ellos cambiar la vista de tablatura y las puntuaciones en la ventana del editor principal. Hoja 47/85 El primer botón de la izquierda es de diseño de página. Es alternativa es el segundo botón: diseño lineal. Diseño de página muestra la tablatura y resultados como en las hojas de papel, con los saltos de línea. En el otro lado, las opiniones de la visión lineal instrumento en una sola línea, ampliando a la derecha. El tercer botón permite vista multipista. Cuando se activa, todas las pistas se mostrarán en la ventana principal. Dependiendo de la elección anterior (página o la disposición lineal) podrás ver punto de vista diferente. En la experiencia personal, buenas combinaciones son lineales + multipista, y diseño de página sin multipista (para ver solo instrumento). El cuarto botón es el botón Mostrar resultados. Es simplemente la opinión de la puntuación (notación) por encima de la línea de la ficha. El quinto botón es la opinión de Compact. ¿Le gustaría a fin de que si tenemos en cuenta su punto de vista demasiado amplio. Ver Estos tres botones muestran varias ventanas. El primer botón de muestra el diapasón en la parte inferior de la ventana principal. Fretboard es útil para ver los puntos exactos donde debe poner sus dedos en cada momento. Usted incluso puede hacer clic en el diapasón para editar su ficha. Ver Fretboard está disponible tanto para diestros y zurdos guitarras. El segundo botón muestra Mixer. Mezclador de canales MIDI de diálogo es muy importante - no se puede cambiar el volumen de los instrumentos en su ficha, mudo / solo único instrumento, el cambio de la panorámica y asignar. Lea más acerca de diálogo Mixer. El último botón le muestra la ventana controlador de jugadores, donde se puede controlar la reproducción de la canción. Efectos Estos efectos se aplican con el cursor de edición situado en la nota existente en la ficha. Efecto seleccionado se aplica luego a la nota. Lea más acerca de los efectos nota. Dinámica Al seleccionar el icono diferente a la actual, cambiar la dinámica de la nota que se está editando. Poco a poco escala de Piano Pianissimo que es el más silencioso, a la Fortissimo Forte que es más fuerte. Hoja 48/85 Anexo II: Ejemplos de Cruza y Mutación Cruza El algoritmo genético agrupa de a dos canciones al azar entre todas las posibles, generando muchas duplas de melodías a cruzar. Luego se recorren todos los compases de la partitura que contenga la menor cantidad de ellos, para cada compás hay un 50% de posibilidades de ser cruzado con el del mismo número de la otra partitura. Esto generará dos canciones nuevas que se incluirán en las posibles soluciones a ser evaluadas por la función de aptitud. Ejemplo: Supongamos que tenemos las siguientes dos partituras que deseamos que sean la entrada de nuestra aplicación: Para este caso ambas partituras contienen la misma cantidad de compases por lo que recorreremos la primera, elijamos para tener un ejemplo sencillo que se cruzan los números impares de compases. Por lo tanto, luego de la primera evaluación las partituras nuevas quedarían: Hoja 49/85 Para el segundo compás no habría modificaciones, pero para el tercero la cruza nos arrojaría las siguientes canciones: Sucede lo mismo con el siguiente compás, al ser un número par, el cuatro, no se realizarían modificaciones, pero si sucederían para el quinto: Y esos serían los resultados finales de la cruza que, a la hora de evaluar qué pentagrama es el más apto para las reglas que se hayan establecido se tendrán en cuenta los dos originales y estos dos que hemos generado recién. Acabamos de mostrar cómo se realiza una sola iteración, esto sucederá la cantidad de veces que se haya especificado en el XML de configuración. Mutación Se establece mediante el archivo de configuración un número que representa la probabilidad de 1 en N (el número a especificar) de que ocurra una mutación. La misma se ha implementado como la fusión de dos compases, ambos se determinan con el azar, ya que el primero sale de la probabilidad de mutación de una canción y luego se elije al azar uno de los compases a ser mutado, el segundo se determina al azar entre todo el universo de compases disponibles de todos Hoja 50/85 los pentagramas con los que la aplicación está trabajando. Si tomamos el ejemplo anterior y fusionamos quinto compás de la siguiente partitura: Con el segundo de esta otra: El resultado sería el siguiente: De esta manera se genera la mutación de los compases que dan la riqueza y la variación necesarias para que las canciones generadas a través de este software no sean monótonas ni plagios de las ya existentes. Hoja 51/85 Anexo III: Conceptos Musicales [48] Lectura Musical Usamos el pentagrama para escribir la música Escribimos las figuras musicales sobre las líneas y los espacios del pentagrama: Dependiendo de su posición sobre el pentagrama podemos conocer la nota musical que representan. La palabra pentagrama es de origen griego: penta significa cinco y grama escrito. Las claves En todo pentagrama lo primero que encontraremos es una clave. Existen varias claves. Las más utilizadas son la clave de sol (vista en ella figura anterior) y la clave de fa: La clave de sol es utilizada por instrumentos agudos como el violín, la flauta, la trompeta y por otros no tan agudos como la guitarra. La clave de fa es utilizada por instrumentos graves como el contrabajo, el violonchelo, el fagot y el trombón. Es importante saber la clave utilizada al momento de leer la música para poder conocer el nombre de las notas. Hoja 52/85 Nombre de las notas Antes de ver como escribimos las notas musicales en el pentagrama, repasemos el nombre y orden de ellas. Nuestro sistema musical tiene siete notas. El orden de las notas es do, re, mi, fa, sol, la y si. Estas notas corresponden a las teclas blancas del piano: La clave de sol A continuación pueden ver la nota musical representada por cada una de las líneas y espacios de un pentagrama con clave de sol. Noten que la primera línea (la línea inferior) corresponde a la nota mi y el primer espacio a fa. En otras palabras la notas musicales siguen sobre el pentagrama (línea-espacio-línea) el orden natural (do, re, mi, fa, sol, la y si). Fíjese que podemos escribir debajo de la primera línea (línea inferior) y sobre la quinta línea (superior): Las líneas adicionales Además de escribir sobre los espacios y líneas del pentagrama, podemos también añadir líneas adicionales para escribir notas más agudas o graves: El do sobre la primera línea adicional inferior equivale al do central del piano. La clave de fa A continuación pueden ver la nota musical representada por cada una de las líneas y espacios de un pentagrama con clave de fa. Hemos incluido las líneas adicionales. Hoja 53/85 El do más agudo que aparece sobre la primera línea adicional superior es el do central. Memorización de notas Para poder leer la música es imprescindible saber de forma rápida la nota que corresponde a cada espacio y línea del pentagrama. Esto se logra con mucha práctica y paciencia. No obstante en un principio puede ayudar memorizar el orden de las notas en los espacio y líneas. Por ejemplo en la clave de sol, las notas sobre las líneas son mi, sol, si, re y fa. Sobre los espacios son fa, la, do y mi: En clave de fa: Uso combinado de clave de sol y fa Combinando un pentagrama con clave de sol y otro con clave de fa podemos escribir cualquier nota, desde la más grave hasta la más aguda: El último do de clave de fa (el más agudo) y el primero de clave de sol son la misma nota. El do Hoja 54/85 central. La música para piano se escribe normalmente usando un pentagrama en clave de sol y otro en clave de fa. La notación rítmica Ya sabemos como se especifica la nota que se debe tocar, pero ¿cómo especificamos su duración? Para entender esto debemos conocer las figuras musicales y las indicaciones de compás. Las figuras musicales Las figuras musicales nos permiten especificar la duración de un sonido. A continuación pueden ver las figuras, sus nombres y valores: Como podrán notar, cada figura dura el doble de tiempo que la siguiente y la mitad del tiempo que la anterior. Por ejemplo, en este corto fragmento musical vemos dos patrones rítmicos diferentes. El más agudo está formado por cuatro negras (sonido de piano), el más grave por dos blancas (sonido percusivo). Como una negra tiene una duración que es la mitadde una blanca, escuchamos dos negras por cada blanca: Hoja 55/85 Pero antes de poder leer correctamente, tenemos que entender el concepto de compás. Cuando escribimos corcheas, semicorcheas, fusas y semifusas acostumbramos a agrupar el corchete de todas las que queden dentro de un tiempo para facilitar la lectura. A continuación algunos ejemplos: El compás Muchas veces podemos encontrar patrones rítmicos en la música que escuchamos. Generalmente podemos agrupar los tiempos o pulsaciones en grupos de 2, 3 ó 4. Por ejemplo, cuando escuchamos un vals, sentimos un patrón rítmico de tres tiempos. Durante todo el transcurso podemos sentir que los patrones rítmicos están basados en este 1,2, 3. Existen compases de 2, 3 y 4 tiempos. Incluso, aunque menos comunes, encontramos compases de 5 ó 7 tiempos. Para indicar el compás usamos dos cosas: la indicación de compás y las líneas divisorias. La indicación de compás El compás se indica al principio de una obra musical usando dos cifras: La cifra superior indica el número de tiempos que tiene el compás, 3 en este caso. La cifra inferior nos indica la figura que ocupa cada tiempo. En la tabla a continuación pueden ver la relación entre figuras y cifras: Hoja 56/85 Por lo tanto la indicación indica que el compás tiene 3 tiempos y que cada tiempo es ocupado por una negra. Note que el 4 simboliza la negra porque la negra es 1/4 parte de la redonda. Las líneas divisorias Para facilitar la lectura, separamos con líneas verticales a las que damos el nombre de líneas divisorias los compases: En este ejemplo vemos un compás de dos tiempos donde cada tiempo es ocupado por una negra. El puntillo Si añadimos un puntillo a una figura, su duración aumentará de la mitad de su valor: Hoja 57/85 La ligadura Podemos añadir el valor de una figura a otra uniéndolas por una ligadura: El segundo compás es equivalente al primero. Unidad de tiempo y compás Llamamos unidad de tiempo a la figura que ocupa un tiempo y unidad de compás a la que ocupa un compás entero. A continuación pueden ver algunos ejemplos de compases comunes: Hoja 58/85 Los silencios Cada figura musical tiene un símbolo correspondiente que se usa para representar un silencio de la misma duración. Llamamos a estos símbolos silencios. Hoja 59/85 Compases simples y compuestos Los compases que hemos visto hasta ahora se llaman compases simples. En los compases simples la unidad de tiempo se subdivide en mitades (una negra se subdivide en dos corcheas). En los compases compuestos por el contrario la unidad de tiempo se subdivide en tres partes. Algunos puntos importantes que debemos considerar en relación a estos compases: 1. Reconocemos los compases compuestos porque sus numeradores (cifra superior en la indicación de compás) son 6, 9 ó 12. 2. Obtenemos el número de tiempos en el compás dividiendo el numerador entre 3. Por ejemplo un compás de 6/8 tiene 2 tiempos (6 dividido por 3). 3. Las unidades de tiempo de los compases compuestos llevan un puntillo. 4. El denominador (número inferior) indica la figura que ocupa un tercio del tiempo. Por ejemplo en el compás de 6/8 la corchea ocupa un tercio del tiempo ya que un tiempo se forma por 3 corcheas ó 1 negra con puntillo. La siguiente tabla resume estos puntos: Hoja 60/85 Un ejemplo: Las alteraciones Cualquiera de las siete notas se puede alterar de forma ascendente o descendente por medio de las alteraciones (vea Las alteraciones para información detallada). En la escritura musical una alteración afecta cualquier nota del mismo nombre y en la misma octava dentro de un compás. En el siguiente ejemplo el último sol es sostenido (necesitaríamos añadir un becuadro si lo quisiéramos natural): Vea Tonos y semitonos para más información sobre las notas alteradas y su relación con el teclado del piano. Las armaduras de clave Para reducir el número de alteraciones al momento de escribir la música recurrimos al uso de armaduras de clave. Estas alteraciones, escritas entre la clave y la indicación de compás afectan Hoja 61/85 a todas las notas de ese nombre a través de la pieza incluyendo aquellas en otras octavas. En el siguiente ejemplo todos los fa y los do son sostenidos. El sol del primer compás es sostenido y el do del segundo compás es natural debido al becuadro. El último sol no necesita el becuadro ya que el sostenido estaba en el compás anterior, pero a veces se escribe por seguridad: Las claves de do Además de las claves de sol y fa existen claves de do en 1ra (la 1ra línea equivale a do), do en 2da, do en 3ra y do en 4ta. De éstas, las que usamos comúnmente son las de do en 3ra (para la viola) y la de do en 4ta (violonchelo, fagot, entre otros para notas agudas). A continuación las notas en clave de do en 3ra: El do de la línea central es el do central Intervalos El intervalo mide la distancia entre dos sonidos. Para identificar un intervalo debemos averiguar su nombre y su especie o calificación. Aristójenes, filósofo griego discípulo de Aristóteles, es autor de los más viejos tratados sobre la música. En su obra Elementos Armónicos (350 AC) define Intervalo como el espacio comprendido entre dos sonidos de diferentes tensiones. Contando el número de grados entre las notas obtenemos el nombre del intervalo. Al contar los grados debemos incluir tanto la primera como la última nota. Por ejemplo de do a mi, decimos que hay una tercera (do-1, re-2, mi-3). En la siguiente ilustración, pueden ver la correspondencia entre número de grados y nombre de los intervalos: Hoja 62/85 Sin embargo, no todos los intervalos del mismo nombre tienen el mismo tamaño. Por esto es necesario especificar la especie o calificación de los intervalos determinando con exactitud el número de tonos y semitonos que tiene. Tonos y semitonos El sistema de afinación temperada divide equitativamente la octava en doce sonidos. La distancia o diferencia en frecuencia sonora entre cada uno de estos sonidos se conoce por el nombre de semitono. En el teclado del piano hay la distancia de un semitono entre teclas contiguas: Un tono equivale a 2 semitonos. Todas las teclas blancas del piano separadas por una tecla negra, están a la distancia de un tono. Las que no tienen tecla negra ente ellas están a un semitono de distancia: Los sonidos correspondientes a las teclas blancas del piano, reciben los nombres de do, re, mi, fa, sol, la y si. Estas notas se consideran naturales. Podemos alterarlas un semitono cromático ascendente con un sostenido (#) o descendente con un bemol (b). Una tecla negra del piano, como por ejemplo la que está entre do y re puede considerarse un do alterado ascendentemente con un sostenido o un re alterado descendentemente con un bemol: Hoja 63/85 Calificación o especie de un intervalo Tomando como ejemplo el teclado del piano, podemos ver que no todos los intervalos de un mismo nombre tienen el mismo número de tonos y semitonos. Por ejemplo, la segunda entre do y re tiene un tono, mientras que entre mi y fa hay un semitono: Lo mismo sucede con los demás intervalos, por ejemplo la tercera re-fa tiene 1½ tonos o 3 semitonos, mientras que do-mi tiene 2 tonos o 4 semitonos: Debido a estas diferencias es necesario especificar la especie o calificación de los intervalos. Refiérase a cada tipo de intervalo para más información sobre como determinar su especie o calificación. Hoja 64/85 Las segundas Las segundas pueden ser mayores, menores, aumentadas o disminuidas. A continuación pueden ver el número de semitonos de cada una de las especies de segundas: Segunda disminuida, 0 semitonos Segunda menor, 1 semitono Segunda mayor, 2 semitonos ó 1 tono Segunda aumentada, 3 semitonos ó 1½ tonos Identificación de segundas Las segundas son los intervalos más fáciles de identificar. Sin embargo no deja de ser importante dominar esta destreza ya que será necesaria en la identificación de otros intervalos. Para poder determinar la especie de una segunda debemos saber: • El número de semitonos de cada tipo de segunda. • El orden de las notas (do, do#-reb, re, etc.), recordando que todas las notas naturales, con excepción de mi-fa y si-do, están a un tono de distancia y que entre ellas existe una nota alterada (una tecla negra en el piano). Hoja 65/85 Con esto en mente, podemos contar los semitonos para identificar la especie con pocas posibilidades de equivocarnos: Las terceras Las terceras pueden ser mayores, menores, aumentadas o disminuidas. A continuación pueden ver el número de semitonos de cada una de las especies de terceras: Hoja 66/85 Identificación de terceras Para poder determinar la especie de una tercera debemos: dominar la identificación de segundas Cualquier tercera puede descomponerse en dos segundas. Por ejemplo la tercera do-mi se descompone en las segundas do-re y re-mi. Una vez hecho esto, identificamos las segundas que resultan y utilizando la siguiente tabla podemos determinar el tipo de tercera: Si las segundas son: menor - menor mayor - menor mayor - mayor aumentada - mayor la tercera es: disminuida menor mayor aumentada Siguiendo este método vemos que la tercera do-mi es una tercera mayor ya que ambas segundas (do-re, re-mi) son mayores. En el caso de notas alteradas es útil el método explicado para las segundas que consiste en quitar momentáneamente las alteraciones, identificar la tercera y luego ver en que forma las alteraciones afectan al intervalo. Hoja 67/85 Ejemplo: lab-dob: Quitamos las alteraciones e identificamos el intervalo. De la-si hay una 2da. Mayor, de si-do hay una 2da. menor, de manera que la 3ra. la-do es una 3ra. Menor. Añadimos el bemol a la nota la, la 3ra. se convierte en mayor. Añadimos el bemol a la nota do, la 3ra. se convierte en menor. Las cuartas Las cuartas pueden ser justas (o perfectas), aumentadas o disminuidas. A continuación pueden ver el número de semitonos de cada una de las especies de cuartas. Identificación de cuartas Para poder determinar la especie de una cuarta debemos saber que: • Todas las cuartas naturales son justas excepto fa-si. De haber notas alteradas, se recomienda analizar el intervalo sin las alteraciones y luego ver en que forma las alteraciones afectan al intervalo. Ejemplo: sol-do#: Hoja 68/85 Identificar cuartas contando tonos y semitonos es lento y peligroso. Las quintas Las quintas pueden ser justas (o perfectas), aumentadas o disminuidas. A continuación: pueden ver el número de semitonos de cada una de las especies de quintas. Identificación de quintas Para poder determinar la especie de una quinta debemos saber que: • Todas las quintas naturales son justas excepto si-fa. De haber notas alteradas, se recomienda analizar el intervalo sin las alteraciones y luego ver en que forma las alteraciones afectan al intervalo. Ejemplo: re-la#: Hoja 69/85 Identificar quintas contando tonos y semitonos es lento y peligroso. Las sextas Las sextas pueden ser mayores, menores, aumentadas o disminuidas. En la tabla a continuación pueden ver el número de semitonos de cada una de las especies de sextas. Identificación de sextas La forma más segura de identificar las sextas es invirtiendo el intervalo e identificando la tercera que resulta. Por ejemplo, para identificar la sexta do#-la#: • Invertimos el intervalo. Identificamos la 3ra. que resulta. Como es una 3ra. menor, la 6ta. es mayor. Hoja 70/85 Una 6ta. mayor invierte en una 3ra. Menor Las séptimas Las séptimas pueden ser mayores, menores, aumentadas o disminuidas. A continuación pueden ver el número de semitonos de cada una de las especies de séptimas. Identificación de séptimas La forma más segura de identificar las séptimas es invirtiendo el intervalo e identificando la segunda que resulta. Por ejemplo, para identificar la séptima do-si: • Invertimos el intervalo. • Identificamos la 2da. que resulta. • Como es una 2da. menor, la 7ma. es mayor Hoja 71/85 Las octavas Las octavas pueden ser justas (o perfectas), aumentadas o disminuidas. A continuación pueden ver el número de semitonos de cada una de las especies de octavas. Alteraciones La altura o frecuencia sonora de las notas descendentemente por medio de las alteraciones: Hoja 72/85 puede ser modificada ascendente o Consonancias y disonancias Los intervalos son clasificados como consonantes o disonantes de acuerdo a la complejidad de la relación matemática de la frecuencia sonora de las notas que lo componen. A pesar de que a través de la historia el concepto de consonancia y disonancia ha variado e incluso hoy día los teóricos no siempre concuerdan, podemos ofrecer la siguiente clasificación: Consonantes Unísono Terceras mayores y menores Cuartas justas (se considera una disonancia en la armonía y el contrapunto) Quintas justas Sextas mayores y menores Octavas justas Disonantes Segundas Séptimas Cuarta aumentada Quinta disminuida Enarmonía Se llama notas enarmónicas a dos notas de nombre diferente pero de misma frecuencia sonora. Por ejemplo sol#-lab son notas enarmónicas. Intervalos ascendentes y descendentes Cuando la segunda nota de un intervalo es más aguda que la primera, decimos que es un Hoja 73/85 intervalo ascendente. En el caso contrario decimos que el intervalo es descendente. Intervalos compuestos y simples Intervalos simples son aquellos que no son mayores a una octava. Intervalos compuestos son aquellos que sobrepasan la octava. La novena, décima, undécima y decimotercera son ejemplos de intervalos compuestos. En ocasiones simplificamos los intervalos compuestos y nos referimos a ellos por el nombre del intervalo simple correspondiente: Intervalos melódicos y armónicos Un intervalo armónico es aquel en que las notas se tocan simultáneamente. En los intervalos melódicos las notas se tocan en forma sucesiva: Semitonos cromáticos y diatónicos Se dice que un semitono es cromático cuando se produce entre dos notas del mismo nombre, por ejemplo la-la#. Un semitono diatónico se produce entre notas de nombre diferente como la-sib: Hoja 74/85 Relación matemática de los intervalos El la sobre el do central tiene normalmente una frecuencia de 440 ciclos por segundo o Hertz. Esto quiere decir que vibra 440 veces cada segundo. Un la una octava más agudo vibra a 880 Hz. teniendo exactamente el doble de vibraciones por segundo. Esta relación se expresa matemáticamente como 880:440 ó 2:1. A continuación ofrecemos una tabla de las relaciones matemáticas de algunos intervalos organizados de consonantes a disonantes: Relación 2:1 3:2 4:3 5:4 6:5 9:8 16:15 Intervalo Octava Quinta Cuarta Tercera mayor Tercera menor Segunda mayor Segunda menor Acordes Tres o más notas, tocadas simultáneamente forman un acorde. Tradicionalmente, los acordes se han construido sobreponiendo dos o más terceras. Por ejemplo, las notas do-mi-sol forman un acorde o triada mayor. La nota que sirve de base para construir el acorde, recibe el nombre de fundamental. Las otras notas reciben el nombre del intervalo que forman con relación a la fundamental: Las inversiones Decimos que un acorde está en posición fundamental si su fundamental es la nota más grave. En un acorde de tres sonidos o triada, podemos además disponer el acorde en primera o segunda inversión. Un acorde está en primera inversión cuando su tercera es la nota más grave. Está en segunda inversión cuando su quinta es la nota más grave. A continuación pueden ver la triada de do mayor en posición fundamental, primera y segunda inversión: Hoja 75/85 Mientras más notas tenga un acorde, más inversiones puede tener. A continuación presentamos el acorde de sol séptima de dominante en sus cuatro posiciones: Las triadas Las triadas son acordes de tres sonidos. Las triadas pueden ser mayores, menores, aumentadas o disminuidas. A continuación pueden ver la estructura de cada uno de estos acordes: Hoja 76/85 Las triadas mayores y menores se consideran perfectas por tener siempre una quinta justa o perfecta. Las triadas disminuidas y aumentadas reciben su nombre por el tipo de quinta que tienen. Formación de triadas en las escalas mayores A continuación pueden ver las triadas que podemos construir utilizando las notas de una escala mayor: En todas las escalas mayores, las triadas que se forman sobre los grados I, IV y V son mayores. Las que se forman sobre los grados II, III y VI son menores y disminuida la que se forma sobre el grado VII. Hoja 77/85 Formación de triadas en las escalas menores Debido a los tres tipos de escalas menores, natural, armónica y melódica, tenemos una mayor variedad de triadas en estas escalas: Triadas en la escala menor natural: Triadas en la escala menor melódica: Triadas y grados de las escalas En la siguiente tabla podemos ver los grados de las escalas en que encontramos cada tipo de triada: Triada Mayor Menor Escala mayor I, IV, V II, III, VI Escala menor natural III, VI, VII I, IV, V Hoja 78/85 Escala menor armónica V, VI I, IV Escala menor melódica IV, V I, II Disminuida Aumentada VII - II - II, VII III VI, VII III Conocer la especie o tipo de triada que se forma sobre cada grado puede ayudar a identificarlas. Identificación de triadas La rapidez y seguridad en la identificación de triadas es un requisito indispensable para poder analizar y entender la música que interpretamos y escuchamos. Conviene por lo tanto desarrollar esta habilidad. Para ello es necesario dominar la identificación de intervalos, especialmente las terceras y quintas. Usando nuestro conocimiento de los intervalos podemos rápidamente identificar las triadas. Una forma de hacerlo es identificando la tercera y luego la quinta En la tabla a continuación pueden ver la combinación de intervalos propia a cada tipo de triada: Hoja 79/85 Podemos también identificar las dos terceras que forman el acorde. En la tabla a continuación pueden ver la combinación de intervalos propia a cada tipo de triada: Otra forma de identificar las triadas Si conocemos bien el tipo de triada que se forma sobre cada grado de las escalas, podemos usar este conocimiento para identificar rápidamente las triadas. Algunos ejemplos: Hoja 80/85 Re mayor. La tonalidad de este ejemplo es sol mayor. El acorde está construido sobre el V grado de la escala. Sobre el V grado de las escalas mayores se produce una triada mayor. Do menor. La tonalidad es la de sib mayor. El acorde está construido sobre el II grado. Sobre el II grado de las escalas mayores encontramos siempre una triada menor. Do# mayor. En este caso tenemos dos formas para averiguar el tipo de triada. 1. Podemos pensar que la tonalidad es la de la mayor. Sobre el III grado de las escalas mayores encontramos una triada menor, sin embargo en este caso la 3ra. del acorde se ha convertido en una 3ra. mayor al estar alterada ascendentemente. Por lo tanto la triada es mayor. 2. Podemos también pensar que la tonalidad es la de fa# menor. El mi# es propio de escala menor armónica y melódica. En ambos casos el acorde que se forma sobre el V grado es mayor. Los acordes de séptima Si añadimos una tercera a cualquier triada obtendremos un acorde de séptima. Damos este nombre debido al intervalo de séptima que se forma con relación a la fundamental. Podemos formar acordes de séptima sobre cada uno de los grados de las escalas mayores y menores. Para identificarlos, analizamos la triada y el intervalo de séptima que forman el acorde. A continuación pueden ver la estructura y ejemplos de los acordes de séptima más comunes: Hoja 81/85 Acordes de novena Si añadimos una novena a un acorde de séptima, obtenemos un acorde de novena. Los acordes de novena más comunes son los que se forman sobre el grado de la dominante, tanto en tonalidades mayores como menores. Debido a que la novena que se forma es mayor en las tonalidades mayores y menor en las tonalidades menores, acostumbramos llamar a estos acordes novena dominante mayor y novena dominante menor: Hoja 82/85 Escalas El sistema de afinación temperada divide equitativamente la octava en doce sonidos. Una escala es un conjunto de notas escogidas de entre estas doce notas. Damos el nombre de grados a cada una de sus notas. Cada grado tiene su nombre, aunque también acostumbramos identificarlos usando números romanos: Las dos características que distinguen una escala de otra son: • El número de notas que tiene • La distancia entre sus grados Por ejemplo, con las siete notas naturales, podemos construir por lo menos 7 escalas diferentes. Dos ejemplos: Cada una de estas escalas tiene un orden de tonos y semitonos que la caracteriza. La primera de ellas recibe el nombre de escala mayor, la segunda es el III modo gregoriano o modo frigio. Estos nombres identifican la estructura específica de cada escala. Podemos construir una escala comenzando en cualquier nota usando alteraciones para Hoja 83/85 mantener el orden de tonos y semitonos. Por ejemplo, para construir una escala mayor sobre la nota re, debemos alterar las notas fa y do: Decimos que esta escala es la escala de re mayor. Mayor por su estructura, re por ser la nota sobre la que se construye. Existe una infinidad de escalas. Inclusive, podemos inventar escalas al momento de componer. Compositores como Claude Debussy, Olivier Messiaen y Bela Bartok, entre otros, lo han hecho en el pasado reciente. La escala menor Al igual que la escala mayor, la escala menor tiene 7 notas. Sin embargo existen tres variedades: menor natural, menor armónica y menor melódica. La diferencia entre estos tres tipos de escala es la alteración de los grados VI y VII. En la escala menor natural, todas las notas aparecen con las mismas alteraciones de su relativo mayor. De ahí el nombre de natural: En la escala menor natural los semitonos se encuentran entre los grados II-III y V-VI. Es muy común encontrar el VII grado de una escala menor alterado ascendentemente. Esta escala la conocemos por el nombre de escala menor armónica. El nombre se debe a que una de las razones para la alteración del VII grado es de índole armónica. Alterar esta nota permite la formación del acorde de dominante o 7ma. de dominante sobre el V grado de la escala: Además de alterar el VII grado, podemos también alterar el VI grado. Esta escala recibe el nombre de escala menor melódica. El propósito principal de esta alteración es facilitar el Hoja 84/85 movimiento melódico del VI al VII grado, evitando la 2da. aumentada que se forma en la escala menor armónica. Por esta razón se le da el nombre de melódica: Escalas relativas Las escalas de do mayor y la menor natural tienen las mismas notas. Decimos que son escalas relativas. Do es relativo mayor de la y la es relativo menor de do: Para averiguar el relativo menor de una escala mayor basta con buscar su VI grado. Por ejemplo, el relativo menor de fa mayor es su VI grado re. En el caso de los relativos mayores, buscamos el III grado. Por ejemplo, el relativo mayor de do menor es su III grado mib. La tonalidad El concepto de tonalidad va tomando forma durante el Renacimiento y se establece desde el período Barroco. Está relacionado al uso de las escalas mayores y menores. Cuando construimos una obra usando una escala mayor o menor, la tónica de esta escala se convierte en el centro tonal. La pieza encuentra su reposo o descanso en esta nota. Decimos entonces, que estamos en la tonalidad relacionada a esta escala. Por ejemplo, si la escala fuera la de re mayor decimos que estamos en la tonalidad de re mayor. En las obras musicales escritas en los períodos Barroco, Clásico y Romántico cuando hablamos de la tonalidad de una obra, queremos decir que ésta es la tonalidad principal. Sin embargo, se producen innumerables modulaciones (cambios momentáneos de tonalidad) a través de la obra. Los acordes, muy especialmente los de séptima de dominante, y la armonía participan en la definición de la tonalidad y en los procesos de modulación. Hoja 85/85