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