Pure data

Captura de pantalla de Pure Data.

Pure Data (o Pd) es un lenguaje de programación gráfico desarrollado por Miller Puckette durante los años 90 para la creación de música por ordenador interactiva y obras multimedia. Aunque Puckette es el principal autor del software, Pd es un proyecto de código abierto y tiene una gran base de desarrolladores trabajando en nuevas extensiones al programa. Está publicado bajo una licencia similar a la licencia BSD.

Pd es muy similar en alcance y diseño al programa original de Puckette, Max(desarrollado cuando él estaba en IRCAM), y es hasta cierto grado interoperable con Max/MSP, el sucesor comercial del lenguaje Max. Ambos Pd y Max son ejemplos discutibles de lenguajes de programación de "flujo de datos". En este tipo de lenguajes, funciones u "objetos" son conectados o "parcheados" unos con otros en un ambiente gráfico que modela el flujo del control y el audio. A diferencia de la versión original de Max, sin embargo, Pd siempre fue diseñado para hacer procesado de señales y tasas de control en la CPU nativa, en vez de descargar la síntesis y el proceso de señales a un tablero de PDS (como el Ariel ISPW que era usado para Max/FTS). El código de Pd es la base de las extensiones MSP de David Zicarelli al lenguaje Max para hacer proceso de audio en software.

Como Max, Pd tiene una base modular de código con externos u objetos que son utilizados como bloques de construcción para programas escritos en el software. Esto hace el programa arbitrariamente extensible a través de una API pública, y alienta a los desarrolladores a añadir sus propias rutinas de audio y control, ya sea en el lenguaje de programación C o, con la ayuda de otros externos, en Python, Javascript, Ruby, y potencialmente otros lenguajes también. Sin embargo, 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, y ninguna otra habilidad de programación es requerida para usar Pd pero ayuda.

Con la adición del externo "Entorno Gráfico para Multimedia" ( GEM, por su nombre en inglés), y otros externos diseñados para trabajar con él (como Pure Data Packet, PiDiP para Linux, framestein para Windows, GridFlow para proceso de matrices n-dimensionales que integra Pure Data con el lenguaje de programación Ruby, etc.), es posible crear y manipular vídeo, gráficos OpenGL, imágenes, etc, en tiempo real con aparentemente infinitas posibilidades de interactividad con audio, sensores externos, etc.

Adicionalmente, Pd está diseñado nativamente para permitir colaboración en vivo a través de redes o de Internet, permitiendo a músicos conectados vía LAN, o incluso en distintas partes del mundo, hacer música juntos en tiempo real.

Las unidades donde se programa el código se llaman “patch” o abstracciones, son utilizadas como programas independientes y compartidos libremente entre la comunidad de usuarios de Pd. Los patchs constan de diferentes objetos interconectados entre ellos. En su parte superior encontraremos las entradas, donde se les enviaran valores numéricos u otros tipos de datos, y en la inferior la salida de estos.

Subpatch.

También 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, como se muestra en la figura. Clicando encima se nos abre la ventana donde encontramos el código de nuestro subpatch.

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. Podemos enviar bangs, modificar valor de variables dentro de los objetos “números”, o activar y desactivar sectores del código con el objeto [toggle], activado cuando tiene una cruz y desactivado cuando no.

Tipos de objetos

Objetos de Pd.

Objeto: Su comportamiento dependerá del texto que tenga introducido en él mismo. El programa tiene unos objetos predefinidos, programados por terceras personas en diferentes lenguajes como puede ser C. El Pd reconoce el tipo de objeto y esa caja ya se comporta como tal.

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, por ejemplo, un nivel de opacidad de una imagen.

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. Estos objetos se ofrecen solo en Pd si tienes descargada y correctamente instalada la biblioteca apropiada. No tienen porqué existir en las bibliotecas sencillas, aunque acostumbran a estar incluidas en los archivos de instalación.

Comentario: lo utilizaremos para incluir aclaraciones dentro de los diferentes pasos que sigue nuestro código.

Other Languages
català: Pure data
čeština: Pure Data
dansk: Pure Data
Deutsch: Pure Data
Ελληνικά: Pure Data
English: Pure Data
français: Pure Data
italiano: Pure Data
日本語: Pure Data
norsk bokmål: Pure Data
polski: Pure Data
português: Pure Data
svenska: Pure Data
українська: Pure Data
中文: Pure Data