2. Crear con código

2.2. Herramientas de programación creativa

2.2.4. MaxMSP/PureData

MaxMSP y PureData son dos herramientas desarrolladas por Miller S. Puckette, un investigador interesado en la música por ordenador. Puckette crea en los años 80 el software Max como parte de su trabajo de investigación en música electroacústica en el IRCAM (Institut de Recherche et Coordination Acoustique/Musique) de París y, de hecho, bautiza el software en honor al pionero de la música por ordenador Max Vernon Mathews. El software, creado para MacOS, es ampliamente utilizado y se desarrolla posteriormente en varias 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+55, creado por Netochka Nezvanova, que permite controlar vídeo en tiempo real y ha sido muy popular entre artistas de nuevos medios hasta principios de 2000. Por otra parte, Puckette también ha desarrollado una versión completamente nueva de Max, llamada Pure Data, que se ha consolidado como una alternativa de código abierto a Max/MSP.

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

Max se divide en varias partes:

  • Max: operaciones de cálculo y MIDI.
  • MSP: procesamiento de señales y audio.
  • Jitter: 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.

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 (cocreador 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.

Además de su capacidad para trabajar con contenidos generados en tiempo real, Max/MSP destaca por su capacidad para conectar diversos objetos entre sí y controlar diferentes dispositivos. ReacTIVision es una herramienta de código abierto que, combinada 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. Otro dispositivo compatible con Max/MSP que ha sido muy popular es XBox Kinect, ideada 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 es posible emplear las placas Arduino, que permiten crear instalaciones interactivas e incorporar numerosas funciones a objetos y sensores.

Pure Data

Pure Data (Pd) es básicamente la versión gratuita y de código abierto de Max/MSP, escrita principalmente por su creador Miller S. Puckette. También está pensada para que artistas visuales y músicos puedan crear software sin escribir código con la finalidad de procesar y generar sonido, vídeo, gráficos 2D y 3D, interfaces y MIDI. Pd se distribuye en dos versiones:

  1. Pd vanilla: centrado en señales de audio y procesos MIDI.
  2. Pd extended: 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.

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.

Más allá de los recursos facilitados en los sitios web de Max/MSP y Pure Data, 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.