Mapping in-browser (Fase 1) + trabajo en curso

Projection mapping editable desde el navegador, sin herramientas externas:
- web/stage/mapper.js (nuevo): compositor WebGL que texturiza el motor activo
  sobre superficies deformables (homografia por vertice: keystone correcto).
- Editor con raton en el escenario (crear, arrastrar esquinas, mover, borrar)
  y previsualizacion arrastrable en el panel (raton/tactil) para editar desde
  el movil sin tocar la ventana de visuales.
- Backend: estado "mapping" + evento set_mapping, persistido en data/mapping.json
  (ignorado en git). Seccion "Mapping" en el panel + texto de ayuda.
- Solo motores web (butterchurn/hydra/shaders/mixer); projectM no se mapea.
- .gitignore: excluye config de runtime (mapping.json, pm-favoritos.json).

Incluye ademas trabajo en curso previo sin commitear (server.py, stage.js,
panel.js/css, ayuda.json, hydra-sketches.json, problemas.md,
start-projectm.sh), subido junto a peticion del autor.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
hacklab 2026-07-27 00:19:30 +02:00
parent 0b1546cecc
commit 8dd58bb293
12 changed files with 1815 additions and 85 deletions

View file

@ -37,24 +37,68 @@ El BPM en cero quiere decir que FOSFENO no está recibiendo audio, o que el
audio es demasiado flojo.
Comprueba que el micrófono USB está conectado. En el apartado Audio del panel,
abre el desplegable y elige a mano la entrada correcta. Si tu micrófono no
aparece, conéctalo y reinicia la Raspberry, porque la lista se hace al
arrancar.
pulsa «Buscar dispositivos», abre el desplegable, elige la entrada correcta y
pulsa «Aplicar entrada». Ya no hace falta reiniciar para que aparezcan
entradas nuevas.
Si el audio entra pero el BPM no se estabiliza, sube la sensibilidad. El
detector de ritmo necesita música con un pulso claro; con música muy suave o
sin percusión puede no encontrar el tempo, y a veces marca el doble o la
mitad del valor real.
Si al arrancar sale el aviso «Sin entrada de audio», las visuales siguen
funcionando pero no reaccionan a la música: conecta un micrófono (o elige
«Audio del navegador») y pulsa «Buscar dispositivos» y «Aplicar entrada».
## El audio del navegador (Spotify, YouTube) no mueve las visuales
La fuente «Audio del navegador» captura lo que suena en el propio equipo
usando el «monitor» de PulseAudio/PipeWire. Chromium no deja elegir ese
monitor directamente, así que FOSFENO mueve la captura por su cuenta con
`pactl`. Eso vale para todos los motores, projectM incluido (projectM captura
siempre la entrada por defecto y FOSFENO recoloca su stream al lanzarlo).
Si no reacciona:
- Pon algo a sonar primero y pulsa «Aplicar entrada».
- Si cambias de salida (conectas o quitas unos cascos bluetooth, cambias a
HDMI...), la captura se queda en la salida antigua: pulsa «Aplicar
entrada» otra vez para que se recoloque en la nueva.
- Lee el aviso del panel: si dice que no pudo mover la captura o averiguar
la salida por defecto, revisa el audio del sistema con `pactl info` y
`pactl list sources short` en una terminal.
- Al volver a «Micrófono (sala)», FOSFENO devuelve la captura a la entrada
por defecto. Si notas que sigue «escuchando» la música del equipo, pulsa
«Aplicar entrada» de nuevo.
## La cámara no funciona en el Mezclador
Tiene que ser una webcam USB que cumpla el estándar UVC. El módulo de cámara
con cable plano de la Raspberry no sirve en esta versión.
Conecta la cámara antes de encender la Raspberry. Si la conectas con el
sistema ya arrancado, reinicia. Si en el panel sale un aviso de que la cámara
no responde, es que el sistema no la ve; pruébala en otro puerto USB o con
otro cable.
Si la conectas con el sistema ya arrancado, pulsa «Buscar dispositivos» en el
panel para que aparezca en la lista. Cuando la cámara falla, el panel lo dice
con un aviso (y el motivo: no conectada, ocupada por otro programa...); para
reintentar, apaga y enciende la casilla «Cámara». Si aun así no responde,
pruébala en otro puerto USB o con otro cable.
Al salir del Mezclador la cámara se apaga (se le va el LED); se vuelve a
encender sola al entrar de nuevo.
## El Mezclador se queda en negro
Mira el aviso del panel, que dice exactamente qué falta:
- «La cámara está apagada»: activa la casilla «Cámara».
- «No hay vídeo elegido»: selecciona un clip en la lista.
- «No hay vídeos»: copia archivos a `data/videos` y pulsa el botón de
actualizar la lista.
- «No se pudo cargar el vídeo»: el archivo está dañado o el códec no está
soportado. Convierte el clip a .mp4 (H.264) o .webm y vuelve a elegirlo
en la lista para reintentar.
En el modo «mezcla» hacen falta las dos fuentes (cámara y vídeo); si solo
hay una, la otra mitad de la mezcla se ve negra.
## projectM no está disponible
@ -73,6 +117,11 @@ Ese script avisa en qué paso falla. Lo más habitual es que falte alguna
librería de desarrollo; vuelve a lanzar `bash install.sh` para reinstalar las
dependencias del sistema.
Si projectM se ve pero no reacciona a la música: projectM escucha siempre la
entrada por defecto del sistema. Con la fuente «Audio del navegador» activa,
FOSFENO mueve su captura al monitor de la salida al lanzarlo; si acabas de
cambiar de salida o de fuente, pulsa «Aplicar entrada» en el panel.
## Las visuales van a tirones
Suele ser calor. Una Raspberry sin disipador, después de un rato con visuales,