Mapping - Los clips salian del reves: mapper.js activaba UNPACK_FLIP_Y_WEBGL, pero el modelo va con origen arriba-izquierda y texImage2D ya sube la primera fila en t=0, asi que el flip la mandaba al final. Comprobado renderizando el mapper real en Chromium headless con una fuente mitad roja / mitad azul. - projectM se puede usar YA en una capa: los .milk de data/presets-projectm se traducen a Butterchurn en el navegador al elegirlos (milkdrop-preset- converter). La capa MilkDrop gana 'biblioteca' (butter | projectm) sin cambiar su firma, para no recrear el contexto WebGL al cambiar de una a otra. Medido: 100/100 presets de una muestra convierten, 84/84 de los que llevan shaders warp/comp; ~7 ms por preset. - Cada capa tiene su pestana arriba y su propia vista, y '+ CAPA' crea una y entra en ella: con varias capas, ir y volver a MAPPING no era viable. - Dos capas MilkDrop sin preset ya no salen identicas (cogian el indice 0): cada instancia elige uno al azar y lo escribe en el estado. - Una capa nueva ya no nace en la fuente "motor", que es el lienzo del motor activo y hacia que dos capas ensenaran lo mismo. Galeria de visuales - scripts/catalogar-visuales.py: ficha de cada clip (pelicula, personajes, duracion) y, sobre todo, si es una silueta de verdad y cuanta figura tiene. Distingue silueta de corte crudo por el negro puro del fondo: 0,63-0,90 frente a 0,04-0,06, sin zona gris. - El panel lista los clips agrupados por pelicula, con nombre legible y aviso de los que casi no tienen figura, en vez del nombre del archivo. - Soporte de siluetas con canal alfa (.webm VP9): transparencia de verdad, sin recorte por luminancia. El shader del mapper ya la respeta. Documentacion - docs/visuales.md nuevo; pendiente.md al dia con lo hecho y lo que queda. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5.8 KiB
Uso del panel
Cuando la Raspberry arranca, las visuales salen solas por el proyector. Todo lo demás se controla desde el panel.
Entrar en el panel
Al arrancar, el proyector muestra una pantalla con un código QR y la dirección
del panel. Escanea el QR con la cámara del móvil y el panel se abre solo. Si
prefieres escribirla, la dirección es http://fosfeno.local/.
El móvil tiene que estar en la misma red que la Raspberry. La explicación completa, con las tres formas de conectar y los detalles del router, está en Conectarse al panel.
Arriba a la derecha del panel hay un punto. Verde quiere decir que está conectado con la Raspberry. Rojo quiere decir que se ha perdido la conexión.
Las dos pestañas: MOTORES y MAPPING
A la derecha del título FOSFENO hay dos pestañas. Separan las dos cosas que se hacen con el panel, que no tienen nada que ver entre sí:
- MOTORES — el directo. Encendido, audio, sensibilidad, el motor de visuales y sus controles. Es la pestaña de siempre y la que está abierta al arrancar.
- MAPPING — el montaje. Encajar la imagen sobre la superficie física: superficies, malla y máscaras, con una previsualización grande para arrastrar los puntos.
Lo normal es pasar por MAPPING una vez al montar y quedarse en MOTORES el resto de la noche. Si el mapping está activado, aparece un punto verde en su pestaña, para que se sepa que la salida se está deformando aunque estés mirando MOTORES.
El panel recuerda en qué pestaña lo dejaste.
Avisos y errores
Justo debajo de la cabecera aparecen los avisos. Si algo va mal (la cámara no responde, un shader tiene un error de código, projectM no está instalado), el mensaje sale ahí en lugar de quedarse el sistema callado. Los avisos informativos desaparecen solos. Los errores se quedan hasta que los cierras, para que no se te escapen.
Encendido
El botón grande de encendido pone las visuales en marcha o las apaga. Apagar deja el proyector en negro sin tener que apagar la Raspberry.
Los cinco motores
Se eligen con los botones redondos. Solo uno está activo a la vez.
projectM. El visualizador clásico de MilkDrop, compilado en la propia Raspberry. Reacciona al audio por sí solo y va rotando entre miles de presets. Es un programa nativo, así que cuando lo eliges su ventana se pone por encima de las demás visuales.
Butterchurn. Es MilkDrop reescrito para el navegador. Tiene los mismos miles de presets. Puedes elegir un preset concreto, dejar que cambie solo cada ciertos segundos, o que cambie sincronizado con el ritmo de la música.
Hydra. Visuales generados por código. Trae un editor integrado donde puedes escribir o pegar código de Hydra y ejecutarlo al momento. Incluye una librería de fragmentos listos para usar; eliges uno y se carga en el editor.
Shaders. Shaders GLSL, el tipo de visual de Shadertoy. También trae editor de código. Los shaders reciben información del audio y del ritmo, así que se mueven con la música.
Mezclador. El modo de vídeo. Monta dos capas —un fondo (la webcam o las propias visuales de MilkDrop) y un clip encima— y las combina con efectos de color. Es lo más parecido a un programa de VJ como Resolume, pero funcionando dentro de la Raspberry.
Audio y BPM
La tarjeta de audio se elige en el apartado Audio del panel. Por defecto FOSFENO coge el micrófono USB automáticamente, pero si tienes varias entradas puedes cambiarla ahí.
Justo al lado se ve el BPM detectado. FOSFENO analiza el sonido y estima a cuántos pulsos por minuto va la música. Ese valor lo usan los motores para sincronizarse: los shaders, Hydra y el cambio de preset de Butterchurn al compás. El BPM tarda unos segundos en estabilizarse y funciona mejor con música de pulso marcado.
La sensibilidad ajusta cuánto reaccionan las visuales al volumen. Si la sala suena floja, súbela. Si todo se ve saturado, bájala.
El editor de código
En Hydra y en Shaders aparece un editor. Funciona igual en los dos:
- El desplegable de la librería carga un ejemplo. Al elegirlo, el código entra en el editor y se ejecuta al momento.
- Puedes modificar ese código o pegar uno tuyo. El botón Ejecutar lanza lo que haya en el editor.
- El botón Limpiar vacía el editor.
En Hydra el código es JavaScript de Hydra y tienes disponibles time, los
valores de audio a.fft[0] a a.fft[4] y la variable bpm. En Shaders el
código es GLSL y tienes los uniforms u_time, u_bass, u_mid, u_treble,
u_bpm, u_beat y la textura u_fft.
El modo Mezclador
El mezclador monta dos capas: un fondo (la cámara web, o las visuales Butter/MilkDrop) y un clip encima (un vídeo o una imagen de la galería). La tarjeta del panel va numerada en ese orden: qué se ve, el fondo, el clip y cómo se juntan. Debajo hay una línea de resumen que dice, en una frase, lo que va a salir por el proyector.
Para poner visuales de fondo, en el paso 2 cambia el desplegable de Cámara a Visuales Butter (MilkDrop): la cámara se apaga y su sitio lo ocupan las visuales, con su propio selector de preset ahí mismo. Combinado con un clip de silueta y el modo Recorte, el personaje queda delante de MilkDrop.
Los clips se copian a data/videos o se suben desde el propio panel con el
botón Subir vídeo o imagen. Para que vayan finos en la Raspberry conviene que
sean cortos, en 720p o menos y en H.264.
La guía completa, con los modos de mezcla, los efectos de color y las recetas: El Mezclador VJ.
Apagar y reiniciar
Abajo del todo están los botones para reiniciar y apagar la Raspberry. Piden confirmación. Apagar desde aquí es la forma correcta de apagar la placa al terminar, mejor que cortar la corriente.


