Crear con código: Max/MSP y Pure Data

reactable_04

Seguimos explorando las posibilidades de la programación creativa por medio de Max/MSP y Pure Data, dos herramientas desarrolladas por un mismo investigador interesado en la música por ordenador. Max/MSP es un entorno gráfico de programación diseñado para proyectos musicales y multimedia. Desarrollado en los años 80 por Miller S. Puckette  en el IRCAM (Institut de Recherche et Coordination Acoustique/Musique) de París, Max está inicialmente vinculado a las investigaciones del instituto en el ámbito de la música electroacústica y de hecho recibe su nombre en honor del pionero de la música por ordenador Max Vernon Mathews. Ampliamente utilizado desde que Puckette lo concibiera como un sistema de creación de música por ordenador para el Macintosh, Max ha sido desarrollado en diferentes versiones, desde la que diseñó IRCAM en 1989 para NeXT, Silicon Graphics y Linux, conocida como Max Faster Than Sound (Max/FTS) a la versión comercial (Max), ampliada por David Zicarelli, que distribuye su empresa Cycling’74 desde 1999, junto a otras versiones como Max/MSP, que introduce en 1997 la posibilidad de manipular señales de audio digital en tiempo real, o nato.0+55creado por Netochka Nezvanova, que permite controlar vídeo en tiempo real y ha sido muy popular entre artistas de nuevos medios hasta principios de la década de 2000. Por otra parte, Puckette también desarrolló una versión completamente nueva de Max, llamada Pure Dataque se ha consolidado como una alternativa de código abierto a Max/MSP. Tanto Max/MSP como Pure Data permiten al usuario procesar señales de audio y vídeo en tiempo real y conectar diversos objetos. Por tanto, no son simples editores de audio o vídeo, sino que llevan a cabo todos sus procesos en tiempo real, a la manera de un instrumento que puede ampliarse de diversas maneras. Por ejemplo, Max/MSP puede conectarse con otros sistemas y dispositivos tales como un controlador MIDI (con el que se pueden ejecutar acciones mediante botones, diales o teclados), una placa Arduino (que permite interactuar con sensores electrónicos, motores y otros componentes), sintetizadores, sistemas de iluminación interactivos y reactivos (que responden a la música), proyectores de vídeo, instrumentos musicales, micrófonos y un largo etcétera. Actualmente, Max es compatible con MacOS X y Windows, mientras que Pure Data puede instalarse en los sistemas operativos MacOS X, Windows y Linux.

max-msp

Un vistazo a Max/MSP

Al igual que otros entornos de programación que hemos comentado en esta serie de artículos, Max permite crear sin necesidad de conocimientos previos sobre escribir código. Max se divide en varias partes: “Max” se encarga de las operaciones de cálculo y MIDI, “MSP” procesa señales y audio, y “Jitter” se centra en la manipulación de vídeo y gráficos. Al abrir el entorno de programación, creamos un programa (patch), en el que se agrupan las diferentes instrucciones que deberá ejecutar la máquina, ya sea para producir sonido, manipular señales de vídeo o producir una determinada interacción. Dicho programa se presenta como una hoja en blanco en la que se van añadiendo objetos con diferentes funciones. Estos objetos se conectan entre sí por medio de líneas que se extienden desde uno de los enlaces de salida de un objeto a un enlace de entrada en otro, estableciendo una relación unidireccional de control o transmisión de datos. De esta manera, cada programa se configura visualmente como un esquema formado por diversos objetos (diminutas cajas) y las relaciones entre ellos (líneas) en un espacio que se va adaptando a la complejidad de las instrucciones que se escriben en él. La interfaz visual permite aquí manejar los diferentes elementos de manera más intuitiva y examinar cómo se ha construido el proceso que genera el programa para modificarlo o corregir errores.

La flexibilidad de este sistema permite construir lo que puede considerarse como un instrumento, que puede ejecutarse en tiempo real, lo cual permite efectuar cambios y conocer los resultados de manera inmediata. Así, es posible crear una composición de audio o vídeo que se crea automáticamente a partir de determinados inputs, tales como datos recogidos en tiempo real de diversas fuentes, con lo cual se obtiene una pieza generativa o interactiva. Por ejemplo, en Synaesthetic Object (Coltrane)el artista R.Luke Dubois (co-creador de Jitter), crea una performance audiovisual empleando un análisis computerizado del álbum Ascension (1965) del músico John Coltrane para generar una forma en 3D en tiempo real. Controlando diversos parámetros, el artista manipula la forma en 3D, que a su vez genera diferentes sonidos en función de su continua alteración de aspecto. El propio Dubois explica el funcionamiento de Max/MSP en una conferencia acerca de su trabajo (vídeo inferior).

 

Como hemos indicado anteriormente, Max/MSP amplía sus funciones gracias a su capacidad para conectar diversos objetos entre sí y los diferentes dispositivos que puede controlar. Amanda Ghassaei describe algunos de estos dispositivos y herramientas, como ReacTIVision, una herramienta de código abierto que, combinado con Max/MSP, permite captar la posición de objetos dotados de marcadores por medio de una cámara, de manera que es posible manipularlos para modificar una composición en tiempo real u obtener una instalación interactiva. Creada para ReacTable, un instrumento de música digital que se manipula por medio de varios objetos dispuestos sobre una mesa, es una herramienta útil para crear interfaces basadas en objetos físicos. Un popular dispositivo que puede conectarse con Max/MSP es XBox Kinect. Ideado para la consola de videojuegos de Microsoft, esta cámara con sensores de movimiento permite seguir con precisión los movimientos de las distintas partes del cuerpo. También las placas Arduino permiten crear instalaciones interactivas e incorporar numerosas funciones a objetos y sensores.

Un vistazo a Pure Data

Como hemos comentado más arriba, Pure Data (Pd) es básicamente la versión gratuita y de código abierto de Max/MSP, escrita principalmente por su creador Miller Puckette. También está pensada para que artistas visuales y músicos puedan crear software sin escribir código a fin de procesar y generar sonido, vídeo, gráficos 2Dy 3D, interfaces y MIDI. Pd se distribuye en dos versiones: Pd vanilla, centrado en señales de audio y procesos MIDI, y Pd extended, que incluye un gran número de librerías escritas por la comunidad de colaboradores y puede emplearse para procesar gráficos, streaming audiovisual, uso de sensores, etc. La ventaja de Pd es su compatibilidad con múltiples plataformas (GNU/Linux, Windows y MacOSX) y dispositivos (Raspberry Pi, ordenadores portátiles y de sobremesa, tablets y smartphones), por lo cual es muy popular entre artistas visuales que trabajan con nuevas tecnologías, particularmente en proyectos generados a partir de flujos de datos. Un ejemplo de ello lo encontramos en la pieza Flux of the Sea (2011) de Mar Canet y Varvara Guljajeva, que genera una composición sonora a partir de la posición de los barcos en un puerto, empleando los datos obtenidos con un radar AIS.

visualizationFluxSea-1024x768

Al igual que Max/MSP, Pd emplea un lenguaje de programación de flujo de datos, en el qual se colocan una serie de objetos (funciones algorítmicas) en un “lienzo” y se conectan entre sí por medio de líneas que determinan cómo fluyen los datos de un objeto a otro. Cada objeto ejecuta una tarea específica, desde operaciones aritméticas a funciones complejas de audio o vídeo como decodificación de vídeo o reverberación. Pd se beneficia de los numerosos programas que han creado los desarrolladores y artistas que lo emplean, lo cual permite trabajar con cualquiera de estos “patches” y aplicarlo, con o sin modificaciones, en un proyecto nuevo.

Tanto Max/MSP como Pure Data cuentan con numerosos recursos de información y tutoriales que pueden consultarse en sus respectivas webs. Con todo, la mejor manera de conocer estos programas es explorar los usos que hacen de ellos artistas visuales y músicos en los vídeos sobre Pure Data colgados en Vimeo y YouTube y los recursos “Made with Max” y “Projects” en la web de Cycling’74.