2.5. Compuertas y otros objetos de control de flujo

Pure Data cuenta con una serie de objetos que nos va a permitir controlar el flujo de datos en nuestras aplicaciones.

Estos objetos sirven para seleccionar o filtrar números y para direccionar la información.

2.5.1 Select

Cuando deseamos saber si la salida de un objeto es un número en particular podemos valernos del objeto select. En G.2.7. observamos varios ejemplos que describen el modo de utilizarlo.

G.2.7. Selección de números mediante el objeto select


En A, el número 14 en el argumento determina el criterio de selección; cuando el número que ingresa es el 14, el objeto envía un bang a la salida. En B, vemos un alias de select, sel, implementado para ahorrar escritura, dado que este también es un objeto muy usado. En C, el outlet de la derecha envía los números que no cumplieron con la condición (todos menos el 14). En D, observamos que por el inlet derecho se puede cambiar el criterio de selección, y reemplazar el 14 del argumento por cualquier otro valor. Finalmente, en E vemos que un mismo objeto select puede reconocer más de una opción numérica, simplemente aumentando la cantidad de argumentos escritos en el objeto. Pero en este último caso, no resulta posible cambiar los argumentos por valores externos al objeto.

A través del patch “07-select.pd” podremos experimentar el uso de este objeto, ingresando valores o modificando la programación.


2.5.2 Switch y gate

El objeto switch dispone de varias entradas y una única salida. La cantidad de entradas está determinada por el argumento que escribamos al crear ese objeto. A switch ingresan varias líneas de datos numéricos, pero solo una –o ninguna– pasa a la salida. A través del número que entra por el primer inlet determinamos cuál de las entradas dejamos salir por el outlet. Si por el inlet izquierdo ingresamos un 0 (cero) ninguna entrada sale por su outlet; si ingresamos un 1, sale solo lo que entra por el segundo inlet; si entra en cambio un 2, sale lo que entra por el tercer inlet, y así sucesivamente.

El ejemplo “08-switch y gate.pd”, cuya ventana se reproduce en G.2.8. implementa estas compuertas. A partir de su uso comprenderemos mejor el funcionamiento y posibles aplicaciones de estos objetos de control.

G.2.8. Objetos compuerta switch y gate


El objeto gate, por otra parte, funciona de manera inversa. Mediante el número que ingresa por el inlet izquierdo determinamos a qué salida se dirigen los números que entran por la derecha. Aquí también el valor del argumento que elijamos determina la cantidad de outlets del objeto. En ambos ejemplos empleamos un nuevo objeto gráfico, denominado radio button. Para switch utilizamos uno vertical, Vradio (que encontramos en el menú Poner), y para gate un radio button horizontal, denominado Hradio. La cantidad de opciones de selección de este objeto GUI, la especificamos en el menú de Propiedades del objeto (accedemos haciendo clic con el botón derecho del mouse sobre él), al igual que sus dimensiones y colores. Si presionamos el primer botón de un radio button obtenemos un cero (0), un uno (1) con el segundo botón, y así sucesivamente.

2.5.3. Spigot y split

El objeto spigot deja pasar a su salida cualquier número que ingresa por la izquierda, siempre y cuando su argumento, o el número que entra por la derecha, sea distinto de cero.

El objeto split, por su parte, deja pasar a su outlet izquierdo cualquier número que esté comprendido en cierto rango de números. Si el número ingresado se encuentra fuera del rango, sale por la derecha. En G.2.9., a la derecha, se observa que el rango se establece mediante dos argumentos, o bien a través del segundo inlet (valor mínimo del rango) y del tercero (valor máximo).

G.2.9. Objetos compuerta spigot y split

El ejemplo “09-spigot y split.pd”, cuya ventana se reproduce en la figura anterior, implementa estas compuertas.