Residencia en Medialab-Prado, 2b. Descarga de patches resultado de mi experimentación.

Hace un par de posts publiqué un zip que contenía los patches de ejemplo correspondientes a las lecciones elementales de las páginas sobre Puredata en FLOSS Manuals, que hice yo de cero ya que los enlaces de allí están rotos.

Como probablemente ya comenté, luego de este aprendizaje básico me dediqué a experimentar de forma algo más avanzada, y ahora publico los patches correspondientes a esa experimentación, para que tú también puedas probarlos, modificarlos y aprender de ellos. Desde este enlace puedes descargarte un paquete zip que contiene lo más representativo de esa experimentación durante mi estancia en Medialab-Prado.

Ese zip contiene una carpeta llamada autocarpeta puesto que la idea es que todas las rutas de archivo y referencias necesarias estén resueltas dentro de ella. Cabe insistir que para que los ejemplos que abras sean funcionales tienes que tener instalado Pd-extended u otra instalación de Puredata equivalente en cuanto a librerías ya preinstaladas.

Los contenidos de autocarpeta son:

  • experiments: contiene los patches (archivos *.pd) en sí.
    • Además, dentro hay la carpeta extended_view_toolkit-master, que contiene precisamente las librerías Extended View pensadas para mapping y otros usos similares. Te recomiendo, sin embargo, que si tienes interés en ello visites su página y, si procede, descargues las librerías desde allí mismo.
  • img_aux: contiene imágenes que se usan en los patches
  • video: contiene videos en baja resolución que se usan en los patches
  • img_patches: contiene las imágenes (capturas de pantalla) de los patches que se comentaran en esos artículos.
  • svg: contiene archivo(s) de Inkscape que se han usado para generar los diagramas explicativos de esos posts

Igual que en el otro caso, aunque he aprovechado para tratar de ordenar y traducir lo que hay, también puede haber omisiones, comentarios escritos en catalán, objetos opcionales, superfluos o incluso del todo contraproducentes… todo ello acorde con el carácter estrictamente personal y de aprendizaje con el que se generaron esos patches. Úsalos como te plazca pero sin ninguna garantía por mi parte.

También me permito recordarte que, aunque te esté ofreciendo la descarga de los archivos *.pd, a mi me ha sido útil como aprendizaje el reproducir manualmente los patches que copiaba usando una imagen como referencia. Es por ello que en cada post adjuntaré una captura de imagen del patch. La muy alta posibilidad de que cometamos algún error al hacerlo de esa forma hace que en general tengamos que hacer todo con más detenimiento y, por ejemplo, nos veamos obligados a consultar la ayuda sobre los objetos u otras fuentes de información y ejemplos en Internet. Por otro lado, si usamos patches de otros solamente copiando y pegando sin saber qué hay ahí, es más difícil que podamos ir desarrollando de forma creativa nuestras propias soluciones a los problemas.

Residencia en Medialab-Prado, 2. Resolución de problemas en Puredata.

Una de las cosas que vine a hacer durante mi residencia en Medialab-Prado era tener tiempo para resolver problemas estúpidos. Probablemente te va a sonar. Estoy hablando de dificultades que, a pesar de limitarse a alguna prestación más o menos particular, bloquean todo un proceso. El hecho de desconocer alternativas para rodear ese problema, circunstancia habitual cuando empezamos con algo, nos deja en un callejón sin salida de lo que íbamos a hacer. Y van pasando las horas dando palos de ciego intentando aplicar posibles soluciones que vamos encontrando por ahí.

El problema principal al que ya preveía tener que dedicar algunas horas es que, junto a algun otro detalle, el objeto [pix_image] no funcionaba correctamente en la versión de Puredata extended que usaba en mis dos ordenadores. Eso era muy limitador puesto que si quería usar algo parecido a una imagen tenía que hacerlo con un vídeo en su lugar. Algo que se podía hacer para salir del paso en un momento dado, pero que era garantía de muchos quebraderos de cabeza si iba a emprender un aprendizaje sobre los métodos de manipulación de la imagen en Puredata con GEM. Puesto que no sabía si había otras cosas que por las mismas causas podían fallar.

Después de mucho buscar en Google y sin resultados muy esclarecedores de lo que podía estar causando ese problema, creí que podía tratarse de librerías ausentes en mi sistema operativo Debian; pues comprobé que la misma versión de Puredata funcionaba correctamente en ordenadores con Ubuntu o Mac OSX. Una opción hubiera sido instalar todos los paquetes recomendados por el paquete de Puredata, o todas las librerías necesarias para compilarlo en mi ordenador. Sin embargo ya he vivido situaciones parecidas otras veces, y por ello desde hace ya algun tiempo no soy muy amigo de guarrear el sistema con el que trabajo cada día con cosas que ni sé por qué estoy instalando -lo que decíamos de los palos de ciego…-. Así que probé a instalar un Ubuntu Studio y también un Debian en otras particiones que ya tenía preparadas.. Pero en este proceso también me encontré con una espiral de problemas con causas tan dispares como la detección del DHCP, el UEFI, y las versiones de Puredata que vienen por defecto en Ubuntu Studio.

Habiendo invertido casi un día y medio en todo eso y ante lo delirante de la situación, traté de salir de esa espiral y reenfocar el problema. Tuve la suerte de encontrar en esa dirección de los builds automáticos de Puredata ( http://autobuild.puredata.info/auto-build/2016-04-18/ ) un paquete de pd-extended que funciona correctamente. Con eso ya pude seguir la parte de los FLOSS manuales dónde se habla de GEM, con más garantías de que si algo no funcionaba era porque no había hecho alguno paso bien, y no por razones que están fuera de mi control.

Màpping de veritat, versión interactiva

En un entorno más familiar ya tuve la ocasión de mostrar unas primeras experimentaciones con las posibilidades interactivas del Màpping de veritat durante las fiestas mayores de Montclar, a principios de agosto. El pasado sábado pude exponer una versión mejorada en el Keyframebcn.

El Keyframebcn se define como un video creators meeting y esta edición se celebró en Hangar. Aprovecho para agradecer a la organización, los artistas y los asistentes por hacer posible este magnífico encuentro.

Prácticamente no cambié la parte de análisis de audio porque tampoco he podido aprender más sobre ello. Dado que la instalación tenía una reproducción contínua y compartía visualmente con otras piezas la atención de los espectadores, añadí un par de cosas al patch de Puredata:

  • hacer que los clips se escogieran de forma aleatoria
  • y que la duración del tiempo en que se mostraban fuera también aleatoria, entre 1 y 120 segundos

De esta forma la instalación (que no tiene sonido) interactuaba con la música que los otros compañeros pinchaban con sus visuales, y yo prácticamente no tenía que atenderla porque por suerte los parámetros iniciales del patch funcionaron razonablemente bien todo el rato.

Ejemplos básicos de Puredata para el aprendizaje.

Ilustración ejemplos Puredata

El primer entregable que saqué del periodo de residencia fueron todos los ejemplos de la parte de Audio, Dataflow, y la mayoría de los de GEM, de los manuales de uso de Puredata alojados en flossmanuals.net. En esos manuales hay algunos enlaces de descarga de ejemplos de lo que se va dando, pero como muchos de ellos no funcionan, decidí aceptar eso como una señal de que para aprender realmente a usar la herramienta, tenía que elaborarme yo desde cero todos los patches que se iban proponiendo.

En realidad mi propósito de aprender Puredata más o menos en serio empezó hará ya un año y medio; fue entonces cuando empecé a hacer los ejemplos. Sin embargo el ritmo al que avanzaba seguía la tónica que había tenido hasta ahora con el programa: una relación con él más bien esporádica y poco fructífera. Luego de comprobar esa realidad por enésima vez y ver la convocatoria del programa de residencias, pensé que tenía delante mío la oportunidad perfecta para poder concentrarme en ese aprendizaje.

Probablemente recomendaría ese mismo camino de crear de cero cada ejemplo y cada patch a cualquiera que quiera aprender Puredata. A mi, que un poco de disciplina no me va mal ni tampoco el familiarizarme con las cosas a través de una convivencia desprovista de cualquier glamour, me ha servido. De todas formas, eso ya es cosa de cada uno. El trabajo está hecho y si puede servir a alguien o a mi mismo para crear otros patchs más sofisticados en el futuro, ahí está.

En la mayoría de patches los comentarios y títulos están en catalán, puesto que este es el idioma con que trabaja mi cerebro. Confío en que no te resulte difícil comprenderlo. Puedes descargarlo de ahí, y lo publico con la licencia WTFPL.

Ajuste de una instalación de mapping real en Medialab-Prado

Nota previa: el vídeo contiene más o menos la misma información que el texto a continuación. Espero que lo que no quede del todo claro en uno se comprenda mejor en el otro; los dos documentos son complementarios y te recomiendo que, si tienes que reproducir la instalación, veas/leas los dos.

Introducción

Tal y como te expliqué en el último post, en ese tutorial vamos a ver cómo se haría el ajuste del mapping que preparamos los participantes en el taller vinculado a la residencia artística que hice este julio en Medialab-Prado.

Para practicar las distorsiones necesarias en los vídeos que proyectamos usaremos la herramienta Puredata, en la versión que llamamos Pd-extended. También existen opciones comerciales para hacer ese tipo de tarea, como Modul8 o Resolume, y otras más específicas para mapping como MadMapper o Millumin. Esas herramientas comerciales ofrecen algunas ventajas muy interesantes, pero es importante tener presente que no son en absoluto imprescindibles.

Preparando el soporte sobre el que proyectar y el espacio

Si vamos a proyectar sobre una imagen o dibujo impreso, hay que colgarlo en la pared y comprobar que está tenso, evitando en lo posible que se formen arrugas u ondas que dificultarían el encaje y empañarían las ilusiones visuales. También tenemos que considerar, a la hora de colgarlo, de qué forma se verá más natural a los ojos de los espectadores, y nuestra disponibilidad de soportes para la altura correspondiente a la que tengamos que colocar el proyector.

Tampoco podemos descuidar el cableado para datos y alimentación del ordenador y el proyector. Buscaremos una distribución idónea para no tropezar y que sea lo más elegante o discreta posible.

Empezamos con el proyector:
eliminar zoom digital:

Si al encender nuestro proyector ya emite luz aunque no esté conectado el cable de datos, podemos hacer una primera propuesta de ubicación, que corregiríamos después si fuera necesario. Antes, sin embargo, nos cercioraremos de que tenemos anulada cualquier opción de zoom digital interna del proyector, que nos restaría resolución. Puede incluso que tengamos que inicializar a su valor por defecto otros (o todos) los parámetros de un proyector, especialmente si lo usamos por primera vez y creemos que hay algo que no responde como debería.

posicionar:

Recuerda que el proyector es un aparato muy delicado y si lo movemos mientras está en funcionamiento tenemos que hacerlo con mucha suavidad y cuidado. Se trata de buscar una posición estable para el proyector, tal que el haz de proyección tenga un ancho que sea ligeramente superior al ancho de la superfície donde vamos a proyectar. Si nuestro proyector tiene zoom óptico y hemos tenido la precaución de situarlo aproximadamente a la mitad del recorrido, nos será más fácil hacer esos ajustes.

keystone:

Otra opción interna del proyector que habrá que controlar en ese momento es el llamado keystone. Cuando la superfície donde proyectamos no es perpendicular al eje de proyección, el rectángulo de proyección se deforma. Con el uso de keystone podemos recuperar la rectangularidad (si los controles del proyector están traducidos al castellano, esa opción puede aparecer bajo el nombre de paralelismo o un término por el estilo). Dado que el uso de valores altos de compensación de keystone resta resolución efectiva, usaremos ese ajuste con contención, o trataremos de evitarlo buscando un mejor emplazamiento para el proyector. Por ello, todo ese proceso puede tener algo de iterativo, o de ensayo y error.

iteración del proceso:

Puede que después tengamos que cambiar la posición del proyector por imprevistos y razones que asomen desde ahora, pero también puede que no haga falta. En cualquier caso, ya tendremos esa cuestión enfocada.

Puesta a punto del ordenador:

Ahora arrancamos el ordenador y iniciamos sesión. Lo más normal es que lo hagamos ya con la pantalla y el proyector conectados cada uno a una salida de la tarjeta gráfica. Sin embargo, en algunos casos menos habituales tendremos mejores resultados conectando la salida de datos hacia el proyector luego de que el sistema ya esté completamente arrancado.

Configurar escritorio extendido:

Configuraremos el servidor gráfico de forma que nos reconozca y use el proyector como pantalla secundaria, que configuraremos como un escritorio extendido situado (por ejemplo) a la derecha del principal. Siempre que sea posible usaremos la resolución nativa del proyector, para evitar deformaciones y/o conseguir la mayor nitidez posible de la imagen.

Arrancar pd-extended:

Ahora ya podemos arrancar Pd-extended, la versión ampliada de Puredata. Usaremos las prestaciones de unas librerías llamadas Extended View, que aunque están bastante pensadas para personas que ya conocen mínimamente Puredata, son útiles para agilizar sus aplicaciones en instalaciones de mapping.

Abrir el patch de proyección:

Extended View contiene muchos archivos y ejemplos diferentes en función de lo que nos interese. Dado que existen dependencias entre algunos de esos archivos, siempre mantendremos intacta la estructura de carpetas. Puedes descargar de aquí el paquete zip que lo contiene. Dentro también vas a encontrar un patch ligeramente modificado para el propósito de lo que se ilustra aquí.

Desde la opción Abrir del propio programa Pd-Extended, iremos a la carpeta donde está ese patch (el archivo ev_pro_22easy-help_mappingMedialabPrado.pd ) y lo abriremos.

Cuando el patch se abra, veremos una ventana similar a esa.

Aspecto inicial del patch
Aspecto inicial del patch

Los pasos siguientes indican cómo tenemos que proceder para configurar la ventana de proyección.

Ajuste de los valores del patch:

Aspecto de la ventana de dimensiones y offset

  1. Primero ajustamos el tamaño de la ventana de proyección en dónde pone dimen. Para ello normalmente usaremos los valores X e Y correspondientes a la resolución del proyector. Ajustar ese tipo de valores numéricos en Puredata tiene un poco de truco: tenemos que hacer clic sobre el campo numérico; el número existente se resaltará en rojo; mientras esté en rojo podemos teclear el valor deseado y Enter al finalizar. Quizá necesites un par o tres de intentos hasta que le cojas el funcionamiento.
  2. Luego ajustamos el Offset. El offset es cuánto hay que desplazar la ventana de proyección respecto de la pantalla principal. Así, si tenemos el escritorio extendido correspondiente al proyector a la derecha del principal, y nuestra pantalla principal mide, por ejemplo, 1366px de ancho, este será el Offset en X que tendremos que poner ahí. En algunos casos puede que tengamos que ajustar también un offset en Y.
  3. Desactivamos la opción border con el fin de que se pueda generar la ventana de proyección a pantalla completa en el escritorio extendido.
  4. Hecho esto ya podemos darle a Create para generar la ventana de proyección. Se tendría que generar ocupando todo el escritorio extendido que sale por el proyector. Si hay algun problema o queremos rectificar, usamos el botón Destroy para eliminarla.
  5. En el centro de la ventana de proyección veremos que se nos genera un cuadrado. Ese cuadrado está texturizado con la misma imagen que tenemos impresa, pero con los colores invertidos. Eso nos ayudará en el proceso de ajuste. Ese cuadrado también tiene un circulito verde a cada esquina. Arrastrando el círculo, podemos deformar el cuadrado.
  6. Arrastramos todos los círculos acercándolos a las esquinas de la imagen impresa. Una vez ahí, usaremos la pista que nos da la imagen invertida para ubicar los círculos con más precisión y así buscar el mejor ajuste posible. Hay que tener presente que el sistema de ajuste basado en sólo cuatro esquinas es algo rudimentario, con lo que no podemos aspirar a un ajuste perfecto. Buscaremos una solución de compromiso.
  7. En el patch también tenemos un par de mensajes, acompañados de comentarios que indican PARA CUADRAR y PARA PROYECTAR. Si hacemos clic sobre el mensaje acompañado del comentario PARA PROYECTAR (asegúrate de estar en modo de control, Ctrl+Alt+E) veremos que en lugar de la imagen de antes, vemos en la ventana de proyección el vídeo correspondiente a la ruta que hay escrita en ese mensaje.Aspecto de los mensajes para lanzar videos
  8. Después de ver cómo queda la proyección, puede que estimemos oportuno perfeccionar el ajuste anterior. Eso lo podemos hacer usando los círculos verdes de las esquinas o abriendo la ventana settings.
    Ubicación del botón para abrir la ventana settings
    Ubicación del botón para abrir la ventana settings

    En esa ventana veremos un conjunto de coordenadas X e Y que podemos ajustar manualmente haciendo clic y arrastrando. Si queremos hacerlo con precisión, pulsaremos Shift antes de darle al click.Aspecto de la ventana settings

  9. En la misma ventana de settings pondremos a off el cursor mode dentro de Cursor Interaction, con el fin de desactivar la visualización de los círculos verdes.
  10. Si estamos satisfechos con el ajuste, es el momento de desactivar los protectores de pantalla y/o configuraciones de energía que puedan llevar el ordenador a estado de reposo, puesto que si no lo hiciéramos la proyección desaparecería. También puede que nos interese apagar la pantalla principal con su botón convencional, con el fin de ocultar las tripas del sistema y concentrar toda la atención del espectador en la proyección.

Save

Save

Save