El patch Multiplexer

Introducción

Es uno de los patches que más utilizarás en Quartz Composer.
El concepto detrás del Multiplexer (como en muchos otros casos en programación) es bastante más antiguo que el propio Quartz Composer, ya que fué primeramente empleado en 1870 en telegrafía, como podemos leer si lo buscamos en la Wikipedia (http://en.wikipedia.org/wiki/Multiplexing -como suele suceder la información de la entrada en inglés es bastante más amplia que en la entrada en castellano-), y, basicamente, “es la combinación de 2 o más canales de información en un solo medio de transmición”. Su utilización en QC es aproximadamente parecida, ya que nos va a permitir usar diferentes entradas en una misma salida, normalmente del mismo tipo.
Por defecto, cuando agregas un patch Multiplexer a una composición, viene con el Tipo de Input “Virtual” seleccionado, que supone que es capáz de transmitir cualquier tipo de datos de los que acepta QC. Si abres el Inspector de Patches en su pestaña “Settings” verás que puedes cambiar el tipo de datos, pudiendo elegir entre Boolean (booleano), Index (índice), Number (número), Color, String (cadena de carácteres), Image (imagen), Structure (estructuras) y Mesh (malla).

tiposdatos

Según el tipo de datos a transmitir elegido cambiarán los inputs. Si por ejemplo eliges “Color” como tipo de datos, los input del patch serán colores, que podrás cambiar en el mismo patch haciendo click sobre los cuadritos de color en la ventana Settings del Patch Inpector. Arriba de donde está el menú Type of Input tienes el Number of Multiplexer Inputs (número de inputs del Multiplexer) que como su nombre indica te permite elegir el número de entradas que tendrá el multiplexer (siendo el máximo permitido 128).
Además, como puedes ver, el primer Input del patch es siempre el llamado Source Index, que nos permitirá elegir cuál de los inputs de entrada es el que saldrá por el Output del patch. Si el patch tiene sólo 2 inputs, el deslizador irá de 0 a 1, siendo 0 el primer input y 1 el segundo. Según agregues inputs se incrementará el número máximo del deslizador. Con 8 inputs el deslizador irá de 0 a 9, ya que como recordarás se comienza a contar desde 0 y no desde 1.
Si quieres por ejemplo tener un cuadro en la pantalla que cambie de color, puedes utilizar un Multiplexer de Color. En sus inputs elegirás los 2 colores que quieres usar y conectarás el output al input de Color de un patch Sprite. Cuando el input Source Index esté en 0, el color corresponderá al del input 1 (Source# 1) y cuando esté en 1, al input 2.

Algunos ejemplos de uso

Siguiendo con el ejemplo anterior, imagina que quieres que tu cuadro cambie de color cada segundo. Para ello, puedes conectar al input Source Index un patch Interpolation tal y como viene por defecto, esto es una interpolación de 0 a 1 en un segundo con una curva de tipo Linear. Quedaría algo como en la imagen siguiente.

multiplexer2

Otra opción podría ser utilizando el patch Audio Input junto a un patch Conditional, donde el patch Conditional nos servirá para decirle al Multiplexer que cambie de 0 a 1 cuando el input sobrepase un número determinado. En este caso deberías tener algo así en tu ventana Editor:

multiplexer3

Otro ejemplo podría ser uno donde un supuesto usuario, digamos, en una aplicación o instalación interactiva, ingrese un texto en respuesta a una pregunta. Para ello usaremos el patch String Compare que lo que hace es comparar 2 textos. Si los 2 textos son iguales el output será 0, si el segundo texto es distinto del primero el resultado será 1. Usando el Conditional de modo adecuado conseguiremos que nuestro cuadrado cambie de color como querramos. En el ejemplo que sigue puedes ver que si el segundo texto es distinto del primero el cuadrado será verde, de lo contrario será rojo.

multiplexer5

Otro modo interesante de usar el Multiplexer es combinado con Iterator. Al conectar el output Current Index del Iterator Variables al input Source Index del Multiplexer podemos distribuir los distintos inputs del Multiplexer en lo que sea que hayamos iterado, en este caso el cuadrado generado por el Sprite (4 veces). Es un buen modo también para comprender el output Current Index del Iterator.

multiplexer6

Como has visto hay muchas formas de usar el pacth Multiplexer, prueba tú ahora usando distintos tipos de datos y distintas formas de modificar el input Source Index para obtener los resultados que quieras. Como todo, cuanto más practiques más te acostumbrarás a su uso y comprenderás mejor su funcionamiento. Con el tiempo verás que lo usas cada vez más y más.

Espero que te haya servido este tutorial, y nos vemos en el próximo! He desactivado los comentarios porque el Spam acecha, si quieres consultarme algo no dudes en escribirme.
Saludos