Composicion Musical Usando Algoritmos Geneticos

10
Composición musical usando algoritmos genéticos Composing music through genetic aigorithms JULIO CÉSAR CARVAJAL RAMÍREZ Ingeniero de Sistemas. Investigador de la Fundación Universitaria San Martín. Bogotá, Colombia. [email protected] FABIÁN ANDRÉS GIRALDO GIRALDO Ingeniero de Sistemas e Informática, candidato a magíster en Ingeniería de Sistemas y Computación. Docente investigador de la Fimdación Universitaria San Martín. Bogotá, Colombia, fabian. [email protected] Fecha de recepción: 31 de agosto de 2011 Clasificación dei articuio: investigación Fecha de aceptación: 14 de febrero de 2012 Palabras clave: algoritmos genéticos, inteligencia artificial, música. Key words: genetic algorithms, artificial intelligence, music. RESUMEN Este artículo presenta un modelo de composición musical discreto, basado en las técnicas de escritu- ra musical propuestas por Johann Sebastian Bach. El modelo fue implementado mediante el uso de la estrategia Metaheurística: algoritmos genéti- cos implantados sobre el framework JGap, el cual arroja resultados de composición con una sintaxis que cumple con las técnicas de escritura y compo- sición musical. Se usará en este acercamiento la escala musical natural y los sonidos sintetizados de la octava natural del piano. Se crearon acordes tomando los grados respectivos en la escala y se agruparon las notas y acordes para convertirlos en compases. Mediante el modelo propuesto se obtiene: 1) el conjunto de notas agrupadas por compases con su interpretación de escritura sintáctica siguiendo los lineamientos del Framework JFugue y 2) la parti- tura de los fragmentos producidos sobre un pen- tagrama respetando las reglas de escritura musical formal. Se presentan tres MIDIS de composicio- nes hechas por el computador, donde se muestra una fiaerte evolución de sonido y como tal un re- sultado audible de la composición. ABSTRACT This paper presents a model of discrete musical composition based on musical writing techniques proposed by Johann Sebastian Bach. The model was implemented using the Meta-heuristics strate- gy, namely using Genetic algorithms implemented on the JGap Framework, producing musical re- sults with a syntax that matches writing and music composition techniques. This approach is applied Revista Tecnura | Voi. 161 No. 331 pp. 109 -1171 Julie - Septiembre de 2012 109

Transcript of Composicion Musical Usando Algoritmos Geneticos

Page 1: Composicion Musical Usando Algoritmos Geneticos

Composición musical usando algoritmosgenéticos

Composing music through genetic aigorithms

JULIO CÉSAR CARVAJAL RAMÍREZIngeniero de Sistemas. Investigador de la Fundación Universitaria San Martín.Bogotá, Colombia. [email protected]

FABIÁN ANDRÉS GIRALDO GIRALDOIngeniero de Sistemas e Informática, candidato a magíster en Ingeniería deSistemas y Computación. Docente investigador de la Fimdación UniversitariaSan Martín. Bogotá, Colombia, fabian. [email protected]

Fecha de recepción: 31 de agosto de 2011

Clasificación dei articuio: investigación

Fecha de aceptación: 14 de febrero de 2012

Palabras clave: algoritmos genéticos, inteligencia artificial, música.

Key words: genetic algorithms, artificial intelligence, music.

RESUMEN

Este artículo presenta un modelo de composiciónmusical discreto, basado en las técnicas de escritu-ra musical propuestas por Johann Sebastian Bach.El modelo fue implementado mediante el uso dela estrategia Metaheurística: algoritmos genéti-cos implantados sobre el framework JGap, el cualarroja resultados de composición con una sintaxisque cumple con las técnicas de escritura y compo-sición musical. Se usará en este acercamiento laescala musical natural y los sonidos sintetizadosde la octava natural del piano. Se crearon acordestomando los grados respectivos en la escala y seagruparon las notas y acordes para convertirlos encompases.

Mediante el modelo propuesto se obtiene: 1) elconjunto de notas agrupadas por compases con su

interpretación de escritura sintáctica siguiendo loslineamientos del Framework JFugue y 2) la parti-tura de los fragmentos producidos sobre un pen-tagrama respetando las reglas de escritura musicalformal. Se presentan tres MIDIS de composicio-nes hechas por el computador, donde se muestrauna fiaerte evolución de sonido y como tal un re-sultado audible de la composición.

ABSTRACT

This paper presents a model of discrete musicalcomposition based on musical writing techniquesproposed by Johann Sebastian Bach. The modelwas implemented using the Meta-heuristics strate-gy, namely using Genetic algorithms implementedon the JGap Framework, producing musical re-sults with a syntax that matches writing and musiccomposition techniques. This approach is applied

Revista Tecnura | Voi. 161 No. 331 pp. 109 -1171 Julie - Septiembre de 2012 109

Page 2: Composicion Musical Usando Algoritmos Geneticos

investigación

to the natural musical scale, and also to synthe-sized sounds of the natural-piano octave. Chordswere created by taking the corresponding gradesin the scale; additionally, notes and chords weregrouped to become actual score bars.

Using the proposed model, the following is obtai-ned: 1) A set of notes grouped in bars with their

corresponding interpretation, following the guide-lines of syntactic JFugue Framework; 2) the scoreof the fragments produced written on a stave thatcomplies with the mies of formal notation. ThreeMIDI files corresponding to three compositions(made by the computer) are presented, showing astrong evolution of sound and, as such, an audibleresult of a song.

* * *

1. INTRODUCCIÓN

La composición musical es un tema difícil de abor-dar desde los términos de la computación, desdelos inicios de las bellas artes se ha hecho una es-tigmatización de ellas con respecto al avance tec-nológico que se vive día a día. En este artículo sequiere mostrar los resultados del uso de una de lastécnicas metaheurísticas más conocidas y aplica-das actualmente en la computación evolutiva: losalgoritmos genéticos, con el fin de percibir cómoemerge la música desde un proceso evolutivo, quepodría tardar décadas, tal vez siglos, en mostrarresultados con un ciclo de evolución musical a ni-vel de composición humano.

Ya varios estudios se han hecho sobre el tema,con resultados interesantes, como el caso de Ris-to Miikkulainen y Chun-Chi J. Chen, que apli-cando redes neuronales recurrentes representanla notación musical y generan melodías, basadosen formulaciones matemáticas, que les permitenconstmir un modelo de control de las restriccionesde diversidad ritmica y medidas de restricción dedensidad [1], otro trabajo sobresaliente es el de-sarrollado por Reis et ál, en el que presentan es-quemas compuestos por algoritmos genéticos, quealeatoriamente generan secuencias de notas orde-nadas en la escala natural y que luego son eva-luadas por funciones matemáticas, tales como lasestudiadas en el cálculo diferencial (primera, se-gunda y tercera derivada de una función) que bajocriterio de los diseñadores son implementadaspara seleccionar las mejores secuencias genera-das por el algoritmo [2]. En el modelo presentadopor la universidad de Comña, España, escrito porPozos et ál, se plasma la idea de usar los ordena-

dores para actividades artísticas como la composi-ción musical y se presenta una estmctura donde seemulan tres músicos artificiales, cada uno con unpatrón que responde a un algoritmo genético paracrear las composiciones de diferentes instmmen-tos como el violin, guitarra y la tuba, para luegoser evaluadas por una función fitness estructuradacon métodos matemáticos discretos como teore-mas de integración y derivación. El resultado quese obtiene es una base de datos con fragmentosmusicales generados por el modelo [3].

Los resultados obtenidos por los autores indicanque los algoritmos genéticos pueden diseñarsepara obtener soluciones a este tipo de problemas,pero desde el punto de vista de la teoría musicalla falencia está en las funciones de evaluación delas melodías compuestas, ya que en los trabajosmencionados utilizaron estrictamente formulacio-nes matemáticas para considerar un fragmento ge-nerado por el algoritmo, pero están dejando a unlado la teoría y las técnicas de composición musi-cal que están establecidas desde siglos atrás. Aun-que las matemáticas tengan una relación directacon la composición musical, es necesario aclararque se debe hacer uso de estas para dar posiblessoluciones a problemas computacionales de com-posición, pero que las funciones de evaluacióndeben basarse en las reglas de escritura y sintaxismusical.

En el presente trabajo se expone el diseño de unalgoritmo genético que produce composicionesmusicales simulando la capacidad de composiciónhumana, emitiendo sonidos sintetizados a partirdel piano donde el computador se convierte en uninstrumento virtual y en un compositor con capa-

1 1 0 Revista Tecnura | Vol. 161 No. 331 Julio - Septiembre de 2012

Page 3: Composicion Musical Usando Algoritmos Geneticos

investigación

cidad para gestar diversos fi"agmentos musicalesque se convertirán finalmente en una pieza musi-cal terminada.

Como resultado final se expone un conjunto denotas que representan los compases generados apartir de la evolución del algoritmo, una tablaturafinal con el fi-agmento evolucionado, una partituraque cumple con los estándares de escritura musi-cal, tres MIDIS compuestos por el algoritmo don-de se muestran diferentes fases del proyecto y unaevolución de sonido considerable con respecto alas anteriores.

Por nuestra parte, no solo se exponen las fiancio-nes utilizadas para generar las notas que hacenparte de la composición, también se tienen enconsideración elementos musicales tales como:tempos, compases, acordes y escritura formal enel pentagrama, para posteriormente ser utilizadosen procesos de evaluación automática y de estaforma dar origen a los fi-agmentos audibles en for-mato MIDI que respaldan nuestros postulados ycomplementan los resultados teóricos que estamosgenerando.

El artículo está organizado de la siguiente forma:en la sección 1, Introducción, en la sección 2, Con-ceptos musicales, en la sección 3, Metodología, enla sección 4, Diseño del algoritmo, en la sección 5,Implementación, en la sección 6, Resultados y porúltimo, en la sección 7, Conclusiones.

2. CONCEPTOS MUSICALES

Los siguientes párrafos contienen los conceptosnecesarios para que el lector obtenga unas basessólidas del punto de partida y a donde se quierellegar con el uso de los algoritmos genéticos y lateoría musical, aplicando las herramientas compu-tacionales que nos ofrece la tecnología en la ac-tualidad.

2.1. Técnica musical

La música, como toda manifestación artística, esun producto cultural. El fin de este arte es susci-tar una experiencia estética en el oyente y expre-sar sentimientos, circunstancias, pensamientos oideas. La música es un estímulo que afecta el cam-

po perceptivo del individuo [4].

Para representar la música existen diversas grafíasque se concibieron con el fin de poder escribir ytrascender la música, estos símbolos representanlas notas musicales y su respectiva duración, es-tán escritos ordenadamente sobre líneas, que re-presentan su valor sonoro, generan una notacióndenominada pentagrama.

El pentagrama es el símbolo gráfico en el que secentra toda la grafía musical. Es en él donde se es-criben las notas musicales y otros signos como loscompases o las fórmulas de compás. El pentagra-ma está compuesto por cinco líneas horizontalesy paralelas; además de equidistantes. Estas cincolíneas paralelas forman cuatro espacios entre ellas.En estos espacios también se ubican las notas mu-sicales. En la práctica, decimos que hay cinco lí-neas y cuatro espacios. Estas líneas y espacios senombran de abajo hacia arriba; así, por ejemplo,la línea de más abajo la podemos nombrar comoprimera línea [5], como lo muestra la Fig. 1.

• r lii4*̂ C«|MtCÍO

Fig. 1. Pentagrama con sus respectivas líneas yespacios.

2.2. Figura musical

Son signos musicales que indican la duración pro-porcional de los sonidos, como se muestra en laFig. 2. Los silencios son signos para indicar unaduración sin sonido, de ahí su nombre.

Una nota es un concepto musical que sirve paraexpresar la altura o tono de un sonido. Concreta-mente son nombres para ciertas frecuencias, quepermiten decir que un sonido musical correspondea cierto símbolo. Una combinación de varias no-tas está entre dos notas. Así, una nota puede de-notarse según la convención musical o mediantela expresión de su frecuencia, por ejemplo, la 4 esigual a 440 hercios o vibraciones por segundo enafinación estándar, o 444 hercios en afinación decámara [6].

Composición musical usando algoritmos genéticos

JULIO CÉSAR CARVAJAL RAMÍREZ / FABIÁN ANDRÉS GIRALDO GIRALDO

Page 4: Composicion Musical Usando Algoritmos Geneticos

investigación

REDONDA

BiVKNCA

NEGRA

CORCHEA

SEMiCORCHEA

FUSA

SEMiFUSA

o

JJ

o

1

2

1

—loo

à32

J2

1

toi—

1

8

16

32

J4

2

1

1

8

1¿

8

4

2

1

1

8

16

8

4

2

1

11

32

16

8

4

2

1

64

32

16

8

4

2

1

Fig. 2. Notas musicales y sus respectivas equivalenciasentre ellas mismas.

La música académica occidental ha desarrolladoun método de escritura basado en dos ejes: el ho-rizontal representa el transcurso del tiempo y elvertical la altura del sonido; la duración de cadasonido está dada por la forma de las figuras musi-cales [6], como se puede observar en la Fig. 3 don-de están expuestas las figuras musicales ordenadasa través de una linea horizontal que simboliza eltiempo de duración.

mUn e-íe-fan-te seba-tan-ce-<j ba so-bre ta te-ta öey-na a-ra-o-ño

co-move-i - a que no se ca - i a fue-rona Ha-marqy-tro e-le-fan- an-te

Fig. 3. Método de escritura musical formal, utilizandoel pentagrama.

3. METODOLOGÍA

A continuación se desglosarán las diferentes técni-cas utilizadas y las tecnologías que se fusionaronpara el desarrollo del proyecto de composiciónmusical usando algoritmos genéticos.

3.1. Representación de los individuos

Los individuos en los algoritmos genéticos se re-presentan generalmente en cadenas binarias; peroen nuestra solución serán representadas en ca-denas de tipo entero, que es otra de las técnicascomunes utilizadas para la representación de losindividuos o cromosomas, cada nota se componede tres genes los cuales pueden tomar diversosvalores según se configuren, como se muestra enla Fig. 4, de esta forma se genera un arreglo detres posiciones, donde la primera posición o pri-

mer gen hace referencia a la nota musical y losposibles valores que puede tomar se denotan enel siguiente conjunto: Notas ={D,E,F,G,A,B,C},donde cada letra es la representación de las notasmusicales en su escritura formal o un posible alelopara el componente número uno del gen, la segun-da posición al semitono manejado por la nota, ylos posibles valores se denotan en el conjunto Se-mitono ={#, ##, b, bb}, donde el numeral simboli-za un sostenido y la b un bemol, en la tercera posi-ción se asigna la duración de la nota y los posiblesvalores se denotan en el conjunto Tiempo = {w, h,q, i, s, t, X, o}, donde cada letra hace referencia aun tiempo de duración. Para la generación de loscompases se agrupan las notas según su duración,y de esa forma determinar el tiempo adecuado decada compás.

Fig. 4. Cromosoma diseñado.

Para generar un acorde mayor es necesario tomarel primero, tercero y quinto grado de la escala dela cual pertenezca o las variaciones de las tres no-tas encontradas en estos grados, esto exactamentees lo que hace el algoritmo para generar acordes,de forma aleatoria, busca los cromosomas cuyasnotas han sido generadas con ausencia de semi-tono en este caso los alelos comprendidos en elconjunto Semitono ={#, ##, b, bb} y en esa po-sición reemplaza la nota existente por un acordede la escala a la que pertenece la nota. En esta en-trega se generarán acordes mayores de la escalafiindamental o escala natural, claro está que la teo-ría musical muestra detalladamente acordes quevan desde dos hasta siete notas, pero en tal caso lacomplejidad del algoritmo aumentaria, por tanto,para esta entrega se hacen acordes de tres notas.

3.2. Grado de adaptación de los individuos

En el caso de algoritmos genéticos, la adaptaciónde un individuo coincide con el valor de la funciónobjetivo a maximizar. Por lo tanto, el cálculo de laadaptación consiste en decodificar el cromosomadel individuo para identificar la melodía que re-presenta y calcular el valor de la fiínción objetivoen ese punto.

1 1 2 Revista Tecnura | Vol. 16| No. 331 Julio - Septiembre de 2012

Page 5: Composicion Musical Usando Algoritmos Geneticos

investigación

En esta entrega el grado de adaptación de los in-dividuos es calificado por el usuario, de tal formaque en la función de evaluación se pide un pa-rámetro de 1 a 100, el cual va a representar unacalificación para cada grupo de cromosomas ge-nerados, donde los mejores puntuados serán losseleccionados como los más adaptados.

Es necesario especificar las condiciones en lasque el algoritmo deja de evolucionar y presentala mejor solución encontrada. Estas condicioneshacen referencia al punto de convergencia del al-goritmo. En este caso se utilizó la condición determinación más sencilla, donde al alcanzar un de-terminado número de generaciones de evoluciónel algoritmo muestra la solución o el cromosomamás adaptado.

4. IMPLEMENTACIÓN

Para el diseño del algoritmo genético se utilizó elframework JGap, ya que es una herramienta deuso libre, hace que la configuración del algoritmosea rápida, comprensible y posee una arquitecturabasada en el paradigma de programación orienta-da por objetos y patrones de diseño de softwareque lo hacen muy robusto, modificable y escala-ble, por otra parte está escrito en el lenguaje deprogramación java y esto otorga una integraciónlimpia con los demás frameworks usados.

4.1. Generación de la población

La población inicial se genera de forma comple-tamente aleatoria, dando como resultado cadenas,como lo muestra la Fig. 3, que representan las no-tas para ser utilizadas en la solución. En el fra-mework JGap esta caracteristica se obtiene utili-zando el método randomlnitialGenotype, provistopor la clase Genotype.

4.2. Operadores de selección

Los operadores de selección (el proceso de se-lección utilizado fue elitismo, que el frameworkJGap está modelado bajo la clase BestChromo-someSelector) determinan qué individuos son losmás adaptados al medio para darles trascendenciaa la siguiente generación. En este acercamiento seconfiguró un operador de selección, que nos pro-

porciona JGap y se escribió un complemento paraque el usuario sea partícipe de dicha selección,luego de escuchar la producción musical de unageneración otorga una calificación entre 1 y 100,siendo 1 la calificación más baja y 100 la más alta,a las cadenas generadas por el algoritmo genético,es así como se eligen las mejores melodías paraperseverar en la línea de vida y pasar a la próximageneración, y de esta forma ser nuevamente eva-luadas por el operador de selección anteriormentedescrito.

4.3. Operadores de cruce y mutación

El fi-amework JGap nos permite usar los dos ope-radores de evolución como lo son el cruce y lamutación de manera transparente. Para el diseñoy desarrollo de este algoritmo genético se usaronestos dos operadores, el primero de ellos, el crucemonopunto, que consiste en tomar individuos de lapoblación, dos vectores de notas que los identificacomo el padre y la madre; y aplicarles el opera-dor cruce, que consiste en tomar la primera mitaddel padre y la segunda de la madre para engendrarel primer hijo y viceversa para el segundo [7]. Elsegundo operador la mutación (bit a bit) consisteen tomar un individuo de la población y alterar sucadena genética, en este caso el cromosoma, dan-do diferentes valores a los alelos del mismo, quefiuctúan entre los conjuntos anterionnente men-cionados [7].

4.4. Representación de los conceptosmusicales en la librería JFugue

En el algoritmo la gramática musical es represen-tada por medio de cromosomas que son la basefundamental del funcionamiento de la algorítmi-ca implementada, como se muestra en la Fig. 5,donde las notas musicales son una cadena comose muestra en la Fig. 4. El framework JFugue esel encargado de la comprensión del lenguaje gra-matical musical y toda su interpretación de es-critura en el lenguaje de programación java. Elframework permite la fácil interpretación musicalen un ámbito computacional, y aplicado a nuestrainvestigación se encarga de interpretar las cadenasque genera el algoritmo diseñado para tal fin. Ensu versión 1.0 demuestra ser una herramienta ro-busta para la programación musical, gracias a su

Composición musical usando algoritmos genéticos

JULIO CÉSAR CARVAJAL RAMÍREZ / FABIÁN ANDRÉS GIRALDO GIRALDO

Page 6: Composicion Musical Usando Algoritmos Geneticos

investigación

facilidad de codificación, la documentación pro-porcionada por los desarrolladores y posibilidadde escalabilidad [8].

-I J i i

Fig. 5. Representación de las notas y los compasesmusicales generados por el algoritmo.

4.5. Implementación de acordes

Para la generación de acordes usando el fí^ameworkJFugue se debe concatenar con el símbolo + lasnotas que componen dicho acorde, un ejemplo degeneración básico es un acorde en la escala natu-ral donde las notas son C, E, G, la representacióndel acorde en la escritura del lenguaje java usandoJFugue como intérprete sería Cq+Eq+Gq, dondeC es la fundamental, E la tercera y G la quinta, laq representa el tiempo de duración de cada nota eneste caso %, el signo + indica que las notas estánconcatenadas, sonaran al tiempo y formaran unacorde mayor de la escala natural.

4.6. Los tiempos de las notas

Las notas musicales también están catalogadaspor los tiempos de duración en su frecuencia desonido, es decir, cada una de ellas tiene un equi-valente en duración: la redonda dura 1 tiempo, lablanca dura Vi tiempo, la negra dura % tiempo yasí sucesivamente, como se muestra en la Fig. 6.En JFugue las duraciones de los tiempos están re-presentadas con letras w para redonda, h para lablanca, q para la negra, i para la corchea, s parala semicorchea, t para la ñisa y x para la semifiisa[9], letras que hacen parte de un conjunto llamadotime anteriormente nombrado. De esta forma laprogramación de los tiempos por cada nota se hacemuy agradable. El algoritmo tiene la capacidad degenerar los tiempos aleatoriamente siguiendo lasreglas de composición de la teoria musical y asig-narle una duración adecuada a cada nota generada.

1 1/2 t/4 i/8 1/16 1/32 1/64

Fig. 6. Notas musicales básicas y su respectivaduración sobre un pentagrama musical.

4.7. Compases

La generación de compases se hace concatenandolas notas o cromosomas en el algoritmo, ya que seagrupan notas cuya duración de tiempos no superelos cuatro cuartos, esto nos garantiza estar gene-rando en esta primera entrega compases en unamedida de las más utilizadas en la música actualcomo el rock, pop [10].

4.8. Interpretación de compases

Se codificó un reproductor del framework JFugueque permite interpretar las notas generadas por elalgoritmo en tiempo de ejecución para que la eva-luación hecha por el usuario final sea más objetivay acertada.

Este también permite escuchar de manera más cla-ra los resultados que arroja el algoritmo por cadaiteración, también acompaña al usuario final en unaprendizaje constante entre la gramática musicalgenerada y los sonidos que están asociados a ella.

Esto en términos generales es aceptable, ya quepor un lado genera composiciones musicales, peroa su vez dichas composiciones pueden ser escu-chadas en tiempo real, así el usuario final tendráun dominio más global de la problemática de lacomposición donde el computador genera cadenascon escritura discreta y sonidos sintetizados parasu mayor comprensión.

4.9. MIDIS finales

Como último resultado se configura un conversorde la gramática generada por el algoritmo a un ar-chivo MIDI, este permitirá al usuario guardar cadauno de los patrones que se compusieron despuésde todas las iteraciones; es decir, la mejor soluciónencontrada por el algoritmo.

Tener este registro permite conservar las compo-siciones hechas por el algoritmo de una forma au-

1 1 4 Revista Tecnura | Voi. 161 No. 331 Julio - Septiembre de 2012

Page 7: Composicion Musical Usando Algoritmos Geneticos

investigación

dible. Poder reproducir dichas composiciones endiferentes ordenadores y compartirlas, reproducirlas cadenas de notas generadas en los reproducto-res de música portátiles.

Como parte de los resultados se generaron tresMIDIS, que muestran la evolución del proyectoen general, y se muestra la etapa de inicio con untrack titulado Tocata N. 1 in C Major, la etapa cen-tral con un track titulado Molto Allegro in C Ma-jor y la etapa final con un track titulado ComputerSonata Allegro in C Major; estos MIDIS son laprueba de la evolución del desarrollo y un eje fiin-damental para la continuidad de proyecto.

5. RESULTADOS

Los resultados que se obtuvieron después del dise-ño y la implementación del algoritmo y su respec-tiva función de evaluación, fueron satisfactorios.En esta entrega se hizo un acercamiento a la com-posición musical aplicando algoritmos genéticos ytécnicas musicales propuestas por Bach.

A grandes rasgos se obtuvieron resultados talescomo: un algoritmo escrito en el lenguaje de pro-gramación Java, que genera composiciones musi-cales basadas en las técnicas musicales gramatica-les y sintácticas propuestas por Johann SebastianBach, generando sonidos sintetizados a partir delpiano donde el computador se convirtió en un ins-tmmento y a su vez en un compositor simulandola capacidad de composición humana.

Teniendo en cuenta estos ítems obtenidos y de lageneración propia de composiciones hechas por elalgoritmo, hay tres productos finales para desglo-sar y mostrar.

5.1. Compases compuestos por notas musi-cales

El algoritmo genera a partir de la implementaciónde cromosomas y funciones evaluadoras cadenasde notas que cumplen con las caracteristicas bá-sicas y que se agmpan para componer compases.

En el siguiente análisis cuantitativo se muestra laevolución y convergencia del algoritmo imple-mentado con diferentes escenarios de búsqueda.

población y criterios de finalización. La poblaciónse evalúa después de cada generación, donde serevisan los contadores de adaptación relativa ypuntuación acumulada de los individuos de la po-blación. Asimismo se calcula la adaptación globalde la población y la posición del mejor individuo.El cromosoma final formado por los individuosmás adaptados en este caso puntuados por el usua-rio después de escucharlos es el que se toma comobase para la muestra y se relaciona en la tabla nú-mero 1.

Tabla 1. Comparación individuos población, puntajemáximo y mínimo

Tiempo

291612

311511

435671

491634

561711

594321

Tamaño

80

80

80

80

80

80

Puntajemáximo

70

70

60

60

70

70

Puntajeminimo

1

2

4

4

4

4

Poblacióninicial

50

60

70

80

90

100

Tabla 2. Comparación individuos población, puntajemáximo y mínimo

Tiempo

872345

932344

1298977

1476655

1687766

1778899

Tamaño

160

160

160

160

160

160

Puntajemáximo

70

70

60

60

70

70

Puntajemínimo

1

4

4

4

5

5

Poblacióninicial

150

160

170

180

190

200

En la Tabla 2 se muestra una comparación de losresultados obtenidos, después de correr 12 vecesel algoritmo, donde hay clara evidencia que alte-rando significativamente la población inicial seobtienen resultados más satisfactorios, la muestraclara es el puntaje mínimo ya que al crecer la po-blación los resultados generados son más agrada-bles para el usuario final.

La sintaxis con la que se muestran los resultadosde las evoluciones del algoritmo cumple los están-dares de la escritura musical y son comprensibles,este era uno de los aspectos que se propuso como

Composición musical usando algoritmos genéticos 11 c

JULIO CÉSAR CARVAJAL RAMÍREZ / FABL\N ANDRÉS GIRALDO GIRALDO

Page 8: Composicion Musical Usando Algoritmos Geneticos

investigación

objetivo, ya que hará que el proyecto tenga esca-labilidad y los resultados sean entendibles para elusuario final, como se presenta en las figs. 7, 8 y 9.

, -120

'oZ—

Melody # íGeoetíc Algarilbni

— 7 ^

Fig. 7. Fragmento de partitura final compuesta pornotas generadas por ei algoritmo, configuradocon 30 iteraciones, una población inicial de 50individuos y un tiempo de ejecución estimadode 218967 ms.

TocataGenetic Algorithm

Fig. 8. Fragmento de partitura donde se incluyen no-tas en clave de sol y en clave de fa, configuradocon 30 iteraciones, una población inicial de 50individuos y un tiempo de ejecución estimadode 293456 ms.

SonataGenetic A

tas en clave de sol y en clave de fa, configuradocon 30 iteraciones, una población inicial de 50individuos y un tiempo de ejecución estimadode 415571 ms.

6. CONCLUSIONES

Después de haber realizado el proceso de desarro-llo anteriormente descrito y tomando en conside-ración los resultados obtenidos podemos extraerlas siguientes conclusiones:

El proceso de composición musical visto desde laperspectiva de la computación evolutiva demues-tra ser una propuesta prometedora, dado que sepueden obtener fragmentos musicales semejantesa los producidos por humanos con un buen co-nocimiento musical. Sin embargo, es importan-te indicar que se deben plantear mecanismos deevaluación automática del fitness considerando nosolo elementos matemáticos como los desarrolla-dos por los autores presentados en el artículo, sinotambién, tomando en consideración reglas heurís-ticas utilizadas por personas experimentadas en elcampo musical, que ayudan a penalizar fragmen-tos que no son agradables al oído.

Tomando en consideración los comentarios delos músicos que interpretaron la partitura final, sepuede concluir que el algoritmo satisface las técni-cas de escritura musical y se obtiene un ahorro detiempo considerable al producir una obra musical.Que la partitura es de fácil comprensión para losintérpretes, esto a raíz de que una persona ajena alproyecto interpretó la melodía producida sin nin-gún problema.

En el diseño del algoritmo no se tuvo en cuenta lafigura musical B Cuadro, esto puede ocasionar queen la escala natural, cuando hay un paso de gene-ración, aleatoriamente en el operador de cmce sepuede generar, por ejemplo un D sostenido, lo queindica que de ahí en adelante todos los D debenir sostenidos, hasta que haya la aparición de un BCuadro, esto lo que ocasiona es: que los acordes onotas generadas se salgan de la octava natural delpiano y por tanto puede causar una confusión enla interpretación.

Fig. 9. Fragmento de partitura donde se incluyen no- La interpretación y composición de compases, a

1 1 6 Revista Tecnura | Vol. 161 No. 331 Julio - Sepüembre de 2012

Page 9: Composicion Musical Usando Algoritmos Geneticos

investigación

partir de notas musicales y la generación de ar-chivos MIDI, son resultados esperados y son unincentivo para seguir trabajando en el tema meta-heurístico para la composición musical, hay mu-chas otras técnicas que pueden ser aplicadas e im-plementadas al proyecto, como redes neuronales,computación evolutiva (programación genética,programación genética gramatical) y PSO (Par-ticle Swarm Optimization) con los cuales se po-drian dar diferentes tipos de soluciones a la mismaproblemática y de esta forma mejorar los resulta-dos obtenidos en este acercamiento.

7. TRABAJO FUTURO

Se está trabajando un una función fitness que tengala capacidad de hacer la evaluación completa de la

obra generada por el algoritmo, los criterios que seestablecen para ella están direccionados desde elpunto de vista musical, para así generar fimcionesde evaluación basadas en penalizaciones, dado elincumplimiento de los criterios musicales estable-cidos. En una futura versión se implementará unao varias de estas técnicas para la evaluación de loscompases generados por el algoritmo, ya que elframework ya contiene estos operadores de selec-ción, de esta forma la evaluación será automáticay aleatoria.

8. FINANCIAMIENTO

Financiamiento y aval: Fundación UniversitariaSan Martín Facultad de Ingenieria.

REFERENCIAS

[1] J. Chun-Chi & R. Miikkulainen, "Crea-ting Melodies with Evolving RecurrentNeural Networks", Intemationai JointConference on Neural Networks, vol. 3, [6]pp. 2241- 2246, agosto, 2001.

[2] G. Reis, N. Fonseca, F. Fernández & A. [7]Ferreira, "A Genetic Algorithm Approachwith Harmonic Stmcture Evolution forPolyphonic Music Transcription" IEEE [8]Intemationai Symposium on Signal Pro-cessing and Information Technology, pp.491 -496, diciembre, 2008. [9]

[3] A. Pazos, A. Santos Del Riego, A. Dorado& J. Romero, "Genetic Music Composi-tor", Evolutionary Computation, 1999. [10]CEC 99. Proceedings of the 1999 Con-gress, vol. 2, pp. 2011, 1-6.

[4] [A. Rodriguez, La Dimensión sonora dellenguaje audio visual. España: Paidós,2009, 1-100.

[5] S. Torres y F. Javier, Tecnologías en la

composición de bandas sonoras. España:Fundación Autor - Sociedad General deAutores y Editores, 2011, 23 - 70.R. de Cande, Invitación a la música.México: Alianza, 2008, 10-50.L. Araujo y C. Cervigón, Algoritmos evo-lutivos un enfoque práctico. Bogotá: Al-faomega, 2009, 1 - 88.D. Koelle, the Complete Guide to JFugue.Estados Unidos: Independiente, 2010, 1 -118.G. Kovács & Z. Pásztor, Ejercicios pre-paratorios para instrumentistas. Madrid:Grao, 2010, 1-100.L, Lozano, A. Medaglia y N. Velasco,"Generation of Pop-Rock Chord Sequen-ces Using Genetic Algorithms and Va-riable Neighborhood Search", Centro deOptimización y Probabilidad AplicadaUniversidad de los Andes, pp. 573-578,agosto, 2009.

Composición musical usando algoritmos genéticos j j y

JULIO CÉSAR CARVAJAL RAMÍREZ / FABIÁN ANDRÉS GIRALDO GIRALDO

Page 10: Composicion Musical Usando Algoritmos Geneticos

Copyright of Tecnura is the property of Tecnura and its content may not be copied or emailed to multiple sites

or posted to a listserv without the copyright holder's express written permission. However, users may print,

download, or email articles for individual use.