Skip to main content

Entorno y Objetos básicos

ENTORNO

Cuando trabajemos con Pd veremos la Ventana principal de Pd y posiblemente uno o mas "patches", "canvases" o "lienzos"  (Pure Data, 2022). 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:

(imagen de la ventana principal con texto explicando las partes)

En la parte superior encontramos un menú horizontal que aparecerá también en los patched de Pd. Este es el menu principal que utilizaremos para configurar Pd, realizar acciones, / que nos permite interactuar don Pd. 

Si queremos aumentar el tamaño del texto podemos hacerlo desde el Menu horizontal en Editar>Fuente

(Imagen de editar fuente) 

En la parte inferior tenemos un espacio para la impresión de contenido desde patches de Pd y/o mensajes del propio Pd (Pure Data, 2022). Para imprimir desde un patch utilizaremos principalmente el objeto "print". Este objeto es util para visualizar el estado de los datos en diferentes partes de la estructura/programa que creemos, nos va a ayudar a encontrar errores y entender mejor como 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 minima cantidad de información mostrada y "4 todo" la maxima. Inicial mente vamos a tener el Log en "2 normal" y ampliaremos la información mostrada en función de nuestras necesidades a la hora se resolver posibles problemas.  

image-1661613340653.gif

La casilla de "DSP" nos permite encender y apagar el sistema de audio del programa. Si el audio esta apagado las señales de audio de nuestros patches no se procesaran, luego siempre que trabajemos con audio debemos de tener el DSP encendido. El DSP también lo podemos encender y apagar desde el Menu 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:

La ventana de patch tiene en la parte superior el mismo menu principal que la ventana principal de Pd. Encima del menu veremos el nombre del patch y en que 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, estará en el modo de funcionamiento y no podremos modificarlo, cuando el modo edición este activado el programa no se estará ejecutando y podremos modificarlo.

Para crear un patch iremos al menu horizontal Archivo>Nuevo o utilizando el Shortcut/abreviatura "Ctrl+N" y para guardar un patch "Ctrl+S" o en Archivo>Guardar. Es conveniente guardar el patch en el que este estemos trabajando para no perder nuestros progresos en caso de que haya un error grave.

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 del nuestro programa sea visible y comprensible. Cuando el programa se este ejecutando, aunque la ventana de un sub-patch este cerrada, está siempre en funcionamiento (Pure Data, 2022).

Poner un ejemplo de imagen de un patch enorme y el mismo patch agrupado.

Por ejemplo estamos siguiendo una receta de un libro de repostería para hacer una tarta. La receta de la tarta seria 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. Tambien 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 pagina 6 y la pagina 8 son sub algoritmos necesarios para el algoritmo principal que es nuestra receta. Si toda la información de como hacer esta tarta incluyendo como montar las claras y hacer hojaldre se encontrara toda junta en la misma pagina, nos seria mas complicado comprender y visualizar rápidamente el proceso general que debemos seguir para hacer esta tarta.     


ELEMENTOS

En Pure Data trabajaremos con 4 tipos/clase de elementos o cajitas: objetos, mensajes, GUI, y comentarios. Estas cajitas pueden tener 0 o más entradas y/o salidas (Pure Data, 2022). Estas cajitas van a ser contenedores de procesos o datos y las conectaremos unas a otras para crear la estructura que nos permita obtener el resultado deseado.


image-1661609279467.jpg  <--- en este patch hay cuatro cajitas de texto: una cajita de numero (que contiene un cero), una caja de objeto que contiene la palabra "print" y dos comentarios que indican la función de las otras dos cajas. (rehacer este ejemplo con gif y mostrar el output del print y colocar arriba en la sección de ventana principal)

image-1661427608752.PNGObjeto 

Los objetos se crean escribiendo texto en una cajita de objetos, y es ese texto el que va a crear un objeto determinado con una función especifica. Este texto se divide en atoms separados por un espacio. El primer atom indica que tipo de objeto sera creado, los atoms siguientes, llamados argumentos de creación indican a Pd como inicializar el objeto, por ejemplo que valor o en que estado comienza el objeto (Pure Data, 2022). 

La cajita de objeto se representa por un rectángulo, en la parte superior del rectángulo se encuentran las entradas o inputs, marcadas con una pequeña línea gruesa. En la parte inferior se encuentran las salidas o outputs marcadas cada una de ellas también con una pequeña línea gruesa. Dependiendo del objeto el numero de entradas y salidas variara, hay objetos que solo tienen entrada como el "print".

Por ejemplo:

image-1661757829440.3.jpg el "+" especifica el tipo de objeto que es, indica que es un objeto de suma y su función sera esa sumar. El "13" indica que cantidad se va a sumar al numero que llegue por la entrada izquierda del objeto (Pure Data, 2022): 

Entrada/input izquierda + 13 = output/salida

La cantidad a sumar sera la inicial del objeto ,13, a no ser que introduzcamos otro numero por la entrada derecha del objeto. El numero introducido remplazara al 13 y quedara almacenado en el objeto suma aunque visualmente en el objeto sigamos viendo "+ 13" y contenido es "+ Ultima Entrada/input derecha" 

Entrada/input izquierda + Ultima Entrada/input derecha  = output/salida

(Gif de la suma)

Los atoms son números o símbolos. Todo aquello que no sea considerado un numero valido sera interpretado por el programa como símbolo. Los números validos pueden contener decimales (12, 15.6, -783) o estar escritos con notación exponencial (7.8e3 = quiere decir 78 multiplicado por 10 tres veces = 7800) (Pure Data, 2022). Los exponenciales negativos dividen entre 10 (69.3e-4= 0,00693) (Pure Data, 2022). 

Entre números no validos que son leidos como simbolos podemos encontrar expersiones como "+5" "0..6" "casa" y el programa reconoce como simbolos diferentes "hola" , "Hola" y "HOLA" luego diferencia entre mayúsculas y minúsculas (Pure Data, 2022).

Para mas información de cualquier elemento de Pure Data accederemos a el patch de ayuda que encontraremos clicando sobre el elemento con el botón derecho y seleccionando Ayuda. Este patch en ingles explica la funcionalidad y posibilidades del elemento.

(gif del patch de ayuda)


Cuando trabajemos con señales de audio utilizaremos objetos específicos de audio. Estos objetos siempre contienen el simbolo de virgulilla : "~" y a diferencia de los objetos de control/Data flow que relizan su funcion unicamente cuando sucedce un evento y los activa (ejemplo: un el clic sobre un mensaje, la llegada de un simbolo a un print), los objetos de audio procesan señal constantemente sin necesidad de eventos que los activen. La señal de audio sera un flujo constante de datos y visualmente la podremos diferenciar como una línea mas gruesa que une distintas cajitas.

(Meter algo como el ejemplo que esta en la seccion de objeto)

Poner ejemplo de la suma/resta. 

El 

Lista de objetos de Pure Data Vanilla + librerías externas: https://puredata.info/docs/ListOfPdExternals/

image-1661427544240.PNGMensaje

La cajita de Mensaje se representa por un polígono irregular, un rectángulo con dos piquitos en los vertices derechos. El contenido que introduzcamos en una cajita de mensaje en el modo edición no se puede cambiar mientras el programa se ejecuta, para modificar el contenido de un mensaje tenemos que hacerlo en el modo edición del patch y este contenido se conserva cuando guardamos, cerramos y volvemos a abrir el patch. 

Los mensajes envían su contenido cuando son activados (generalmente utilizaremos un Bang para activar un mensaje, si queremos que un mensaje se envié dos veces tendremos que activar el bang dos veces). Conectaremos la salida de un mensaje con la entrada de un objeto que sera el destinatario del mensaje. Tambien podemos interactuar con el clicando sobre el, esto hace que sea considerado también una GUI.

GUI (Graphical User Interface/ Interfaz Grafica de Usuario)

Las interfaces graficas de usuario (GUI) son elementos cuya apariencia puede variar cuando el programa este en funcionamiento, a diferencia de los objetos y mensajes que tienen una apariencia estática. Alguno de estos elementos son interactivos y nos van a permitir modificar parámetros desde el ratón y/o visualizar esos cambios o estados cuando el programa este en ejecución. Tienen diferentes formas y funciones. Estas son algunas de las mas utilizadas:

image-1661427699753.PNGCajita de numero

La cajita de numero se representa por un rectángulo truncado en su esquina superior derecha. Este elemento nos permite almacenar y visualizar diferentes numeros que llegaran por el inlet a traves de un mensaje u objeto, que podremos modificar con el raton clicando y arastrando arriba o abajo cuamdo el programa este en ejecucion. Este elemento enviara el numero que contiene cuando varie o cuando reciba un evento ej (bang). Si el numero no varia y no recibe nigun bang, la cajita de numero no envia nada y a diferencia del mensaje que con un clic hacemos que se envie, sobre este el click de raton no hara que la cajita de numero envie su contenido.  

image-1661427750318.PNGBang

Este elemento es un botón que nos permite enviar un "impulso" o "mensaje de bang" cuando se activa: bien clicando sobre el o cuando recibe cualquier mensaje en su entrada. Frecuentemente utilizaremos el bang para activar otros elementos y nos va permitir visualizar cuando hay flujo de datos entre otros objetos. El mensaje de bang le dice a otros objetos: actua! para que realicen su función. Y a nosotros nos dice que algo ha llegado.

El bang existe también como objeto "bang" o "b" y realiza la misma función que su version GUI pero no permite al usuario activarlo desde el ratón ni visualiza su actividad. (poner imagen del objeto bang y b)


image-1661427774284.PNGToggle

Este elemento es lo que en electronica un interuptor nos permite abrir o cerrar, desactivar o activar de manera permanente. Su estado cambia al recibir valores 0... Clicando sobre el cuando este abierto cambiaremos su estado a cerrado y viceversa, cuando este cerrado cambiaremos su estado a abierto. Por abierto entendemos que la conexión esta cortada luego el agua no llegara y por cerrado entenderemos que la conexión esta activa luego esta dejando pasar el agua

 

En el patch de Lista de objetos (5.reference) que se encuentra en menu horizontal>Ayuda>Lista de objetos hay un sub-patch llamado "all_guis" que nos muestra todas la interfaces graficas de Pd Vanilla.


image-1661427636895.PNGComentarios

Los comentarios visualmente no aparecen en ninguna cajita ni tienen entradas/inputs ni salidas/outputs. El texto introducido en los comentarios es información que no sera interpretada por la maquina como elementos transformadores del programa/patch que estamos construyendo. Estos comentarios contienen información dirigida a las personas, notas que tomareis para vosotros mismos relacionadas con el funcionamiento del patch que estéis construyendo o notas para facilitar a otras personas la comprensión del patch que habéis creado. Son muy útiles para escribir recordatorios o explicaciones durante el proceso de trabajo y para etiquetar las diferentes partes de la estructuras que hagáis.

(poner gif/imagen de un comentario)

Líneas de que conectan las cajitas


-------

Finalizar esta seccion el videotutorial probando ejemplos.

Para crear un sub-patch utilizaremos un objeto en el que escribiremos "pd" como primer atom seguido del nombre que queramos darle a ese sub-patch


Este capitulo ha sido redactado tomando como guía el Capitulo 2 del Manual de Pd.

Referencias:

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