Como usar Quartz Composer para controlar luces a través de DMX

Hola, niños y niñas. Ayer hice un bolo donde tuve que controlar unas luces LED con el ordenador. Actualmente hay varias opciones como MadLight en  MadMapper o VDMX, que utilizan lo que se llama Video to DMX, que dicho rápido, convierten la imagen de video a DMX, cuando un pixel de video determinado es blanco (o gris) enciende un LED, según esté configurado. Esto resulta muy práctico para ciertos montajes, pero para controlar lo que tenía que controlar me pareció más apropiado utilizar Quartz Composer, ya que sólo necesitaba cambiar colores, activar algunos efectos y el strobo de unas cabezas ParLed parecidas a ésta

parled200

y unas unas barras de LED (LED Bars) de este tipo

LEDBAR

Os voy a contar como lo hice y como se controlan luces con QC y DMX. Para realizar esto necesitaremos por ejemplo contar con un interfaz DMX como el Enttec Open DMX Ethernet, al que se conectará el cable DMX y con el que será posible controlar un Universo DMX (cada Universo DMX tiene 512 canales, es posible utilizar varios Universos, solo que harán falta más interfaces DMX o un interfaz capaz de controlar muchos universos). También necesitaremos algúnas luces, que en algunos caso, como las cabezas móviles cuestan más de €1000, lo que hace que no sea posible para la mayoría de nosotros. Por ello este tutorial es más que nada para que veas que es relativamente sencillo hacerlo y cómo se hace. Si eres afortnado y tienes acceso a este tipo de hardware, genial, podrás hacer muchas cosas, si al contrario no tienes nada de esto, tal vez sabiendo estas cosas te animes a hacerlo cuando surja la oportunidad.

Basicamente, las luces se controlan con estructuras de datos. Según el tipo de luz, puede utilizar más o menos canales de esa estructura. Lo más básico sería por ejemplo una tira de LED monocroma, o de luz blanca. Lleva sólo un canal. Un tira RGB en cambio llevará 3, uno para cada color, aunque en ocasiones también puede llevar alguno más para blanco o intensidad.

Sharpy

Las cabezas móviles tipo Sharpy suelen llevar muchos más canales ya que no sólo incluyen los canales para darle color e intensidad a la luz sino que también incluyen canales para controlar el movimiento. Lo importante es conocer cuales esos canales, normalmente en las instrucciones de la cabeza móvil viene detallado. Si no por supuesto a través de Google es posible encontrar esos datos. Franz, de 1024 Architecture ha creado algunos patches para cabezas móviles que son los que supongo que utilizan en sus shows, y que sirve de ejemplo para ver el funcionamiento. Necesitamos también el plugin de Kineme ArtNet Tools que aunque es de pago te deja probarlo 1 semana (por los 15 dólares que cuesta creo que merece la pena -si lo utilizas, claro-) y el plugin Kineme DATA Tools, que es gratuito y fundamental para trabajar con estructuras en Quartz Composer. En la imagen siguiente te muestro el patch Sharpy de 1024 conectado al patch Kineme ArtDMX Sender.

sharpyQC

Como ves a posar el cursor sobre el output vemos la estructura: entre comillas, el canal, y luego el valor, que puede ser de 8 bits (0-255) o normalizado (0-1), para esta última opción debes marcar el checkbox “Normalizad Values“. Si por ejemplo quisieras hacer guirar la cabeza móvil, deberias conectar un patch LFO al input 10 (que corresponde al Canal 11), y configurarlo para que realice el giro como quieras. También podrías conectarlo a un controlador MIDI y girarlo con un Fader o un Knob.

Al asunto

Pero de lo que os iba a hablar no es de eso, sino de lo que hice el otro día, que es mucho más sencillo que trabajar con cabezas móviles, y una buena forma de iniciarse en este tema. Mi trabajo consistía en “pintar” algunas paredes (donde estaban ubicados los focos) con luz. Me diijeron que los canales de las barras LED (que se dividían en 2 partes) ocupaban 11 canales, e iban así:

CANAL 1: EFECTOS

CANAL 2: INTENSIDAD

CANAL 3: Strobo

CANAL 4, 5, 6, 7: RGB y Blanco, la primera parte de la barra

CANAL 8, 9, 10, 11: RGB y Blanco, segunda parte de la barra

En el caso de los Parled, del canal 21 a 24, que correspondían a Dimmer, R, G, B.

Por lo tanto mi estructura debía contar con los canales 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 21, 22, 23, 24 para funcionar.

El patch “Named Structure Maker” nos permitirá crear la estructura que necesitamos. Una vez que lo hayas descargado a tu composición, debes decirle, a través del Inspector de Patches (Pestaña Settings) cuántos canales quieres, y luego “nombrar” cada canal con el número correspondiente (En los campos llamados Input 1 Key, Input 2 Key, etc).

Descarga ahora un patch HSL que genera colores a partir de los valores Hue (Tono), Saturation (Saturación, claro), Luminosity (Luminosidad) y Alpha (Alfa) que en este caso no usaremos. Conectalo un patch Color to RGB para descomponer el color resultante del primer patch a RGB y asi poder conectar esos valores a los inputs correspondientes, en nuestro caso, 4, 5 y 6 para la primera mitad de la barra y 8, 9 y 10 para la segunda mitad. Publica (botón derecho del ratón sobre el patch HSL) el valor Hue y una vez publicado agregale un Input Splitter (botón derecho sobre el patch…).

Al mover ahora el deslizador del Input Splitter cambiarás el color de la barra de LED. Conecta ahora los outputs R, G y B del patch Color to RGB a los inputs correspondientes a los canales RGB de los ParLed, que eran 22, 23 y 24 (el 21 es el dimmer, que controla la intensidad). Ahora controlas la luz tanto de las barras de LED como de los ParLed. Descarga ahora un patch Input Splitter pero desde la Librería de Patches, y, en la pestaña Settings del Patch Inspector, cambiale el “Tipo” de Virtual (como viene por defecto) a Number, que es el tipo de datos que vamos a transportar. Al hacerlo la ventana del Inspector cambiará y en la parte inferior aparecerán 2 campos donde poner el valor mínimo y máximo. Por defecto viene con el valor NaN, que en inglés es la sigla de Not a Number, se utiliza en este caso cuando no quieres especificar un valor. Cámbialo a 0 (cero) para el mínimo y 1 para el máximo, y cambia el nombre del patch (haciendo doble click sobre el nombre del patch) a, por ejemplo, “Efectos” que corresponde al número 1 de nuestra estructura. Conecta el output al input Input 1 del patch Name Struct Maker. Ahora duplica ese patch, cambiale el nombre a “Intensidad” y conéctalo al input Input 2 y al Input 12 (que corresponde al canal 21, canal Dimmer de los ParLed), haz lo mismo para el input 3 (Strobo) y el canal Blanco que corresponde a los inputs 7 y 11. Publica a continuación cada uno de los inputs de los patches Input Splitter.

En mi caso utilicé un controlador MIDI para controlar cada parámetro, puedes usar uno si tienes, a través del patch MIDI Controller Reciever, o usar un IPad con TouchOSC o similar. O sencillamente moverlos desde Quartz Composer. En este tutorial vamos a dejarlos asi.

Hasta donde hemos hecho, si activamos el visor de la composición nuestra pantalla se verá negra. Normal, ya que no hemos hecho nada para que haya algo ahi. Tampoco lo necesitamos realmente para controlar las luces, pero en mi caso en particular, como no estaba al 100% seguro de que la composición funcionase correctamente se me ocurrió poner una guía visual para poder comprobar si el color que se iluminaban los LED era el que debía ser. Para ello utilicé Iterator con un Sprite dentro para tener en mi pantalla 8 cuadros abarcando todo el espectro del Hue, de rojo a rojo. Para hacerlo, descarga un patch Iterator en tu composición y cambia el número de iteraciones a 8; métete dentro haciendo doble click sobre él (cuidado si trabajas con Mac OS 10.6.X Snow Leopard, tienes que tener desbloqueadas las mayúsculas, si no, no funciona) y desde la Librería de Patches baja un Sprite, un Interpolation, un Iterator Variables y un Mulutiplexer. Cámbia el Timebase del Interpolation (botón derecho con el patch seleccionado > Timebase >External) y conecta el output Current Position del patch Iterator Variables al input Patch Time de Interpolation. En el patch Interpolation cambia el modo de repetición (Repeat Mode) a None y el Start Value y End Value a algo asi como -0.6 y 0.6 respectivamente. Cambia el tamaño del Sprite (Width y Height, Ancho y Alto) a, por ejemplo, 0.15. Conecta el output del Interpolation al input X Position del Sprite. Eso distribuirá los cuadrados a lo ancho, desde -0.6 hasta 0.6. Ahora selecciona el patch Multiplexer y a través de Inspector de Patches en la pestaña Settings cambia el tipo de inputs  (Type of Input) a Color y el número de inputs a 8. Ahora debes seleccionar uno a uno los colores e ir cambiádolos. Yo lo hice a ojo, el primero y el último tienen que ser rojos, y en medio el resto del espectro. Una vez hecho esto, conecta el output al input Color del Sprite y conecta el output Current Index del Iterator Variables ai input Source Index del Multiplexer. Verás que los colores se distribuyen a cada uno de los cuadrados.

Captura de pantalla 2014-10-10 17.44.26

Descarga ahora otro patch Sprite y cambia su tamaño a 0.1. Modifica su valor Y Position para ubicarlo debajo de los cuadros de colores. Ahora lo que necesitamos es mover el Sprite en el eje X, y para ello podemos utilizar el output del Input Splitter Hue, sólo que va del rango 0 a 1 y necesitamos que vaya de -0.6 a 0.6 que es donde están los cuadrados. Para ello puedes usar este patch que sirve para convertir de un rango a otro. Configúralo y conéctalo como en la imagen siguiente:

Captura de pantalla 2014-10-10 18.10.56

Yo además, como puedes ver en la imagen, le agregué una imagen al Sprite, un pequeña flecha hecha en Photoshop y guardada como png. También tuve que descargar los patches Color to HSL y HSL Color para darle color a la flecha. Como podéis comprobar en la imagen del Visor, el color que puse no es exacto, pero como guía para mi fué suficiente.

Captura de pantalla 2014-10-10 18.11.04

Espero que te haya servido el tutorial, haz algún comentario si quieres, pregunta lo que sea, trataré de responderte.

Muchas gracias, y Thanks for Watching!

Si aún no te has apuntado a la lista de correo, hazlo y recibirás más tutoriales en tu email, e información y un capítulo gratis del libro Quartz Composer para Aplicaciones Visuales que estoy escribiendo.