Las nueve musas
electro

ASP, una Inteligencia Artificial basada en Conocimiento con Aplicaciones en la Producción Musical

Flavio Everardo 1,2,3
1 Universidad de Potsdam, Alemania
2 Tecnológico de Monterrey campus Puebla, México.
[email protected]{cs.uni-potsdam.de;tec.mx}
3 750 Records

1. Introducción

 Era cuestión de tiempo para que la producción musical conociera a la inteligencia artificial (IA).

La era digital la cual nos ha ofrecido desde hace varios años, diversas estaciones de trabajo de audio digital (Digital Audio Workstation o DAW por sus siglas en inglés), instrumentos virtuales, procesadores y efectos, nos ha provisto a los productores musicales de una mayor cantidad de herramientas para trabajar en nuestras creaciones. Sin embargo, como nos es común con una computadora (u ordenador en castellano), nosotros como usuarios debemos de darle las indicaciones (u órdenes) por medio de comandos o instrucciones para que la computadora calcule y despliegue el resultado deseado y la producción musical no está exento de ello. Hasta ahora.

inteligencia artificial

2. Answer Set Programming

Answer Set Programming [1], o ASP, para abreviar, es muchas cosas en una. Por un lado, es una Inteligencia Artificial (IA) basada en conocimiento orientada a resolver problemas de optimización de alta combinatoria. Por otro lado (y más propio), ASP es un formalismo basado en reglas para modelar y resolver problemas combinatorios (de optimización) intensivos en conocimiento. 4

Además del éxito tanto académico como industrial en áreas como planeación, programación de horarios (scheduling), diseño de configuración (usado en sistemas operativos), biología, logística e incluso música [2], lo que hace que ASP sea atractivo es su combinación de un lenguaje de modelado declarativo con motores de resolución  altamente efectivos. Esto permite al usuario concentrarse en especificar un problema en cuestión, en lugar de programar el algoritmo para resolverlo. En resumen, basta con definir el problema, la solución se encuentra de forma autónoma [7].

ASP esta´ diseñado para resolver problemas complejos, donde la mayoría de ellos se encuentran bajo la jerarquía de tiempo polinomial no determinista (non-deterministic o NP) en el área de representación del conocimiento y razonamiento (KRR) [4].

Este tipo de problemas son aquellos que pueden resolverse “fácilmente” si el dominio es pequeño, pero extremadamente difícil cuando aumentan su tamaño.

Un ejemplo de esto es el Sudoku. Un Sudoku con una cuadrícula de 9×9 (dependiendo de la cantidad de números fijos dados como entrada) es posible resolverlo en minutos. Sin embargo, una cuadrícula de 100×100 es otra historia.

Otro ejemplo es la programación de cursos o scheduling. Para un administrador escolar, podría ser fácil asignar profesores, cursos y aulas. Tan pronto como el dominio del problema aumenta (supongamos que una sola universidad con 10 carreras, con 30 cursos para cada carrera, 100 profesores y más de 200 aulas), puede tomar más recursos para resolver. Y, algo similar sucede en la producción musical. Más sobre eso a continuación, pero primero, veamos cómo funciona ASP.

4 Para una lectura introductoria y no técnica de ASP, véase [8].

2.1 ¿Cómo funciona ASP?

En una vista rápida, ASP trabaja con reglas (de diferentes formas) y restricciones. Un solucionador (de ahora en adelante solver) de ASP toma información (conocimiento) como entrada y comienza a propagar lo que sabe para derivar nueva información. Un programa muy básico se ejemplifica a continuación. Consiste en cuatro reglas y un hecho, y podemos leerlas de izquierda a derecha. Vale la pena mencionar que el siguiente código está en el lenguaje del solver de ASP galardonado y vanguardista como clingo [3]. 5 6 7 Por ejemplo, podemos leer que b se vuelve verdadero si se demuestra que a es verdadero. Del mismo modo, c se vuelve verdadero si tenemos evidencia de que tanto a como b son verdaderos y no hay prueba de que f sea verdadero. En otras palabras, f debe ser falso. 8 Las últimas dos reglas son cíclicas las cuales para que sean verdaderas, se necesita probar e para inferir d y viceversa.

Si a se da como un hecho (o es asignado como verdadero como se muestra en la línea 5), la única respuesta (de ahora en adelante answer set) es  {a,b,c} . Otro ejemplo podría ser si tanto a como f se dan como hechos, el único answer set es {a,b,f}. En este caso, c no se puede inferir debido a la existencia de f.

inteligencia artificial

Si desea probar ejemplos en línea de ASP con clingo, vaya a: http://flavioeverardo.com/clingo/

Cambiando de ejemplo, podemos representar una codificación elemental para la composición musical en ASP.

producción musical

La primera línea de la codificación anterior, define una constante de N  tiempos que comienzan desde uno. En este caso, solo hay dos tiempos a tener en cuenta. La línea 3 establece un hecho que dice que queremos componer en la tonalidad de   “do mayor” (“c_major”). Las siguientes dos reglas establecen que un conjunto de no- tas {c;d;e;f;g;a;b} o {d;e;fs;g;a;b;cs}serán ciertas si el modo de composición dado es igual a “c_major” o “d_major” respectivamente. En nuestro caso, nos quedamos con la primera. Luego, la línea 10 es una regla de elección (choice rule), que dice que para cada tiempo T, el solver elije exactamente una nota de la escala de do mayor y la reproduzca en el momento dado. La línea 13 es una restricción que descarta answer sets que repitan notas en tiempos consecutivos T y T+1. Por último, la línea 16 es una instrucción directiva que especifica que el solver solo despliegue o imprima las notas que se reproducen en cada tiempo.

Si ejecutamos este programa, un posible answer set podría ser {play(f,1) play(a,2)} . Sin embargo, podemos pedirle a clingo que calcule todos los answer sets existentes. 9 En este caso, podemos ver que existen 42 answer sets (72 soluciones menos siete descartadas por la restricción).

Cabe mencionar, que este problema sigue siendo pequeño y manejable para un ser humano. Sin embargo, si aumentamos, por ejemplo, los tiempos de composición a 3 y solicitamos todos los answer sets, podemos comenzar a ver que la complejidad aumenta. Ahora tenemos 252 answer sets (73 menos 91 soluciones descartadas por la restricción). 10

Por último, si aumentamos los pasos de tiempo a 6 y luego a 7, el problema se escala a 54,432 y 326,592 soluciones respectivamente.

Podemos ver que una codificación simple puede escalar hacia un gran número de soluciones casi intratables para cualquiera. Sin embargo, solo cambiamos un número de la entrada. Nuestra especificación del problema permaneció igual. Ahora, imagine lo que podríamos hacer si agregamos más características como figuras musicales, silencios, más modos o escalas, diferentes armaduras, o si queremos una composición de 16 compases. El problema se vuelve mucho más complejo.

Ahora que entendemos lo esencial sobre ASP, su funcionamiento y cómo escala con un simple ejemplo de composición musical, permítanme describir en que´ áreas del dominio de la producción musical han surgido por medio de ASP.

5 clingo es un sistema que combina el grounder gringo y el solver clasp.

6 Para obtener más información sobre la sintaxis usada en ASP, particularmente para clingo, consulte [4,5,6]

7 Para más detalles de los trofeos clasp, véase http://potassco.sourceforge.net/ trophy.html.

8 ASP utiliza operadores lógicos como Y (∧), interpretado por una coma, Sí (), interpretado por dos puntos y guión, y la negación (como falla) escrita como not. En una representación formal, reescribiríamos b:- a como b a.

9 Para hacer esto en la versión del navegador, seleccione “enumerate all” en la lista desplegable del modo de razonamiento (reasoning mode).

10 La versión de clingo para navegador esta´ compilada en javascript, por lo que se ejecuta con los recursos de su navegador y no está diseñada para un alto rendimiento. Para problemas más complejos con alto rendimiento, invitamos al lector a probar clingo en su computadora. Para más información visite https://potassco.org/

3. Producción Musical y ASP

Hoy en día, el flujo de trabajo (o la cadena) de la producción musical varía principalmente según el tipo de música a crear. Por un lado, algunos estilos musicales se benefician de un enfoque secuenciado donde se necesitan pocas o ninguna sesión de grabación. Por otro lado, otros estilos necesitan sesiones de ensayo y grabación, con la necesidad de involucrar a más personas durante todo el proceso.

Independientemente de si es uno u otro, el flujo de trabajo de producción musical generalmente consta de cinco etapas, como se muestra en la Figura 1, y son composición, arreglo, diseño sonoro, mezcla y masterización.

answer set programming

La Figura 1 muestra el flujo de trabajo común o estándar para producir música, y esta´ inspirado en los dos flujos de trabajo de Izhaki [9], para música grabada y secuenciada. En términos generales, ambos flujos de trabajo comienzan con la composición y terminan en el proceso de masterización. Para la música secuenciada, las tres primeras etapas están comprendidas en la etapa de producción. Esto se debe a la naturaleza de cómo se crea la música secuenciada. La producción puede verse como un proceso que combina composición de canciones, arreglos y diseño sonoro, donde las herramientas modernas y los DAWs proporcionan medios para mezclar sobre la marcha. Para la música grabada, típicamente, cada etapa debe completarse antes de pasar a la siguiente. La etapa de diseño sonoro comprende el proceso iterativo (o incremental) de grabación y edición hacia un sonido deseado.

ASP y la música se conocieron hace más de una década cuando Anton, el primer sistema de composición musical, salió en 2008. Desde entonces, han surgido trabajos con objetivos completamente diferentes dentro del flujo de trabajo de la producción  musical.

De las cinco etapas de la producción musical de Izhaki, ASP ya ha contribuido de alguna manera en tres, en composición, arreglo y mezcla, las cuales se detallan a continuación.

–Anton – Georg Boenn, Martin Brain, Marina De Vos, and John Fitch [10] 2008). El primer trabajo relacionado con la música usando ASP, siendo capaz de componer música melódica, armónica y rítmica, diagnosticar errores en composiciones humanas y servir como una herramienta de composición asistida por computadora.

–Armin – Flavio Everardo and Antonio Aguilera [11] 2011). Trabajo basado en Anton para componer música electrónica, particularmente una introducción para el género de música trance. Esta herramienta puede componer la progresión de ritmos básicos como punto de partida para los productores de música electrónica.

–AIM – Flavio Everardo [12] 2011). Continuando en la misma línea, AIM pro- pone variaciones melódicas a cualquier composición de entrada dada por el usuario.

–Chasp – Sarah Opolka, Philipp Obermeier, and Torsten Schaub [13] 2015). Un sistema automático de composición musical que crea piezas simples de diferentes géneros que se centran en progresiones de acordes y reglas de armonía.

–Chords Blending – Manfred Eppe, Roberto Confalonieri, Ewen Maclean, Maximos Kaliakatsos, Emilios Cambouropoulos, Marco Schorlemmer, Mihai Codescu, and Kai-Uwe Kuhnberger [14] 2015). Un sistema computacional que inventa nuevas cadencias y progresiones de acordes basadas en la combinación de cadencias básicas y progresiones.

–Lyrics, poetry and music composition – Jukka M. Toivanen [15] 2016). Un sistema de generación de canciones que combina música y letra en una sola fase. La ventaja de este enfoque en comparación con el trabajo previo sobre composición de canciones automatizada es su combinación perfecta de lenguaje y música.

–Haspie – Pedro Cabalar and Rodrigo Martin [16] 2017). Un asistente de armonización musical y composición con varias y mejores características de Anton. Algunos de estos son la armonización preferida y la finalización de partituras. Por supuesto, una composición desde cero también es posible.

–Multitrack mixing – Flavio Everardo [17] 2017). Una propuesta para mezcla estéreo multitrack basado en las mejores prácticas de la literatura. Este trabajo tiene como objetivo demostrar el uso de este enfoque declarativo para lograr una mezcla bien equilibrada. Cuenta con una base de conocimiento de reglas y restricciones sobre lo que los productores profesionales y los ingenieros de audio, sugieren al crear una buena mezcla.

Sin embargo, el diseño sonoro y la masterización con ASP, permanecen como áreas abiertas de oportunidades. Si a alguien le gustaría aventurarse y necesita un punto de partida, no dude en escribirme.

4. Conclusiones

Hace más de una década y sigo creyendo que la combinación de ASP y música todavía está en sus primeros pasos. Queda mucho por hacer para empoderar al productor musical hacia nuevas herramientas para la producción inteligente de música. Nuestro objetivo debe ser ayudar al productor a explorar diferentes alternativas, donde tanto el productor como los sistemas de producción musical (inteligentes) pueden converger. Y no solo eso, sino que proponer nuevas formas de producir música.

Que este artículo sea un punto de partida para motivar a músicos, productores, investigadores o cualquier otro interesado, para seguir impulsando esta área durante la próxima década. Una industria poderosa espera que pongamos algo nuevo sobre la mesa.

Agradecimientos Gracias al profesor Alfonso Molina Ph.D. por invitarme a escribir un artículo sobre el estado del arte que combina mis dos pasiones, ASP y producción musical.

Flavio Everardo

Egresado de la Universidad de Postdam en Alemania y actual Profesor de la Universidad del Tecnológico de Monterrey


Referencias

  1. Lifschitz, : Answer set planning. In International Conference on Logic Programming and Nonmonotonic Reasoning. pp. 373–374. Springer, Berlin, Heidelberg (1999).
  2. Erdem, E., Gelfond, M., and Leone, N.: Applications of In AI Magazine. 37(3) (2016).
  3. Gebser , Kaminski R., Kaufmann B., and Schaub T.: Clingo = ASP + control: Preliminary report. In Technical Communications of the Thirtieth International Conference on Logic Programming (ICLP’14), (2014). Available at http://arxiv.org/abs/1405.3694.
  4. Gebser, M., Kaminski, R., Kaufmann, B., and Schaub, : Answer set solving in practice. Synthesis lectures on artificial intelligence and machine learning, 6(3), 1-238 (2012).
  5. Gebser, , Kaminski, R., Kaufmann, B., Lindauer, M., Ostrowski, M., Romero, J., Schaub, T., Thiele, S., and Wanko, P.: Potassco User Guide. 2 edn. (2019), http://potassco.org
  6. Answer Set Programming at Wikipedia: https://en.wikipedia.org/wiki/Answer_set_programming
  1. Schaub,  Interview  at  University  of  Potsdam:  The  Universal  Problem  Solver  –   “AI Made in Potsdam” on its Triumphal Procession around the World https://www.uni-potsdam.de/en/headlines-and-featured-stories/detail/2019-04-10-the-universal-problem-solver-ai-made-in-potsdam-on-its-triumphal-procession-around-the-
  2. Schaub, T., and Woltran, : Answer set programming unleashed!. KI-Ku¨nstliche Intelligenz, 32(2-3), 105-108, (2018).
  3. Izhaki, R.: Mixing Audio: Concepts, Practices, and Focal (2007).
  1. Boenn, G., Brain, M., De Vos, , and Ffitch, J.: Automatic Composition of Melodic and Harmonic Music by Answer Set Programming. In International Conference on Logic Program- ming, ICLP08. Lecture Notes in Computer Science, vol. 4386. Springer Berlin / Heidelberg, 160–174 (2008).
  2. Everardo, , and Aguilera, A.: Armin: Automatic trance music composition using answer set programming. In Fundamenta Informaticae, vol. 113, no. 1, pp. 79–96, (2011).
  3. Everardo, : A logical approach for melodic variations. In Latin American New Methods of Reasoning, pp. 141–150 (2011).
  4. Opolka, S., Obermeier, , and Schaub, T.: Automatic genre-dependent composition using answer set programming. Proceedings of the 21st International Symposium on Electronic Art. Vancouver, Canada (2015).
  5. Eppe, , Confalonieri, R., Maclean, E., Kaliakatsos, M., Cambouropoulos, E., Schorlemmer, M., Codescu, M., and Ku¨ hnberger, K. U.: Computational invention of cadences and chord progressions by conceptual chord-blending. In Twenty-Fourth International Joint Conference on Artificial Intelligence (2015).
  6. , J. M.: Methods and models in linguistic and musical computational creativity (2016).
  7. Cabalar, , and Mart´ın, R.: Haspie-A Musical Harmonisation Tool Based on ASP. In EPIA Conference on Artificial Intelligence (pp. 637-642). Springer, Cham (2017).
  8. Everardo, : Towards an Automated Multitrack Mixing Tool using Answer Set Programming. In Lokki T., Pa¨tynen J., and Va¨lima¨ki V. (eds.) Proceedings of the 14th Sound and Music Computing Conference. pp. 422–428 (2017).
La revista agradece sus comentarios. Muchas gracias
Avatar
  • ayer-soñe-coverv1-1epub
  • la-cumbre-y-el-círculo-del-fuego

Lo + vendido en amazon

Última actualización de los productos de Amazon en este artículo el 2020-11-23 / Los precios y la disponibilidad pueden ser distintos a los publicados.

  • sociología-y-literatura

Promocionamos tu libro

las nueve musas eddiciones