1.4. Descripción general del lenguaje

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.4. Un patch de PD


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.

G.1.5. Un subpatch del programa de la figura anterior


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.


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.

G.1.6. Panel de control de una aplicación de síntesis aditiva


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).

G.1.7. Propiedades de un objeto GUI (slider)