Pure Data (Pd) es un lenguaje de programación gráfico de código abierto para la creación de música y multimedia interactivas. Pd usa un modelo de programación basado en flujos de datos donde funciones u objetos son conectados para modelar el flujo de control y audio. Algunos objetos comunes en Pd incluyen osciladores para generar tonos, metros para envío periódico de señales y selectores condicionales. Pd también permite la creación de parches modulares reutilizables.
2. Introducción
Pure Data es un lenguaje de programación gráfico
desarrollado por Miller Puckette para la creación de
música computarizada interactiva y obras de multimedia.
3. Pure Data
Pd es un proyecto de código abierto
Pd es un lenguaje de programación de "flujo de datos".
Funciones u "objetos" son conectadas o "parchadas"
unas con otras en un ambiente gráfico que modela el
flujo del control y el audio.
6. Pure Data
Es extensible a través de una API pública.
Alienta a los desarrolladores a añadir sus
propias rutinas de audio y control.
Pd es un lenguaje de programación en sí
mismo.
Unidades de código modulares y reusables,
escritas nativamente en Pd, llamadas "parches"
o "abstracciones", son usadas como programas
independientes y compartidas libremente entre
la comunidad de usuarios de Pd.
7. GEM + Pure Data
Con la adición del externo "Entorno
Gráfico para Multimedia" (GEM, por su
nombre en inglés) es posible crear y
manipular vídeo, gráficos OpenGL,
imágenes, etc.
8. Subpatch
Existe la posibilidad de crear patchs
secundarios conocidos como
subpatchs.
Están dentro del patch principal.
Se crean escribiendo en un objeto las
letras “pd” seguidas de un espacio y el
nombre que se le quiera dar a ese
subpatch
9. Pure Data
El programa tiene dos estados en los que se
puede encontrar el usuario: en modo de edición
o en modo de ejecución.
Para cambiar de un estado a otro teclearemos
Ctrl+E.
Cuando estamos en el modo edición, podemos
modificar el contenido de las cajas, o la
conexión entre ellas.
En el modo de ejecución tenemos la posibilidad
de poner en marcha todo el patch, e ir
modificando valores durante su reproducción o
cuando este, esté parado.
11. Tipos de Objetos
Objeto: Su comportamiento dependerá del texto que
tenga introducido en él mismo.
Números: Su utilidad puede ser diversa, desde la de
controlar el valor que tiene la señal en diferentes puntos
del patch, hasta la de inicializar valores que se pasan a
objetos que controlan
Mensajes: Están provistos de información que se pasa
a los objetos.
Símbolo: Este objeto guarda un símbolo hasta que
recibe un [bang] u otro símbolo. Es entonces cuando
este símbolo sale del objeto, por la parte inferior de la
caja.
Comentario: lo utilizaremos para incluir aclaraciones
dentro de los diferentes pasos que sigue nuestro código.
12. Objetos más importantes
Oscilador:
El objeto [osc~] nos genera una señal sinusoidal.
La frecuencia de oscilación dependerá del valor que se
introduzca en la entrada que tiene el objeto en la parte superior
izquierda.
Un [bang] tiene como función la activación de la acción
que tiene inmediatamente conectada después.
Metro:
Envía series de [bang] periódicamente.
Lo crearemos escribiendo la palabra “metro” dentro de un
objeto.
Tiene dos entradas, la de la izquierda acepta [bangs]. Hace que
el metro empiece a funcionar; así mismo acepta mensajes con
el texto “stops”, deteniendo el funcionamiento del metro.
13. Objetos más importantes
Start:
Ejecuta los objetos del patch que tiene conectado a él mismo.
El objeto [start] lo crearemos escribiendo la palabra “start” dentro de un
mensaje.
Stop:
Detiene la ejecución del patch que está en funcionamiento.
Lo crearemos escribiendo la palabra “stop” dentro de un mensaje.
Select:
Nos actúa de selector según una condición numérica dada inicialmente.
Lo creamos introduciendo la palabra “select (espacio)condición”.
De esta manera cuando el valor de entrada sea igual a la condición, por
la salida de la izquierda se enviará un bang.
Si no coinciden el bang será enviado por la salida de la derecha.