Composición musical vía computación neuronal

 

José R. HILERA, Roberto J. GONZÁLEZ, José A. GUTIÉRREZ DE MESA

Departamento de Ciencias de la Computación, Universidad de Alcalá

E-mail: ccjrhg@cc.alcala.es

Web: http://www.cc.alcala.es/jrhg/jrhg.htm

 

 

 

Resumen: En este artículo se presenta un sistema integrado para la composición musical asistida por computador que, además de facilidades para la edición y audición de partituras, ofrece también la posibilidad de favorecer la inspiración del compositor. El sistema proporciona un mecanismo de generación de nuevas melodías a partir de otras de estilo musical similar al deseado por el autor. Este sistema está basado en una Red Neuronal Artificial con aprendizaje supervisado de tipo backprogation.

Palabras clave: Redes Neuronales Artificiales, Backpropagation, Composición musical.

1. Introducción

Desde finales de los años ochenta se han aplicado las Redes Neuronales Artificiales para resolver todo tipo de problemas difícilmente tratables desde un punto de vista algorítmico tradicional [1]. Así, esta tecnología se ha utilizado en ámbitos tan diferentes como las finanzas, para prever la evolución de los precios o valorar el riesgo de créditos; la medicina, para facilitar el diagnóstico clínico; o la empresa, para optimizar el uso de recursos o, incluso, mejorar los procesos de selección de personal.

Un campo poco explotado, pero que reúne características que hacen atractiva la posibilidad de utilizar redes neuronales, es el de la composición musical. En este sentido, primero Duff [2] y, después, Eberhart y Dobbins [3], proponían, ya en 1989 y 1990 respectivamente, la posibilidad de utilizar una red neuronal de tipo backpropagation para la combinación de diferentes melodías. A partir de las ideas de estos autores, aunque mejorando en algunos aspectos su propuesta original, en el Departamento de Ciencias de la Computación de la Universidad de Alcalá se ha desarrollado el prototipo de un Sistema Integrado para la Composición Musical (SICOM), que incluye un primer subsistema para la edición y audición de partituras y un segundo subsistema, basado en una red neuronal, para la inspiración musical del compositor.

Figura 1. Sistema de composición musical con "inspiración neuronal"

Como se muestra en la figura 1, el Subsistema de Inspiración se nutre de un repertorio de "melodías originales" del mismo o de otros compositores, que serán utilizadas como base para la creación de una melodía de un estilo similar, que denominamos "generada", sobre la que el autor podrá empezar su composición, evitando así partir de un "pentagrama en blanco". La selección de las melodías básicas se hará atendiendo al estilo que pretende el compositor en su música: por ejemplo, si se desea producir un vals, se partirá de un repertorio de partituras de valses ya existentes. Para evitar el plagio de melodías, el sistema también ofrece la posibilidad de valorar la semejanza de la composición que se va obteniendo durante el proceso con las diferentes melodías básicas originales utilizadas como "semilla" para favorecer la inspiración.

Aunque se presupone que el compositor está familiarizado con el lenguaje musical en forma de pentagrama, existe también la posibilidad de utilizar el sistema para componer "de oído", sin necesidad de partituras; algo que parece ser la forma habitual de trabajo de algunos compositores famosos [4].

 

2. Inspiración neuronal

El objetivo del Subsistema de Inspiración es proporcionar al autor una melodía de partida, de la que podrá utilizar los fragmentos que le interesen para incluirlos literalmente o modificados en su composición, o simplemente para favorecer su inspiración ofreciéndole una melodía nueva relacionada con el estilo de música que desea componer.

Para ello, se utiliza una Red Neuronal Artificial (RNA) con la que se genera precisamente tal melodía, a partir de otras "originales" del mismo estilo musical que le interesa al autor. Se trata de una RNA de tres capas con conexiones hacia delante. La capa de entrada de diseña para recibir grupos de n notas consecutivas de cada una de las m "melodías originales" seleccionadas (el valor de n, al que denominamos profundidad, será determinado en su momento por el compositor), y la de salida para obtener la nota siguiente a las del grupo presentado a la entrada, según la partitura de la melodía original (Figura 2).

Figura 2. Estructura y proceso de "aprendizaje" de la RNA del Subsistema de Inspiración

El número exacto de neuronas de entrada será función de la profundidad (n) y de la forma analítica de representación de cada una de estas n notas musicales que componen cada fragmento de melodía que se presenta a la entrada. Se ha decidido utilizar un vector de 66 valores para poder representar todos los tonos y duraciones posibles que puede tener cada nota incluida en una melodía: 50 tonos (49 frecuencias diferentes más un elemento de silencio) y 16 duraciones (desde la duración mínima "semifusa" hasta la máxima "breve con puntillo"). Por tanto el número de neuronas de entrada y de salida será: ne=n× 66, ns=66.

Por otro lado, el número de neuronas de la capa oculta (no) de la RNA, como ocurre habitualmente, se determina de forma empírica, siendo, en este caso, un parámetro que el compositor puede variar, al igual que la profundidad del aprendizaje (n) cuando decida iniciar un proceso de "inspiración" mediante la generación de una melodía a partir de otras originales. Aunque el sistema considera por defecto 18 neuronas ocultas, una profundidad n=3 y, por tanto, 198 neuronas de entrada, estos valores pueden variarse según el criterio del compositor.

El funcionamiento del Subsistema de Inspiración basado en la RNA descrita, consta de dos fases perfectamente definidas:

- Una primera "fase de aprendizaje", durante la cual se determinan los pesos asociados a las conexiones entre las neuronas mediante el conocido algoritmo backpropagation [5], para que la RNA "aprenda" a proporcionar a su salida la nota que sigue a cada grupo de n notas consecutivas de cada una de las "melodías originales" seleccionadas previamente del repertorio almacenado en el sistema (fig. 2).

- Una segunda "fase de generación", durante la cual se utiliza la RNA anterior para generar una nueva melodía. Para ello, el compositor debe proporcionar un grupo inicial de n notas consecutivas como entrada a la red, que servirá de semilla para generar la primera nota de la nueva melodía. Después de obtener esta nota de salida, se elimina la primera nota del grupo de n notas consecutivas de entrada, y se añade al final del grupo la nueva nota generada, con lo que se tiene otro nuevo grupo de n notas consecutivas que se vuelven a introducir en la red, generándose a continuación una nueva nota a la salida, que se considera después como entrada y así sucesivamente hasta obtener el número de notas que interese para la nueva melodía. En la figura 3 se muestra gráficamente este proceso para el caso de una profundidad n=3 y un total de k notas.

 

Figura 3. Proceso de obtención de las k notas de la "melodía generada"

 

Según el proceso anterior, es evidente que la melodía resultante se asemejará a aquellas con las que se entrenó la red durante la "fase de aprendizaje", ya que, en cierto sentido, es una combinación de aquellas; aunque también se generarán nuevas notas debido al error que siempre se comete durante el aprendizaje de cada melodía original.

Para poder contar con un cierto grado de originalidad en la nueva melodía, el sistema también permite introducir un nivel de azar en la generación de notas, mediante la selección aleatoria, según una distribución de probabilidad que puede ser establecida por el propio compositor, del tono y de la duración de la nota generada a la salida. Es decir, en lugar de determinar que el tono es el correspondiente a la neurona, de entre las 50 que lo representan, con mayor valor de salida (el más próximo a la unidad), se seleccionará con la probabilidad establecida. Si ese tono es rechazado, se localiza la neurona con el segundo mayor valor de salida y se repite la selección aleatoria. Este mecanismo consigue que, si se repite el proceso con las mismas notas iniciales, la melodía generada sea distinta cada vez.

Cuando se ha obtenido la "melodía generada" de la forma descrita en este apartado, el sistema permite pasar al "Subsistema de Edición/Audición", mostrando automáticamente su partitura, sobre la que se puede realizar todo tipo de operaciones de edición (eliminación de notas, modificación, etc.) así como proceder a su audición o analizar el grado de semejanza con las melodías originales a partir de las que fue generada, para evitar que se trate de un plagio de alguna de aquellas.

 

 

3. Facilidades del sistema de composición

El Sistema Integrado de Composición Musical que se presenta en este artículo, además de permitir llevar a cabo el proceso de "inspiración" anterior utilizando una red neuronal, también ofrece otras facilidades para la edición y audición de las melodías, tanto las originales como las generadas mediante la RNA. La principales características del subsistema de edición/audición son las siguientes:

Figura 4. Presentación del entorno de Edición y Audición de melodías.

Además de las características anteriores relacionadas con la edición, el sistema también ofrece otras facilidades relacionadas con el proceso de "inspiración", como la posibilidad de gestionar el almacenamiento de diferentes redes neuronales o generadores de melodías, así como la modificación de diferentes parámetros de composición implicados en las fases de "aprendizaje" y "generación", como: la profundidad de los fragmentos musicales utilizados durante el aprendizaje (n), la cantidad de melodías originales (m), el número de notas por melodía, el grado de azar deseado en la generación de las nuevas melodías, el número de neuronas ocultas de la red neuronal (no), el número máximo de iteraciones y el nivel de error permitido durante el proceso de aprendizaje, y otros parámetros necesarios para aplicar el algoritmo backpropagation, como la tasa de aprendizaje y el coeficiente de momento [5].

4. Resultados

En las pruebas realizadas con el sistema desarrollado, además de probar diferentes combinaciones de notas que actúen como "semilla" en la generación de nuevas melodías con una misma red, se ha analizado la influencia de los diferentes parámetros de composición considerados por el sistema.

Así, en el caso de la profundidad (n), se ha podido comprobar que cuanto mayor es su valor, más se parecen las melodías generadas a las originales y, por supuesto, mayor es el tiempo de aprendizaje y generación, teniendo en cuenta que cada incremento unitario de n supone un incremento de 66 neuronas en la capa de entrada de la red neuronal. Por otro lado, si el valor de n es pequeño, aumenta el riesgo de que en la fase de aprendizaje haya notas diferentes que sigan a grupos iguales de notas consecutivas, tanto en una misma melodía como en otras, lo cual puede complicar el aprendizaje.

En cuanto a las melodías originales utilizadas, se han probado de una gran variedad de estilos diferentes: vals, bolero, polca, country, rock, pop, popular, etc.; obteniéndose con la red melodías nuevas muy atractivas, especialmente cuando las originales son mayoritariamente de un mismo estilo musical, reconociéndose claramente éste en la melodía generada.

Otro parámetro que puede modificar el compositor es el número máximo de notas para cada melodía utilizada. Cuantas más notas se utilicen durante el entrenamiento, mayor será el número de patrones a aprender. Esto tiene el inconveniente de incrementar el tiempo de aprendizaje, con la ventaja de que las melodías generadas puedan tener una mayor variación, conservando su semejanza con las originales.

La influencia del número de neuronas ocultas (no) es evidente en la fase de aprendizaje de la red neuronal utilizada. Cuando se trata de un número pequeño, es posible que no sean suficientes, con lo que la red probablemente no aprenderá; mientras que si es un número elevado, la red no generaliza correctamente, sino que se limita a "memorizar" las melodías originales utilizadas para el aprendizaje, obteniéndose posteriormente melodías generadas que coinciden prácticamente con las originales.

El proceso de entrenamiento de la red finaliza cuando el error cometido sea menor que un valor de referencia que puede establecer el compositor. Este valor no debe ser muy bajo, ya que en tal caso la red habrá "memorizado" exactamente las melodías originales, siendo las nuevas que se generen posteriormente muy similares a aquellas. Para evitar esto, tampoco debe ser muy bajo el grado de azar que el autor establezca durante la generación en forma de probabilidad de selección de tono y duración para cada una de las notas de la nueva melodía.

5. Conclusiones

Las Redes Neuronales Artificiales pueden resultar muy útiles a un compositor poco inspirado si se utilizan de la forma descrita en este artículo, simplemente tendría que conseguir algunas melodías originales del estilo musical que le interese y hacer que "las aprenda" una red, con lo que habrá conseguido un "generador" capaz de proporcionarle una infinidad de nuevas melodías en la que podrá basarse para comenzar a componer.

El Sistema Integrado para la Composición Musical (SICOM) desarrollado en el Departamento de Ciencias de la Computación de la Universidad de Alcalá dispone de un "Subsistema de Inspiración" que permite esta generación automática de melodías; así como de un "Subsistema de Edición/Audición" que ofrece facilidades para la escritura y audición de partituras, complementándose con el anterior, y constituyendo, en conjunto, un completo entorno de composición asistido por ordenador.

El primer prototipo de este software está disponible en Internet, siendo accesible desde la página Web http://www.cc.alcala.es/jrhg/software.htm, o directamente, vía FTP, en el archivo ftp://www.cc.alcala.es/software/sicom.zip.

Aunque puede concluirse que SICOM, satisface los requisitos de ayuda a la composición que se establecieron previamente a su desarrollo, se está trabajando en diferentes aspectos que permitan mejorar sus prestaciones. Así, por ejemplo, en futuras versiones se tratará de perfeccionar el tratamiento de la posibilidad de cometer plagio en las composiciones. Actualmente el sistema permite comparar las melodías generadas con las originales utilizadas, comprobando de forma automática si existen grupos de notas consecutivas iguales, así como su localización en las partituras de las melodías implicadas.

Este mecanismo orienta al autor respecto a la semejanza de sus composiciones con otras ya existentes, aunque no informa de la existencia de plagio. De hecho, no existe actualmente normativa en España para cuantificar si esto ocurre; ya que, como se asegura desde la Sociedad General de Autores, es necesario considerar otros factores al margen de la propia melodía, pudiendo incluso ocurrir que existan casos de plagio aún sin coincidencia de notas en las melodías. El desarrollo de un sistema experto que recogiese la experiencia existente en litigios judiciales sobre plagios para aplicarla al estudio de nuevos casos podría ser un interesante tema de investigación.

6. Referencias

[1] Hilera, J.R. y Martínez, V.J. Redes Neuronales Artificiales, Madrid: RA-MA, 1995.

[2] Duff, M.O. "Backpropagation and Bach’s 5th Cello Suite (Sarabande)", Proceedings of the First Int. Joint Conf. on Neural Networks, Washington D.C. (1989), vol. II, 575.

[3] Eberhart, R.C. y Dobbins, R.W. Neural Network PC Tools, San Diego (CA): Academic Press, 1990.

[4] Cantalapiedra, R."Analfabetos como Pavarotti",EL PAÍS DOMINGO, 615 (1997) 8-9.

[5] Rumelhart, D.E.; Hinton, G.E. y Williams, R.J. "Learning Representations by Back-Propagating Errors", en Parallel Distributed Processing: Explorations in the microstructure of cognition. vol.1 (Rumelhart y McClelland eds.), MIT Press (1986) 318-362.

[6] González, R.J. Introducción al Lenguaje Musical, Universidad de Alcalá, 1996. (Disponible en la ayuda de SICOM, en ftp://www.cc.alcala.es/software/sicom.zip).