Pure Data es un lenguaje basado en una interfaz gráfica, con objetos interconectables mediante cables virtuales, que
facilita la programación a usuarios no expertos y que, a la vez, sirve como soporte de librerías creadas por terceros.
Algunas de estas librerías, incluso, se encuentran destinadas al procesamiento de imagen en tiempo real.
En G.1.4. observamos un programa realizado en PD que sirve para el procesamiento de retardos espectrales
de señales de audio. No nos interesa por ahora aprender qué tareas realiza ni cómo fue programado, sino mostrar
cómo se interrelacionan los objetos entre sí mediante conexiones virtuales, y apreciar los elementos gráficos que
sirven a la comunicación entre el programa y los usuarios.
La programación se desarrolla de forma estructurada, encapsulando partes de la aplicación en nuevos objetos, con funciones específicas, creados por el programador. Al programa en general se lo suele denominar patch (por analogía con el modo de interconectar módulos en los primeros sintetizadores analógicos), y a los subprogamas subpatches o abstracciones, según como hayan sido concebidos.
G.1.5. muestra un subpatch del programa anterior, dedicado a una tarea específica dentro de la aplicación.
De acuerdo con este paradigma, la programación se estructura modularmente, y el programa puede ser leído
por capas, establecidas de acuerdo con un orden de importancia.
Los objetos de PD contienen funciones diseñadas para realizar tareas específicas, y se dividen en tres grandes grupos:
objetos de control, objetos de audio y objetos de interfaz con el usuario o GUI (Graphic User Interface). Los de control,
manejan información alfanumérica y están destinados principalmente al control de procesos. Los objetos de audio,
por su parte, son capaces de procesar señales digitales, lo cual implica operar con un volumen importante de información.
Pensemos que para producir una señal monofónica de audio es preciso generar en tiempo real una cantidad
de muestras igual a la frecuencia de muestreo elegida (44.100 muestras por segundo, por ejemplo, o aún más). Visualmente,
distinguimos unos de otros a través del tilde (~) que poseen los objetos de audio al final del nombre (osc~, que
es un oscilador, o dac~, un conversor digital-analógico). Por último, los objetos GUI sirven para comunicarnos con el
programa, y representan perillas, botones, radio buttons, sliders, recuadros numéricos, vúmetros o paneles.
La distribución PD-extended incorpora una gran cantidad de librerías desarrolladas por terceros, que amplían considerablemente
las posibilidades del lenguaje. Si instalamos PD en el directorio por defecto (por ejemplo, en Windows,
c:\Archivos de Programa\pd), encontraremos una carpeta llamada “extra”, en la cual residen estas librerías (unas 80,
con gran cantidad de objetos en cada una). Entre ellas, la librería pduino, para comunicarnos con el dispositivo de
hardware Arduino y realizar proyectos multimediales, vbap y iem-ambi, para localización espacial del sonido, o GEM,
para procesamiento de imágenes y video en tiempo real.
Arduino es un dispositivo electrónico capaz de recibir información de sensores, y de controlar actuadores, y otros dispositivos. Es ampliamente utilizado en la producción de obras multimediales. Para más información sobre Arduino puede consultar http://www.arduino.cc/
Mediante los objetos GUI configuramos la interfaz gráfica para la interacción entre el usuario y la aplicación. Cuando
abrimos un programa deberíamos ver el panel de control de esa aplicación sin detalles de programación que distraigan
la atención durante la operación (objetos, cables, etc.), a menos que se trate de programas sencillos o con fines
didácticos.
Para los objetos GUI disponemos de una ventana de Propiedades (accedemos desde el menú que se despliega al hacer
clic derecho sobre el objeto), en la que es posible establecer sus dimensiones, colores, rango, comportamiento y modos
de conexión sin utilizar cables (conexiones remotas, que veremos más adelante).