Diseño de Sistemas Interactivos
Pure Data
Esteban Calcagno – Maestría en Arte Sonoro - 2021
Introducción
• PD es un lenguaje de programación gráfico
profesional y de alta performance para el
procesamiento de audio digital.
• PD fue creado por Miller Puckette en los años
90, quien es a su vez el creador de Max/MSP,
de misma estructura y uso.
Introducción
• PD ha sido creado desde su inicio para crear música por
computadoras de forma interactiva y en tiempo real.
• Esto lo hace a partir de lo que se denomina DSP (Digital
Signal Processing) que son procedimientos propios de
procesamiento digital de una señal digital, en este caso
audio digital.
Introducción
• Como Max, Pd tiene una base modular de código
(escrita en lenguaje C) con objetos y externals
que son utilizados como bloques de construcción
para programas escritos en el software.
Introducción
• PD tiene un paradigma visual de programación.
• Tradicionalmente, los programadores trabajan
con lenguajes de programación basados en texto
(como Arduino).
• En cambio, para llevar a cabo sus funciones de
programación, Pd utiliza objetos visuales que el
usuario ubica y altera en la pantalla.
Introducción
• En cambio, para llevar a cabo sus funciones de
programación, Pd utiliza objetos visuales que el usuario
ubica y altera en la pantalla.
• Estos objetos visuales — pequeñas cajas que pueden ser
conectadas entre ellas — nos retrotraen a los estudios
analógicos que fueron utilizados para producir música
electrónica antes del uso de la computadora: varios
dispositivos son conectados entre ellos utilizando cables.
• Un ejemplo son los secuenciadores conectados a
sintetizadores de audio que a su vez se conectan con
amplificadores y parlantes.
Introducción
Instalación
• PD es un software multiplataforma, por lo cual
puede instalarse en diversos sistemas operativos.
• GNU/Linux, OSX y Windows.
• La página principal del proyecto PD es
[Link]
Instalación
• Allí podemos encontrar muchas secciones que
van desde bajar el programa, hasta revisar la
documentación, desarrollo, comunidad, etc.
• Al entrar a download nos aparece la posibilidad
de elegir entre diferentes variantes del software
Pure Data Vanilla
• También, existe una versión llamada Pure Data
Extended
Instalación
• La versión Extended contiene los paquetes base de PD
y un conjunto de bibliotecas extra que le dan una
funcionalidad más potente al entorno, pero esta
discontinuada y sin soporte.
• La versión Vanilla, contiene solo los paquetes base
originales que creo Miller Puckette, pero sigue
avanzando en su desarrollo (ultima versión 0.51-4).
• A esta última se le puede agregar muchas otras
bibliotecas de funciones y armar nuestro propio
”extended”
Ejecución
• Al ejecutar PD se despliega una ventana que será lo que llamamos consola o terminal.
• Esta será una interfaz desde donde podemos prender y apagar el procesamiento de audio
(DSP), ver errores o simplemente imprimir cierta información importante.
• Es una herramienta muy importante para detector errores y ver el funcionamiento.
Ejecución
• Mediante la opción de log, podemos tener diferentes tipos de registros de errores, desde
errores normales y no críticos del sistema, hasta errores fatales.
Menu
• Ahora revisaremos el menú principal de PD
para ver las diversas funcionalidades.
• Muchas de las opciones que se utilizan en este
menú están dispuestas para trabajar
directamente en la ventana de programación,
por lo tanto para empezar a ver las
funcionalidades tendremos que crear un
nuevo patch desde File -> New.
Menu
• Al crear este nuevo patch tendremos una
nueva ventana en blanco que se verá así:
• Este será el lugar donde desarrollaremos nuestro patch
Menu
• Cuestiones importantes para revisar en el menu:
– Modo de uso y edición
– Insertar elementos
– Seteo de dispositivo de audio y midi
– Prueba de audio y midi
– Help y ejemplos
Elementos
• En PD trabajamos con muchos elementos y la
verdad es que hay una cantidad
impresionante de estos.
• Sin embargo se pueden agrupar de diferentes
maneras para poder entender su
funcionamiento y así entender la lógica de PD
Elementos
• En principio podemos hablar de objetos,
mensajes y números.
• Estos tres son los objetos quizás más utilizados
dentro de PD ya que constituyen unidades
básicas de construcción de patches.
Elementos
• Los objetos son elementos que tienen la capacidad de realizar una
función, sea esta una operación aritmética, un generador de
números, un procesador de señales o cualquier cosa que se nos
ocurra, siempre y cuando alguien lo haya creado.
• Los mensajes son elementos que nos sirven justamente para
mandar un mensaje sea al sistema o a un objeto.
Elementos
• Muchos objetos reciben mensajes para configurar algunas de sus
características
• Por otro lado, los números, son eso, números, los cuales son
utilizados en muchas de las operaciones que vamos a hacer en
nuestro patch.
Elementos
• Todos estos elementos se conectan mediante cables.
• Los cables son los que ayudan a generar el flujo de datos.
• Cuando se dibuja un cable fino es por que por esa conexión están pasando datos
(como números, por ejemplo).
• Cuando se dibuja un cable grueso es por que por esa conexión esta pasando audio.
Elementos
• De la misma manera podemos dividir a los elementos
“objeto”, que al fin y al cabo son el alma de PD, en objetos
de control y objetos de audio.
• Los objetos de control son los que generan o procesan
datos de control o números, mensajes, etc.
• Los objetos de audio (o señal) son los que pueden generar
o procesar señales de audio.
• Existen infinidad de objetos que realizan diversas tareas y
de hecho si uno sabe programar en C y tiene conocimiento
de la API de Pure Data podría programar su propio objetos.
Elementos
• En general los objetos de control y audio se
construyen mediante un nombre y, en algunos
casos algún que otro parámetro.
• Los objetos de audio se distinguen por que
luego de su nombre se pone un símbolo
denominado virgulilla (~).
Elementos
• Los objetos de control y de audio se diferencian
también por la frecuencia a la cual actualizan sus
datos.
• La velocidad de control se da en el orden de los
milisegundos y segundos.
• La velocidad de procesamiento se da en el orden
de los microsegundos (23 useg con audio en
44100Hz).
Elementos
• Prácticamente todos los objetos tienen entradas y salidas para que
puedan ser interconectados.
• Con respecto a las entradas hay que saber que existen las entradas frías y
calientes (cold and hot inputs).
• La diferencia entre estas es que el objeto cambiará su estado o realizará
un determinado procedimiento solo cuando ingrese un dato o se le de un
mensaje a la entrada caliente.
Elementos
• Si ingresamos un dato por la entrada fría, básicamente el objeto tendrá en
cuenta ese valor, pero no realizará ningún cambio hasta que se lo indique
a la entrada caliente.
• En los objetos siempre la entrada caliente será la de la izquierda y la de la
derecha será la entrada fría.
• En varios objetos esta entrada se marca con un color más oscuro.
Elementos
• Otros objetos que ayudan a dar una
terminación más acabada a los patch son los
que se denominan “GUI objects” u objetos de
interfaz gráfica de usuario.
• Estos objetos tiene semejanza con elementos
de la electrónica tradicional como vúmetros,
botones, slider, potenciómetros, etc.
Externals
• Los externals son objetos escritos por terceros
y que podemos utilizar.
• Acá una lista de externals que podemos
revisar:
• [Link]
Externals
• Como se instala:
• PD-> help -> find externals
• En el buscador pones el nombre, buscas la
versión para tu hardware e instalas.
• Luego desde preferences -> path, agregas la
carpeta con todos los objetos.