# MÓDULO 2: PURE DATA Vamos a ver qué es Pure Data, instalarlo y haremos la primera práctica # ¿Qué es Pure Data (Pd)? ![image-1660639482536.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/image-1660639482536.png) **Pure Data o Pd** Pd es un entorno de código abierto de programación gráfica en tiempo real para audio, video y procesamiento gráfico (imágenes) (Pure Data, 2022). Este lenguaje de programación permite a músicos, artistas visuales, performers, investigadores y desarrolladores (programadores) crear software/programas de manera grafica sin tener que escribir una sola línea de código (Pure Data, 2022). ### Ejemplos de artistas/proyectos hechos con Pure Data: #### [Patricia Cadavid](https://www.patriciacadavid.net/search/label/CV#/page/1) - Tawa
Patricia Cadavid Hinojosa es una inmigrante, artista e investigadora nacida en Colombia. En su trabajo, aborda las relaciones y efectos de la colonialidad en los nuevos medios desde la experiencia migratoria y el pensamiento decolonial y anticolonial.
Su investigación reciente se centra en la reivindicación de la memoria contenida en las interfaces ancestrales de los Andes de Abya Yala, invisibilizadas por la colonización y sus conexiones con el arte y la ciencia, reutilizándolas en nuevos procesos artísticos relacionados con el video, las interfaces sonoras, tangible live coding y la performance multimedia.
Ha recibido un Master en Artes en el programa Interface Cultures (Kunstuniversität Linz), el grado en Bellas Artes por la Universidad de Castilla-La Mancha y un máster en Artes Visuales y multimedia por la Universitat Politècnica de València, Su trabajo ha sido expuesto en festivales como Ars Electronica (Austria), ADAF (Grecia), la conferencia NIME, y varios espacios en Estados Unidos, Chile, México, España, Alemania y Colombia.
[Tawa - por Patricia Cadavid](https://vimeo.com/445409362) from [Plataforma Bogotá AV](https://vimeo.com/pbav) on [Vimeo](https://vimeo.com). Video editado por Juliana Ortigoza
>
*Para conseguir la armonía ha de existir el equilibrio, en la cosmología andina Tawa (cuatro) simboliza los dos equilibrios opuestos que se complementan. En el año especial que suma 4, el khipu se anudará por primera vez con Pure Data, con sonidos que celebran los encuentros, y la memoria de experiencias vividas en este periodo excepcional donde seguimos aprendiendo a tejer el equilibrio desde la incertidumbre y la esperanza.*
>
*Un Khipu es un dispositivo que se usaba en el antiguo Imperio Inca para el procesamiento y transmisión de información estadística y narrativa. En esta performance, la interfaz se reutiliza en un nuevo khipu electrónico como instrumento para la interacción y generación de sonido experimental en vivo, donde a través del tejido de nudos, se busca codificar el legado interrumpido de esta práctica ancestral.*
(Cadavid, 2022)
#### #### [Nerea Tascón Ruiz](https://es.linkedin.com/in/nerea-t-ruiz-17800747?original_referer=https%3A%2F%2Fwww.google.com%2F) - Moog Analog Synthesizer Component Characterization and Implementation of their Digital Model in Pure Data. Nerea desarrolla una version simplificada en Pure Data del sintetizador analógico **Moog Slim Phatty**. Este modelo está disponible en el siguiente link: [https://github.com/nereatruiz/Moog-Analog-Synthesizer-ComponentsCharacterization-and-Implementation-oftheir-Digital-Model-in-Pure-](https://github.com/nereatruiz/Moog-Analog-Synthesizer-ComponentsCharacterization-and-Implementation-oftheir-Digital-Model-in-Pure-) #### [IOhannes m zmölnig](https://umlaeute.mur.at/Members/zmoelnig/cv/) - Pointillism Tanto el código de representación (los visuales) como el audio generado, utilizan puntos como blokes de construcción: la música se genera utilizando patrones de código morse, y el código está escrito en "Braille". La performance es un statement que ironiza sobre el típico "enséñanos tu pantalla". Mostrando al público un código en una forma que ni siquiera pretende ser legible. (m zmölnig ,n.d.) [Pointillism](https://vimeo.com/55085462) from [IOhannes m zmölnig](https://vimeo.com/umlaeute) on [Vimeo](https://vimeo.com). Referencias: Cadavid, P. (2020). *Tawa. Pure Data & electronic Khipu knotted*. \[Artwork\]. Patricia Cadavid. [https://www.patriciacadavid.net/2020/08/tawa-pure-data-electronic-khipu-knotted.html#/page/1](https://www.patriciacadavid.net/2020/08/tawa-pure-data-electronic-khipu-knotted.html#/page/1) m zmölnig, I. (n.d.). *Pointillism*. \[Artwork\]. forum::für::umläute. [https://umlaeute.mur.at/Members/zmoelnig/projects/pointillism/](https://umlaeute.mur.at/Members/zmoelnig/projects/pointillism/) m zmölnig, I. (2016). *IOhannes M Zmölnig - pointillism*. \[Video\]. YouTube. [https://www.youtube.com/watch?v=zfH7H5Xht\_U](https://www.youtube.com/watch?v=zfH7H5Xht_U) Pure Data (2022). *Pure Data home*. Pure Data. Consultado el 16 Agosto 2022 de [http://puredata.info/](http://puredata.info/) # Instalar Pd ### Descargar Pure Data #### [https://puredata.info/](https://puredata.info/) ![image-1661192796479.jpg](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/image-1661192796479.jpg)Figura 1. Página web principal de Pure data con las secciones de descarga indicadas. #### [https://puredata.info/downloads](https://puredata.info/downloads) ![image-1661192809609.jpg](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/image-1661192809609.jpg)Figura 2. Página web de descargas de Pure data con el link a Pure data Vanilla indicado. #### [https://puredata.info/downloads/pure-data](https://puredata.info/downloads/pure-data) ![image-1661192819944.jpg](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/image-1661192819944.jpg)Figura 3. Página web de descargas de Pure data Vanilla con los links de diferentes sistemas operativos marcados. ### ### Instalar Pure Data ### WINDOWS Una vez hemos descargado el archivo de instalación lo **ejecutaremos permitiendo que realice cambios en el equipo**. Tras ser descargado lo más probable es que el archivo este en la carpeta de descargas. [![image-1661193288842.gif](https://libros.catedu.es/uploads/images/gallery/2022-08/image-1661193288842.gif)](https://libros.catedu.es/uploads/images/gallery/2022-08/image-1661193288842.gif) Figura 4. Instalando Pure data en Windows. [![image-1661193932471.jpg](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/image-1661193932471.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-08/image-1661193932471.jpg) Figura 5. Ventanas que se abrirán tras la instalación de Pure data. El manual está en Ingles. Si alguien quiere consultarlo y necesita la ayuda de un traductor, os recomiendo este: [https://www.deepl.com/translator](https://www.deepl.com/translator) #### ¡PURE DATA YA ESTA INSTALADO EN NUESTRO EQUIPO WINDOWS! ![image-1661247024622.gif](https://libros.catedu.es/uploads/images/gallery/2022-08/image-1661247024622.gif)Figura 6. Usuarios de Windows tras instalar Pure Data en su ordenador sin ningún problema. ### MAC OS Para descargar la versión de Mac iremos también a la sección de Downloads y descargaremos el archivo para nuestro Mac. Se nos descargará un archivo del tipo .zip. Lo abriremos y nos encontraremos un archivo del tipo .dmg. ¿Qué hacemos con él? Simplemente lo arrastraremos a nuestra carpeta de Aplicaciones y desde allí lo abriremos. ![image-1667291806683.gif](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1667291806683.gif)Figura 7. Instalación de Pure data en MAC OS. #### ¡PURE DATA YA ESTA INSTALADO EN NUESTRO EQUIPO MAC! ![image-1661247059945.webp](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/image-1661247059945.webp)Figura 8. Usuarios de MAC OS tras instalar Pure Data en su ordenador sin ningún problema. ### LINUX Si tu centro dispone de equipos con Vitalinux, la instalación no puede ser más fácil. Vas a la aplicación Vitalinux Play, localizas el software en el filtro buscador y le das a la flecha de arriba a la derecha para instalar ![image-1668067276803.png](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668067276803.png)Figura 9. Instalando Pure data en Vitalinux. Por unos instantes la flecha parpadeará hasta que la aplicación nos informe de que ya está instalado. En ese momento solo tendremos que usar la combinación de teclas Control+Espacio y teclear Pure Data y ya lo tendremos accesible. ![image-1668067412987.png](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668067412987.png)Figura 10. Como acceder a Pure data en Vitalinux una vez está instalado. #### ¡PURE DATA YA ESTA INSTALADO EN NUESTRO LINUX! ![image-1661247729942.gif](https://libros.catedu.es/uploads/images/gallery/2022-08/image-1661247729942.gif)Figura 11. Usuarios de Linux tras instalar Pure Data en su ordenador sin ningún problema. Figuras: Figura 1. Página web principal de Pure data con las secciones de descarga indicadas. Figura 2. Página web de descargas de Pure data con el link a Pure data Vanilla indicado. Figura 3. Página web de descargas de Pure data Vanilla con los links de diferentes sistemas operativos marcados. Figura 4. Instalando Pure data en Windows. Figura 5. Ventanas que se abrirán tras la instalación de Pure data. Figura 6. Usuarios de Windows tras instalar Pure Data en su ordenador sin ningún problema. [https://hollywoodunlocked.com/bill-gates-steps-down-microsoft-berkshire-hathaway-boards/](https://hollywoodunlocked.com/bill-gates-steps-down-microsoft-berkshire-hathaway-boards/) Figura 7. Instalación de Pure data en IOS. Figura 8. Usuarios de MAC OS tras instalar Pure Data en su ordenador sin ningún problema. [http://edition.cnn.com/2011/TECH/gaming.gadgets/01/17/steve.jobs.life/index.html](http://edition.cnn.com/2011/TECH/gaming.gadgets/01/17/steve.jobs.life/index.html) Figura 9. Instalando Pure data en Vitalinux. Figura 10. Como acceder a Pure data en Vitalinux una vez está instalado. Figura 11. Usuarios de Linux tras instalar Pure Data en su ordenador sin ningún problema. [https://i.pinimg.com/originals/0a/c3/a7/0ac3a7cc84525b75238fde131dcb6af4.gif](https://i.pinimg.com/originals/0a/c3/a7/0ac3a7cc84525b75238fde131dcb6af4.gif) # Entorno Cuando trabajemos con Pd, veremos la Ventana principal de Pd y posiblemente uno o mas "patches", también conocidos como "canvases" o "lienzos". Los "**patches**" serán los **espacios** en los que vamos a **construir** nuestros **programas**. #### Ventana principal La ventana principal se abre cuando ejecutamos Pd y tiene esta apariencia: ![image-1663059064619.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1663059064619.jpg)Figura 1. Ventana principal de Pure data. En la parte superior encontramos un **menú horizontal** que aparecerá también en los patches de Pd. Este es el menú principal que utilizaremos para configurar Pd, realizar acciones y que nos permite interactuar don Pd. En la parte inferior tenemos un **espacio para la impresión** de contenido desde patches de Pd y/o mensajes del propio Pd. Para imprimir desde un patch utilizaremos principalmente el objeto "**print**". Este objeto es útil para visualizar el estado de los datos en diferentes partes de la estructura/programa que creemos, nos va a ayudar a encontrar errores y a entender mejor cómo funciona nuestro programa. Los mensajes que Pd envíe aparecen en el mismo espacio y nos dan información acerca de errores y procesos que realiza el programa. El botón de **"Log"** nos permite filtrar la cantidad de mensajes enviados por Pd que queremos ver en ese espacio. Siendo "0 fatal" la mínima cantidad de información mostrada y "4 todo" la máxima. Inicialmente vamos a tener el Log en "2 normal" y ampliaremos la información mostrada en función de nuestras necesidades a la hora de resolver posibles problemas. ![image-1661613340653.gif](https://libros.catedu.es/uploads/images/gallery/2022-08/image-1661613340653.gif)Figura 2. Ventana principal de Pure data (izquierda) y un patch/programa de Pure data (derecha). La casilla de **"DSP"** (Digital Signal Processor) nos permite **encender y apagar** el sistema de **audio/señales** del programa.

Si el audio esta apagado las señales de audio de nuestros patches **no se procesarán**, luego **siempre que trabajemos con audio debemos de tener el DSP encendido.**

El DSP también lo podemos encender y apagar desde el menú superior en **Medios>Encender DSP** o **Medios>Apagar DSP**; o utilizando los comandos **"Ctrl+/"** para encenderlo y **"Ctrl + ."** para apagarlo. #### #### Patches Los "patches" son las ventanas en las que construiremos nuestros programas y tienen este aspecto: ![image-1663060366147.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1663060366147.jpg)Figura 3. Un patch de Pure data llamado Untitled-1 en el modo edición. La ventana de patch tiene en la parte superior el mismo menú horizontal que la ventana principal de Pd. Encima del menú veremos el nombre del patch y en qué directorio esta guardado. Cuando estemos en el **modo edición** entre el nombre del patch y el directorio veremos "\[edit\]". El modo edición de un patch es el estado de construcción en el que podemos añadir objetos y modificar conexiones o mensajes.

Para activar y desactivar el modo edición utilizaremos el comando **"Ctrl+E"** o en el menu horizontal **Editar>Modo edición**. Cuando el modo edición este desactivado el programa se estará ejecutando y el puntero del ratón tendrá forma de flecha, estará en el modo de funcionamiento y no podremos modificarlo. Cuando el modo edición este activado el programa seguirá ejecutándose, pero podremos modificarlo y el puntero del ratón tendrá forma de manita.

Para **crear un patch** iremos al menú horizontal **Archivo>Nuevo** o utilizando el Shortcut/abreviatura **"Ctrl+N"**, y para **guardar** un patch **"Ctrl+S"** o en **Archivo>Guardar**. Vamos a crear nuestro primer patch! ¿Ya lo tenéis? aparecerá una ventanita nueva llamada Untitled, se llama así porque aún no habéis guardado y nombrado el patch. Cuando lo guardéis podréis nombrarlo como queráis. Os recomiendo elegir nombres que os permitan identificar fácilmente que hay dentro.

Es conveniente guardar el patch en el que este estemos trabajando para no perder nuestros progresos en caso de que haya un error grave.

Ahora vamos a crear nuestro primer mensaje en nuestro patch de Pure Data: en **menu horizontal>Poner>Mensaje** o utilizando en comando **"Ctrl+2".** Dentro del mensaje podréis escribir lo que queráis. ¿Funciona? Es posible que el mensaje os parezca muy pequeño y difícil de visualizar cómodamente. Si queremos **aumentar el tamaño** de los objetos que vamos a colocar en un patch, podemos hacerlo desde el menú horizontal en **Editar>Fuente** En lugar de editar fuente también podéis modificar el tamaño en **Editar>Acercar** o con "Ctrl" + "+" y **Editar>Alejar** o con "Ctrl" + "-". Os recomiendo utilizar acercar, alejar en lugar de modificar el tamaño de la fuente. ![image-1668155114784.png](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668155114784.png)Figura 4. Opción de acercar en un patch de Pure data llamado Untitled-1 en el modo edición. [![image-1668155135230.png](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668155135230.png)](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668155135230.png)Figura 5. Opción de alejar en un patch de Pure data llamado Untitled-1 en el modo edición. La opción ordenar ayuda a mantener el patch organizado a nivel visual. **Editar>Ordenar** o con "Ctrl" + "Shift/Mayus" + "R". ![image-1668155149081.gif](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668155149081.gif)Figura 6. Opción de ordenar en un patch de Pure data llamado Untitled-1 en el modo edición. Dentro de un patch podremos crear **sub-patches** que son ventanitas dentro de nuestra ventana principal del patch, o procesos dentro de nuestro programa principal/algoritmo principal. Los sub-patches nos permitirán agrupar, estructurar y organizar las diferentes partes de un programa con muchos elementos, de manera que la estructura principal de nuestro programa sea visible y comprensible. Cuando el programa se esté ejecutando, aunque la ventana de un sub-patch esté cerrada, está siempre en funcionamiento (Pure Data, 2022). ##### Como ejemplo, una receta de cocina Por ejemplo, estamos siguiendo una receta de un libro de repostería para hacer una tarta. La **receta** de la tarta sería nuestro **algoritmo principal=ventana de patch principal**. Esta receta nos pide montar las claras de 5 huevos pero no nos explica como hacerlo, nos indica que en la pagina 6 del libro de cocina están las instrucciones de como montar claras. También, nos pide hacer hojaldre pero tampoco nos explica como hacerlo en la receta de la tarta, nos indica que las instrucciones parar hacer hojaldre se encuentran en la pagina 8. Nuestro algoritmo principal es la receta de la tarta y las instrucciones de la página 6 y la pagina 8 son **subalgoritmos** necesarios para el algoritmo principal que es nuestra receta. El subpatch sera un subalgoritmo en nuestro programa. Si toda la información de cómo hacer esta tarta, incluyendo cómo montar las claras y hacer hojaldre, se encontrara toda junta en la misma página, nos sería más complicado comprender y visualizar rápidamente el proceso general que debemos seguir para hacerla. Veremos cómo crear sub patches en el capítulo "Subpatch" pero no os adelantéis. Referencias: Este capitulo ha sido redactado tomando como guía el Capitulo 2 del Manual de Pd. Pure Data (2022). Pd Manual chapter 2: theory of operation. In *Pure Data* (Version 0.52.2). \[Computer software\]. Pure Data. [https://puredata.info/downloads/pure-data](https://puredata.info/downloads/pure-data) Figuras: Figura 1. Ventana principal de Pure data. Figura 2. Ventana principal de Pure data (izquierda) y un patch/programa de Pure data (derecha). Figura 3. Un patch de Pure data llamado Untitled-1 en el modo edición. Figura 4. Opción de acercar en un patch de Pure data llamado Untitled-1 en el modo edición. Figura 5. Opción de alejar en un patch de Pure data llamado Untitled-1 en el modo edición. Figura 6. Opción de ordenar en un patch de Pure data llamado Untitled-1 en el modo edición. # Práctica 1: Hello Pd World (Hola Mundo Pd) Este va a ser vuestro primer programa con Pd y vamos a imprimir en la zona de impresión de la Ventana principal un mensaje que enviemos desde un patch de Pd. [![image-1662460902321.gif](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1662460902321.gif)Figura 1. Hello World en Pure Data](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1662460902321.gif) #### #### Enviamos mensajes con Pure Data Lo primero que haremos será crear un patch nuevo. Para ello, iremos al menú horizontal **Archivo>Nuevo** o utilizando el Shortcut/abreviatura **"Ctrl+N".** Vamos a crear un mensaje en Pure Data: en **menu horizontal>Poner>Mensaje** o utilizando en comando **"Ctrl+2".** En este mensaje vamos a escribir "hola mundo" Ahora necesitamos al mensajero que envíe este mensaje al espacio de impresión, para ello utilizaremos un objeto "print". Creamos un objeto (**menu horizontal>Poner>Objeto** o utilizando en comando **"Ctrl+1)** y escribimos print dentro de él. Tras escribir "print" en el objeto, clicaremos fuera de él, veréis como la caja de línea discontinua que lo contiene se convierte en una caja de línea continua, esto os indica que el objeto se ha creado correctamente. Para que este mensaje llegue al objeto "print" tenemos que **conectar el outlet/la salida** de nuestro mensaje **con el inlet/entrada** del objeto "print". Una vez conectado, salimos del modo edición (**"Ctrl+E"** o en el menu horizontal **Editar>Modo edición),** nuestro programa ya esta marcha. ¿Funciona?[![image-1668445878044.gif](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668445878044.gif)](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668445878044.gif)

**Los mensajes no se envían de manera constante**, solo cuando una acción o evento activan este envío. Por ejemplo, cuando clicamos sobre el mensaje, su contenido es enviado; cuando un mensaje recibe cualquier otro mensaje (sin importar el contenido del mensaje recibido), el mensaje receptor envía su contenido.

Vamos a comprobar esto separando en dos mensajes el "hola mundo". Vamos a editar el mensaje que habíamos creado y borrar la palabra "hola". Crearemos otro mensaje en el que escribiremos la palabra hola y lo conectaremos a nuestro mensaje con la palabra mundo: Cuando hacemos clic en el primer mensaje **"hola"**, este mensaje se envía y llega a la entrada del mensaje "mundo". El mensaje que contiene la palabra mundo se activa, e interpreta el mensaje recibido como una orden de activarse sin importar ni preservar el contenido de este y envía su contenido: la palabra mundo que llega al objeto "print" y se imprime en la zona de impresión de la ventana principal. Por eso el "hola" del primer mensaje no se imprime, el segundo mensaje no guarda ni reenvía el hola recibido, solo envía el contenido que ya tiene, en este caso, mundo. El objeto print también nos va a permitir visualizar valores numéricos. Entramos en el modo edición, creamos una cajita de número variable (**menu horizontal>Poner>Numero** o utilizando en comando **"Ctrl+3")** y la conectamos con el objeto print. Salimos del modo edición (**"Ctrl+E"** o en el menu horizontal **Editar>Modo edición)** y manteniendo el clic izquierdo sobre la cajita arrastramos el ratón para cambiar el número. Cada vez que el número de esta cajita cambia, es enviado por el outlet o salida. Este elemento **NO** nos va a permitir enviar su contenido clicando sobre el. Para que envíe su contenido tendremos que hacerle llegar un mensaje de bang, y si queremos cambiar su contenido a traves de su entrada, tendremos que hacerle llegar un valor numérico válido, por ejemplo con un mensaje que contenga dicho valor. Un mensaje con símbolos que no puedan ser interpretados como valores numéricos validos no sera aceptado por la cajita de numero variable y nos mostrara un error en el espacio de impresión, ya que este objeto solo acepta como entradas mensajes de bang o valores numéricos. #####

Ejercicio 1: Después de ver el video y construir el patch de hola mundo. Crea otro patch con tres mensajes que modifiquen el contenido de una cajita de numero variable, e imprime el contenido de la cajita de numero variable en la zona de impresión.

##### ¿Qué tenemos que entregar? El ejercicio 1. Sube a la carpeta del Moodle de la Practica 1 una captura de pantalla y el patch que has creado. El patch debera llamarse: **Practica1\_nombre\_apellido.pd** y la imagen **Practica1-imagen\_nombre\_apellido**. Figuras: Figura 1: Tomada de "Pure Data Start Here" by Pure Data [https://puredata.info/docs/StartHere](https://puredata.info/docs/StartHere) Referencias: Pure Data (2022). *Pure Data Start Here*. Pure Data. Consultado el 14 Septiembre 2022 de [https://puredata.info/docs/StartHere](https://puredata.info/docs/StartHere)