OSC

OSC le ofrece el control definitivo de cada uno de los aspectos de Resolume.

OSC es el acrónimo en inglés de la expresión Control de Sonido Abierto. Puede leer más sobre ello en orígenes.

Los aspectos más importantes a tener en cuenta es que puede enviar OSC a través de una red, y que puede tener un control mucho más preciso que vía MIDI o DMX. Puee activar el OSC en Resolume en la pestaña OSC de las preferencias.

Direcciones OSC 

Cada elemento del Resolume puede ser controlado por su dirección OSC. En lugar de hacer clic con el ratón, puede controlar las cosas enviando mensajes a una dirección de control. En esencia, esto es una forma de enviar un email al Resolume, indicándole que ajuste un control concreto a un valor determinado.

Las direcciones están todas prefijadas de origen. Esto implica que con OSC puede empezar a controlar todo desde el primer momento, al contrario de lo que ocurre con los atajos de teclado y MIDI, que primero le obligan a que enlace un control con un atajo concreto.

Por ejemplo, si quisiese ajustar la opacidad de la capa 1 a 25%, deberá enviar un mensaje OSC a la dirección "/composition/layers/1/video/opacity", especificando 0.25 como valor.

/composition/layers/1/video/opacity 0.25

¡Ya está! esto es todo lo que tiene que hacer. No hace falta asignar atajos o cargar presets. Siempre puede usar este mensaje OSC para ajustar la opacidad de la capa 1. En cualquier ordenador en el que use Resolume. En cualquier momento.

Puede controlar de la misma forma todos y cada uno de los elementos del interface de usuario. 

Supongamos que quiere colocar la cabecera de reproducción del clip 8 de la capa 2 al principio del clip. Podemos hacer esto enviando el mensaje siguiente:

/composition/layers/2/clips/8/transport/position 0.0

Y ¿cómo calcular qué dirección se usa para cada control concreto? Pues aunque hay una cierta lógica en ello, la forma más fácil de saberlo es acceder al modo OSC Shortcut (Shortcuts > Edit OSC) y hacer clic sobre el control que quiera.

El panel de atajos le mostrará la dirección correcta. Puede hacer clic en la propia dirección para aplicar la técnica del "copia-pega".

"Pero hombre, ¿por qué en Resolume no hay un listado de todas las direcciones OSC? ¡Eso sería súper útil! "

Sí, algo de ello hay, pero realmente no como piensa. El listado de direcciones cambia dependiendo de cómo haya configurado su composición. Además, crece rápidamente. Bueno, en realidad muy rápidamente. Para que se haga una idea, aquí puede ver un listado con las direcciones OSC para una composición que tenga un único clip en una única capa, sin ningún efecto. Diviértase.

Direcciones múltiples

Puede acceder a algunos controles con más de una dirección. Por ejemplo, aquí abajo hay dos direcciones que pueden acceder al parámetro Speed de un efecto Goo en la capa uno.

Cuál de los dos necesite dependerá de cómo quiera usarlo.

El primero es lo que llamamos la dirección absoluta. Controla el efecto Goo en la primera capa y solo en la primera capa.

El segundo es una dirección relativa. Siempre controla el efecto Goo, pero en una capa diferente, dependiendo de la capa elegida en ese momento. Por tanto, si tiene efectos Goo en cada capa, podrá controlar cada uno de ellos con la misma dirección OSC. Simplemente deberá elegir primero la capa sobre la que trabajar.

Si no hay ningún efecto Goo en la capa seleccionada, no habrá ningún problema por enviar algo en esta dirección porque no hará nada.

Type Tag y Range

Cuando elija un elemento del interface de usuario (IU), podrá ver también el Type Tag o etiqueta de tipo. Esto es un término que usamos para indicar qué valores puede enviar a una dirección y cuál será el resultado de los mismos.

Float

Por ejemplo, /composition/video/effects/transform/scale tiene la etiqueta de tipo Float 0.0 - 1.0 (rango 0.0 - 1000.0). 

Esto implica que puede enviar valores fraccionales entre 0 y 1, para ajustar la escala de la composición para un valor de entre 0% y 1000%. Por tanto, enviar un valor de 0 producirá un ajuste del 0%, enviar 0.1 lo ajustará al 100%, 0.5 al 500% y 1.0 al 1000%.

De forma similar, /composition/video/effects/transform/rotationz tiene un Type Tag Float 0.0 - 1.0 (rango -180.0 - 180.0). Esto implica que los valores cubren un rango desde 180 grados con giro a la izquierda a 180 grados a la derecha. El enviar un valor de 0.5 lo pondrá justo en el centro.

Int

Algunas direcciones tienen Int como etiqueta de tipo. 

Por ejemplo, puede llegar al modo de mezcla de la capa uno con /composition/layers/1/video/mixer/blendmode. Y puede enviar un número entero entre 0 y 50.

Cada número elegirá uno de los 51 modos de mezcla disponibles. 

"Espere, ¿51? ¿Pero no acaba de decir números enteros hasta el 50?"

Sí. A los ordenadores les gusta contar empezando en 0, por lo que tendrá 51 número en total. Sí, es un poco tonto, pero si no sabe aguantar una broma, dígalo.

¡Alerta para frikys! Si le interesa mucho, puede seguir enviando un valor Float (flotante) a direcciones que necesiten un valor Int. Esto producirá una conversión lineal del valor flotante entre 0.0 y 1.0 al rango del parámetro de la dirección.

Color

Como caso especial, puede enviar un valor de color OSC a los selectores de color.

Los valores de color OSC tienen la etiqueta de tipo r seguida por un integral sin signo que representa un color RGBA de 32 bits. Puede registrar un color con un valor int haciendo un cambio de bit de sus valores RGBA.  Si todo esto le suena muy técnico, puede probar con Vezer que hace todo este duro trabajo por usted.

String

También puede enviar texto a las entradas de texto. De esta forma podrá actualizar de forma dinámica las fuentes Text Block y Text Animator.

Estas cadenas de texto o Strings tienen la etiqueta de tipo s seguida por el propio texto.

Valores absolutos

"Un momento, Resolume. Todo esto de las etiquetas de tipo suena innesariamente complejo. ¿Por qué me tengo que complicar tanto la vida con cálculos y ver qué modo de mezcla está en qué número?. Y ¿quién en su sano juicio empieza a contar desde 0  o graba un color cambiando sus bits? ¡Eso es super raro! ¿No hay algo para personas normales?"

Buena pregunta... y sí, lo hay. Bueno, se supone que usted es un VJ y, por definición, usted no es una persona normal, pero sí, también hay algo para personas no-normales como usted.

Por ejemplo, para los modos de mezcla, simplemente puede enviar el nombre del modo que quiera usar como una cadena de texto.

/composition/selectedlayer/video/mixer/blendmode "Alpha"

Esto ajustará el modo de mezcla de la capa elegida a alpha.

Si la aplicación que usa para enviar OSC le permite enviar varios argumentos, puede hacer algo similar para los valores absolutos. 

Esto resulta muy útil si quiere colocar un clip en un valor de píxel x e y concreto. Puede hacer esto especificando primero que quiere usar el valor absoluto. Haga esto usando "a" como el primer argumento después de la dirección, seguido por el propio valor absoluto.

/composition/layers/1/clips/1/video/effects/transform/positionx "a" 320

Esto ajustará el clip 1 de la capa 1 a 320 píxeles sobre el eje x.

Valores relativos

¡Esto es incluso mejor! Puede especificar cambios relativos en un valor. 

Por ejemplo, puede usar una "+", "-", o "*" para, respectivamente, añadir, restar o multiplicar el valor activo con el entrante:

/composition/layers/1/video/opacity "+" 0.2

Esto aumentaría la opacidad de la capa uno en un 20%. 

Bien, por ser exactos... añadiría un 20% fijo al valor de opacidad. Eso no significa realmente que aumentarse en un 20%. Para ese caso sería /composition/layers/1/video/opacity "*" 1.2. Pero no conocía otra forma de ponerlo en una sola frase que pudiesen entender los humanos.

Envío de OSC a Resolume

Bien, en este punto probablemente ya habrá entendido el concepto de cómo funciona OSC en Resolume. Pero ¿cómo se envía físicamente el OSC?

¡Buena pregunta! Hay muchíiiiisimas aplicaciones que pueden enviar OSC. 

Algunas de las más famosas son TouchOSC y Lemur, disponibles ambas para dispositivos iOS y Android. Tanto TouchOSC como Lemur le permiten crear sus propios interfaces personalizados, lo que hace que resulten la pareja perfecta co las direcciones fijas de Resolume. Esto implica que cualquier podrá cargar un interface que haya creado y que funcionará directamente.

En OSX, existe el increíble Vezer. Vezer es impresionante porque le permite crear complejas animaciones keyframe que, a su vez, puede usar para controlar cada elemento del interface de usuario de Resolume.

Y el usuario avanzado de Resolume Zoltan Palffy ha creado su propia apilcación que añade funciones para hacer que Resolume sea aún mejor para el control de actuaciones en teatros.

OSC realmente sobresale cuando se usa combinado con un lenguaje de programación creativo. Esto le permitirá crear su propia lógica o extraer datos desde distintos procesos y derivarlos a Resolume.

Processing, openFrameworks, Arduino, TouchDesigner, JUCE, Max/MSP y miles de otros disponen de bibliotecas que admiten el envío y recepción de mensajes OSC. Puede usar Max4Live para enviar OSC desde Ableton Live. Incluso hay bibliotecas javascript para el envío de OSC directamente desde el navegador.

Las opciones son casi ilimitadas. Como punto de partida, aquí tiene dos ejemplos de cómo usar OSC en TouchOSC y Processing.

Conexiones

Los mensajes OSC son enviados a través de una red. Si quiere usar OSC entre dos ordenadores, primero tendrá que conectarlos a la misma red. Los mensajes OSC son bastante pequeños, así que salvo que vaya a enviar miles de mensajes por segundo, una red WIFI ya le valdrá. 

¡Consejo! La potencia de una red WIFI se reduce considerablemente cuando 5.000 personas empiezan a usar snapchat durante una fiesta.

Si quiere enviar OSC de un ordenador a otro, primero el emisor deberá saber dónde enviar sus mensajes. Cuando active la entrada OSC en Resolume, hará que el resto de ordenadores sepa dónde pueden enviar sus mensajes. Esto se consigue con un protocolo llamado ZeroConf, conocido también como Bonjour en Mac. Si su aplicación emisora admite estos protocolos, Resolume aparecerá de forma directa como un destino.

Si su aplicación emisora no admite ZeroConf/Bonjour, deberá cumplimentar manualmente la dirección IP y número de puerto.

Las direcciones IP son básicamente una cadena de números que permite que los ordenadores puedan localizarse unos a otros. Resolume le informará de la dirección IP del ordenador en el que esté instalado en la parte superior de las preferencias OSC.

Cada aplicación puede especificar el número de puerto en el que le gustaría recibir sus mensajes OSC. Por defecto, en Resolume este es el puerto número 7000, pero puede cambiar lo al que quiera.

La pestaña OSC Preferences tiene una ventana desplegable que le permite visualizar los últimos 200 mensajes OSC que haya recibido Resolume. Esta es una forma genial de comprobar si está recibiendo realmente algo, y de conocer qué mensajes concretos están siendo recibidos.

Salida OSC 

Aparte de recibir mensajes OSC, Resolume también puede comunicarse con el exterior vía OSC. La salida OSC también puede ser activada en las preferencias.

Existen unas cuantas formas de gestionar qué mensajes emite Resolume. La más sencilla de estas formas es usando los presets OSC Shortcut.

Vaya al modo OSC Shortcut a través de Shortcuts > Edit OSC. Aparecerá el panel de atajos o Shortcuts. Allí podrá comprobar la configuración actual de la salida OSC y cambiar entre unos cuantos presets.

Elija el preset "Output All OSC Messages" y Resolume dará salida a TODOS los mensajes OSC. ¡Vaaaaya!.

Esto implica que todo lo que cambie en el interface será emitido como un mensaje. Disparo de clips, entrada MIDI y de ratón, automatización de parámetros, posición de cabecera de reproducción de clip. Para todo; en todas las direcciones; absoluto y relativo.

Esto es genial porque de esta forma podrá monitorizar el estado activo de Resolume. Por ejemplo, puede que esté designando una aplicación que realice una acción concreta en base a los disparos de clips. Usando este preset Output All, podrá filtrar rápidamente los datos entrantes para las direcciones en las que esté interesado y basar su lógica en ello.

Esto también implica que las cosas se pueden complicar rápidamente. Cuando envíe mensajes a través de una conexión inalámbrica no muy fiable, es muy probable que pierda algunos mensajes aquí y allá.

Para asegurarse de que lleguen los datos que necesita y solo esos, puede crear su propio preset. Puede hacer esto eligiendo New... en el desplegable Preset. Tras asignarle un bonito nombre (a mí me encanta "Leia"... porque es la princesa de los presets), puede desplazarse de forma selectiva a través de todos los elementos del interface de usuario que le gustaría enviar por la salida OSC. 

Supongamos que está interesado solo en saber si está activado o no el bypass máster. Por ejemplo, para hacer que su aplicación de control sepa si es seguro o no enviar determinados cambios únicamente cuando Resolume esté en bypass.

Para hacerlo, localice el botón Master Bypass en la parte superior izquierda. Al hacer clic derecho en él, podrá activar la salida OSC solo para este botón. De forma alternativa, también puede activar la salida OSC para un elemento del interface de usuario en el panel OSC Shortcuts.

Con la activación selectiva de la salida únicamente para los elementos en los que esté interesado, podrá reducir en gran medida el tráfico de datos de la red.

Comodines

Espera un momento, Resolume. Estoy interesado en la opacidad de cada una de mis 12 capas y en el disparo de clips de mis 472 clips del escritorio. Y no pienso sentarme aquí e ir haciendo clic en cada uno de esos elementos. Tengo cosas mejores que hacer con mi vida; como ver la nueva temporada de Rick y Morty.

Sí, sé a qué se refiere. Esa salsa szechuan es importante. Y por ello hemos introducido los comodines. Para los clips, capas y grupos, puede activar salidas OSC para todos los elementos a la vez.

Supongamos que está interesado en la opacidad de video de cada capa. Tras crear el atajo OSC Output para la capa uno, podemos cambiar el alcance a 'All Layers' (todas las capas).

Boom. De un solo golpe, hemos activado la salida para la opacida de video de todas las capas. Puede hacer esto mismo para el disparo de clips, incluso de aquellos que todavía no haya añadido.

Mensajes OSC personalizados

A veces uno no está interesado en el estado del interface del Resolume. A veces uno simplemente lo que quiere es enviar un pequeño mensaje a otra aplicación. Quizá quiera disparar un cue en Vezer cuando active un clip concreto en Resolume. O puede que quiera enlazar la cabecera de reproducción de un clip en Resolume al modelado físico de un sketch de Processing. 

Yo no sé si son buenos ejemplos o no. Se supone que usted es el que debe tener una mente creativa. Yo nunca he hecho cosas divertidas con OSC porque estoy aquí sentado y aburrido en una oficina escribiendo un manual que nadie va a leer jamás.

Esto es posible a través de la dirección personalizada.

Tras crear una salida OSC para algo, puede elegirlo a través del desplegable.

Resolume cumplimentará por usted la dirección activa, pero puede cambiarla cuando quiera. Resolume enviará entonces el valor que tiene el elemento en el interface de Resolume, pero en la nueva dirección en lugar de en la dirección fija.

Destinos

Al igual que otras aplicaciones necesitan de forma específica enviar OSC a Resolume, la salida OSC de Resolume necesita también tener un destino.

IEn las preferencias OSC, puede elegir todas las aplicaciones de la red que aparezcan vía ZeroConf/Bonjour.

También puede elegir enviar los datos solo a este ordenador (Localhost) o a todos los de la red (Broadcast).

Si quiere enviar los datos a una aplicación que no admita ZeroConf/Bonjour, también puede ajustar manualmente la dirección IP.

En el caso de Localhost, Broadcast y manual IP, también deberá ajustar el puerto de salida. Evidentemente este debería ser el puerto de entrada de la otra aplicación.

Empaquetar o no empaquetar

El conmutar Use Bundles hará que todos sus mensajes sean empaquetados juntos y enviados como un único gran paquete. La mayoría de aplicaciones OSC no se preocupan por estos paquetes, pero en algunas deberá desactiva esta función para que todo vaya bien.

Sondeo

También puede preguntarle a Resolume a qué está ajustado un parámetro concreto. Esto es genial cuando esté creando complejos mecanismos de control, con diferentes vista dependiendo de lo que ocurra en Resolume. 

En lugar de monitorizar continuamente lo que es emitido por Resolume, puede pedirle que le dé la información que necesite y solo cuándo la necesite.

Puede hacer esto enviando un "?" en la dirección en la que quiera preguntar.

Por ejemplo, cuando envíe el mensaje

/composition/layers/1/video/mixer/blendmode "?"

a Resolume, recibirá una respuesta en la misma dirección con el valor int (entero) del modo de mezcla activo de la capa 1. Impresionante.

Artículos relacionados