Máquinas que escuchan y (re)suenan en la libre improvisación

Por Aarón Escobar

Este texto es parte de una investigación mayor en la cual analizo desde la práctica creativa la relación humano-máquina en la generación de sonido-música y la escucha artificial ligada a la programación. Me interesa cuestionar si una computadora puede generar una estética automática a partir de ciertas reglas que le son dadas y, más específicamente, si es capaz de comunicar algo que no conozcamos partiendo de su relación e interacción con lo humano.

Si bien las máquinas podrían parecer algo ajeno y distante a nuestros cuerpos y mentes, basta con remontarse un poco en la historia para notar que las máquinas han estado presentes en nuestra vida desde mucho tiempo atrás, moldeando la forma en la que entendemos y nos acercamos al mundo. Las máquinas evolucionan y cambian conforme a las necesidades y nuevos retos que la vida plantea, desde las herramientas que extienden nuestra fuerza y habilidades, a la automatización y simulación de dichas herramientas, que permiten construir y albergar otras realidades. Asimismo, las máquinas –como la computadora donde escribo este texto – se hacen cada vez más indispensables en nuestras vidas, son herramientas útiles que nos ayudan a resolver problemas de formas más sencillas e incluso a entretenernos. Pero no todo es blanco sobre negro, las máquinas también refuerzan en nosotros conductas negativas, como el determinismo excesivo generado por su automatización, o la distorsión de los procesos comunicativos entre las personas. Siendo las máquinas una extensión de la condición humana que procura imitar o incluso exceder su propia capacidad ¿cómo nos relacionamos con ellas?, ¿implican un riesgo para nuestra existencia o la extienden sin que seamos conscientes de ello?, ¿qué modifican en nosotros, en nuestras interacciones con otros y con otras máquinas? ¿qué implica que una computadora que reconoce información dada por el humano interactúe con él y consigo misma?

La manera en que recibimos e interpretamos información de la realidad o de las máquinas involucra necesariamente varios procesos subjetivos como la asimilación, el escrutinio, el análisis, la empatía, etc. que posibilitan la comunicación, sin embargo no siempre ocurre así, al escuchar, leer, sentir o ver no necesariamente se cumple el proceso básico de la comunicación. Puedo incluso estar escuchando algo sin siquiera estarlo interpretando, entendiendo, o atendiendo, y pasa igual con los otros sentidos. La escucha de un sonido reproducido por una computadora requiere de mí un cierto tipo de reacción o atención, que puede ser entendido como la resonancia que el sonido produce en mí y que hace vibrar mi cuerpo, violentándolo si la intensidad sonora es muy alta. La resonancia de un sonido sería ese algo que reacciona en mí y en el espacio, independientemente de la intencionalidad o no intencionalidad del sonido. La resonancia también se relaciona con la posibilidad de un sonido para volver a sonar o hacer sonar al mismo cuerpo que lo produce y a otros cuerpos vibrantes, generando una interacción entre ellos. Una resonancia vibrante sería aquella que hace vibrar ininterrumpidamente a un cuerpo. Imaginemos una cuerda de un bajo o una guitarra eléctrica que comienza a vibrar por empatía consigo misma de manera ininterrumpida, lo que estaríamos presenciando en ese preciso momento es la resonancia vibrante. ¿Qué tiene que ver la resonancia con las máquinas y cómo las máquinas podrían (re)sonar? El dato en la máquina digital puede adoptar múltiples formas, ya sean sonoras, visuales, o que funcionen para la activación de algún tipo de mecanismo. En casi todos los niveles de programación podemos encontrar características en donde las mismas entradas modifican a las salidas y éstas a su vez son enviadas nuevamente a las entradas del sistema con el fin de corroborar información y generalmente optimizarla o realizar un proceso iterativo que permita al sistema ejecutar alguna operación numérica. De manera similar a este proceso el sistema que estoy realizando integra procesos iterativos en su construcción. Una parte importante de este sistema de máquinas que escuchan es el momento en el que la supuesta escucha de la máquina, analiza el/los sonidos que entran y comienza a reaccionar de diferentes maneras de acuerdo con dichos sonidos. Esa reacción sonora sería la forma en la que la máquina incide en y modifica el espacio y su fiscalidad debido a las vibraciones que produce. Si la interacción entre el espacio y la máquina vuelve a entrar al sistema de la máquina de escucha y el mismo proceso anterior se repite, podríamos hablar del fenómeno de retroalimentación, en donde la máquina comienza a estimular y auto-estimularse por el efecto de la retroalimentación y la resonancia producida al cuarto o el espacio en donde se encuentre. Cuando entra el factor humano al sistema e interactúa con éste, la relación que se establece entre máquina-humano implica una retroalimentación que posibilita la apertura de canales de comunicación donde la actividad sonora afecta al espacio y a los cuerpos, generando su mutua resonancia.

Máquinas que escuchan: antecedentes

Las máquinas que escuchan pueden ser entendidas como software y hardware que busca simular la forma en la que escuchamos los humanos. A partir de varios métodos desarrollados junto con los avances en la anatomía humana y las tecnologías de grabación, manipulación, reproducción y transmisión de sonido, fueron poco a poco configuradas y encapsuladas en modelos computacionales que actualmente pueden ser encontrados como parte de programas dedicados al análisis y la producción sonora.

El ingeniero Paris Smaragdis del MIT se refiere a ellas como software que aprovecha las cualidades del sonido para ubicar personas dentro de un cuarto, monitorizar maquinaria para evitar posibles fallas, o activar cámaras para grabar un determinado momento en el que ocurre algo importante. Las máquinas que escuchan no solo son capaces de discernir entre fenómenos acústicos sino también son capaces de diferenciar entre información más abstracta que responde a contextos humanos específicos; por ejemplo, análisis de datos enfocados en aplicaciones médicas, seguridad, vigilancia, censado y clasificación, todas con finalidades comerciales y de control. También pueden detectar mecanismos cualitativos como los fenómenos psicoacústicos de percepción sonora humana como los desarrolla Eric Sheirer en su tesis doctoral Music-Listening Systems. Otros trabajos importantes serían las investigaciones e implementaciones computacionales realizadas por Nick Collins; Automatic Composition of Electroacoustic Art Music Utilizing Machine Listening, Live Coding and Machine Listening, Musical Robots and Listening Machines y su tesis doctoral titulada Towards Autonomous Agents for Live Computer Music: Realtime Machine Listening and Interactive Music Systems. Otra tesis relevante es Real-time Human Interaction with Supervised Learning Algorithms for Music Composition and Performance de Rebecca Fiebrink.

Analizar e interpretar sonido y música a partir de una computadora ha sido una tarea recurrente ejecutada desde la Segunda Guerra Mundial cuando Alan Turing estudiaba sistemas de desciframiento y decodificación para interceptar y entender los canales de información nazis que fueron determinantes en las estrategias de guerra de Inglaterra. Más adelante en los noventa los desarrolladores de software pudieron integrar algoritmos mucho más complejos debido al rendimiento que los microprocesadores aportaban a las computadoras que para ese momento ya eran capaces de procesar audio en tiempo real. El poder de procesamiento de las computadoras fue creciendo enormemente en pocos años y las capacidades de manipulación de los medios digitales se vieron enormemente afectadas, la forma en la que se genera la música y el sonido comenzaría a estar mediada completamente por la capacidad de procesamiento y algoritmos súper sofisticados.

Las máquinas que escuchan actualmente son capaces de distinguir cualidades acústicas y contextuales; la voz en distintos idiomas, el sonido de un instrumento, su amplitud, forma temporal o envolvente, ritmo y algunas cualidades más relacionadas con la tonalidad musical. Estos algoritmos de identificación de algunas características en el sonido y la música no serían capaces de discernir entre varios contextos como un cierto tipo de música sin un componente esencial que es el cerebro de la máquina conocido como Inteligencia Artificial. Similar al la forma en la que procesamos información, la Inteligencia Artificial está inspirada en las múltiples y complejas interconexiones de las neuronas de cerebros biológicos, capaces de relacionar una información con otra y reaccionar de acuerdo con ciertas reglas de operación. En ciencias de la computación se conocen como redes neuronales artificiales y su característica más importante es que pueden aprender de forma conjunta a través de ciertas entradas que el usuario o el programador inserta en la red. Este tipo de programación se ha vuelto muy popular en la detección de características de sistemas de información altamente complejos. Dependiendo de la complejidad del problema a resolver, las redes neuronales pueden ir de “unos pocos miles a unos pocos millones de unidades neuronales y millones de conexiones”, por mucho menor a la complejidad existente en un cerebro humano y similar a la complejidad del cerebro de un gusano.

Hoy día, las investigaciones existentes en el campo de la recuperación de información musical (Music Information Retrival, MIR) están enfocadas en la creación y el análisis de algoritmos con muy diversos fines como los mencionados anteriormente. Estos algoritmos identifican información relevante de audio, la cual extraen en grandes cantidades para almacenarla en listas de valores separados por comas (csv por sus siglas en inglés). Esta información tiene que ser analizada y organizada en clases -proceso conocido como entrenamiento o training- con programas de máquinas que aprenden o machine learning. Entre los programas utilizados están WEKA, desarrollado por la Universidad de Weikato, Nueva Zelanda y Tensorflow, un lenguaje de programación desarrollado por Google.

Las recientes aproximaciones al reconocimiento de señales de audio están mayoritariamente centradas en desarrollar sistemas para el control, la vigilancia, el análisis clínico, el reconocimiento de géneros basados en un corpus musical con propósitos comerciales. Este tipo de aproximaciones basadas en la detección y clasificación de diferentes componentes en la señal de audio, se resisten a entablar un diálogo en el campo estético de las prácticas sonoras, como la música académica contemporánea, el free jazz o la libre improvisación. En el caso especifico de la improvisación libre, donde pareciera no haber una estructura ni una forma muy claras, donde las interacciones parecen ser difusas y las características tímbricas responden a una necesidad que va más allá de los timbres tradicionales de una orquesta, surgen resultados emergentes no predecibles a partir de la interacción entre varios músicos a distintos niveles. Esta interacción resulta tan compleja que un algoritmo lo suficientemente sofisticado se puede confundir enormemente al tratar de distinguir diferentes características sonoras.

Considerando estas dificultades técnicas, ¿de qué forma un programa de computadora podría ser capaz de interactuar en una improvisación libre consigo misma y con otro(s) músicos, así como autorregular su comportamiento a través del reconocimiento de diferentes estados/momentos musicales o sonoros, a modo de entrar en resonancia con ellos?

Para que las máquinas que escuchan y las máquinas que aprenden resuelvan adecuadamente un problema de esta magnitud es necesario usar redes neuronales de aprendizaje profundo. Estas integran múltiples capas de redes neuronales que extraen la información de forma no-lineal, es decir, cada capa sucesiva de información procesada usa la salida de la capa anterior como una nueva entrada a procesar.

En el trabajo realizado hasta ahora, he suministrado al sistema diferentes ejemplos de grabaciones solistas de improvisación libre, segmentando y clasificando manualmente breves momentos de la improvisación que responden a cualidades subjetivas del timbre, como son los materiales o instrumentos usados para tocar –metal, madera, vidrio, plástico, hoja, tela y silencio, así como cualidades de brillo, opacidad, aspereza o sonido alisado y amplitud (volumen) de los sonidos. Asimismo, sigo explorando de qué forma integrar el aprendizaje profundo al análisis de improvisaciones libres. Las herramientas con las que he trabajado hasta el momento son la librería de SuperCollider SCMIR (SuperCollider Music Information Retrival) y varios objetos de máquinas que escuchan nativos a SuperCollider con los cuales he podido extraer y hacer análisis de audio. Para entrenar y clasificar estos análisis he integrado los algoritmos de máquinas que aprenden de WEKA, así como una versión más limitada pero bastante potente desarrollada por Rebecca Fiebrink, llamada Wekinator. Cabe señalar que otros componentes importantes a analizar y que aún están pendientes son los roles de interacción de los músicos (propositor, facilitador, irruptor, egoísta acompañante, solista), la densidad sonora resultante, ritmo, secuencias melódicas y el humor.

Las formas de reaccionar del sistema estarían mediadas necesariamente por un análisis de lo que escucha e interpreta; en este sentido si la máquina detecta la suma de varios de los componentes arriba mencionados, respondería a través de diferentes técnicas de síntesis de audio. Esta parte resulta una tarea bastante ardua, ya que implica la composición de estos sonidos y su respectiva programación o generación de reglas para ser activados, de manera que la máquina pueda fijar un rol de interacción con otros músicos.

Para concluir les comparto algunos ejemplos de los archivos de audio clasificados y el código del proyecto en SuperCollider, así como ligas a algunos de los programas ya explorados en el curso de este proyecto.

Enlaces

LiveCodeNet Ensamble. Construyendo la red para explorar las posibilidades del live coding en grupo.

Por Hernani Villaseñor Ramírez

¿Qué es LiveCodeNet Ensamble? es un grupo de personas que se junta a improvisar música con sus computadoras mediante el uso de código a través de la práctica de programación conocida como live coding. El código entendido como una serie de instrucciones dirigidas a la computadora que se escriben en un lenguaje de programación específico en forma de algoritmos, y live coding como la posibilidad de modificar un programa de computadora mientras está corriendo. Esta improvisación con código la realizan de manera interconectada a una red local, es decir, los integrantes del ensamble conectan sus computadoras entre sí para comunicarse durante los ensayos o presentaciones. ¿Podría decirse que LiveCodeNet es un ensamble de música? LCNE puede definirse dentro de la categoría de banda de laptops, la cual Shelly Knotts y Nick Collins (2014) definen como “un grupo de tres o más músicos que tocan en vivo y para quienes la computadora portátil es la principal fuente generadora de sonido y que típicamente tocan juntos en el mismo espacio.”

Desde su formación en octubre 2013 LCNE se ha dedicado improvisar con código en festivales, eventos, fiestas y sesiones de live coding dentro de espacios institucionales e independientes. Recientemente el ensamble ha extendido su práctica al desarrollo de herramientas que cubren sus necesidades de interconexión. Sus integrantes actuales son Libertad Figueroa, Emilio Ocelotl, José Carlos Hasbun, Eduado H Obieta y Hernani Villaseñor, en un inicio también participó Katya Alvarez.

lcne-1

¿En qué contexto surge LCNE? Este ensamble no puede entenderse fuera de la escena local de live coding de la ciudad de México activa entre el 2011 y el 2014 en el Centro Multimedia con sede en el Centro Nacional de las Artes de México, promovida por el Taller de Audio quien organizó varias sesiones de live coding y tres Simposios Internacionales dedicados a la música por computadora. Así, es durante este periodo y a la par de estos eventos que los integrantes del ensamble comienzan a ensayar.

La práctica de improvisación de LCNE resulta en sonidos electrónicos producidos por la computadora en respuesta al código y se materializa en estructuras rítmicas y capas de sonido. Aunque no hay estructuras formalizadas, es decir, una actividad de composición o creación de piezas específicas, existe una planeación antes de cada concierto en la cual participan los integrantes del ensamble para decidir que rumbo tomará la improvisación. Una improvisación del ensamble puede tomar dos direcciones, una donde la rítmica tiene prioridad y otra donde la exploración sobre el sonido digital prevalece. Hablar de que no existe una composición previa no quiere decir que todo se resuelve al momento de la presentación, cada integrante tiene ya sus instrumentos programados y las decisiones en el momento de la improvisación más bien se encaminan a decidir que instrumento usar, entendiendo por instrumento código organizado por varios parámetro modificables, el cual es programado en SuperCollider, aunque en algunas ocasiones la improvisación consiste en programar todo el código sonoro y sus estructuras en el mismo momento, o sea una programación desde cero.

Siguiendo el formato de las presentaciones de live coding, el ensamble hace visible su código para que la audiencia pueda ver su proceso de escritura al momento que éste es programado por los improvisadores-programadores o livecoders. En este caso, en el que hay cinco computadoras en el escenario, se proyecta solo la pantalla de una o a veces dos si hay un segundo proyector. Podríamos preguntarnos ¿es relevante proyectar el código a la audiencia? Uno de los argumentos del live coding es que al proyectar el código se hace participe del proceso al público. Aunque la audiencia no entienda la programación o pueda seguir el código, al menos se trata de transparentar lo que sucede en el proceso de pensamiento y creación de los livecoders. Sin embargo, para el ensamble proyectar su código no es un factor determinante para llevar acabo un presentación.

lcne-2

La escucha, o escuchar a los otros integrantes durante las presentaciones, es de gran relevancia en la práctica de LCNE, puesto que, además de una red de interconexión entre computadoras que permite realizar una práctica grupal, la escucha permite generar puntos de referencia y un entendimiento sobre el resultado musical y sonoro al momento de improvisar con código, la escucha es un aspecto que junto a la programación construye la práctica de improvisación sonora con código. Aunque el consenso es programar algoritmos sonoros juntos, escuchar juntos también define el rumbo que toma cada improvisación.

Graham Booth y Michael Gurevich (2012) describieron la actividad del ensamble Birmingham Laptop Ensemble o BiLE mediante una estudio con una metodología etnográfica. En ese estudio detectaron tres roles en el trabajo de caracterización de BiLE, los cuales son: compositor, ejecutante y diseñador de infraestructura.

Aunque las categorías descritas por Booth y Guervich (2012) no se adaptan del todo a LCNE, la descripción que realizan sobre el ensamble BiLE arroja como resultado el hecho de que existen o se asumen roles por los integrantes de un grupo, los cuales son cambiantes y dinámicos. Por ejemplo, en el caso de BiLE, un integrante asume el rol de compositor en una pieza específica mientras que en otra podría asumir el de diseñador de la infraestructura de interconexión.

De manera similar, en LCNE se asumen roles entre sus integrantes, a grosso modo, se puede mencionar que el rol de compositor no es tan explícito en LCNE puesto que su actividad está orientada a la improvisación, aunque, como mencionan Booth y Gurevich (2012), a veces la composición es solo plantear una idea para el desarrollo de una pieza. Dentro de LCNE más bien se puede hablar de un rol activo de improvisador que caracteriza a todos sus integrantes.

Aunque la actividad de LCNE se ha enfocado a la improvisación en vivo, actualmente el ensamble desarrolla infraestructura de red, en este caso el rol de diseñador se centra en un persona quien programa casi en su totalidad la herramienta mientras que las demás aportan al proceso con su revisión, detectando fallas, sugiriendo nuevas funciones o programando algunos detalles.

Booth y Gurevich (2012) hacen una distinción entre diseño de infraestructura y diseño de instrumentos. En el caso de LCNE, al igual que en el de BiLE, cada integrante desarrolla sus propios instrumentos para improvisar, es decir, los instrumentos con los que toca cada integrante son independientes de la infraestructura de red aunque están diseñados para funcionar dentro de ésta, al respecto Booth y Guervich (2012) mencionan que el desarrollo de instrumentos propios es lo que fomenta “riqueza e individualidad” dentro de un ensamble.

En el desarrollo de infraestructura de LCNE, aunque una persona asume el rol de diseñador, su actividad se vuelve grupal, de manera posterior, pues los resultados se socializan y el código de la infraestructura se abre a la colaboración de los demás integrantes. Booth y Gruevich (2012) llaman al diseño donde intervienen todos los integrantes de un ensamble “sistemas socialmente construidos” los cuales están basados en la colaboración.

Un rol que está presente en LCNE, que no es mencionado por Booth y Guervich, es el de organizador o gestor de actividades, este rol puede ser asumido por un integrante distinto cada vez que se realiza una nueva actividad, en tal caso, la persona que asume este rol se encarga de organizar lo que concierne a la actividad en curso.

Un ejemplo es “Códigos dislocados: sctweets colaborativos” una serie de códigos sonoros que se programarán de manera colaborativa durante la 9a Muestra de Arte Sonoro e Interactivo In-Sonora. Esta participación consiste en realizar una residencia virtual en la cuenta de Twitter de dicho festival. Para llevar a cabo este proyecto se utilizará el programa Tweetensamble, el cual es desarrollado especialmente por el ensamble para esta ocasión. En esta actividad se pueden detectar distintos roles del ensamble: el de quien propone la idea de realizar pequeños códigos colaborativos para ser publicados en Twitter, el de gestor que aplica a la convocatoria de In-Sonora y mantiene comunicación con el festival, el del diseñador de Tweetensamble quien se encarga de programar esta herramienta y encontrar la forma de socializarla con los demás y el de improvisador quien programará códigos sonoros de manera grupal para se publicados en Twitter.

Por último, cabe mencionar que en los primeros conciertos de LCNE se utilizó una infraestructura de red propia, es decir, un código de interconexión adaptado a las necesidades del ensamble, en ese primer periodo había una exploración de la infraestructura de la red muy amplia por parte del ensamble, aunque demandaba mucho tiempo alejándolo de una exploración artística. Posteriormente el ensamble comenzó a usar la herramienta llamada MandelHub, la cual fue desarrollada por la banda de laptops Benoît and the Mandelbrots, con la cual LCNE ha podido tocar de manera sincronizada y sin preocupación por los aspectos técnicos de interconexión, esto ahorra trabajo pero se pierde cierta autonomía e invención sobre como pensar, abordar y diseñar la red, cómo construir la red, la red de LCNE.

A manera de conclusión, LiveCodeNet Ensamble se puede definir como una banda de laptops que se dedica a realizar live coding de manera grupal y conectada en red. Principalmente se dedica a improvisar con código, aunque recientemente el ensamble ha retomado la práctica de diseño de infraestructura, que le permite programar herramientas de interconexión basadas en sus necesidades e idiosincrasia, así como explorar la idea de crear una red de colaboración que implica música, programación y la red como instrumento musical y obra artística.

Bibliografía

Booth, G. y Gurevich, M. (2012). Collaborative composition and socially constructed instruments: Ensemble laptop performance through the lens of ethnography. Documento presentado en 12th International Conference on New Interfaces for Musical Expression, Ann Arbor.

Knotts, S. y Collins, N. (2014). The Politics of Laptop Ensembles: A Survey of 160 Laptop Ensembles and their Organisational Structures. Doumento presentado en 14th International Conference on New Interfaces of Musical Expression, Londres (191-194). Goldsmiths Unversity of London.

Live coding. (s.f.). Recuperado el 15 de agosto de 2015, de https://en.wikipedia.org/wiki/Live_coding

Revista digital sobre música en la cultura “A Contratiempo”

portada25def

¡Hola a todxs!

Les quiero compartir la revista digital colombiana sobre música en la cultura “A Contratiempo”.

Ojalá encuentren muchas lecturas que les interesen y que abonen a sus propias búsquedas.

http://www.territoriosonoro.org/CDM/acontratiempo/

¡Saludos!

Mercedes Payán.