Sincronia e Interacción Audiovisual Santiago Vilanova Ángeles 0. Presentación El monográfico sobre interacción y sincronía audiovisual está orientado a creadores audiovisuales con unos conocimientos mínimos de los entornos digitales afines a esta práctica (AbletonLive, Resoulme, Vjamm, Fruityloops, Cubase, etc…). El curso pretende dotar al alumno de conceptos muy básicos de comunicación audio-vídeo y de programación visual que pueden ser útiles a la hora de proyectar y realizar obras que incorporan un alto componente de interacción física (enfrente de la tradicional interacción informática), y obras audiovisuales que buscan una coherencia formal entre los elementos visuales y sonoros. Estos conceptos servirán, como veremos a lo largo del curso, para hacer posible, por ejemplo, una interacción directa entre ballarin@s y el vj; entre el público de una video-instalación y sus contenidos; para expandir las propias herramientas de control de software del vj o el músico, usando la voz en lugar del mouse o el movimiento de las manos en lugra del teclado; ampliando el campo de actuación del músico y el videocreador más allá de los soportes tradicionales que le son afines. Se trata, en definitiva, de facilitar a los alumnos la expresión de ideas contemporáneas con un lenguaje también contemporáneo. Contextualización teórica. El campo de la interacción, y sobre todo su aplicación en el campo de las artes (desde la "pintura" a la danza o la arquitectura) ha experimentado un desarrollo muy importante los últimos 5 o 10 años. Un factor determinante ha sido el creciente poder de computación de los ordenadores personales, que desde los procesadores Pentium 3 (o mac G3) ofrecen unas posibilidades multimedia a tiempo real que antes eran impensables. Softwares de vídeo y audio a tiempo real, protocolos de comunicación por red ultrarrápidos, entornos de programación visual asequibles a los no programadores, etc, han "democratizado" campos de la creación que antes estaban limitados a una élite adinerada, con suficiente poder adquisitivo como para hacerse con carísimos equipos de edición de video lineal, estudios de grabación de audio, sintetizadores analógicos, o licenciaturas en telecomunicaciones. El desarrollo paralelo de la microelectrónica, y el aumento de la producción en sistemas de vigilancia (debido a la paranoia panóptica por el pánico al terrorismo internacional) curiosamente ha acabado beneficiando el mundo del arte con aplicaciones en las que, al fin, el espectador de la obra creativa no cumple sólo el papel de contemplador pasivo sino que contribuye activamente a la finalización y comprensión de la obra final. Hoy en día, cualquier artista que use el ordenador como herramienta de creación se puede mover cómodamente en el campo del vídeo, el arte sonoro o la pintura generativa. Para muchos, se trata de una revolución similar a la que supuso la aparición de la pintura al fresco al renacimiento: la aparición de un conjunto de nuevas técnicas que permiten al arte expandirse a "espacios" que antes no le eran propios. Muchas universidades han empezado a ofrecer postgrados o licenciaturas en este campo de los "new media": desde los pioneros del MIT, el Royal College ofoff Arte de Londres, la UPF en Barcelona, Genova, Ivrea, Steim... el mundo académico se ha dado por aludido y empieza a formar a una nueva generación de creadores que han recibido una educación híbrida, a medio camino entre el ingeniero electrónico, el programador de software y el pintor/escultor/arquitecto clásico. Festivales internacionales como el Ars Electronica, la Transmediale, el ArtFutura, el Sónar, etc, han dado a conocer al gran público obras de este tipo y son un escaparate fidedigno de lo que está pasando actualmente en el mundo del arte electrónico. Quizás el e torno de aplicación más inmediato de estas técnicas y que más veces habremos experimentado es la video-instalación. Imaginamos un espacio con videoproyecciones dónde nuestros movimientos, nuestra posición, datos estadísticos sobre nuestro recorrido o el timbre de nuestra voz modifican el contenido de audio-vídeo del espacio. Para realizar este "sistema nervioso" sólo necesitaríamos una videocámara y un micrófono enchufados a un ordenador que ejecute una aplicación de visión y oído artificial. Estas técnicas se denominan “tracking de vídeo” y "tracking de audio”, y como muchas de las tecnologías domésticas actuales (desde internet a las galletas), tienen su origen en las investigaciones militares, sobre todo gracias (o desgracias) a las investigaciones en el campo de la cibernética y la computación de Norbert Wiener, Alan Turing y Von Neumann.. Es muy recomendable la obra de Golan Levin y Zachery Lieberman en este campo de la visión/escucha artificial. Otro campo dónde se ha extendido el uso de estas técnicas es la danza contemporánea. Compañías como Troika Ranch (creadores del software Isadora) son pioneros en este campo, aunque destaca el trabajo de Klaus Obermaier dentro del terreno de la danza interactiva. Softwares como Eyesweb estan orientados casi exclusivamente para aplicaciones de reconocimiento gestual (posición, trayectorias, posturas, velocidad...) y ofrecen muchísimas posibilidades a la hora de generar discursos audiovisuales en función de la coreografía de los bailarines/inas. La música electrónica también se ha beneficiado de estos adelantos, y artistas como Eboman o Nice-Noise han incorporado el uso de sensores a sus composiciones musicales, por no hablar de la hibridación entre instrumentos tradicionales y las tecnologías digitales, dando lugar a lo que se ha denominado "metainstrumentos": pianos que generan gráficos, violines que mueven robots... un ejemplo mainstream serian las piezas de improvisación audiovisual de John Maeda y Ryuichi Sakamoto. El software Max/Msp/Jitter (o su versión Open Source, Pure Data / Gem), así como Processing o OpenFrameworks son ideales para este tipo de aplicaciones. Otro campo dónde se está investigando mucho actualmente es el del cine interactivo. Sería la versión cinematográfica de las novelas "elige tú propia aventura" que leíamos cuando éramos pequeños. Realmente es una revolución en la manera de concebir la obra cinematográfica, y supone un salto de la narrativa lineal a la narrativa arborescente: los espectadores deciden, con sus acciones, como evoluciona el flujo de acontecimientos de la película. Una de las disciplinas dónde más se ha innovado y dónde más se han aplicado las nuevas herramientas de interacción ha sido la arquitectura y la domótica. La idea del espacio inteligente que se adapta al usuario supone un reto hoy en día para las nuevas generaciones de arquitectos. Termostatos que regulan la temperatura del espacio en función de las condiciones meteorológicas, fotosensores que cambian la iluminación según la cantidad de luz solar, puertas que se obran cuando detectan nuestra presencia... Se ha innovado muchísimo en la hibridación y confección de nuevos materiales constructivos con propiedades interactivas (transmateriales): pintura reactiva que cambia de color en función de la temperatura, cristales que se oscurecen según la cantidad de luz que reciben... Un terreno que todavía está algo inexplorado es el de la escenografía, los efectos especiales y la iluminación para teatro, aun cuando las posibilidades son muy tentadoras: desde electrodomésticos automatizados (teles, radios, etc) hasta luces sincrónicas, decorados móviles o participación activa del público, el teatro todavía puede beneficiarse mucho. La Fura dels Baus han sido pioneros en este nuevo teatro participativo. Otro catalán y antiguo miembro de la Fura, Marcelí Antúnez, ha sido pionero en la aplicación de estas nuevas técnicas a su obra. Rodeandose de la élite de programadores e ingenieros barceloneses (Sergi Jordà, Roland Olbeter, Allain Wergifosse) ha aplicado técnicas de oído artificial (Joan el hombre de Carne), robótica (Epizoo), visión artificial (tantal) y ha creado un universo propio y una obra que ha sido reconocida a nivel internacional. El de Marcel·lí Antúnez, pero, es un caso poco frecuente, o que queda muy lejos de nuestras posibilidades: la mayoría de creadores no tenemos subvenciones millonarias ni estamos suficientemente establecidos como para poder pagar ingenieros y programadores que se encargan de la parte técnica de nuestra obra mientras nosotros nos limitamos a pensar y dirigir... habremos de buscar la autosuficiencia técnica, al menos por el momento... Afortunadamente, Internet esta llena de webs con proyectos DIY (Don It Yourself) que nos explican como reciclar sensores de juguetes rotos, motores DC de lectores de CD-Rom, como programar microcontroladores para diseñar nuestro propio controlador Midi, nos ofrecen bibliotecas y softwares gratuitos para visión/oído artificial (PD, Eyesweb, Processing) e infinidad de recursos que, con algo de ingenio, podemos reciclar para hacer cosas raras. Nos encontramos, pero, en un momento de eclosión de estas técnicas y corremos el peligro que nuestra obra acabe eclipsada por un uso desproporcionado de la tecnología y una carencia de contenidos y de solidez narrativa. Hemos de intentar que nuestras obras sean claras y sencillas y que tengan un contenido bien definido, aunque sea sólo formal. La Capilla Sixtina de Miquel Angel no es una gran obra de la pintura por ser un fresco sino por la calidad del dibujo, el color, la composición y la narrativa pictórica y por como el artista supo hacer un conjunto homogéneo de las nuevas técnicas pictóricas con su lenguaje personal. Tenemos que intentar no pintar pinceles. 1A. MIDI Normalmente cuando trabajamos con proyectos interactivos o con sincronías lo que estamos haciendo es transformar un tipo de datos en otro (p.e., si convertimos la cantidad de píxeles rojos en un vídeo en el volumen de un sampler). Este proceso se denomina "transducción" y tiene su analogo en los circuitos electronicos, que transforman la energía electrica en energía mecánica, en calor.... Para llevar a término esta transducción (de datos) existen distintos softwares y lenguajes de programación específicos que nos ayudarán a realizar esta tarea. La mayoría de softwares multimedia-tiempo-real (Resolume, Modul8, AbletonLive, PureData...) que existen en el mercado incorporan el lenguaje MIDI como protocolo de control, por lo tanto será muy útil si hacemos una pequeña descripción de las "reglas" que articulan este protocolo: MIDI. Siglas para Musical Instruments Digital Interface. El Midi es un lenguaje de control y comunicación entre instrumentos musicales digitales. Se creó los años 80, en plena eclosión de la microelectrónica digital, para centralizar y secuenciar varios aparatos generadores de sonidos en un controlador principal. Si queremos secuenciar una canción que consta de 8 instrumentos diferentes, necesitamos un secuenciador que se entienda con los 8 instrumentos mediante un lenguaje estandar. Esto era el MIDI originariamente Actualmente la mayoría de sistemas de informática musical incorporan puertos MIDI (con conectores din de 5 pins) para la comunicación con sintetizadores externos o el control mediante controladores. Actualmente hay muchos aparatos que no son estrictamente musicales y que permiten el control MIDI: mesas de luces, controladores de servomotores, robots, etc. Midi no transmite datos de audio, sólo datos de control, organizados de la siguiente manera: Notas: es la información que se genera cuando presionamos una tecla del piano. El tipo de mensaje puede ser Note on o Note off, y el valor de estas notas varía en función de la nota que tocamos. Por ejemplo, C5 (do de la quinta octava) es la nota 60, C#5 = 61, D5 = 62, D#5 = 63... hay 128 notas diferentes (0-127) Controladores Continuos (CC): es la información que se genera cuando movemos un potenciómetro o un fader. A diferencia de los datos de nota, que son binarios (puesto en marcha / apagado) estos datos son continuos y trabajan en un rango de 0 a 127. Esto quiere decir que si tenemos el potenciómetro al mínimo enviará un valor 0, si lo tenemos a la mitad enviará un valor 64 y si lo tenemos al máximo enviará un valor 127. Además de estos tipos de mensaje existen unos cuántos más (Sysex, Program change, NRPN, Pitch bend) con unas propiedades diferentes y que por el momento no serán útiles para nosotros... Todos estos datos corren por un canal MIDI (1-16). Esto es así porque muchos sintetizadores son multitímbricos y pueden emitir diferentes sonidos a la vez. Por ejemplo, en un sintetizador Acces Virus podemos hacer que por el channel 1 viajen las melodías y parámetros correspondientes al sonido "Piano" y por el channel 2 viajen las melodías y parámetros correspondientes al sonido "Bajo" simultáneamente. Además, estos canales corren por un puerto MIDI determinado (0-255). Esto es así porque podemos tener varios sintetizadores sonando a la vez. Por el puerto 1 enviaré la información que llegará al sampler, por el puerto 2 la que llegará a la caja de ritmos y por el puerto 3 la que llegará al bajo Roland, por ejemplo. Interface MIDI. Pieza de Hardware que actúa de "medium“ entre un sistema de secuenciación MIDI (normalmente un PC) y los instrumentos secuenciados, o entre un controlador y los sintetizadores, samplers, etc. Normalmente dispone de varías entradas y salidas. Controladores MIDI. Aparatos para el control de máquinas MIDI. Nosotros los usaremos con los ordenadores y los programas de vídeo que soportan entradas MIDI. Hay teclados, cajas de ritmo, pedaleras que tienen funciones de control MIDI. La mayoría de programas para vj actuales soportan el control midi (Resolume, Vjamm, Modul8, VDMX...) Drivers MIDI Virtuales. "Tubos" de comunicación interna dentro de un mismo ordenador. Son útiles para comunicar dos programas midi, configurando uno como maestro y el otro como esclavo. Por ejemplo, usando el fruityloops para generar ritmos de vídeo en Resolume. La compañía MIDI OX desarrolla drivers virtuales (MIDI YOKE) y gestores (MIDI OX) que permiten comunicación interna y múltiples transformaciones en los datos de control. MIDI por Ethernet. Hasta hace bien poco la manera de transmitir datos midi era por cable MIDI. Con la llegada de las aplicaciones de MIDI por Ethernet (udp>tcp>udp) se han abierto un montón de posibilidades que hasta ahora eran impensables. Podemos enviar datos de control MIDI en tiempo real a otra parte del mundo de manera casi instantánea, y crear una matriz de ordenadores conectados entre ellos sin necesidad de los caros interfaces midi. Todo por cable de red y routers. Además, los datos tcp viajan mucho más rápido que los datos midi, con lo que se recortan drásticamente las latencias (inferiores a 1ms). La compañía MusicLab comercializa el driver MIDIOverLAN, que es el que usaremos en las clases. 1B. OSC Open Sound Control es un protocolo de comunicaciones que permite comunicar instrumentos de música, computadoras y otros dispositivos multimedia (por ejemplo móviles o PDA's equipados con bluetooth) pensado para compartir información musical en tiempo real sobre una red. Aparece como reemplazo del MIDI, siendo muy superior en características y capacidades, aun cuando muchas aplicaciones audio / vídeo todavía no lo soportan. Características principales del protocolo: //Ampliable, dinámico. //Esquema de nombres simbólicos tipos URL //Datos numéricos simbólicos y de alta resolución //Lenguaje de coincidencia de patrones (pattern matching) para especificar multiples receptores de un único mensaje //Marcas de tiempos (staff tags) de alta resolución. //Mensajes “empaquetados” para aquellos acontecimientos que han de ocurrir simultáneamente //Sistema de interrogación para encontrar dinámicamente las capacidades de un servidor OSC y obtener documentación. Puede ser transportado por varios protocolos, pero comúnmente se usa UDP. Algunos proyectos conocidos que tienen su implementación: ChucK, CSound, Eyesweb, Max/MSP, Pure Data, Processing, Reaktor, SuperCollider, Squeak, VVVV. 2A. Sinestesia: Sincronía y Sintonía “Dentro de los trastornos de la percepción se distingue entre los que afectan a la intensidad (aumento de la percepción de un objeto -hiperestesias- o disminución de la misma -hipostesias-), a la fidelidad (deformación de un objeto real –ilusión-, deformación que aparece sin estímulo exterior –alucinación-) o a la integridad (distorsión del objeto percibido -dismorfopsia-, transformación del objeto -metamorfopsia-). Entre los trastornos sensoperceptivos que afectan a la integridad de la percepción se encuentran aquellos en los cuales en lugar de distorsionar el objeto percibido, perdiendo algún o algunos de sus componentes, las percepciones se aglutinan: son las sinestesias, un trastorno infrecuente de la percepción en el cual el estímulo a través de uno de los sentidos provoca simultáneamente la sensación en otro. Las sinestesias más frecuentes aunan percepciones visuales y auditivas, de forma que los sonidos, las palabras o la música evocan simultáneamente la visión de colores. A la exploración de estos sujetos el más habitual es que al enseñarlos números y letras evoquen un color determinado, o determinados sonidos se acompañen también de visión de colores. Otras sinestesias más raras incluyen sensaciones táctiles al escuchar sonidos, percepción de sabores al ver determinados objetos, o percepción de olores en relación con el tacto”. El fenómeno sinestésico es relativamente común en el mundo del arte, la musica y el cine. Desde las composiciones (sinfonías) cromáticas de Kandinski (y su imprescindible tratado al respecto: ”sobre lo espiritual en el arte”) hasta las modernas teorías psicológicas sobre la audiovisión (que define la combinación de los sentidos vista y oído como un nuevo sentido distinto a la suma de los dos anteriores), el mundo de la imagen y la música ha buscado históricamente la correlación entre ambos tipo de percepción. No esextraño pues que típicamente escuchamos expresiones como “sonido oscuro” o colores “chillones”. Cuando tratamos de traducir la musica en imágenes (o viceversa) nos fijamos en toda una serie de parámetros objetivos y subjetivos que nos hacen pensar o nos provocan determinadas respuestas perceptivas y emotivas. Por ejemplo, a grandes rasgos, normalmente una música tocada a un tempo alto nos hará pensar en movimientos rápidos, stress, complejidad; una musica ejecutada en tonalidades menores nos evocará melancolía, tristeza o quietud; sonoridades graves (como las de un contrabajo, o una tuba) nos harán imaginar objetos redondeados, pesados o submarinos; sonidos agudos y metalicos, como una guitarra distorsionada, nos traerán a la cabeza figuras rugosas de tonalidades amarillentas y ácidas; los sonidos sostenidos de cuerdas y vientos pueden evocarnos paisajes, o las guitarras con wah-wah aquella especie de burbujeo psicodélico... El ejercicio de la sinestesia puede ser puramente intelectual, no hace falta estar “enfermo” para llevarlo a cabo, y es interesante que busquemos estas interrelaciones perceptivas antes de empezar a trabajar en proyectos de sincronía audiovisual. Con tal de acotar el terreno sobre el que vamos a trabajar, haremos una división (que he de admitir que es puramente subjetiva y arbitraria) entre los tipos de sincronía y sintonía con los que podemos trabajar. Entenderemos por sincronía aquellas composiciones en las que la interrelación perceptiva audiovisual está basada en el ritmo. Entenderemos por sintonía aquellas composiciones en las que la interrelación perceptiva audiovisual está basada en la melodía, la textura y la emotividad. Normalmente, cuando trabajamos con ritmos buscaremos una diferenciación acusada entre los distintos sonidos que componen un ritmo. Es interesante el ejercicio de asignar distintas imágenes a los distintos sonidos componentes del ritmo (bombo, caja, plato...) y jugar hasta obtener un resultado sencillo pero claro. La manera de trabajar con sincronías basadas en ritmo es una elección puramente personal, pero me atrevería a afirmar que cuánto más sencillo mejor.... un excesivo feedback visual puede suponer un caos no-digerible y no percibido como sincrónico. También es muy importante el uso de no-imágenes: así como la música se 50% sonido y 50% silencio, también está bien que la imagen siga esta máxima y sea 50% luz y 50% oscuridad. Si trabajamos con imagen real, un método efectivo es el cambio de plano a cada golpe de ritmo. Otro método interesante es el del salto temporal, que consiste en adelantar y retroceder el mismo plano a distintos puntos del tiempo para cada golpe del ritmo; este es un método que, manteniendo una relativa simplicidad, ofrece resultados muy vistosos. Si trabajamos con geometría, movimiento y color, habremos de fijarnos en las percepciones que nos provocan cada una de las sonoridades con las que vamos a trabajar, y emplearemos formas y colores adecuados a cada uno de estos sonidos. Es también muy interesante el trabajo de geometría, color y movimiento junto con melodía, textura y cadencia musical. DMX Otro elemento que es interesante introducir en nuestros trabajos de sincronía es el uso de la iluminación, sobre todo si nos dedicamos al mundo del audiovisual en directo. Mediante pequeños interfases DMX podemos acceder al control de los sistemas de iluminación espectacular (dimmers, mesas de control lumínico). DMX es un protocolo estandarizado, como MIDI, pero orientado a la iluminación; no obstante, existen aplicaciones de software como Abuelites que pueden ser controladas por MIDI y que al mismo tiempo envían DMX a los dimmers. Con algo de ingenio seremos capaces de generar piezas sincrónicas audio-vídeoluz. Electrónica Estos experimentos sinestésicos pueden extenderse mucho más allá de los sentidos de la vista y el oído si introducís nuevos elementos capaces de estimular las percepciones táctiles y olfativas de los espectadores. Mediante el uso de interfases electrónicos como por ejemplo Arduino o Miditron podéis controlar la velocidad de ventiladores, o válvulas neumáticas dispensadores de fragancias.... aquí ya se trata del ingenio y la creatividad de cada uno. Desde escenografías sincrónicas (televisores, radios...) hasta títeres autómatas que responden a la música, podemos crear todo un complejo universo reactivo. 2B. Sinestesia a la práctica: Secuenciación y Comunicación. Drivers MIDI Virtuales. MIDIYOKE. Una vez familiarizados con el protocolo MIDI es la hora de ponerse manos a la obra y empezar a enredar con los diferentes softwares y aparatos que tenemos a nuestro alcance. Lo primero que haremos será establecer comunicación entre distintos programas dentro el mismo computador usando el driver MIDI Virtual Midiyoke. Ponemos en marcha el secuenciador Audio-MIDI (Fruity Loops, Ableton Live, Cubase, Reason...) y en las preferencias seleccionamos uno de los drivers que nos ofrece MidiYoke (p.e. MidiYoke NT 2) como driver MIDI OUT, y le asignamos un puerto (0-255). Nos aseguramos de tener habilitada la opción de Midi Output e insertamos un canal Midi Out. A este nuevo canal Midi Out debemos asignarle el mismo numero de puerto que habíamos seleccionado antes para el Midiyoke. En principio esta es toda la configuración que debemos hacer con el secuenciador de audio Ahora ponemos en marcha el software de VJ. En las preferencias del programa nos aseguramos que tenemos como driver MIDI IN el mismo que le hemos asignado al secuenciador de audio como MIDI OUT y entramos a editar el mapa de notas. Picamos sobre la primera casilla, pasamos con alt+tab al secuenciador y pulsamos, en el teclado del canal midi out, sobre la nota que queremos que dispare aquel video. Volvemos a pasar con alt+tab al programa de vídeo, picamos sobre la siguiente casilla, y repetimos el proceso hasta que lo tengamos todo bien mapeado. También podemos mapear controladores (CC), para modificar opacidades o efectos de los vídeos. Configuramos los potenciómetros para que envíen el numero de controlador que queramos, y mapeamos en el software de vídeo Una vez lo tenemos todo mapeado, podemos empezar a componer diferentes patrones rítmicos. MIDI Remoto a través de Hardware. La solución clásica y más fiable para establecer comunicación MIDI entre dos aparatos es mediante una interfase MIDI. Si lo que queremos es trabajar una sincronía audio / vídeo tendremos que disponer de puertos MIDI físicos en los dos ordenadores y un cable para unirlos. En la mayoría de casos será el audio quien “esclavice” el vídeo, por lo tanto el ordenador "audio" conectará el cable MIDI a un puerto OUT y el ordenador “vídeo” a un puerto IN. Tendremos que seleccionar los drivers adecuados en las preferencias de nuestros softwares, e iniciar el proceso de mapeado. Drivers MIDI Ethernet. MIDIOVERLAN. Si hemos sido capaces de establecer comunicación interna, y comunicación externa mediante interface MIDI, también podremos usar una conexión ethernet para comunicar dos ordenadores y que uno haga de secuenciador y el otro de disparador de vídeos.. La instalación de MidiOverLan es algo pesada, y os puede costar un poco si no estáis familiarizados con las configuraciones de redes. 1.Estableciendo y configurando la red ethernet Antes que nada tendremos que crear una red entre dos o mas ordenadores, usando cable LAN. Podemos usar routers o switches si los necesitamos. Tendremos que asignarnos IP's coherentes entre los ordenadores de la red, así como la misma “máscara de subred”. Las ip's podrían ser parecidas a esto: 192.168.0.12 192.168.0.43 192.168.0.25 Esto es suficiente para crear una red a través de la que compartir datos Midi. Podemos comprobar si la red esta funcionando usando un par de comandos MS-DOS. Vais a INICIO>EJECUTAR. Escribís CMD y pitgeu Entero. Aparecerá una consola de mandos MS-DOS. Escribís PING + numero de IP (“ping 192.168.0.42”) Si recibís una respuesta significa que estáis en red con aquel ordenador, repetís la operación con todas las IPs para aseguraros que tenéis comunicación. Si todo esto sale bien, ya tenemos la red hecha. 2. Instalando MidiOverlan Una vez finalizado el proceso de instalación nos aparecerá una ventana de configuración. Aquí debemos seleccionar por qué puertos queremos recibir/enviar de/hacia cada ordenador, introduciendo en los puertos de entrada y de salida las ip's de cada una de las máquinas en red. Tendremos que pactar con los otros usuarios de la red qué puertos usamos y como organizamos la comunicación, esto nos llevará un rato... 3. Configurando las aplicaciones multimedia Para empezar a compartir datos por red, debemos configurar los puertos de entrada/salida MIDI de vuestros softwares de vídeo/audio. Ahora ya podemos enviar datos desde un secuenciador o un controlador MIDI de una máquina a otra con un software de vídeo; generar feedbacks de datos, o diseñar una matriz de comunicación y control de parámetros suficientemente compleja como para crear un organismo audiovisual que presente un comportamiento impredecible, pero antes tendremos que hacer un mapeo de las asignaciones audio/video. Es decir, habremos de configurar los sistemas para que cuando enviamos una nota MIDI desde el secuenciador de audio, C4 por ejemplo, se dispare un video al software de VJ. El mapeo es un proceso lento y meticuloso, que requiere cierta dosis de paciencia, pero es un momento importante, puesto que viene a ser nuestro campo de pruebas para la sincronía audiovisual. 3. Escucha Artificial. Tal y como sabemos, existen sistemas de visión artificial que permiten separar los productos defectuosos en una cadena de montaje. Sensores táctiles que determinan con qué presión estamos pulsando un objeto (una báscula, por ejemplo) o qué temperatura hace. Sensores químicos que hacen el papel de nariz artificial y dan el grito de alarma cuando detectan humo o componentes nocivos en la atmósfera. El sensor que se usa para "escuchar" el sonido es el clásico micrófono. Seguro que algunos de vosotros habéis jugado alguna vez con los programas de reconocimiento de voz que se pusieron de moda a mediados de los 90 en los sistemas windows, y que permitían accionar programas con la voz, o seguro que habéis visto alguna vez por la tele aquello que hacen los americanos de poner en marcha la luz con dos palmadas... Pues bien, todo esto son sistemas de escucha artificial. Nosotros trabajaremos la escucha artificial para extraer datos de interpretaciones musicales que estén ejecutándose en directo para generar vídeos sinestésicos. El campo del reconocimiento de patrones musicales es todavía algo primitivo, y es necesario decir que algunas de las innovaciones más importantes que están haciéndose actualmente salen del Instituto Universitario del Audiovisual de la UPF en Barcelona. La investigación a la cual se está dedicando más esfuerzos es el reconocimiento y análisis de secuencias musicales polifónicas, es decir, piezas musicales o instrumentos dónde suenan varías notas a la vez (acordes). Es uno de los retos de la computación multimedia actual, y es posible que en un tiempo breve podamos separar en pistas los diferentes instrumentos que componen una canción de un CD comercial cualquiera. Por el momento esto no se puede hacer. Nosotros nos centraremos en el análisis de audio monofónico. Por ejemplo un violín, una trompeta o la voz humana. Será nuestra primera práctica en un entorno de programación modular, pero lo haremos bien sencillo... Sólo necesitaremos un pequeño micrófono conectado a la tarjeta de audio del ordenador. extraeremos dos tipos de datos: Volumen y Tono; o dicho de otro modo: Amplitud y Frecuencia. Tanto el volumen como el tono que analizamos los convertiremos en números (este proceso se llama transducción: transformación de un tipo de energía en otro) que podremos transformar a voluntad. Nuestro objetivo será convertir estos parámetros musicales en comandos MIDI, con el fin de activar vídeos con la voz, subir la opacidad con el volumen o aumentar la velocidad con el tono. Todo esto es útil para hacer de VJ's de un instrumentista, para instalaciones interactivas, o para hacer un aplausómetro. :-P Haremos cálculos estadísticos y algo de álgebra booleana, así que tendremos que sacarle el polvo a nuestras matemáticas de secundaria. Con la escucha artificial entramos de pleno en la creación de estructuras cibernéticas. Lo que estamos haciendo cuando programamos un estructura de este tipo es imitar un proceso de pensamiento natural. Tenemos unos estímulos externos (en este caso el sonido captado por el micrófono) que analizamos mentalmente y nos hacen pensar en cuál debe ser nuestra reacción (en este caso la manipulación de los datos y la conversión a midi), y finalmente actuamos en consecuencia (empieza la secuencia de vídeo). Los informáticos y electrónicos lo resumen en la serie INPUT > PROCESO > OUTPUT. Estas estructuras son exactamente iguales que los circuitos electrónicos. Una radio, por ejemplo, recibe ondas Hertzianas (Input), y mediante la transducción eléctrica (Proceso) las convierte en ondas sonoras (Output). El sistema lógico que nosotros crearemos es relativamente sencillo. Una vez recibimos el input del micrófono conectaremos dos módulos: uno, que extrae el tono y nos devuelve números entre 0 y 600 (hz) aproximadamente; el otro, que extrae el tono, y nos devuelve valores (reales) entre 0 y 1. Con estos números podemos hacer tantas transformaciones como queramos, pero básicamente lo que haremos será reescalarlos con una sencilla "regla de tres" para que entren dentro del estàndar de valores midi CC, que tiene un rango de 0 a 127. Es decir, que para el tono, cuando recibimos el valor máximo, 600 habremos de transformarlo para que dé 127, cuando recibimos 300 nos dé 64, etc. Con el otro parámetro igual... cuando recibimos un 1 lo debemos convertir a 127, cuando recibimos un 0.5 lo debemos convertir a 64, etc. También podemos trabajar con condicionales (>, <, =, =!) y álgebra booleana (AND, OR, XOR, NOT). por ejemplo: SI el volumen es mayor que 0.5 dispara NOTE ON 60. SI volumen > 0.5 AND tono > 300 dispara NOTE ON 70. Si volumen > 0.5 OR tono > 400 dispara NOTE ON 80. Esta manera de estructurar los datos puede ser muy útil a la hora de generar un discurso audiovisual complejo. Nos permite crear diferentes transformaciones para el vídeo según el tipo de expresión de la interpretación musical, o del humor de la voz de nuestro espectador. Me explico: Si el violinista toca bajito (volumen) AND en tonos graves -----> dispara vídeo x y modifica opacidad Si el violinista toca fuerte AND en tonos agudos ----> dispara vídeo y y modifica velocidad Si el violinista toca fuerte AND en tonos graves ---> dispara vídeo z y modifica efecto x Estos remapeados de datos se pueden complicar tanto cómo queráis, aunque la mayoría de veces es mejor optar por una interacción sencilla y clara. Sea cómo sea está bien que os familiarizéis un poquito con la lógica booleana. 4. Visión Artificial. La visión artificial es uno de los campos de la computación física más desarrollados, debido en gran parte a la extensísima aplicación que se hace en cadenas de montaje y en sistemas industriales. Muchísimos robots industriales incorporan sistemas de visión que les permiten discernir componentes defectuosos, coger objetos, etc. Hay muchísimas técnicas diferentes de visión artificial. Nosotros haremos un repaso a unas pocas: Tracking de Movimiento: Detección de objetos móviles sobre un fondo estático. La ventaja de este sistema se que consume pocos recursos. El defecto es que si se cruzan varios objetos pueden llegar a intercambiarse los tracks. Tracking de color: Detección de objetos según su color. La ventaja es la independencia de cada color y la imposibilidad de confusión de tracks para la máquina. El defecto es que consume más recursos y que necesita unas condiciones de iluminación muy estables. Tracking de patrones: Detección de objetos según la forma. La ventaja es la independencia de cada forma y la imposibilidad de confusión de tracks para la máquina. El defecto es estar limitado a formas estáticas. Tracking anatómico: Detección según un patrón anatómico. La ventaja es que se trackean muchos puntos a la vez (manos, pies cabeza...). El defecto es que es bidimensional. Estos trackings son muy útiles para aplicaciones en danza, videoinstalaciones o performance musicales. Lo que estamos haciendo con el tracking es extraer las coordenadas XY del baricentro del área que se mueve, y también el tamaño de la mancha trackeada. Para obtener una imagen definida del área que está en movimiento normalmente transformaremos la imagen proveniente de la cámara en una imagen a 1 bit (blanco y negro) y efectuaremos un proceso de sustracción del fondo (a no ser que el fondo sea un croma o una superficie lisa; en este caso no sería necesario extraer el fondo!). Más o menos lo que pasa es lo siguiente: Una vez tenemos estos datos numéricos (coordenadas xy), podemos establecer muchísimas relaciones matemáticas entre los objetos trackeados. Por ejemplo: Distancia: Distancia entre dos objetos. Cálculo vectorial. Contacto: Contacto entre dos o más objetos. Cálculo vectorial + Álgebra booleana Baricentro: Centro aritmético de varios objetos. Cálculo vectorial Ángulo: Ángulo entre la recta que forman los centros de dos objetos y el eje de coordenadas u ordenadas. Trigonometría. Alineaciones: Alineación de varios objetos. Cálculo vectorial + Lógica difusa Velocidad: Velocidad de un objeto. Incrementos. Todos estos parámetros pueden convertirse en datos de control MIDI y, por ejemplo disparar un vídeo al contacto entre dos actores o mover las varillas de un reloj del mismo modo que dos personas se mueven alrededor de una maleta... Las posibilidades son tantas como se quiera imaginar, y abre las puertas a los juegos de participación colectiva, la interacción corporal con la música, y la creación de nuevas interfaces persona-máquina. 5. Geometría A continuación tenéis toda una serie de fórmulas y procesos matemáticos que os pueden ser muy útiles si queréis trabajar a fondo con la visión artificial. Es un compendio de datos utiles que he ido encontrando a lo largo del tiempo y del que podéis sacar mucho provecho. 1.Distancia entre dos puntos y contacto: Queremos que cuando dos objetos trackeados choquen se dispare un vídeo concreto. Dados un objeto A y un objeto B: A = ( x1, y1) B = ( x 2, x 2) Seguramente los valores x de A y B estarán entre 0 y 320 y los valores y entre 0 y 240, puesto que trabajaremos en captura de vídeo a una resolución de 320x240 píxeles. Lo primero que debemos hacer ahora es averiguar cual es la distancia entre los puntos A y B. Googleamos "distancia entre dos puntos" y nos salen un montón de páginas que nos dan las formulas necesarias para hacer este cálculo. Encontramos lo siguiente: d= x 2 − x1 2 + y 2 − y1 2 d es la distancia en pixels de un objeto al otro. Ya podemos usar este dato como parámetro de interacción. Para añadir un nuevo paremetro de interacción, haremos calcular al software cuando los objetos están tocándose. Se trata de verificar una pequeña condición: Si la distancia entre A y B es menor a 5 pixels significa que A y B están en contacto: dAB ≤ 5→ envia Midi Note On Ya está! cuando los objetos chocan se dispara un video! Este ejemplo lo hemos hecho para dos objetos móviles, pero evidentemente lo podemos hacer también para uno móvil y otro estático usando la misma fórmula. Imaginad una persona ante una videoproyección que puede interactuar con los elementos proyectados. Cuando su silueta toca un dibujo en la pantalla se dispara una acción (un sonido o una nueva animación). 2.Punto medio de un segmento: A = ( x1, y1) B = ( x 2, y 2) ( x1, y1) A C C= B ( x2, y 2) x1 + x 2 y1 + y 2 , 2 2 3.Punto medio de un triangulo y contacto de 3 puntos: ( x1, y1) A = ( x1, y1) B = ( x 2, y 2) C = ( x3, y 3) A ( x2, y 2) B D ( x3, 3) D= x1 + x 2 + x 3 y1 + y 2 + y 3 , 3 3 C Si queremos definir el parametro de choque entre tres objetos: calculamos las distancias por parejas, añadimos los condicionales de choque (distancia menor a 5 píxeles) y introducimos los conectors booleanos and: ABC = ( dAB ≤ 5) ∧ ( dAC ≤ 5) ∧ ( dBC ≤ 5) Debemos tener en cuenta que si previamente hemos definido los choques por parejas estos los tendremos que invalidar mediante el conector xor para que cuando ocurra ABC no ocurran AB, AC y BC. 4.Angulo de dos objetos respecto al eje x: ( x1, y1) A y 2 − y1 atg x 2 − x1 α = π /2 B ( x2, y 2) α α es un valor en radianes, entre -1 y 1. Si dividimos una circunferència en 4 cuadrantes, nos daremos cuenta de que los ángulos del primer cuadrante son positivos, los del segundo negativos, los del tercero positivos y los del cuarto negativos. Observamos pues que tenemos un pequeño problema, puesto que estamos obteniendo valores identicos en dos mitades de la circunferencia, como si sólo pudiéramos medir 180 de los 360 grados de la circunferencia completa. Re-escalamos estos valores obtenidos en radianes (entre -1 y 1) a a valores en grados (entre 0 y 180), y para solucionar este pequeño inconveniente podemos hacer un pequeño truco que consiste en lo siguiente: x 2 > x1 ⇒ α + 180 cuando la posición x de B es mayor que la posición x de A, sumamos 180 al valor de alfa; así obtenemos los ángulos completos entre 0 y 360 grados. 5.Velocidad de un objeto: Para calcular la velocidad con que se mueve un objeto usaremos algo de cálculo diferencial. Sea esta sucesión de posiciones x del objeto A en el tiempo: v = xn − xn − 1 x1, x 2, x 3.... xn Es decir, que si restamos la posición x de A a la posición x de A en el instante anterior obtenemos la distancia que ha recorrido A (en x) en este espacio de tiempo. Este valor es un indicador fiable de la velocidad con que se mueve un objeto. Todavía encontraríamos métodos más efectivos usando cálculos estadísticos con muestras más grandes que dos valores. Sumatorios, medianas aritméticas o desviaciones estandar pueden ser muy útiles para calcular velocidades, y cálculo diferencial (derivadas)para calcular aceleraciones. 6.Dirección del movimiento: Si queremos conocer el sentido del movimiento de un objeto podemos usar una combinación de cálculo diferencial y algebra booleana. 1 2 3 4 5 6 7.... 1 2 3 4 5 6 7 . . . ( x2, y 2) A' ( x1, y1) A ( x2 − ( x2 − ( x2 − ( x2 − ( x2 − ( x2 − ( x2 − x1 < 0) ∧ ( y 2 − y1 > 0) → x1 < 0) ∧ ( y 2 − y1 < 0) → x1 > 0) ∧ ( y 2 − y1 < 0) → x1 ≅ 0) ∧ ( y 2 − y1 < 0) → x1 ≅ 0) ∧ ( y 2 − y1 > 0) → x1 > 0) ∧ ( y 2 − y1 ≅ 0) → x1 < 0) ∧ ( y 2 − y1 ≅ 0) → direcció [ direcció ^ direcció [ direcció ↑ direcció ↓ direcció → direcció ← Debemos tener en cuenta que en el caso de los movimientos exclusivamente horizontales o exclusivamente verticales la igualdad no es exacta, sino borrosa. Casi nunca encontraremos movimientos horizontales o verticales perfectas (sin variación en x para los verticales, o sin variación en y para los horizontales), normalmente encontraremos pequeñas variaciones en las trayectorias. Tendremos que usar métodos de fuzzy “logic” (lógica difusa). Si investigamos un poco podemos encontrar operaciones matemáticas como estas que nos pueden ayudar a definir muchísimas interacciones a partir de la geometría del espacio. Por ejemplo, dividiendo un espacio en una cuadrícula para diseñar un parchís interactivo o un teclado de piano virtual; para definir la alineación (borrosa) de tres o más objetos en una recta, o para calcular el numero de revoluciones (vueltas) que un objeto ha hecho alrededor de un punto concreto... Una gran cantidad de estas sencillas operaciones podemos encontrarlas a internet a través de cualquier motor de busqueda o de wikipèdia, sólo es cuestión de buscarlas! 6. Anexo. Recursos Colectivos, instituciones y artistas: www.dorkbot.org (gente que hace cosas raras con la electricidad) www.hangar.org (centro de producción de artes visuales. Talleres y conferencias sobre nuevos lenguajes audiovisuales y de interacción) www.flong.com (web personal de Golan Levin. Impresionante lo que hace este hombre.) www.troikaranch.org (danza interactiva) www.stelarc.va.com (performance robóticas) www.ekac.org (arte transgénico) www.marceliantunez.com (el carnicero de Moià) www.telenoika.net (col·lectivo de artistas audiovisuales de Barcelona) Noticias: www.pixelsumo.com (blog dedicado al arte electrónico) www.we-make-money-not-arte.com (blog dedicado al arte electrónico) www.interactivearchitecture.org (blog dedicado a la arquitectura interactiva) http://www.kvraudio.com/ (portal sobre noticias del mundo del audio digital) http://www.mediateletipos.net/ (portal sobre el mundo del arte sonoro) Empresas: www.setpixel.com (empresa dedicada a la aplicación comercial de las técnicas de interacción) www.ydreams.com (empresa dedicada a la aplicación comercial de las técnicas de interacción) www.emotique.com (empresa dedicada a la aplicación comercial de las técnicas de interacción) Software: http://www.midiplugins.com/ (plugins vst de processado midi) http://www.processing.org/ http://www.cycling74.com/products/maxmsp (Max/msp/jitter) http://vvvv.org/tiki-index.php (vvvv) http://puredata.info/ (pure data) http://musart.dist.unige.it/EywMain.html (eyesweb) http://www.midiox.com/ (MidiOX. Gestor de datos MIDI; permite el remapeo y filtrado del stream de datos) Hardware: http://www.arduino.cc/ http://www.eroktronix.com/ http://www.doepfer.de http://www.superrobotica.com/ Educativos: http://tigoe.net/ (web personal de Tom Igoe, profesor de computación física en la Universidad de NY. Impresionante la de recursos y conocimientos que llega a compartir este hombre. Su libro "physical computing" es imprescindible si queréis profundizar en la materia) http://www.makezine.com/ http://lowtech.propositions.org.uk/