Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

jueves, 2 de abril de 2015

Música algorítmica en Python

Desde hace tiempo no he agregado más entradas al blog porque quiero empezar a hablar de la necesidad de hacer música sin usar la escala temperada, incluso, de no usar ninguna escala y moverse en un espacio sonoro continuo. Un ejemplo claro de música sobre un espacio sonoro continuo es Ionization de Edgar Varèse, obra hecha para instrumentos de percusión y donde el autor incluye un par de sirenas y el piano sólo interviene para producir unos racimos ("clusters") explosivos, efectos más cercanos al ruido que a lo que tradicionalmente llamamos sonido musical.

Sin embargo, en una conversación me comentaron el interés de hacer música usando python, un lenguaje de programación de propósito general muy usado en la actualidad. Hasta hace poco, sólo había trabajado composición algorítmica en Lisp, uno de los lenguajes de programación más antiguos, pensado originalmente para hacer inteligencia artificial. Pero, no me acuerdo cómo, me topé con una biblioteca en python llamada pyknon, escrita y mantenida por Pedro Kroger, quien es además autor de Music for Geeks and Nerds, un libro editado en formato pdf.


Aunque es suficiente la información incluida en pyknon para familiarizarse con el uso de python para hacer música algorítmica, es sumamente enriquecedora la lectura de Music for Geeks and Nerds. Es un texto muy fresco, que puede leerse en una tarde (si se tiene conocimientos mínimos de música y programación). No hay que dejarse engañar por lo ligero del estilo de Kroger, pues el texto presenta en forma clara y precisa la idea esencial de la música algorítmica: encontrar el proceso detrás de la composición. En términos algorítmicos esto significa encontrar el filtro preciso que seleccione entre un flujo aleatorio de notas cuya duración y secuencia han de producir el efecto deseado. Usando la escala temperada esto es relativamente simple, pues trabajamos con doce notas, cada una de las cuales podemos representar con un número natural. Luego, ese número lo proyectamos sobre el espacio abierto por el conjunto de notas midi, cada una de las cuales también está identificada por un número natural. Por ejemplo, el do central del piano es la nota midi número 60.

Kroger es claro en su propuesta: valerse de la capacidad representativa o posibilidades simbólicas de un lenguaje de programación para entender conceptos musicales fundamentales. Por ejemplo, en Caleb Madrigal hay un script escrito en phyton que usa pyknon para ofrecer una comprensión de ciertos conceptos musicales, como intervalos y acordes. No es una idea original de Kroger. Es la idea que ha orientado muchas investigaciones en el campo de la ciencia cognitiva: la posibilidad de reproducir computacionalmente lo que hacemos con nuestra mente. Esto ofrece una comprensión muy precisa de los procesos mentales implicados en la producción de decisiones y acciones inteligentes. Podemos entonces usar el éxito de la implantación computacional de estos procesos como un criterio importante en la evaluación de nuestras conjeturas acerca de lo que sean los procesos mentales implícitos, por ejemplo, en la creación musical. En cierto sentido, esta ha sido la propuesta de Marvin Minsky ("Music, Mind and Meaning", en Clynes (ed) (1982) Music, Mind, and Brain: The Neuropsychology of Music. NY, Springer).


Es increíble que una idea que hoy nos parezca tan simple haya sido lo que prácticamente dio al traste con la psicología conductista en favor de la cognitiva: entre la percepción pasiva y la consecuente reacción existe algo que los conductistas no aceptaban, simplemente porque no lo consideraban observable: los procesos mentales. Los incipientes descubrimientos en teoría de la información y en inteligencia artificial permitieron entender el carácter material de los procesos mentales, entenderlos como entidades físicas.

Hacer música dodecafónica con un sistema algorítmico es relativamente trivial. Yo mismo he escrito una serie de rutinas en Lisp que, agregadas al sistema Common Music, y usando otros programas del sistema (Linux o Windows), genera al azar una serie dodecafónica, en sus diferentes configuraciones, las guarda en un archivo gráfico en formato png, puede crear frases con cierto sentido musical en el estilo expresionista.

A mí me resulta apasionante esta manera de hacer música, donde en vez de invocar a las musas sentado frente a un piano rasguñando acordes (lo cual no deja de tener un encanto especial), estamos ante a esta máquina de calcular y conjuramos ideas musicales a través de conjeturas matemáticas y algoritmos. Quizá sea la novedad. Pero reconozco que hay muchos que la rechazan de entrada y no aceptan que sea un modo de aproximación a la creación musical. Es un tema que quizá discuta luego. En lo personal, esta pasión quizá coincida con mi interés por la programación y la lógica. Realmente, la computadora, lo mismo que la lógica, es sólo un instrumento, una herramienta, y como tal no debería ser sino un amplificador de nuestra potencialidad. Lo que sí criticaría de este enfoque de la música algorítmica es que pareciera limitarse a lo que podríamos llamar una sintaxis del material, es decir, la música algorítmica, en la medida que trabaja con sonidos discretos y preestablecidos, generalmente tomados de alguna escala, al hacer abstracción de sus cualidades concretas y materiales tiende a quedarse en un plano combinatorio, centrado en cómo ordenar lineal y rítmicamente una serie de eventos abstractos, descuidando muchas posibilidades estéticas de los sonidos. En esto también resulta útil la computadora, la programación y la lógica, pero bajo otro enfoque.

Referencias

Pedro Kroger: Music for Geeks & Nerds. Learn more about music with Python and a little nit of math.

Manfred Clynes (ed) (1982) Music, Mind, and Brain: The Neuropsychology of Music. The neuropsichology of music. N.Y.: Springer, 1982.

No hay comentarios:

Publicar un comentario