FOSFENO/docs/mezclador.md
hacklab f017246f0e Capas independientes, projectM en el mapping y catalogo de la galeria
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>
2026-08-02 14:56:01 +02:00

8 KiB

El Mezclador VJ (mezclas)

El Mezclador es el motor de vídeo de FOSFENO. No es un motor de visuales generativas como los otros: es una mesa de mezclas de dos capas que combina en directo una capa de fondo con un clip, y les aplica efectos de color.

Se elige con el botón redondo Mezcla del apartado Motor de visuales, en la pestaña MOTORES.

El modelo mental: siempre dos capas

Todo el mezclador se entiende con esta idea. Hay dos capas y solo dos, y siempre son las mismas:

   ┌──────────────────────────────────────────────┐
   │  CAPA DE ENCIMA :: el CLIP                   │   un vídeo o una imagen
   │  (data/videos/…)                             │   de la galería
   ├──────────────────────────────────────────────┤
   │  CAPA DE ABAJO  :: el FONDO                  │   la cámara web
   │  (cámara  o  visuales Butter / MilkDrop)     │   o las visuales Butter
   └──────────────────────────────────────────────┘
                       ▼
             [ modo de mezcla ]  →  proyector

La tarjeta del panel está numerada en ese mismo orden, y ese orden es la respuesta a casi cualquier duda:

Paso Qué decide
1 · Qué se ve si sale solo el fondo, solo el clip, o los dos
2 · Fondo qué hay en la capa de abajo: cámara o visuales Butter
3 · Clip qué vídeo o imagen va en la capa de encima
4 · Cómo se juntan el modo de mezcla (solo aparece si se ven los dos)

Debajo del paso 4 hay una línea naranja de resumen que dice, en una frase, lo que va a salir por el proyector con los ajustes que tengas puestos. Si en algún momento no sabes qué estás montando, esa línea lo dice.

La tarjeta del Mezclador VJ

Poner visuales de fondo (MilkDrop detrás del vídeo)

Esto es lo que suele costar encontrar, así que va aparte. Sí está integrado y funciona así:

  1. Motor Mezcla.
  2. Paso 2, desplegable Fondo (capa de abajo)Visuales Butter (MilkDrop).
  3. La cámara se apaga sola (piloto incluido) y su sitio en la capa de abajo lo ocupan las visuales de MilkDrop.
  4. Justo debajo aparece el preset de MilkDrop que hace de fondo, con « Anterior / Siguiente » y la casilla Cambiar el fondo solo.

Ese preset es el mismo del motor Butter: lo que elijas aquí queda elegido también allí, y al revés. El cambio automático también es el mismo (los segundos o los compases se ajustan en la tarjeta del motor Butter).

projectM no puede ir de fondo. projectM es un programa nativo que corre en su propia ventana, fuera del navegador, así que el mezclador no puede leerlo como capa. El fondo de visuales es siempre Butterchurn — que es el mismo MilkDrop, con los mismos presets, dentro del navegador.

Receta: un personaje recortado sobre las visuales

Es el uso estrella del mezclador y encadena todo lo anterior:

  1. 1 · Qué se veLos dos.
  2. 2 · FondoVisuales Butter (MilkDrop), y elige ahí el preset.
  3. 3 · Clip → un clip de silueta sobre negro (los _silueta-negro que genera DETEKTION, el proyecto hermano de VISUALES/, o cualquier vídeo con fondo negro).
  4. 4 · Cómo se juntanRecorte (personaje delante).

El negro del clip se vuelve transparente y la figura queda delante de MilkDrop, latiendo con la música. En este modo el primer deslizador deja de ser la mezcla A/B y pasa a llamarse Umbral del recorte: súbelo si queda un halo oscuro alrededor de la figura, bájalo si se está comiendo partes del personaje.

Paso 1 · Qué se ve

  • Solo el fondo — a pantalla completa. El clip no se usa.
  • Solo el clip — a pantalla completa. El fondo no se usa (ni la cámara ni las visuales Butter: si eliges esto, el fondo queda atenuado en el panel).
  • Los dos — se combinan según el paso 4.

Los controles que en ese momento no pintan nada no desaparecen: se atenúan, para que se vea que existen sin que despisten.

Paso 2 · Fondo (capa de abajo)

Cámara. Con la casilla Cámara activada y, si tienes más de una, el desplegable para elegirla. Si la cámara falla, el aviso sale en la banda de arriba del panel; para reintentar, apaga y enciende la casilla.

Visuales Butter (MilkDrop). Lo explicado más arriba. La cámara se libera de verdad mientras tanto.

Paso 3 · Clip (capa de encima)

Los clips salen de la carpeta data/videos/. Hay dos formas de meterlos:

  • Copiándolos a la carpeta y pulsando Actualizar lista.
  • Con el botón Subir vídeo o imagen, desde el móvil o el ordenador, sin tocar carpetas.

Formatos que van bien:

Tipo Formatos Nota
Vídeo .mp4 (H.264), .webm En Raspberry, 720p o menos
Imagen .jpg, .png, .gif, .webp Se queda fija como capa

Los vídeos se reproducen en bucle y sin sonido (FOSFENO escucha la música de la sala, no la del clip).

Paso 4 · Cómo se juntan

Solo aparece con Los dos.

Modo Qué hace
Recorte El negro del clip se vuelve transparente: la figura queda delante del fondo. El deslizador pasa a ser el umbral
Fundido Disuelve una capa sobre la otra según el deslizador de mezcla
Diferencia Resta las dos capas: contornos y colores invertidos donde coinciden
Multiplicar Oscurece: solo sobrevive lo que es claro en las dos
Sumar Aclara: suma la luz de las dos capas
Capa Superpone el clip usando su canal alfa

Los efectos de color

Se aplican al resultado ya mezclado, en este orden (importa: el caleidoscopio deforma antes de que el color entre en juego):

caleidoscopio → rotación → pixelado → tono → saturación → contraste →
brillo → colorama → posterizar → invertir → pulso al ritmo → feedback
  • Mezcla A/B — cuánta capa de encima frente a la de abajo (o el umbral, en modo Recorte).
  • Tono / Saturación / Contraste / Brillo — corrección de color de toda la vida.
  • Colorama — recicla los colores; en valores altos psicodelia pura.
  • Posterizar — reduce el número de colores por franjas.
  • Pixelado — baja la resolución aparente en bloques.
  • Caleidoscopio — repite la imagen en N sectores en espejo.
  • Rotación — gira la imagen.
  • Feedback — realimenta el fotograma anterior: estelas y túneles. Con valores altos la imagen tarda en limpiarse.
  • Invertir colores — el negativo.
  • Pulso al ritmo — la imagen late con los graves detectados (usa el mismo análisis de audio que alimenta el BPM).

Por debajo

El mezclador no es un motor aparte: genera código Hydra a partir de los controles y lo ejecuta. La cámara entra como fuente s0 (o el lienzo de Butterchurn, si el fondo son visuales) y el clip como s1. Por eso el mezclador y el motor Hydra comparten el mismo lienzo y nunca están activos a la vez.

Como todo lo que corre en el navegador, la salida del mezclador se puede mapear: ver Projection mapping.

Si algo no se ve

FOSFENO no se queda callado: el motivo sale en la banda de avisos, arriba del panel.

Aviso Qué hacer
«La cámara está apagada» Marca Cámara activada en el paso 2
«No hay vídeo elegido» Elige uno en el paso 3
«No hay vídeos» Sube uno, o copia archivos a data/videos y pulsa Actualizar lista
«No se pudo activar la cámara» Comprueba el cable, pulsa Buscar dispositivos de nuevo y apaga/enciende la casilla
«No se pudo cargar …» El formato no lo traga el navegador: pásalo a .mp4 (H.264) o .webm

Más casos en Solución de problemas.