From f017246f0e0bf326f0e91159d47ad9aa044f6c38 Mon Sep 17 00:00:00 2001 From: hacklab Date: Sun, 2 Aug 2026 14:56:01 +0200 Subject: [PATCH] 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) --- .gitignore | 5 + README.md | 68 ++- backend/server.py | 158 +++++- config.json | 4 + data/ayuda.json | 55 ++- data/videos/README.txt | 14 + docs/README.md | 24 +- docs/arquitectura.md | 237 +++++++++ docs/assets/README.md | 9 +- docs/assets/capas.png | Bin 0 -> 160320 bytes docs/assets/mapping.png | Bin 0 -> 71602 bytes docs/assets/mezclador.png | Bin 0 -> 87703 bytes docs/assets/panel.png | Bin 147156 -> 138675 bytes docs/conexion.md | 2 +- docs/mapping.md | 203 ++++++-- docs/mezclador.md | 182 +++++++ docs/pendiente.md | 162 +++++++ docs/seguridad.md | 94 ++++ docs/uso.md | 50 +- docs/visuales.md | 160 ++++++ install.sh | 4 + scripts/catalogar-visuales.py | 390 +++++++++++++++ web/package.json | 1 + web/panel/index.html | 267 ++++++++-- web/panel/panel.css | 189 +++++++- web/panel/panel.js | 882 +++++++++++++++++++++++++++++++--- web/stage/index.html | 4 + web/stage/layers.js | 457 ++++++++++++++++++ web/stage/mapper.js | 267 ++++++++-- web/stage/stage.js | 175 ++++++- 30 files changed, 3771 insertions(+), 292 deletions(-) create mode 100644 docs/arquitectura.md create mode 100644 docs/assets/capas.png create mode 100644 docs/assets/mapping.png create mode 100644 docs/assets/mezclador.png create mode 100644 docs/mezclador.md create mode 100644 docs/pendiente.md create mode 100644 docs/seguridad.md create mode 100644 docs/visuales.md create mode 100755 scripts/catalogar-visuales.py create mode 100644 web/stage/layers.js diff --git a/.gitignore b/.gitignore index 81f1b7a..af31128 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,11 @@ data/presets-projectm/ data/videos/* !data/videos/README.txt +# Catalogo de la galeria y sus miniaturas: describen los videos locales, que +# tampoco van al repo. Los regenera scripts/catalogar-visuales.py +data/visuales.json +data/miniaturas/ + # Config de runtime (por instalacion): no va al repo data/mapping.json data/pm-favoritos.json diff --git a/README.md b/README.md index e1f675a..f996a82 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ arranca solo, o en un **portátil Linux** que lanzas cuando quieras. El apartado │ (micro USB) ▼ ┌──────────────────┐ Wi-Fi / Ethernet - │ Raspberry Pi 5 │◀─────────────────────────── http://192.168.1.71/ + │ Raspberry Pi 5 │◀─────────────────────────── http://192.168.1.XX/ │ FOSFENO │ (panel en el móvil) └────────┬─────────┘ │ micro-HDMI @@ -40,9 +40,15 @@ La carpeta [`docs/`](docs/) tiene la guía completa: - [Conectarse al panel](docs/conexion.md) — el código QR, `fosfeno.local` y el router. - [Uso del panel](docs/uso.md) — cómo se maneja y qué hace cada motor. +- [El Mezclador VJ](docs/mezclador.md) — las mezclas: las dos capas, visuales + de fondo, modos de mezcla y efectos. - [Projection mapping](docs/mapping.md) — deformar las visuales para encajarlas en superficies físicas (malla, máscaras) desde el panel. - [Solución de problemas](docs/problemas.md) — qué hacer cuando algo falla. +- [Seguridad](docs/seguridad.md) — el panel está abierto a la red local por + defecto; cómo cerrarlo con una clave si pinchas fuera de casa. +- [Arquitectura](docs/arquitectura.md) — para tocar el código: piezas, estado, + eventos y cómo añadir un motor. El panel además lleva un botón de información en cada apartado: explica qué es, qué necesita y cómo se configura, sin salir del propio panel. @@ -65,12 +71,30 @@ Visuales de ejemplo — el motor Hydra con su editor de código en vivo: Hydra -## Projection mapping +## Projection mapping por capas -Las visuales web (Butterchurn, Hydra, Shaders y Mezclador) se pueden **deformar -para encajarlas en superficies físicas** desde el panel: superficies con malla -(curvas), varias a la vez y máscaras para tapar zonas, arrastrando con el ratón -o el dedo. Se guarda solo en `data/mapping.json`. Guía: [docs/mapping.md](docs/mapping.md). +Las visuales se pueden **deformar para encajarlas en superficies físicas** desde +el panel: malla deformable (curvas), varias zonas a la vez y máscaras para tapar +derrames, arrastrando con el ratón o el dedo. + +Y cada zona es una **capa con su propio visual**: MilkDrop a la derecha, otro +preset distinto a la izquierda y un vídeo en el centro, a la vez. + +
+ Tres capas con visuales distintos +
+ +| Fuente de una capa | Qué es | +|--------------------|--------| +| El motor de MOTORES | Lo que esté puesto en la otra pestaña del panel | +| Visuales MilkDrop propias | Un Butterchurn solo para esa capa, con su preset | +| Shader GLSL | Un shader de la librería, reactivo al audio | +| Clip o imagen | Un archivo de `data/videos`, en bucle | +| Cámara | La webcam | +| Negro | Tapa la zona | + +Con opacidad y mezcla (normal o aditiva) por capa. Se guarda solo en +`data/mapping.json`. Guía: [docs/mapping.md](docs/mapping.md). ## Hardware necesario @@ -173,6 +197,9 @@ Así se ve el panel de control: Panel de control de FOSFENO +El panel tiene dos pestañas, a la derecha del título: **MOTORES** (el directo) +y **MAPPING** (el montaje sobre la superficie física). + Desde el panel puedes: - Encender/apagar las visuales y cambiar de motor. @@ -182,9 +209,11 @@ Desde el panel puedes: **sincronizado al compás**. - **Hydra / Shaders**: editor de código integrado para **escribir o pegar** tu propio código, más una **librería de fragmentos** lista para cargar. -- **Mezclador VJ**: activar la cámara, elegir un clip de vídeo, modo de - mezcla y efectos de color (tono, saturación, colorama, posterizado, - pixelado, caleidoscopio, feedback, invertir…). +- **Mezclador VJ**: elegir el fondo (cámara o visuales MilkDrop), el clip de + encima, el modo de mezcla y los efectos de color (tono, saturación, + colorama, posterizado, pixelado, caleidoscopio, feedback, invertir…). +- **Mapping**: encajar la imagen sobre la superficie física arrastrando los + puntos, con malla deformable y máscaras. FOSFENO en acción — vídeo corto de demostración: @@ -194,12 +223,19 @@ FOSFENO en acción — vídeo corto de demostración: Si el reproductor no se ve, descarga el vídeo: [demo.mp4](docs/assets/demo.mp4) -### Modo Mezclador (cámara + vídeo) +### Modo Mezclador (cámara + vídeo + visuales de fondo) -Copia tus clips en `data/videos/` (formatos `.mp4`, `.webm`, `.mov`…) y -aparecerán en el panel. El mezclador genera código Hydra por debajo a partir -de los controles, así que mezcla en tiempo real la webcam, los clips y los -efectos de color — el equivalente a Resolume, pero corriendo en la propia Pi. +El mezclador monta **dos capas**: un **fondo** —la webcam o las propias +**visuales MilkDrop**— y un **clip** encima (vídeo o imagen), combinados con el +modo de mezcla y los efectos de color. Con un clip de silueta sobre negro y el +modo *Recorte*, el personaje queda **delante de MilkDrop** latiendo con la +música. + +Los clips se copian a `data/videos/` (`.mp4` H.264, `.webm`, imágenes) o se +suben desde el propio panel. Por debajo, el mezclador genera código Hydra a +partir de los controles: el equivalente a Resolume, corriendo en la propia Pi. + +Guía completa: [El Mezclador VJ](docs/mezclador.md). ## Estructura @@ -210,8 +246,10 @@ FOSFENO/ ├── backend/server.py Servidor: web + WebSocket + gestión de procesos ├── scripts/lib.sh Funciones de los scripts (logs, versiones) ├── web/panel/ Panel de control (móvil) -├── web/stage/ Escenario en Chromium (todos los motores web) +├── web/stage/stage.js Escenario en Chromium (todos los motores web) +├── web/stage/mapper.js Compositor de projection mapping (WebGL) ├── docs/ Documentación completa +├── docs/arquitectura.md Cómo está montado, para tocar el código ├── data/hydra-sketches.json Sketches de Hydra de fábrica ├── data/hydra-snippets.json Librería de fragmentos de Hydra para el editor ├── data/shaders.json Shaders GLSL (editables) diff --git a/backend/server.py b/backend/server.py index d46667c..1d4de4b 100644 --- a/backend/server.py +++ b/backend/server.py @@ -53,10 +53,25 @@ HOST = CFG.get("server", {}).get("host", "0.0.0.0") # modo portatil (script 'fosfeno') usa el puerto 8080 sin tocar config.json. PORT = int(os.environ.get("FOSFENO_PORT") or CFG.get("server", {}).get("port", 80)) NO_KIOSK = bool(os.environ.get("FOSFENO_NO_KIOSK")) +# Clave compartida para la red local. Vacia (por defecto) = abierto, como +# siempre: en casa o en un ensayo no molesta. Si se pone (config.json -> +# auth.token, o la variable FOSFENO_TOKEN), hace falta para conectarse al +# panel y para subir archivos, y el codigo QR del proyector ya la lleva: el +# que escanea entra, el que solo conoce la IP no. Recomendado en local +# publico, donde cualquiera en la wifi podria apagar el equipo o meter +# codigo en las visuales. +TOKEN = os.environ.get("FOSFENO_TOKEN") or CFG.get("auth", {}).get("token", "") app = Flask(__name__, static_folder=None) -app.config["MAX_CONTENT_LENGTH"] = 4 * 1024 ** 3 # subidas de hasta 4 GB -socketio = SocketIO(app, async_mode="threading", cors_allowed_origins="*") +# Tope por archivo subido. Con 4 GB, cualquiera en la red podia llenar la +# tarjeta de la Raspberry en tres subidas; con esto siguen cabiendo clips +# largos de sobra. +app.config["MAX_CONTENT_LENGTH"] = 512 * 1024 ** 2 # 512 MB +# cors_allowed_origins=None => solo el mismo origen, calculado del Host de +# cada peticion (asi vale igual por IP, por fosfeno.local o por localhost). +# Con el comodin "*", una web cualquiera abierta en un movil de la sala podia +# conectarse al socket y mandar ordenes. +socketio = SocketIO(app, async_mode="threading", cors_allowed_origins=None) # -------------------------------------------------------------------------- # Datos cargados de disco @@ -81,6 +96,19 @@ def list_videos(): if f.suffix.lower() in MEDIA_EXT) +def load_visuales(): + """Fichas de la galeria: de que peli sale cada clip, quien aparece y como + de llena esta la silueta. Lo genera scripts/catalogar-visuales.py; si no + esta, el panel sigue funcionando con los nombres de archivo pelados. + Devuelve {archivo: ficha} y solo de lo que sigue en disco, para que un + catalogo viejo no ensene clips borrados.""" + ruta = DATA / "visuales.json" + datos = load_json(ruta, {}) if ruta.is_file() else {} + hay = set(list_videos()) + return {c["archivo"]: c for c in datos.get("clips", []) + if isinstance(c, dict) and c.get("archivo") in hay} + + def list_projectm_presets(): """Categorias y visuales de data/presets-projectm. El pack se organiza como categoria/visual/variante.milk: cada 'visual' (Aurora, Blobby...) @@ -152,14 +180,19 @@ state = { # edit = mostrar los tiradores en el escenario para ajustarlo con el raton; # surfaces = [{id, corners:[[x,y]x4]}] normalizado 0..1. Persiste en # data/mapping.json. - "mapping": load_json(DATA / "mapping.json", - {"enabled": False, "edit": False, - "surfaces": [], "masks": []}), + "mapping": dict(load_json(DATA / "mapping.json", + {"enabled": False, "surfaces": [], "masks": []}), + # 'edit' (los tiradores encima de las propias visuales) es + # un modo de montaje, no un ajuste: arranca siempre + # apagado para que el proyector salga limpio, sin marcos + # de colores ni circulos en las esquinas. + edit=False), "meta": { "butterchurnPresets": [], "audioDevices": [], "cameraDevices": [], "videos": list_videos(), + "visuales": load_visuales(), "projectmPresets": {}, "monitors": [], }, @@ -235,7 +268,8 @@ def start_chromium(): notify("error", "No se encontro Chromium. Las visuales web no pueden " "mostrarse. Ejecuta install.sh para instalarlo.") return - url = f"http://localhost:{PORT}/stage" + # El escenario tambien necesita la clave para hablar con el servidor + url = f"http://localhost:{PORT}/stage" + (f"?k={TOKEN}" if TOKEN else "") procs["chromium"] = subprocess.Popen([ browser, "--kiosk", f"--app={url}", @@ -326,6 +360,18 @@ def monitor_of_stage(): return 0 +def dentro_de(base, *partes): + """Ruta compuesta solo si no se sale de 'base'. Categoria, visual y + variante llegan del panel, y con '../..' se podria apuntar a cualquier + carpeta del disco.""" + base = Path(base).resolve() + try: + p = base.joinpath(*partes).resolve() + except (OSError, ValueError): + return None + return p if str(p).startswith(str(base) + os.sep) else None + + def start_projectm(): """Lanza projectM nativo con los ajustes del panel (categoria, preset fijo, duracion, aleatorio); su ventana se superpone a Chromium.""" @@ -334,8 +380,10 @@ def start_projectm(): pm = state["projectm"] base = DATA / "presets-projectm" path = base - if pm.get("category") and (base / pm["category"]).is_dir(): - path = base / pm["category"] + if pm.get("category"): + cat = dentro_de(base, pm["category"]) + if cat and cat.is_dir(): + path = cat try: duration = max(2, int(pm.get("duration") or 20)) except (TypeError, ValueError): @@ -344,15 +392,15 @@ def start_projectm(): # Visual concreto elegido: cada visual es una carpeta con variantes del # mismo estilo -> projectM rota solo dentro de ese look. if pm.get("preset") and pm.get("category"): - vis = base / pm["category"] / pm["preset"] - if vis.is_dir(): + vis = dentro_de(base, pm["category"], pm["preset"]) + if vis and vis.is_dir(): path = vis # Variante exacta elegida a dedo: projectM solo entiende carpetas, asi # que se le prepara una carpeta con esa unica variante dentro. if pm.get("variante") and pm.get("category") and pm.get("preset"): - origen = (base / pm["category"] / pm["preset"] - / (pm["variante"] + ".milk")) - if origen.is_file(): + origen = dentro_de(base, pm["category"], pm["preset"], + pm["variante"] + ".milk") + if origen and origen.is_file(): fijado = DATA / "pm-fijado" shutil.rmtree(fijado, ignore_errors=True) fijado.mkdir(parents=True, exist_ok=True) @@ -511,6 +559,10 @@ def pm_variantes(): @app.route("/upload", methods=["POST"]) def upload_media(): """Sube un video o una imagen a la galeria del mezclador (data/videos).""" + # Con clave puesta, subir tambien la pide: si no, cualquiera en la wifi + # puede llenar la tarjeta de la Raspberry. + if TOKEN and request.args.get("k") != TOKEN: + return {"ok": False, "error": "No autorizado."}, 403 f = request.files.get("file") if not f or not f.filename: return {"ok": False, "error": "No llego ningun archivo."}, 400 @@ -527,6 +579,7 @@ def upload_media(): return {"ok": False, "error": f"No se pudo guardar: {exc}"}, 500 with lock: state["meta"]["videos"] = list_videos() + state["meta"]["visuales"] = load_visuales() notify("info", f"'{name}' anadido a la galeria del mezclador.") broadcast() return {"ok": True, "name": name} @@ -536,8 +589,13 @@ def upload_media(): # Eventos WebSocket # -------------------------------------------------------------------------- @socketio.on("connect") -def on_connect(): +def on_connect(auth=None): + # Sin la clave no se conecta: ni ordenes, ni codigo en las visuales, ni + # apagar la maquina. Con TOKEN vacio entra todo el mundo, como siempre. + if TOKEN and (auth or {}).get("token") != TOKEN: + return False socketio.emit("state", state) + return None @socketio.on("hello") @@ -594,6 +652,35 @@ def on_run_code(data): broadcast() +# Claves que cada motor acepta en update_settings. Sin esta lista, cualquiera +# en la red puede meter claves inventadas o cadenas kilometricas en el estado, +# que ademas se difunde entero a todos los clientes en cada cambio. +CLAVES_AJUSTES = { + "butterchurn": {"preset", "shuffle", "interval", "intervalMode", "blendTime"}, + "mixer": {"source", "fondo", "camOn", "cameraId", "video", "mix", + "blendMode", "hue", "saturate", "contrast", "brightness", + "colorama", "posterize", "pixelate", "kaleid", "rotate", + "feedback", "invert", "beatPulse"}, + "audio": {"device", "bpm", "source"}, + "projectm": {"category", "preset", "duration", "shuffle", "monitor", + "variante"}, +} + + +def patch_saneado(engine, patch): + """Deja solo claves conocidas con valores simples y de tamano razonable.""" + permitidas = CLAVES_AJUSTES.get(engine, set()) + limpio = {} + for clave, valor in patch.items(): + if clave not in permitidas: + continue + if isinstance(valor, str) and len(valor) > 512: + continue + if isinstance(valor, (str, int, float, bool)): + limpio[clave] = valor + return limpio + + @socketio.on("update_settings") def on_update_settings(data): """Actualiza ajustes de un motor: butterchurn, mixer, audio o projectm.""" @@ -601,6 +688,7 @@ def on_update_settings(data): patch = (data or {}).get("patch", {}) if engine in ("butterchurn", "mixer", "audio", "projectm") \ and isinstance(patch, dict): + patch = patch_saneado(engine, patch) with lock: state[engine].update(patch) # Los ajustes de projectM se aplican relanzandolo (tarda ~1s) @@ -618,14 +706,43 @@ def on_update_settings(data): broadcast() +_map_timer = None + + def save_mapping(): + """Guarda el mapping con un segundo de retardo. Arrastrar un punto emite + ~16 veces por segundo y no queremos escribir la tarjeta SD 16 veces por + segundo: se reprograma y solo escribe cuando el usuario suelta.""" + global _map_timer + if _map_timer: + _map_timer.cancel() + _map_timer = threading.Timer(1.0, _write_mapping) + _map_timer.daemon = True + _map_timer.start() + + +def _write_mapping(): try: + with lock: + datos = json.dumps(state["mapping"], ensure_ascii=False, indent=2) with open(DATA / "mapping.json", "w", encoding="utf-8") as fh: - json.dump(state["mapping"], fh, ensure_ascii=False, indent=2) + fh.write(datos) except OSError as e: notify("warn", f"No se pudo guardar el mapping: {e}") +def capas_saneadas(lista, clave_geo): + """Descarta lo que no tenga forma de capa/mascara y limita cuantas se + aceptan. Sin esto, cualquiera en la red puede dejar mapping.json lleno de + basura (y persiste entre reinicios).""" + limpio = [] + for it in lista[:64]: + if isinstance(it, dict) and isinstance(it.get("id"), str) \ + and isinstance(it.get(clave_geo), list): + limpio.append(it) + return limpio + + @socketio.on("set_mapping") def on_set_mapping(data): """Projection mapping: activar/editar y guardar las superficies. @@ -639,9 +756,9 @@ def on_set_mapping(data): if "edit" in data: m["edit"] = bool(data["edit"]) if "surfaces" in data and isinstance(data["surfaces"], list): - m["surfaces"] = data["surfaces"] + m["surfaces"] = capas_saneadas(data["surfaces"], "points") if "masks" in data and isinstance(data["masks"], list): - m["masks"] = data["masks"] + m["masks"] = capas_saneadas(data["masks"], "corners") m.setdefault("masks", []) save_mapping() broadcast() @@ -729,7 +846,7 @@ def on_stage_meta(data): @socketio.on("rescan_devices") -def on_rescan_devices(): +def on_rescan_devices(data=None): """Pide al escenario que vuelva a buscar microfonos y camaras. Aprovecha para refrescar la lista de pantallas conectadas.""" with lock: @@ -739,7 +856,7 @@ def on_rescan_devices(): @socketio.on("reacquire_audio") -def on_reacquire_audio(): +def on_reacquire_audio(data=None): """Pide al escenario que vuelva a conectar la captura del microfono.""" socketio.emit("stage_reacquire") @@ -855,9 +972,10 @@ def on_stage_notify(data): @socketio.on("rescan_videos") -def on_rescan_videos(): +def on_rescan_videos(data=None): with lock: state["meta"]["videos"] = list_videos() + state["meta"]["visuales"] = load_visuales() broadcast() diff --git a/config.json b/config.json index 5071c9c..c54040c 100644 --- a/config.json +++ b/config.json @@ -17,6 +17,10 @@ "hostname": "fosfeno", "_comment": "Nombre de red de la Raspberry. El panel queda en http://.local/" }, + "auth": { + "token": "", + "_comment": "Vacio = panel abierto a toda la red local (como siempre). Si pones una clave, hara falta para conectarse y para subir archivos; el codigo QR del proyector ya la lleva dentro, asi que se entra escaneando igual. Recomendado en locales publicos: sin clave, cualquiera en la wifi puede apagar el equipo o meter codigo en las visuales." + }, "defaults": { "engine": "butterchurn", "sensitivity": 1.0, diff --git a/data/ayuda.json b/data/ayuda.json index 3bade4e..04a8c2a 100644 --- a/data/ayuda.json +++ b/data/ayuda.json @@ -13,9 +13,12 @@ "title": "Mapping (projection mapping)", "body": [ "Que es: deforma la salida de las visuales para encajarla en superficies fisicas (una pared en angulo, cajas, un objeto). En vez de un rectangulo plano, ajustas la imagen a la forma real.", - "Como se usa: marca 'Activar mapping' y 'Modo edicion'. En la ventana de las visuales (el proyector) veras cada superficie con sus cuatro esquinas: arrastralas con el raton para encajarla. Doble clic crea una superficie nueva; la tecla Supr borra la seleccionada.", - "Varias superficies: puedes crear varias (con 'Anadir superficie' o doble clic) y mapear la misma imagen en distintas zonas. Cada una se lista en el panel con su boton de borrar.", - "Se guarda solo en data/mapping.json y se mantiene al reiniciar. Quita 'Modo edicion' para ocultar los tiradores mientras pinchas.", + "Donde esta: en su propia pestana MAPPING, arriba a la derecha del titulo. La pestana MOTORES tiene lo de siempre (encendido, audio, motores y sus controles) y esta lo de encajar la imagen, para que no se mezclen el montaje y el directo. Cuando el mapping esta activado sale un punto verde en la pestana, aunque estes mirando MOTORES.", + "Como se usa: marca 'Activar mapping' y pulsa '+ Superficie'. En la previsualizacion del panel arrastra los puntos (con el raton o con el dedo) hasta encajar la forma sobre tu superficie real. Se ve en el proyector al instante.", + "Curvar: selecciona una superficie tocando dentro de ella y usa '+ malla' para subdividirla (hasta 6x6). Con la malla subdividida puedes arrastrar cualquier punto, no solo las esquinas, y adaptarla a superficies que no son planas.", + "'+ Mascara' anade un recuadro negro que tapa lo que no quieres que se vea (bordes, derrames de luz, huecos entre superficies).", + "'Modo edicion' saca ademas los tiradores sobre las propias visuales, por si prefieres ajustar alli con un raton. Quitalo para que no se vean mientras pinchas.", + "Se guarda solo en data/mapping.json y se mantiene al reiniciar.", "Ojo: no deforma projectM (que va en su propia ventana nativa). Usa Butterchurn, Hydra, Shaders o el Mezclador para tener todo mapeable." ] }, @@ -68,14 +71,16 @@ "mixer": { "title": "Motor Mezclador VJ", "body": [ - "Que es: el modo de video. Mezcla la imagen de una camara web con clips de video y efectos de color. Es lo mas parecido a un programa de VJ como Resolume.", - "Requisitos: una webcam USB que cumpla el estandar UVC. Para los clips, copia tus archivos de video en la carpeta data/videos del proyecto; van bien los .mp4 (H.264) y los .webm.", - "Anadir material: con el boton 'Subir video o imagen' del panel puedes mandar clips (mp4, webm...) e imagenes (jpg, png, gif, webp) a la galeria desde el movil o el ordenador, sin tocar carpetas. Tambien puedes generar clips automaticos de tus pelis con DETEKTION (carpeta VISUALES/DETEKTION).", - "Como se configura: elige la fuente (camara, video o mezcla de las dos), el modo de mezcla y los efectos de color con los controles deslizantes. La casilla de pulso al ritmo hace que la imagen lata con los graves.", - "Personajes sobre visuales: pon Fuente en Mezcla, Fondo en 'Visuales Butter', elige un clip _silueta-negro de la galeria (los de DETEKTION) y modo de mezcla 'Recorte'. El negro del clip se vuelve transparente y el personaje queda delante de MilkDrop latiendo con la musica. El deslizador de mezcla ajusta el umbral del recorte (subelo si queda halo oscuro en los bordes).", - "El preset de MilkDrop del fondo es el que estuviera elegido en el motor Butter: escogelo alli antes de entrar al Mezclador. projectM (el nativo) no puede ir de fondo: corre en una ventana aparte, fuera del navegador.", - "Si la pantalla se queda en negro, mira el aviso del panel: dice si falta elegir video, si la camara esta apagada o si algo fallo. La camara se reintenta apagando y encendiendo su casilla; un video que no carga se reintenta eligiendolo otra vez en la lista.", - "Si tienes mas de una camara, eligela en la lista de camaras del panel. El boton Actualizar lista de videos vuelve a leer la carpeta data/videos por si has copiado clips nuevos." + "Que es: el modo de video. Monta DOS CAPAS, una encima de otra, y las combina en directo. Es lo mas parecido a un programa de VJ como Resolume.", + "Las dos capas son siempre las mismas. Capa de abajo (el FONDO): la camara web o las visuales Butter (MilkDrop). Capa de encima (el CLIP): un video o una imagen de la galeria. El panel esta numerado en ese orden: 1 que se ve, 2 el fondo, 3 el clip, 4 como se juntan.", + "1 - Que se ve. 'Solo el fondo' ensena unicamente la capa de abajo. 'Solo el clip' ensena unicamente el video. 'Los dos' los combina, y es el unico caso en el que aparece el paso 4.", + "2 - Fondo. Aqui esta la respuesta a 'como pongo visuales de fondo': cambia el desplegable de Camara a 'Visuales Butter (MilkDrop)'. La camara se apaga sola (con su piloto) y su sitio lo ocupan las visuales. Debajo aparece el preset de MilkDrop que hace de fondo, con Anterior/Siguiente y la casilla de cambio automatico: es el mismo preset del motor Butter, asi que lo que elijas aqui queda elegido tambien alli.", + "3 - Clip. Los videos e imagenes de la galeria (carpeta data/videos). Con 'Subir video o imagen' mandas material nuevo desde el movil o el ordenador, sin tocar carpetas. Valen .mp4 (H.264), .webm, .jpg, .png, .gif y .webp. Tambien puedes generar clips de siluetas de tus pelis con DETEKTION (carpeta VISUALES/DETEKTION).", + "4 - Como se juntan. 'Recorte' vuelve transparente el negro del clip y deja la figura DELANTE del fondo; ahi el primer deslizador pasa a ser el umbral del recorte (subelo si queda halo oscuro en los bordes). Los demas modos (fundido, diferencia, multiplicar, sumar, capa) mezclan las dos capas enteras.", + "Personajes sobre visuales, la receta completa: 'Los dos' + Fondo 'Visuales Butter' + un clip _silueta-negro de la galeria + modo 'Recorte'. El personaje queda delante de MilkDrop latiendo con la musica.", + "La linea naranja de debajo del paso 4 dice en una frase lo que va a salir por el proyector con los ajustes que tengas puestos. Si no estas seguro de que estas montando, leela.", + "projectM (el nativo) no puede ir de fondo: corre en una ventana aparte, fuera del navegador. El fondo de visuales es siempre Butter.", + "Si la pantalla se queda en negro, mira el aviso del panel: dice si falta elegir video, si la camara esta apagada o si algo fallo. La camara se reintenta apagando y encendiendo su casilla; un video que no carga se reintenta eligiendolo otra vez en la lista." ] }, "audio": { @@ -103,6 +108,32 @@ "Como se configura: elige un ejemplo de la libreria y se carga en el editor, listo para ejecutarse. Puedes modificarlo o pegar codigo tuyo. El boton Ejecutar lanza lo que haya en el editor. El boton Limpiar lo vacia.", "Si el codigo tiene un error, FOSFENO lo avisa en la parte de arriba del panel y el detalle tecnico queda en la consola del navegador." ] + }, + "capas": { + "title": "Capas del mapping", + "body": [ + "Que es: cada capa es una zona de la proyeccion con SU PROPIO visual. Puedes tener MilkDrop a la derecha, otro preset distinto a la izquierda y un video en el centro, cada uno encajado en su sitio.", + "Crear: '+ Capa' anade una zona nueva (sale escalonada para que no tape a la anterior). Selecciona la capa y en Propiedades eliges que se proyecta en ella.", + "El orden importa: la lista se lee como en cualquier mesa de VJ, la de arriba es la que queda DELANTE en el proyector. Con las flechas la subes o la bajas.", + "El circulo de cada fila enciende y apaga la capa sin borrarla: util para probar en directo. La ✕ la borra.", + "Sin ninguna capa y con el mapping activado, sale el motor elegido en MOTORES a pantalla completa, como siempre.", + "'+ Mascara' no es una capa: es un recuadro negro que se pinta encima de todo para tapar derrames de luz." + ] + }, + "fuentes": { + "title": "Que se proyecta en una capa", + "body": [ + "Cada capa elige su fuente por separado. Estas son:", + "El motor de MOTORES: lo que este puesto en la otra pestana (Butterchurn, Hydra, Shaders o el Mezclador). Si pones esto en varias capas, todas ensenan lo mismo: sirve para repetir el mismo visual en varias paredes.", + "Visuales MilkDrop propias: una instancia de Butterchurn SOLO para esta capa, con su preset. Es lo que permite tener dos looks de MilkDrop distintos a la vez, uno en cada zona. Puedes fijar un preset o dejar que vaya cambiando solo cada X segundos.", + "Shader GLSL: uno de los shaders de la libreria, reaccionando al audio igual que en el motor de shaders.", + "Clip o imagen de la galeria: un archivo de data/videos. Los clips van en bucle y sin sonido. Si dos capas usan el mismo clip, se reproduce una sola vez y se comparte (no cuesta el doble).", + "Camara: la webcam. Tambien se comparte entre capas.", + "Negro: no pinta nada. Sirve para tapar una zona sin usar mascara.", + "Opacidad y mezcla: la opacidad deja ver lo que hay debajo; 'Sumar' apila luz en vez de tapar (las zonas oscuras de la capa dejan pasar la de abajo), que es como se hacen los solapes bonitos.", + "projectM no puede ir en una capa: es un programa nativo que corre en su propia ventana, fuera del navegador. Para el mismo tipo de visual, usa 'Visuales MilkDrop propias', que son los mismos presets.", + "Ojo con la Raspberry: cada capa de MilkDrop o de shader es un motor de verdad funcionando. Dos o tres van bien; con muchas mas la cosa se arrastra. Los clips y la camara son mucho mas baratos." + ] } } -} \ No newline at end of file +} diff --git a/data/videos/README.txt b/data/videos/README.txt index 494ed56..63a7c29 100644 --- a/data/videos/README.txt +++ b/data/videos/README.txt @@ -15,3 +15,17 @@ Ejemplo desde linea de comandos para reescalar un video pesado: ffmpeg -i original.mp4 -vf scale=-2:720 -c:v libx264 -an clip.mp4 Los videos NO se suben al repositorio (estan en .gitignore). + + +Catalogo +-------- + +Cada vez que metas clips nuevos, vuelve a pasar el catalogador: es lo que hace +que el panel los liste por pelicula y con nombre legible en vez de por nombre +de archivo, y lo que avisa de los que casi no tienen figura. + + python3 scripts/catalogar-visuales.py # cataloga + python3 scripts/catalogar-visuales.py --limpiar # + aparta los que no son + # siluetas (ver docs) + +Explicado a fondo en docs/visuales.md. diff --git a/docs/README.md b/docs/README.md index 4b524f3..5127ff8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -20,16 +20,32 @@ para consultarse a saltos después. Cómo correr FOSFENO en un portátil Debian, Ubuntu o Mint, sin Raspberry Pi. - [Uso del panel](uso.md) - Cómo se maneja desde el móvil, qué hace cada motor de visuales y cómo se - configura cada opción. + Cómo se maneja desde el móvil, las dos pestañas (MOTORES y MAPPING), qué + hace cada motor de visuales y cómo se configura cada opción. + +- [El Mezclador VJ](mezclador.md) + Las mezclas a fondo: las dos capas, cómo poner visuales de MilkDrop de + fondo, los modos de mezcla y los efectos de color. + +- [La galería de visuales](visuales.md) + El catálogo de clips: cómo se generan las fichas, cómo distingue una silueta + de un trozo de película y por qué unos clips salen marcados como flojos. - [Projection mapping](mapping.md) - Cómo deformar las visuales para encajarlas en superficies físicas: malla, - máscaras y edición desde el panel arrastrando con el ratón o el dedo. + Cómo deformar las visuales para encajarlas en superficies físicas, y cómo + poner **un visual distinto en cada zona**: capas, fuentes, malla y máscaras. - [Solución de problemas](problemas.md) Qué hacer cuando algo no arranca, no se ve o no suena. Incluye cómo leer los mensajes de error que aparecen en el propio panel. +- [Seguridad](seguridad.md) + Qué asume el diseño, qué pasa si pinchas en una wifi pública y cómo cerrar + el panel con una clave compartida (el QR ya la lleva dentro). + +- [Arquitectura](arquitectura.md) + Para quien vaya a tocar el código: las tres piezas, el estado, los eventos + de WebSocket, cómo se añade un motor y los criterios que sigue el proyecto. + Si solo quieres empezar rápido, el archivo `README.md` de la raíz del proyecto tiene la versión resumida. diff --git a/docs/arquitectura.md b/docs/arquitectura.md new file mode 100644 index 0000000..fc01257 --- /dev/null +++ b/docs/arquitectura.md @@ -0,0 +1,237 @@ +# Arquitectura + +Esta página es para quien vaya a **tocar el código** (o para uno mismo dentro de +seis meses). Explica cómo está montado FOSFENO, dónde vive cada cosa y cómo se +añade algo nuevo sin romper el resto. + +## Las tres piezas + +``` + ┌───────────────┐ WebSocket ┌────────────────┐ WebSocket ┌──────────────┐ + │ PANEL │ ────────────▶ │ SERVIDOR │ ────────────▶ │ ESCENARIO │ + │ web/panel/ │ ◀──────────── │ backend/ │ ◀──────────── │ web/stage/ │ + │ (el móvil) │ estado │ server.py │ estado │ (Chromium) │ + └───────────────┘ └───────┬────────┘ └──────┬───────┘ + │ subprocess │ HDMI + ▼ ▼ + projectM (nativo) [ proyector ] +``` + +- **Servidor** (`backend/server.py`, Flask + Flask-SocketIO). Guarda **el + estado**, sirve los archivos web, lanza y vigila projectM, enruta el audio con + `pactl` y persiste lo que hay que persistir. +- **Panel** (`web/panel/`). La interfaz del móvil. **No calcula nada**: refleja + el estado y manda órdenes. +- **Escenario** (`web/stage/`). La página que sale por el proyector. Es la que + **de verdad pinta**: Butterchurn, Hydra, Shaders y el Mezclador viven aquí, + igual que el detector de BPM y la captura de audio. + +Regla de oro: **el estado vive en el servidor**, y todo el mundo lo recibe +entero en cada cambio. Ni el panel ni el escenario guardan verdades propias; si +algo hay que recordar, va al estado. + +## El estado + +Es un único diccionario en `server.py` (`state`) que se difunde con +`socketio.emit("state", state)` en cada cambio. Sus ramas: + +| Rama | Qué guarda | +|------|------------| +| `engine` | motor activo: `projectm`, `butterchurn`, `hydra`, `shaders`, `mixer` | +| `power` | visuales encendidas o en negro | +| `sensitivity` | ganancia aplicada al audio antes del análisis | +| `audio` | fuente (`mic` / `monitor`), tarjeta elegida y BPM detectado | +| `butterchurn` | preset, cambio automático (segundos o compases) y transición | +| `hydra` / `shaders` | el código que se está ejecutando y su etiqueta | +| `mixer` | las dos capas (`source`, `fondo`, `camOn`, `video`), modo de mezcla y efectos | +| `projectm` | categoría, visual, variante, favoritos, monitor, congelado | +| `mapping` | `enabled`, `edit`, `masks[]` y `surfaces[]`, donde cada superficie es una **capa** (geometría + `fuente` + opacidad + mezcla) | +| `meta` | listas detectadas: presets, cámaras, micrófonos, vídeos, monitores | +| `status` / `notifications` / `network` | qué se ve, avisos e IP para el QR | + +Lo que sobrevive a un reinicio se guarda en `data/`: +`mapping.json` (mapping) y `pm-favoritos.json` (favoritos de projectM). El resto +del estado es de la sesión. + +## Eventos de WebSocket + +**Del panel al servidor** + +| Evento | Qué hace | +|--------|----------| +| `set_power`, `set_engine`, `set_sensitivity` | los tres mandos básicos | +| `update_settings {engine, patch}` | parchea una rama del estado (`butterchurn`, `mixer`, `audio`, `projectm`) | +| `run_code {engine, code, label}` | ejecuta código Hydra o GLSL | +| `engine_command {action}` | `next`, `prev`, `lock`, `fix_current` | +| `set_mapping {…}` | activar, editar, superficies y máscaras (persiste) | +| `pm_favorito {action…}` | añadir, borrar o lanzar un favorito de projectM | +| `rescan_devices`, `rescan_videos`, `reacquire_audio` | volver a mirar el hardware y la galería | +| `system {action}` | apagar o reiniciar la máquina | + +**Del escenario al servidor** + +| Evento | Qué hace | +|--------|----------| +| `stage_meta` | publica lo que ha detectado el navegador (micrófonos, cámaras, presets) | +| `stage_status {label, bpm}` | qué se está viendo y a cuántos BPM | +| `stage_notify {level, message}` | manda un aviso a la banda del panel | +| `audio_route {target}` | pide enrutar la captura al monitor del sistema o al micro | +| `set_mapping` | al arrastrar los tiradores sobre las propias visuales | + +**Del servidor a los clientes**: `state` (el estado entero), `status` (solo +etiqueta y BPM, más ligero), `notify`, `stage_command`, `stage_rescan`, +`stage_reacquire`. + +**Nada de esto pide credenciales por defecto.** Cualquiera que alcance el +puerto puede emitir cualquier evento, y eso incluye apagar la máquina y +ejecutar código en el escenario. Si se configura `auth.token`, el handler de +`connect` rechaza a quien no lo traiga en `auth`, y con eso queda cerrado todo +lo demás de golpe. Ver [Seguridad](seguridad.md). + +Lo que entra por el socket **no es de fiar**, así que se filtra antes de tocar +el estado: `update_settings` pasa por una lista blanca de claves por motor +(`CLAVES_AJUSTES`), y `set_mapping` sanea capas y máscaras y limita cuántas +acepta. `mapping.json` se escribe **con un segundo de retardo**: arrastrar un +punto emite ~16 veces por segundo y no queremos escribir la microSD a ese +ritmo. + +## Los motores + +Cada motor es independiente: si a uno le falta su librería o revienta al +arrancar, **los demás siguen funcionando**. `boot()` en `stage.js` los inicia +uno a uno dentro de su propio `try`. + +| Motor | Dónde corre | Lienzo | +|-------|-------------|--------| +| **projectM** | proceso nativo, ventana propia | ninguno (la página se queda en negro debajo) | +| **Butterchurn** | navegador, WebGL | `#butterchurn` | +| **Hydra** | navegador, WebGL | `#hydra` | +| **Shaders** | navegador, WebGL a pelo | `#shaders` | +| **Mezclador** | navegador, **sobre Hydra** | `#hydra` | + +`applyState()` decide qué lienzo se ve y apaga los demás. El mezclador no es un +motor aparte: **genera código Hydra** (`buildMixerCode`) a partir de los +ajustes; por eso comparte lienzo con Hydra y nunca coinciden. + +Butterchurn tiene una particularidad: puede estar pintando **sin ser el motor +activo**, cuando hace de capa de fondo del mezclador. Esa condición está en un +único sitio, `butterLive()`, y de ella dependen el preset, el cambio automático +y los botones de siguiente/anterior. + +### Añadir un motor nuevo + +1. `ENGINES` en `server.py` y una rama en `state` con sus ajustes. +2. Un lienzo en `web/stage/index.html` y su rama en `applyState()`. +3. Un botón `.engine` en `web/panel/index.html` y su tarjeta de controles. +4. Mostrar u ocultar esa tarjeta en `render()` de `panel.js`. +5. Una entrada en `data/ayuda.json` para el botón de información. + +## Audio y BPM + +Toda la cadena de audio está **en el navegador** (`stage.js`): +`getUserMedia` → `GainNode` (la sensibilidad) → `AnalyserNode`. De ahí beben el +detector de ritmo, Butterchurn, Hydra y los shaders. + +El detector (`BeatDetector`) mira la energía de graves, marca un pulso cuando +supera su media reciente, agrupa los intervalos entre pulsos por parecido y se +queda con el grupo mayoritario. El resultado se dobla o se divide hasta caer en +70–180 BPM. Se publica en `fosBeat` y llega a los motores como `u_bpm`/`u_beat` +(shaders) o `bpm` (Hydra). + +La fuente **monitor** («audio del navegador») merece una nota: Chromium oculta +los monitores de PulseAudio/PipeWire al enumerar dispositivos. El plan B es +capturar la entrada por defecto y pedir al servidor que **mueva ese stream** al +monitor de la salida con `pactl`. Solo funciona con servidor y escenario en la +misma máquina — que es el caso del kiosko y del modo portátil. + +## Mapping y capas + +Dos módulos, con una división limpia: **`layers.js` produce imágenes** y +**`mapper.js` las coloca**. + +``` + layers.js mapper.js + ───────── ───────── + capa 1 → Butterchurn → canvas ┐ + capa 2 → clip .mp4 → video ├→ resolver(surface) → textura → malla → #output + capa 3 → ShaderEngine → canvas ┘ (WebGL) + capa 4 → "motor" → el lienzo del motor activo +``` + +**`layers.js`** mantiene una instancia por capa y la pone al día con el estado +(`sync`): crea las nuevas, cambia el preset de las que lo hayan cambiado y +destruye las borradas. Decide también qué se comparte y qué no: + +- Con **estado propio** (Butterchurn, shaders): **una instancia por capa**, para + que dos zonas puedan llevar presets distintos. +- Sin estado (clips, cámara): **compartidas por contenido** con cuenta de usos, + así el mismo clip en dos capas se reproduce una sola vez. + +Cada capa se renderiza en un lienzo de **640×360**: el mapper la estira al +deformarla, y esa resolución es lo que hace viable tener varias a la vez en una +Raspberry. + +**`mapper.js`** es el compositor WebGL. Para cada superficie pide su textura al +`resolver` (que es `FosLayers.fuenteDe`), la sube **una sola vez por fotograma +y por clave de fuente**, y la dibuja sobre la malla con una homografía por +celda. Encima aplica opacidad (`uAlpha`) y modo de mezcla (`blendFunc`: normal +o aditivo), y al final pinta las máscaras en negro. + +Las superficies se guardan en coordenadas **normalizadas 0..1**, así que un +mapping hecho a 1080p sigue valiendo en otra resolución. El formato completo +está documentado en la cabecera de `mapper.js`. Guía de uso: +[Projection mapping](mapping.md). + +Una capa **no puede ser projectM**: es un proceso nativo con su propia ventana, +fuera del alcance de un contexto WebGL del navegador. Su equivalente es la +fuente `butter`, que son los mismos presets de MilkDrop. + +## Estructura de archivos + +``` +FOSFENO/ +├── backend/server.py Estado, WebSocket, procesos, audio, subidas +├── web/panel/ Panel de control (móvil): index.html, panel.js, panel.css +├── web/stage/ Escenario: stage.js (motores + audio), layers.js, mapper.js +├── web/lib/ Librerías servidas tal cual (butterchurn, hydra, codemirror…) +├── data/ Contenido y ajustes que persisten (ver abajo) +├── scripts/ Arranque del kiosko, build de projectM, lib.sh +├── docs/ Esta documentación +├── install.sh Instalador multi-distro (Debian, Fedora, Arch, openSUSE) +└── fosfeno Lanzador del modo portátil +``` + +`data/` mezcla dos cosas: **contenido editable** que sí va al repositorio +(`hydra-sketches.json`, `hydra-snippets.json`, `shaders.json`, `ayuda.json`, +`presets-projectm/`) y **estado de cada instalación** que no va +(`mapping.json`, `pm-favoritos.json`, `videos/`) — ver `.gitignore`. + +## Criterios que sigue el código + +Vale la pena respetarlos al tocar algo: + +- **Nunca callar un fallo.** Todo error acaba en la banda de avisos del panel + con una frase que dice qué hacer, no un volcado técnico. Para eso está + `report()` en el escenario y `notify()` en el servidor. +- **Que un fallo no se lleve el resto por delante.** Sin cámara, sin micro o sin + projectM, lo demás sigue proyectando. +- **El estado manda.** Si algo hay que recordar entre clientes, va al estado; no + se guardan verdades locales en el panel. +- **Textos en castellano y sin jerga.** Tanto la interfaz como los avisos están + escritos para alguien que no ha leído el código. +- **Nada de recursos huérfanos.** Cada instancia de motor lleva su `destruir()` + y suelta lo suyo: `requestAnimationFrame`, temporizadores, `MediaStream` (el + piloto de la cámara) y **el contexto WebGL** (`soltarGL`). El navegador solo + aguanta ~16 contextos y al pasarse mata el más viejo, que es el del + compositor de mapping: dejarlos colgando acaba en proyector negro. +- **Cambiar un ajuste no recrea el motor.** En `layers.js`, la firma de una + fuente decide si la instancia se reaprovecha; los ajustes (preset, cambio + automático) se aplican en caliente con `aplicar()`. + +### Trampa conocida: `hydra.hush()` vacía las fuentes + +Al salir del Mezclador hacia otro motor se llama a `hydra.hush()`, y eso +**borra `s0` y `s1`**. Por eso el escenario recuerda en `mixerS1` qué elemento +tenía enganchado y lo vuelve a enlazar (`reengancharMixer`) al volver: sin +eso, ir a Butter y volver dejaba el mezclador sin la capa de encima. Si algún +día se añade otra fuente de Hydra, hay que recordarla igual. diff --git a/docs/assets/README.md b/docs/assets/README.md index bfca0c4..d210788 100644 --- a/docs/assets/README.md +++ b/docs/assets/README.md @@ -6,7 +6,14 @@ Material gráfico que usa la documentación. - `raspberry-pi-5.jpg` — la placa Raspberry Pi 5. Se usa en `requisitos.md`. - `milkdrop.jpg` — ejemplo de visuales estilo MilkDrop. Se usa en `uso.md`. - `hydra.png` — el entorno de Hydra. Se usa en `uso.md`. -- `panel.png` — captura del panel de control. Se usa en `uso.md` y el README. +- `panel.png` — captura del panel de control (pestaña MOTORES). Se usa en + `uso.md` y el README. +- `mezclador.png` — la tarjeta del Mezclador VJ con visuales de fondo. Se usa + en `mezclador.md`. +- `mapping.png` — la pestaña MAPPING con la previsualización. Se usa en + `mapping.md`. +- `capas.png` — tres capas con visuales distintos (dos MilkDrop + un clip + + una franja de shader). Se usa en `mapping.md` y el README. - `demo.mp4` — vídeo corto de FOSFENO en marcha. Se usa en el README (recomprimido para que no pese; el original eran 80 MB). diff --git a/docs/assets/capas.png b/docs/assets/capas.png new file mode 100644 index 0000000000000000000000000000000000000000..0ada21e458c0ff347995d506c346b5c992a6d6c6 GIT binary patch literal 160320 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 N>dHDVsueB6{s*d1Hwpj% literal 0 HcmV?d00001 diff --git a/docs/assets/mapping.png b/docs/assets/mapping.png new file mode 100644 index 0000000000000000000000000000000000000000..107686067f0941840e8cd111ea30f325df8b281d GIT binary patch literal 71602 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�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 literal 0 HcmV?d00001 diff --git a/docs/assets/mezclador.png b/docs/assets/mezclador.png new file mode 100644 index 0000000000000000000000000000000000000000..a4eb48824defe5e39a00d9e20fa7082140a46d19 GIT binary patch literal 87703 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

eYGwxKKQ$ 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 E9~)xig#Z8m literal 0 HcmV?d00001 diff --git a/docs/assets/panel.png b/docs/assets/panel.png index 9d5d1e5c3c55165bd47f2427de18afdb3e429dd6..16ea556fe261ce47f1215ff134acc05f08537488 100644 GIT binary patch literal 138675 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 literal 147156 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 BH5vc_ diff --git a/docs/conexion.md b/docs/conexion.md index 263c77c..245aef4 100644 --- a/docs/conexion.md +++ b/docs/conexion.md @@ -36,7 +36,7 @@ a la Raspberry el nombre de red `fosfeno`, y `fosfeno.local` es la forma estándar de localizar un equipo por su nombre en la red local. **Escribir la dirección IP.** Es la que aparece en la pantalla de conexión del -proyector, algo como `http://192.168.1.71/`. Funciona siempre, pero la IP puede +proyector, algo como `http://192.168.1.XX/`. Funciona siempre, pero la IP puede cambiar de un día para otro, así que es la opción de reserva. ## El móvil tiene que estar en la misma red diff --git a/docs/mapping.md b/docs/mapping.md index 682e3eb..5376940 100644 --- a/docs/mapping.md +++ b/docs/mapping.md @@ -1,50 +1,164 @@ # Projection mapping +> **Pestañas de capa.** Cada capa tiene su propia pestaña arriba, junto a +> MOTORES y MAPPING, y el botón **+ CAPA** crea una y te deja ya dentro de +> ella. Esa vista enseña solo la previsualización y los ajustes de *esa* capa: +> es la forma de trabajar cuando hay varias, sin ir y volver a la lista. +> +> **Visuales de projectM en una capa.** La fuente "Visuales MilkDrop" tiene +> ahora un selector de **biblioteca**: los ~100 presets de Butterchurn, o los +> **9795 `.milk` de projectM** (categoría / visual / variante, o "uno al +> azar"). Los `.milk` se traducen a Butterchurn en el propio navegador al +> elegirlos. Ver `pendiente.md` punto 2 para el detalle y sus límites. + + FOSFENO puede **deformar las visuales** para encajarlas en superficies físicas (una pared en ángulo, cajas, un objeto, varias zonas de una fachada) en vez de proyectar un simple rectángulo. Todo se hace **desde el panel**, arrastrando con el ratón o el dedo, y se **guarda solo**. +Y no es una sola imagen troceada: **cada zona es una capa con su propio +visual**. MilkDrop a la derecha, otro preset distinto a la izquierda y un vídeo +en el centro, cada uno en su sitio y a la vez. Eso está en +[Capas: un visual distinto en cada zona](#capas-un-visual-distinto-en-cada-zona). + Se aplica a los motores que corren en el navegador: **Butterchurn, Hydra, Shaders y Mezclador**. (projectM nativo aún no; ver [Limitaciones](#limitaciones).) +## Dónde está: la pestaña MAPPING + +El mapping tiene **su propia pestaña**, a la derecha del título **FOSFENO**, al +lado de **MOTORES**. Están separados a propósito: MOTORES es el directo +(encendido, audio, motores) y MAPPING es el montaje. Así ni se estorban ni se +confunden. + +En la pestaña MAPPING la tarjeta ocupa el ancho entero, para que la +previsualización sea grande y se puedan arrastrar los puntos con comodidad — +también con el dedo, desde el móvil. + +Mientras el mapping esté activado, la pestaña lleva un **punto verde**: desde +MOTORES se ve de un vistazo que la salida se está deformando. + +

+ La pestaña MAPPING del panel +
+ ## En 4 pasos -1. Elige un motor que **no** sea projectM (Butterchurn, Hydra, Shaders o Mezcla). -2. En el panel, sección **Mapping**, marca **Activar mapping**. -3. Pulsa **+ Superficie**. Aparece un recuadro con las visuales en la - previsualización del panel (y en el proyector). -4. En la **previsualización** del panel, **arrastra los puntos** para encajar la - forma sobre tu superficie real. Se ve en el proyector al instante. +1. Entra en la pestaña **MAPPING** y marca **Activar mapping**. +2. Pulsa **+ Capa**. Aparece un recuadro en la previsualización del panel (y en + el proyector). +3. **Arrastra los puntos** para encajar la forma sobre tu superficie real. Se ve + en el proyector al instante. +4. Con la capa seleccionada, en **Propiedades** eliges **qué se proyecta ahí**. -## La sección Mapping del panel +## La pestaña MAPPING por dentro + +Tiene tres bloques, de arriba abajo: la **salida**, las **capas** y las +**propiedades** de la capa que tengas seleccionada. + +**Salida** - **Activar mapping** — enciende/apaga la deformación. -- **Modo edición** — muestra u oculta los tiradores en la **ventana de las - visuales** (por si prefieres ajustar ahí con un ratón). Para el uso normal no - hace falta: con la previsualización del panel basta. -- **+ Superficie** — añade una superficie nueva (un cuadrilátero). +- **Editar en el escenario** — saca los tiradores y la malla de colores + también sobre las propias visuales (por si prefieres ajustar ahí con un + ratón). Para el uso normal **no hace falta**: con la previsualización del + panel basta, y así el proyector sale limpio. Es un modo de montaje, no un + ajuste: **arranca siempre apagado**, aunque lo dejaras puesto. +- **Previsualización** — el recuadro donde arrastras los puntos (ratón o dedo). + Cada capa lleva escrito su nombre y qué visual tiene dentro. + +**Capas** + +- **+ Capa** — añade una zona nueva. Sale escalonada, para que no tape a la + anterior, y queda seleccionada. - **+ Máscara** — añade una **máscara**: un recuadro **negro** que tapa una zona (útil para recortar el derrame de luz fuera de la superficie física). -- **Reset** — borra todas las superficies y máscaras. -- **Previsualización** — el recuadro donde arrastras los puntos (ratón o dedo). - Muestra una rejilla dentro de cada superficie para que veas cómo se deforma. -- **Lista** — cada superficie y máscara con su tamaño de malla y un botón **✕** - para borrarla. + +> **Capa ≠ máscara.** Una **capa** proyecta algo (eliges qué en Propiedades); +> una **máscara** solo tapa y no lleva visual. Es la confusión más fácil: si +> creaste una máscara buscando dónde poner el visual, selecciónala y pulsa +> **Convertirla en capa** — se sustituye por una capa en el mismo sitio y con +> la misma forma. +- **Reset** — borra todas las capas y máscaras. +- La **lista** se lee como en cualquier mesa de VJ: **la de arriba es la que + queda delante** en el proyector. Cada fila tiene: + + | Botón | Qué hace | + |-------|----------| + | ◉ / ○ | Enciende o apaga la capa sin borrarla | + | ▲ ▼ | La sube o la baja en el orden de pintado | + | ✕ | La borra | + +**Propiedades** — nombre, qué se proyecta, opacidad, mezcla y malla. Se explican +abajo. + +## Capas: un visual distinto en cada zona + +Esto es lo que separa el mapping de FOSFENO de un simple recorte: **cada capa +elige su propia fuente**, así que la proyección puede llevar cosas distintas a +la vez. + +| Fuente | Qué es | Coste | +|--------|--------|-------| +| **El motor de MOTORES** | Lo que esté puesto en la otra pestaña. En varias capas a la vez, todas enseñan lo mismo | ninguno | +| **Visuales MilkDrop propias** | Un Butterchurn **solo para esa capa**, con su preset. Es lo que permite dos looks de MilkDrop distintos a la vez | alto | +| **Shader GLSL** | Uno de los shaders de la librería, reaccionando al audio | medio | +| **Clip o imagen** | Un archivo de `data/videos`. En bucle y sin sonido | bajo | +| **Cámara** | La webcam | bajo | +| **Negro** | Nada: tapa la zona sin usar máscara | ninguno | + +Las capas de MilkDrop y de shader **son motores de verdad funcionando**: cada +una se renderiza aparte y el mapper la estira al deformarla. Los clips y la +cámara, en cambio, **se comparten**: si dos capas usan el mismo clip, se +reproduce una sola vez. + +### La receta del ejemplo + +Tres zonas, tres visuales distintos: + +1. **+ Capa** → nómbrala «Pared izquierda» → fuente **Visuales MilkDrop + propias** → elige un preset. +2. **+ Capa** → «Centro» → fuente **Clip o imagen** → elige tu vídeo. +3. **+ Capa** → «Pared derecha» → fuente **Visuales MilkDrop propias** → *otro* + preset, o marca **Cambiar de preset solo** para que vaya rotando. +4. Arrastra cada una a su sitio en la previsualización. + +
+ Tres capas con visuales distintos +
+ +### Transiciones + +Las capas de **Visuales MilkDrop** llevan su propio deslizador de +**transición (0–8 s)**: es lo que tarda un preset en disolverse en el +siguiente. A 0 el cambio es un corte seco; subiéndolo, uno se funde con el +otro sin que se note. Combinado con **Cambiar de preset solo**, la capa va +alternando visuales sola y en suave. + +El fundido lo hace el propio Butterchurn mientras carga, así que no cuesta +rendimiento aparte. + +### Opacidad y mezcla + +Cuando dos capas se solapan, mandan estos dos ajustes: + +- **Opacidad** — cuánto deja ver lo que hay debajo. +- **Mezcla** — **Normal** tapa lo de debajo; **Sumar** apila luz, así que las + zonas oscuras de la capa dejan pasar la de abajo. Sumar es lo que da los + solapes bonitos entre visuales; normal es lo que quieres cuando cada capa va + en su pared y no se tocan. ## Superficies con malla (curvar) -Una superficie nueva es un cuadrilátero de 4 esquinas (corrección de -perspectiva / *keystone*). Para superficies **curvas**: +Una capa nueva es un cuadrilátero de 4 esquinas (corrección de perspectiva / +*keystone*). Para superficies **curvas**: -1. Selecciona la superficie (toca dentro de ella en la previsualización). -2. Aparece **− malla / + malla**: cada **+ malla** la subdivide (2×2, 3×3… - hasta 6×6). +1. Selecciona la capa (toca dentro de ella en la previsualización). +2. En Propiedades, **Malla**: cada **+** la subdivide (2×2, 3×3… hasta 6×6). 3. Ahora puedes arrastrar **cualquier punto** de la rejilla (no solo las esquinas) para curvarla y adaptarla a superficies no planas. -Puedes crear **varias superficies** y mapear la misma imagen en distintas zonas. - ## Máscaras Una máscara es un cuadrilátero **negro** que se pinta encima de todo. Sirve para @@ -60,18 +174,39 @@ cero, usa **Reset** o borra ese archivo. ## Editar en la ventana de las visuales (opcional) -Con **Modo edición** activo, los tiradores también aparecen sobre las propias -visuales. Ahí, además, funcionan atajos de teclado: +Con **Editar en el escenario** activo, los tiradores también aparecen sobre las +propias visuales, con el nombre y la fuente de cada capa escritos encima. Ahí, +además, funcionan atajos de teclado: -- **doble clic** en un hueco: crea una superficie nueva. -- **+ / −**: subdivide/reduce la malla de la superficie seleccionada. -- **Supr**: borra la superficie o máscara seleccionada. +- **doble clic** en un hueco: crea una capa nueva. +- **+ / −**: subdivide/reduce la malla de la capa seleccionada. +- **Supr**: borra la capa o máscara seleccionada. + +## Cuánto aguanta + +Cada capa de **MilkDrop** o de **shader** es un motor de verdad renderizando +aparte, así que tienen un coste real: + +| Equipo | Capas de MilkDrop / shader | Capas de clip o cámara | +|--------|---------------------------|------------------------| +| Portátil con GPU | 3–4 sin despeinarse | muchas | +| Raspberry Pi 5 | 2, con margen justo | varias | +| Raspberry Pi 4 | 1 | unas pocas | + +Cada capa se renderiza a **640×360** y el mapper la estira al deformarla: en una +zona de la proyección no se nota, y es lo que hace viable tener varias a la vez. +Si va lenta, lo primero que hay que quitar son las capas de MilkDrop de más; +clips y cámara cuestan mucho menos, y además **se comparten** entre capas. ## Limitaciones -- **projectM nativo no se mapea todavía.** projectM corre en su propia ventana - fuera del navegador, así que el mapper (que trabaja sobre las visuales web) no - lo alcanza. Para mapear el mismo tipo de gráficos, usa **Butterchurn** - (MilkDrop en el navegador). El soporte de projectM está en estudio. -- El mapping es una capa de deformación sobre la imagen final; no cambia el - contenido de cada motor. +- **projectM nativo no puede ir en una capa.** projectM corre en su propia + ventana fuera del navegador, así que el mapper no lo alcanza. Para el mismo + tipo de visual, usa la fuente **Visuales MilkDrop propias**: son los mismos + presets de MilkDrop, dentro del navegador, y además puedes tener varios + distintos a la vez. Meter la ventana nativa como capa (capturándola) está en + estudio. +- El mapping deforma y compone; no cambia el contenido de cada motor. + +Cómo está montado por dentro (el compositor WebGL, las capas, el formato de las +superficies): [Arquitectura](arquitectura.md#mapping-y-capas). diff --git a/docs/mezclador.md b/docs/mezclador.md new file mode 100644 index 0000000..50eca27 --- /dev/null +++ b/docs/mezclador.md @@ -0,0 +1,182 @@ +# 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 ve** → **Los dos**. +2. **2 · Fondo** → **Visuales 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 juntan** → **Recorte (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](https://hydra.ojack.xyz/) +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](mapping.md). + +## 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](problemas.md). diff --git a/docs/pendiente.md b/docs/pendiente.md new file mode 100644 index 0000000..d423c1e --- /dev/null +++ b/docs/pendiente.md @@ -0,0 +1,162 @@ +# Pendiente + +Lo que sabemos que falta o falla, con el diagnóstico ya hecho para no volver a +investigarlo desde cero. Ordenado por lo que más duele. + +--- + +## 1. Las capas no son de verdad independientes + +**Lo que pasa.** Se pueden poner dos capas con visuales MilkDrop, pero acaban +siendo **la misma imagen**. Y no hay forma de decir "en esta zona el Mezclador, +en esta otra Butter", configurando cada una por su cuenta. + +Son **tres cosas distintas** mezcladas en el mismo síntoma: + +### 1a. Dos capas Butter sin preset elegido salen idénticas — ✅ HECHO + +`web/stage/layers.js`, en `crearButter()`, hacía: + +```js +let i = Math.max(0, nombres.indexOf(f.preset)); +``` + +Con `preset: ""` (lo que quedaba si la lista de presets aún no había llegado +al panel al crear la capa), `indexOf("")` devuelve `-1` y el `Math.max(0, -1)` +lo dejaba en **0**: todas las capas así arrancaban en el mismo preset. + +**Cómo quedó:** sin preset elegido, cada instancia coge uno **al azar** y lo +devuelve en `presetElegido`. `sync()` avisa por `deps.onPreset(id, preset)`, +que `stage.js` (`anotarPresetDeCapa`) escribe en el estado con `set_mapping`, +así que el panel enseña cuál le tocó en vez de dejar el desplegable en blanco. +No recrea la instancia: la firma de una capa butter sigue siendo el tipo a +secas. + +### 1b. Las capas puestas en "El motor de MOTORES" comparten imagen — ✅ HECHO + +Esa fuente es, literalmente, el lienzo del motor activo. Dos capas así van a +enseñar lo mismo siempre — no es un fallo, es lo que significa. El problema era +que **era la fuente por defecto** de toda capa nueva, así que el primer +resultado que veía cualquiera era "dos capas iguales". + +**Cómo quedó:** una capa nueva ya no nace en "motor". `panel.js` tiene +`fuenteDeCapaNueva()`, que la estrena en MilkDrop con preset al azar +(contenido distinto desde el primer clic) y solo cae en "motor" si Butterchurn +todavía no ha dado su lista de presets. Lo usan tanto `+ Capa` como +`Máscara → Capa`. + +### 1c. Falta el Mezclador (y Hydra) como fuente de capa — *(el trabajo de verdad)* + +Hoy las fuentes son: motor, butter, shader, clip, cámara, negro. **No está el +Mezclador**, así que "una zona con el Mezclador y otra con Butter" solo se +puede hacer vía "motor", y entonces manda el selector global. + +Por qué no está: el Mezclador **es** Hydra (genera código Hydra y lo ejecuta), y +Hydra está montado como instancia única global (`makeGlobal: true`, con `s0`, +`s1`, `o0` en el espacio global). Para tener dos mezcladores independientes hay +que instanciar Hydra varias veces con `makeGlobal: false` y usar la API por +instancia (`h.synth.src(...)`), lo que obliga a reescribir `buildMixerCode` para +que no dependa de los nombres globales. + +**Coste realista:** medio día, más el gasto de GPU de un Hydra por capa. Antes +de meterse, decidir si compensa frente a la alternativa barata: dejar el +Mezclador solo como motor a pantalla completa y que las capas tiren de +MilkDrop/shader/clip, que es lo que ya funciona. + +### 1d. Los dos paneles no están relacionados + +MOTORES y MAPPING van cada uno por su lado: el preset que eliges en el motor +Butter y el de una capa MilkDrop son listas distintas, no comparten favoritos, +y lo que tocas en uno no se refleja en el otro. + +**Hacia dónde:** una sola biblioteca de presets y una sola lista de favoritos, +usada por el motor Butter, por las capas del mapping y por projectM. Esto se +solapa con el punto 2: es el mismo trabajo de unificación. + +--- + +## 2. projectM en el mapper — ✅ HECHO (camino A) + +**Lo que pasaba.** Al elegir projectM no había forma de mapearlo ni de usarlo +en una capa, y ahí está **la biblioteca de verdad**: 9795 presets `.milk` en 11 +categorías y 189 visuales. Butterchurn solo trae ~100 propios. + +**Por qué no se podía.** projectM es un proceso nativo que pinta en su propia +ventana X11/Wayland. El compositor de mapping es WebGL dentro del navegador y +solo puede usar como textura lo que vive en la página. + +**Cómo quedó.** Se descartó capturar la ventana (frágil en Wayland) y compilar +projectM a WebAssembly (un proyecto en sí). Se hizo el **camino A**: traducir +los `.milk` a presets de Butterchurn **en el propio navegador**, al elegirlos. + +- `web/lib/milkdrop-preset-converter.min.js` (npm `milkdrop-preset-converter`, + añadido a `web/package.json` y a `install.sh`). +- `layers.js` → `cargarMilk(ruta)`: pide el `.milk` al backend (ya los servía), + lo convierte y se lo pasa a `viz.loadPreset()`. Cachea **la promesa**, no el + resultado, para que dos capas pidiendo el mismo preset lo conviertan una vez. +- La capa MilkDrop tiene ahora `biblioteca: "butter" | "projectm"`. La firma de + la capa **sigue siendo `'butter'`**, así que cambiar de biblioteca no recrea + la instancia ni gasta un contexto WebGL más. +- El panel tiene selector de biblioteca y, con projectM, los tres niveles + (categoría / visual / variante) más un botón de "uno al azar". + +**Medido, no supuesto:** + +- **100/100** presets de una muestra repartida por toda la biblioteca se + convierten sin excepción, incluidos **84/84** de los que llevan shaders + `warp_1`/`comp_1` (que eran justo los dudosos). +- Conversión de un `.milk` real en el navegador: **7 ms**. +- Una capa del mapper con `Dancer/Glowsticks/285.milk` renderiza sin un solo + aviso del escenario. + +> Cuidado al medir esto: si el `.milk` no se descarga, Butterchurn **sigue +> pintando su preset de reserva**. Una prueba que solo mire "¿hay píxeles +> encendidos?" da OK igual. Por eso la comprobación exige además que el +> escenario no haya soltado ningún aviso. La primera versión de la prueba dio +> un falso OK exactamente por esto. + +**Lo que queda de este punto:** la conversión no es perfecta al 100 % en +fidelidad — algún shader complejo puede verse distinto del original en +projectM. Se convierte y se ve, pero si un preset no convence, la salida es +probar otra variante. Y falta unificar los favoritos entre el motor projectM +y las capas (parte del punto 1d). + +--- + +## 3. Los clips salían del revés en el mapping — ✅ ARREGLADO + +**Lo que pasaba.** Al poner un vídeo en una capa del mapping, salía volteado +verticalmente (boca abajo). + +**Por qué.** `web/stage/mapper.js`, en `initGL()`, hacía +`gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true)`. Pero el modelo del mapper va +con el origen **arriba-izquierda** (`vUV.y = 0` es el borde de arriba de la +superficie) y `texImage2D` ya sube la primera fila de la imagen en `t = 0`. +Con el flip puesto, `t = 0` pasaba a ser la ÚLTIMA fila: todo del revés. +Se notaba con los clips porque una visual de MilkDrop es casi simétrica y no +canta. + +**Comprobado**, no deducido: con una fuente mitad roja arriba / mitad azul +abajo, renderizando el `mapper.js` real en Chromium headless y leyendo el +píxel de arriba con `readPixels`, antes salía AZUL y ahora sale ROJO. + +De paso se midió el **Mezclador** (Hydra, `s1.init({src})`) con la misma +prueba: ese sale bien, no hay que tocarlo. Si alguna vez se ve del revés ahí, +no es este fallo. + +> Al medir esto, ojo con `readPixels` sobre un lienzo sin +> `preserveDrawingBuffer`: devuelve negro y es facilísimo leerlo como "está +> volteado". Hay que reservar el contexto con `preserveDrawingBuffer: true` +> ANTES de que la librería llame a `getContext`. + +--- + +## 4. Menor: no hay fundido al cambiar de motor + +Pasar de Mezcla a Butter es un corte seco. Dentro de una capa MilkDrop sí hay +transición suave (deslizador de 0–8 s), pero cruzar **dos motores** exige +renderizar los dos a la vez durante el cruce y fundirlos en el compositor. + +Se puede hacer en el mapper (dibujar la capa dos veces, con la fuente vieja +bajando de alfa y la nueva subiendo), pero cuesta tener los dos motores vivos a +la vez unos segundos. Decidir si merece la pena. diff --git a/docs/seguridad.md b/docs/seguridad.md new file mode 100644 index 0000000..c2e9b25 --- /dev/null +++ b/docs/seguridad.md @@ -0,0 +1,94 @@ +# Seguridad + +FOSFENO es un **aparato de directo**, no un servicio en internet. Está pensado +para una red local: tú, tu móvil y el proyector. Esta página cuenta qué asume +el diseño, qué pasa si la red no es de fiar, y cómo cerrarlo. + +## El modelo de amenaza, en una frase + +Cualquiera que alcance `http:///` **manda sobre las visuales**. +Por defecto no hay contraseña: es lo cómodo para casa, un ensayo o una red +tuya, y es como funcionó desde el principio. + +Eso está bien en tu salón. En **la wifi de un bar o de un festival** significa +que un desconocido puede: + +- Apagar o reiniciar el equipo en mitad de la sesión. +- Cambiar de motor, de preset y de mapping. +- **Ejecutar código** en el escenario, porque el editor de Hydra/GLSL es + precisamente eso, y el navegador del kiosko arranca con permiso automático de + **cámara y micrófono**. +- Llenarte la tarjeta subiendo archivos a la galería. + +No es un fallo escondido: es la consecuencia de no pedir credenciales. La +solución está abajo y son dos líneas de configuración. + +## La clave compartida + +En `config.json`: + +```json +"auth": { + "token": "loquesea-largo-y-tuyo" +} +``` + +O sin tocar el archivo, por variable de entorno: + +```bash +FOSFENO_TOKEN=loquesea-largo-y-tuyo ./fosfeno +``` + +Con la clave puesta: + +- **El código QR del proyector ya la lleva dentro.** Escaneas y entras, igual + que siempre. No hay que teclear nada. +- Quien solo conozca la IP **no se conecta**: el WebSocket rechaza la conexión, + así que no puede ni mirar el estado ni mandar órdenes. +- Las subidas a la galería también la piden. +- El escenario la recibe del propio servidor al abrirse. No hay nada que + configurar en el navegador. + +La contrapartida: si escribes la dirección a mano tendrás que añadir +`?k=tu-clave` al final. Por eso el QR es el camino cómodo. + +> Con `token` vacío (el valor de fábrica) todo funciona exactamente como antes. +> Actívala cuando pinches fuera de casa. + +## Lo que ya está cerrado + +Estas no dependen de que actives nada: + +| | | +|---|---| +| **Path traversal** | Las rutas de archivos (`/panel`, `/stage`, `/lib`, `/data`, `/pm/variantes`) resuelven y comprueban que no salen de su carpeta. Probado con `../`, `%2e%2e%2f`, doble codificación y rutas absolutas | +| **Nombres de archivo subidos** | Pasan por `secure_filename` y una lista blanca de extensiones. No se puede escribir fuera de `data/videos` ni subir un `.sh` | +| **Inyección de comandos** | Ningún `shell=True`, ningún `os.system`. Todos los procesos se lanzan con lista de argumentos | +| **Rutas de presets de projectM** | La categoría y el visual vienen del panel, así que se validan contra la carpeta de presets antes de usarse | +| **XSS en el panel** | Los nombres de clips, capas y favoritos se pintan con `textContent`, nunca con `innerHTML` | +| **CORS** | El WebSocket solo acepta su **mismo origen**. Antes admitía cualquiera, así que una web abierta en el móvil de alguien de la sala podía mandar órdenes | +| **Tamaño de subida** | 512 MB por archivo (antes 4 GB, suficiente para llenar una microSD en tres peticiones) | +| **Payloads del WebSocket** | Los ajustes se filtran por lista blanca de claves y las capas del mapping se sanean antes de guardarse, así que no se puede meter basura en el estado ni en `data/mapping.json` | + +## Lo que NO deberías hacer + +- **No lo expongas a internet.** Nada de abrir el puerto 80 en el router ni + ponerle un túnel. No está pensado para eso y la clave compartida no es + autenticación seria. +- **No dejes el apagado remoto a mano de una red pública** sin clave. El + instalador da permiso `sudo` sin contraseña para `reboot` y `poweroff` + (`install.sh`), que es lo que hace que el botón del panel funcione. +- **No pongas datos personales en `data/videos`.** Cualquiera que entre al + panel puede listarlos y reproducirlos. + +## Lo que no se sube al repositorio + +`.gitignore` deja fuera lo de cada instalación: `.venv/`, `*.log` (el log del +servidor lleva IPs), `data/mapping.json`, `data/pm-favoritos.json`, +`data/videos/*` y `data/presets-projectm/`. En el repo solo van código, +documentación y los presets de fábrica. + +## Si encuentras algo + +Es un proyecto pequeño de un hacklab: abre una incidencia en el Gitea del +proyecto contando qué has visto y cómo reproducirlo. diff --git a/docs/uso.md b/docs/uso.md index 213acde..aaf3de7 100644 --- a/docs/uso.md +++ b/docs/uso.md @@ -18,6 +18,25 @@ conectado con la Raspberry. Rojo quiere decir que se ha perdido la conexión. ![Panel de control de FOSFENO](assets/panel.png) +## 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 @@ -56,9 +75,10 @@ librería de fragmentos listos para usar; eliges uno y se carga en el 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. Mezcla la imagen de una webcam USB con clips -de vídeo y efectos de color. Es lo más parecido a un programa de VJ como -Resolume, pero funcionando dentro de la Raspberry. +**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 @@ -92,15 +112,23 @@ código es GLSL y tienes los uniforms `u_time`, `u_bass`, `u_mid`, `u_treble`, ## El modo Mezclador -Primero copia tus clips de vídeo en la carpeta `data/videos` del proyecto. -Aparecen solos en el desplegable de vídeo del panel. Para que vayan finos en -la Raspberry conviene que sean clips cortos, en 720p o menos y en H.264. +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. -En el panel eliges la fuente: solo la cámara, solo el vídeo, o la mezcla de -las dos. Debajo tienes el modo de mezcla y una fila de controles de color: -tono, saturación, contraste, brillo, colorama, posterizado, pixelado, -caleidoscopio, rotación y feedback. La casilla de pulso al ritmo hace que la -imagen lata con los graves. +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](mezclador.md). ## Apagar y reiniciar diff --git a/docs/visuales.md b/docs/visuales.md new file mode 100644 index 0000000..a18c3c8 --- /dev/null +++ b/docs/visuales.md @@ -0,0 +1,160 @@ +# La galería de visuales + +Los clips que se ven en el Mezclador y en las capas del mapping viven en +`data/videos`. Además del archivo suelto, hay un **catálogo** +(`data/visuales.json`) con la ficha de cada uno: de qué película sale, quién +aparece, cuánto dura y — lo importante — **si es una silueta de verdad y cómo +de llena está**. + +Sin esa ficha el panel solo puede enseñar `p3-davy-jones-tormenta_silueta-negro.mp4`. +Con ella enseña *Davy Jones (en la tormenta)*, agrupado bajo *Piratas del +Caribe: En el fin del mundo*, y marca los que casi no tienen figura. + +--- + +## Cómo se genera + +```bash +cd ~/COFRE/CODERS/MUSIKA/VISUALES/FOSFENO + +python3 scripts/catalogar-visuales.py # cataloga y escribe el JSON +python3 scripts/catalogar-visuales.py --limpiar # + aparta los que no son siluetas +``` + +Necesita `ffmpeg`/`ffprobe` y `numpy`. Tarda unos segundos por clip: decodifica +2 fotogramas por segundo a 160x90 en gris y saca las cuentas de ahí. + +Hay que volver a pasarlo **cada vez que entran clips nuevos** en la galería. El +panel lo recarga solo al pulsar el botón de recargar del Mezclador, o al subir +un archivo; si el JSON no está, el panel sigue funcionando con los nombres de +archivo pelados. + +## Qué mide, y por qué así + +**¿Es una silueta o es un trozo de película tal cual?** En un clip siluetado +por DETEKTION el fondo es negro **puro** (valor 0), cosa que no pasa nunca en +una imagen de cine, por oscura que sea. Así que basta con medir qué porcentaje +del cuadro está a cero: + +| | negro puro | +|---|---| +| Clips siluetados de la galería | 0,63 – 0,90 | +| Cortes sin siluetear | 0,04 – 0,06 | + +No hay zona gris, y por eso el umbral está en 0,30. No es un número inventado: +sale de medir la galería entera. + +**¿Tiene figura suficiente?** Un clip puede estar perfectamente siluetado y aun +así no servir, porque la escena era muy oscura y el recorte salió casi vacío. +Se mide el porcentaje del cuadro por encima de gris 32, y se mira la **mediana** +(no un fotograma suelto: casi todos los clips tienen tramos vacíos y tramos +llenos, y juzgar por el fotograma central engaña). + +| calidad | criterio | qué significa | +|---|---|---| +| `buena` | mediana ≥ 0,03 | se ve bien sobre el fondo | +| `floja` | mediana < 0,03 | figura pequeña o muy oscura | +| `vacia` | mediana < 0,005 o más de la mitad de fotogramas vacíos | apenas hay nada | +| `descartable` | negro puro < 0,30 | no es una silueta: se ve el fondo | + +## Qué hace `--limpiar` + +Los `descartable` (los que enseñan el fondo entero de la película) se **mueven** +a `data/videos/_descartados/`. No se borran: si un día quieres volver a pasarlos +por DETEKTION, siguen ahí. El servidor no los sirve, porque solo lista archivos +sueltos de `data/videos`, no subcarpetas. + +Los `floja` y `vacia` **no se tocan**: son siluetas correctas, solo que oscuras. +Se quedan en la galería marcadas, y ya decides tú si las usas — sobre un fondo +de MilkDrop brillante, una silueta tenue puede funcionar. + +## La ficha + +```json +{ + "archivo": "p3-davy-jones-tormenta_silueta-negro.mp4", + "obra": "Piratas del Caribe: En el fin del mundo", + "anio": 2007, + "titulo": "Davy Jones (en la tormenta)", + "tipo": "silueta", + "modo": "silueta sobre negro", + "origen": "detektion", + "personajes": ["Davy Jones"], + "etiquetas": ["en la tormenta"], + "ancho": 1152, "alto": 480, "fps": 23.98, "duracion": 30.03, + "metricas": { "negroPuro": 0.737, "figura": 0.0582, + "figuraPico": 0.1974, "brillo": 8.49, "vacios": 0.03 }, + "clase": "silueta", "calidad": "buena", "aviso": "", + "miniatura": "miniaturas/p3-davy-jones-tormenta_silueta-negro.jpg" +} +``` + +La miniatura no es un fotograma cualquiera: es **el fotograma con más figura** +de todo el clip, que es el que dice de verdad qué vas a ver. + +### De dónde salen los nombres + +El catálogo lee las dos convenciones de DETEKTION: + +- `siluetear.py` → `_silueta-.mp4` → `tipo: silueta` +- `recortar.py` → `_13m26s.mp4` → `tipo: corte` (crudo, **sin** siluetear) + +y del resto del nombre saca la película (`p1`…`p5`, `hackers`, `tron`…), los +personajes conocidos y las palabras de escena. Las tablas están arriba del +todo en `scripts/catalogar-visuales.py`: **para añadir películas o personajes +nuevos se tocan ahí y ya**. + +Un clip que no encaje en ninguna tabla no rompe nada: sale con el nombre +prettificado y agrupado en "Sin catalogar". + +## Transparencia de verdad (canal alfa) + +Hay **dos formas** de que un personaje se vea sobre las visuales, y conviene +no confundirlas: + +**1. Recorte por luminancia (lo de siempre).** El clip `_silueta-negro.mp4` +tiene fondo negro opaco, y es el Mezclador el que lo hace transparente al +vuelo: `src(s0).layer(src(s1).luma(umbral, 0.15))`. Funciona y va en H.264, +que es lo que mejor decodifica una Raspberry. Pega: hay un umbral que ajustar, +y las zonas oscuras del propio personaje (pelo, ropa negra) se comen con él. + +**2. Canal alfa de verdad (`_silueta-alfa.webm`).** El clip lleva la +transparencia dentro, en un WebM con VP9. No hay umbral, no hay bordes +comidos: los píxeles del fondo simplemente **no existen**, y debajo se ve la +capa que haya. Se genera con: + +```bash +.venv/bin/python3 siluetear.py clip.mp4 --modo alfa +``` + +FOSFENO ya lo compone bien sin tocar nada: el fragment shader del mapper +saca `gl_FragColor = vec4(c.rgb, c.a * uAlpha)` y mezcla con +`SRC_ALPHA / ONE_MINUS_SRC_ALPHA`, así que una capa con alfa deja ver la capa +dibujada antes que ella. **Comprobado**, no supuesto: con una capa de fondo +roja y encima un clip alfa, el 48,6 % de la pantalla sale roja por los huecos. + +> Para que se vea a través hace falta que **haya algo debajo**: otra capa del +> mapping dibujada antes (MilkDrop, shader, cámara). Si el clip alfa es la +> única capa, debajo solo está el negro del compositor. + +### Dos trampas del alfa en WebM + +- **El decodificador VP9 nativo de ffmpeg se come el alfa en silencio**: no + falla, devuelve el vídeo entero opaco. Para leerlo hay que pedir + `-c:v libvpx-vp9` a mano. Es exactamente por esto que el catalogador mide + estos clips con `ffmpeg -c:v libvpx-vp9 ... -vf format=rgba,alphaextract` + (y el `format=rgba` no es adorno: sin él `alphaextract` no negocia formato + y ffmpeg aborta). +- **VP9 no tiene decodificación por hardware en la Raspberry Pi 5**, que sí la + tiene para H.264/HEVC. En el portátil va sobrado; en la Pi, con clips de + 480p cortos debería ir, pero **hay que probarlo antes de un bolo**. Si se + atraganta, el camino 1 (negro + luma key) sigue ahí. + +## En el panel + +`server.py` carga el catálogo en `state.meta.visuales` (`{archivo: ficha}`), +filtrado contra lo que hay de verdad en disco para que un catálogo viejo no +enseñe clips borrados. El panel lo usa en `fillClipSelect()`: las listas de +clips salen agrupadas por película con ``, con el título legible, la +duración y la marca de calidad (`· poca figura`, `· casi vacio`), y el aviso +completo en el `title` de cada opción. diff --git a/install.sh b/install.sh index 0967f98..91d7e1c 100755 --- a/install.sh +++ b/install.sh @@ -261,6 +261,10 @@ find_copy() { # find_copy } find_copy butterchurn butterchurn.min.js lib/butterchurn.min.js "Butterchurn" find_copy butterchurn-presets butterchurnPresets.min.js lib/butterchurn-presets.min.js "Presets de Butterchurn" +# Traduce los .milk de projectM a presets de Butterchurn: es lo que permite +# usar la biblioteca grande (9795 presets) dentro de una capa del mapping. +find_copy milkdrop-preset-converter milkdrop-preset-converter.min.js \ + lib/milkdrop-preset-converter.min.js "Conversor de presets .milk" copy_lib node_modules/socket.io-client/dist/socket.io.min.js \ lib/socket.io.min.js "Socket.IO" copy_lib node_modules/qrcode-generator/qrcode.js \ diff --git a/scripts/catalogar-visuales.py b/scripts/catalogar-visuales.py new file mode 100755 index 0000000..d25d5df --- /dev/null +++ b/scripts/catalogar-visuales.py @@ -0,0 +1,390 @@ +#!/usr/bin/env python3 +""" +FOSFENO :: Catalogo de visuales +========================================================================== +Recorre data/videos y escribe data/visuales.json: la ficha de cada clip de +la galeria (de que peli sale, quien aparece, cuanto dura, si es una silueta +de verdad y como de llena esta) mas una miniatura en data/miniaturas. + +El panel lo usa para listar los clips por pelicula y con nombre legible en +vez del nombre del archivo, y para avisar de los que casi no tienen imagen. + + scripts/catalogar-visuales.py # cataloga y escribe el JSON + scripts/catalogar-visuales.py --limpiar # ademas aparta los que no son + # siluetas (se ve el fondo) + +Como distingue una silueta de un trozo de pelicula tal cual: en un clip +siluetado el fondo es negro PURO (valor 0), asi que basta medir que +porcentaje del fotograma esta a cero. En los clips siluetados de la galeria +sale 0,63-0,90; en los recortes sin siluetear, 0,04-0,06. No hay zona gris. + +Necesita ffmpeg/ffprobe y numpy. +""" +import argparse +import json +import re +import shutil +import subprocess +import sys +from datetime import datetime, timezone +from pathlib import Path + +try: + import numpy as np +except ImportError: + sys.exit("Falta numpy: pip install numpy (o usa el .venv de DETEKTION)") + +BASE = Path(__file__).resolve().parent.parent +VIDEOS = BASE / "data" / "videos" +MINIS = BASE / "data" / "miniaturas" +SALIDA = BASE / "data" / "visuales.json" +DESCARTES = VIDEOS / "_descartados" + +VIDEO_EXT = (".mp4", ".webm", ".mov", ".m4v", ".ogv") +IMAGE_EXT = (".jpg", ".jpeg", ".png", ".gif", ".webp") + +# Muestreo para las metricas: 2 fotogramas por segundo a 160x90 en gris. +FPS_MUESTRA = 2 +MW, MH = 160, 90 + +# Umbrales (ver cabecera: medidos sobre la galeria real, no inventados) +UMBRAL_SILUETA = 0.30 # % de negro puro a partir del cual es una silueta +UMBRAL_FIGURA = 32 # gris a partir del cual cuenta como figura +VACIA_FIGURA = 0.005 # menos del 0,5% del cuadro = fotograma sin nada +CALIDAD_VACIA = 0.005 # mediana de figura por debajo => clip sin contenido +CALIDAD_FLOJA = 0.03 # mediana por debajo => clip flojo (poca imagen) +MUERTOS_VACIA = 0.50 # mas de la mitad de fotogramas vacios => sin contenido + +# -------------------------------------------------------------------------- +# Nombres: de que obra sale cada clip y quien aparece +# -------------------------------------------------------------------------- +OBRAS = { + "p1": ("Piratas del Caribe: La maldicion de la Perla Negra", 2003), + "p2": ("Piratas del Caribe: El cofre del hombre muerto", 2006), + "p3": ("Piratas del Caribe: En el fin del mundo", 2007), + "p4": ("Piratas del Caribe: En mareas misteriosas", 2011), + "p5": ("Piratas del Caribe: La venganza de Salazar", 2017), + "hackers": ("Hackers", 1995), + "tron": ("Tron", 1982), + "devs": ("Devs", 2020), + "avatar": ("Avatar", 2009), + # Claves de varias palabras: se prueban de la mas larga a la mas corta + "rick-and-morty": ("Rick and Morty", 2013), + "rickmorty": ("Rick and Morty", 2013), + "los-pinguinos-de-madagascar": ("Los pinguinos de Madagascar", 2014), + "pinguinos": ("Los pinguinos de Madagascar", 2014), + "el-club-de-la-lucha": ("El club de la lucha", 1999), + "fightclub": ("El club de la lucha", 1999), + "alien-earth": ("Alien Earth", 2025), +} + +# Personajes reconocidos. Las claves con guion son de dos palabras y se +# prueban antes que las sueltas. +PERSONAJES = { + "bootstrap-bill": "Bootstrap Bill Turner", + "davy-jones": "Davy Jones", + "jack": "Jack Sparrow", + "will": "Will Turner", + "elizabeth": "Elizabeth Swann", + "barbossa": "Hector Barbossa", + "barbanegra": "Barbanegra", + "angelica": "Angelica", + "carina": "Carina Smyth", + "henry": "Henry Turner", + "salazar": "Capitan Salazar", + "gibbs": "Joshamee Gibbs", + "pintel": "Pintel", + "ragetti": "Ragetti", + "norrington": "James Norrington", + "beckett": "Cutler Beckett", + "calypso": "Tia Dalma", +} + +# Lo que no es un personaje describe la escena. Igual que PERSONAJES, las +# claves con guion son de dos palabras y se prueban antes que las sueltas. +ESCENAS = { + "consejo-piratas": "consejo de piratas", + "nina": "de nina", + "tripulacion": "y su tripulacion", + "pirata": "pirata", + "cielo": "contra el cielo", + "tormenta": "en la tormenta", + "consejo": "consejo", + "piratas": "de piratas", + "duelo": "duelo", + "holandes": "el Holandes Errante", + "singapur": "Singapur", + "sirenas": "sirenas", +} + +MODOS = {"negro": "silueta sobre negro", "croma": "croma verde", + "sombra": "sombra solida", + "alfa": "transparencia real (canal alfa)"} + +# Morralla de los nombres de descarga: no describe nada del clip. +RUIDO = {"remastered", "bluray", "brrip", "webrip", "web", "webdl", "hdtv", + "extended", "proper", "repack", "x264", "x265", "hevc", "h264", + "aac", "ac3", "dts", "10bit", "1080p", "720p", "2160p", "4k", + "yify", "yts", "eztv", "rarbg", "sample"} + + +def bonito(txt): + return txt.replace("-", " ").replace("_", " ").strip().capitalize() + + +def analizar_nombre(stem): + """Del nombre de archivo saca obra, personajes, etiquetas y titulo.""" + # Las dos convenciones de DETEKTION: + # siluetear.py -> _silueta-.mp4 (ya recortado) + # recortar.py -> _13m26s.mp4 (corte crudo, sin siluetear) + tipo, modo, momento, origen = "clip", "", "", "manual" + resto = stem + if "_silueta-" in stem: + resto, modo = stem.split("_silueta-", 1) + tipo, origen = "silueta", "detektion" + elif "_" in stem: + resto, cola = stem.split("_", 1) + if re.fullmatch(r"\d+m\d+s", cola): + momento, tipo, origen = cola, "corte", "detektion" + + trozos = resto.split("-") + # Se prueba el prefijo mas largo primero: "rick-and-morty" antes que + # "rick", que si no cada serie de varias palabras se parte mal. + obra = anio = None + for n in range(min(5, len(trozos)), 0, -1): + clave = "-".join(trozos[:n]).lower() + if clave in OBRAS: + obra, anio = OBRAS[clave] + trozos = trozos[n:] + break + if not obra: + # Nombre largo tipo "hackers-1995-remastered-1080p-bluray": busca la + # obra por cualquiera de sus trozos antes de rendirse. + for i, t in enumerate(trozos): + if t.lower() in OBRAS: + obra, anio = OBRAS[t.lower()] + trozos = trozos[i + 1:] + break + if not obra: + obra, anio = bonito(resto), None + + personajes, etiquetas = [], [] + i = 0 + while i < len(trozos): + par = "-".join(trozos[i:i + 2]).lower() + uno = trozos[i].lower() + if par in PERSONAJES: + personajes.append(PERSONAJES[par]); i += 2; continue + if par in ESCENAS: + etiquetas.append(ESCENAS[par]); i += 2; continue + if uno in PERSONAJES: + personajes.append(PERSONAJES[uno]) + elif uno in ESCENAS: + etiquetas.append(ESCENAS[uno]) + elif re.fullmatch(r"s\d{1,2}e\d{1,2}", uno): + etiquetas.append(uno.upper()) # capitulo: S09E01 + elif re.fullmatch(r"\d+m\d+s", uno): + etiquetas.append("min " + uno.replace("m", ":").rstrip("s")) + elif uno and uno not in RUIDO and not uno.isdigit(): + etiquetas.append(uno) + i += 1 + + if personajes: + titulo = " y ".join(personajes) + if etiquetas: + titulo += " (" + ", ".join(etiquetas) + ")" + elif etiquetas: + titulo = ", ".join(etiquetas).capitalize() + elif momento: + titulo = "Fragmento en " + momento.replace("m", " min ").replace("s", " s") + else: + titulo = bonito(resto) + + return {"obra": obra, "anio": anio, "titulo": titulo, "tipo": tipo, + "modo": MODOS.get(modo, modo), "momento": momento, + "origen": origen, "personajes": personajes, "etiquetas": etiquetas} + + +# -------------------------------------------------------------------------- +# Medidas +# -------------------------------------------------------------------------- +def ffprobe(path): + cmd = ["ffprobe", "-v", "error", "-select_streams", "v:0", + "-show_entries", "stream=width,height,r_frame_rate", + "-show_entries", "format=duration", "-of", "json", str(path)] + try: + out = json.loads(subprocess.run(cmd, capture_output=True, + text=True, check=True).stdout) + except (subprocess.CalledProcessError, json.JSONDecodeError): + return None + st = (out.get("streams") or [{}])[0] + fps = 0.0 + try: + num, den = st.get("r_frame_rate", "0/1").split("/") + fps = round(float(num) / float(den), 2) if float(den) else 0.0 + except (ValueError, ZeroDivisionError): + pass + return {"ancho": st.get("width", 0), "alto": st.get("height", 0), + "fps": fps, + "duracion": round(float(out.get("format", {}).get("duration") or 0), 2)} + + +def muestrear(path, canal_alfa=False): + """Fotogramas muestreados en gris, o None si no decodifica. + + Con canal_alfa mide la TRANSPARENCIA en vez de la luminancia: hace falta + para los .webm de silueta, donde lo que separa figura de fondo es el + canal alfa y no el negro. Ojo con el decodificador: el vp9 nativo de + ffmpeg se come el alfa en silencio (devuelve todo opaco), asi que hay + que pedir libvpx-vp9 a mano. + """ + cmd = ["ffmpeg", "-v", "error"] + if canal_alfa: + cmd += ["-c:v", "libvpx-vp9"] + cmd += ["-i", str(path), "-vf", + f"fps={FPS_MUESTRA},scale={MW}:{MH}," + # alphaextract necesita que le llegue un formato CON alfa: sin el + # format=rgba delante, el filtro no negocia y ffmpeg aborta + + ("format=rgba,alphaextract" if canal_alfa else "format=gray"), + "-pix_fmt", "gray", "-f", "rawvideo", "-"] + raw = subprocess.run(cmd, capture_output=True).stdout + n = len(raw) // (MW * MH) + if not n: + return None + return np.frombuffer(raw[:n * MW * MH], dtype=np.uint8).reshape(n, MH, MW) + + +def medir(fr): + negro = float((fr <= 2).mean()) + figura = (fr > UMBRAL_FIGURA).mean(axis=(1, 2)) + return { + "negroPuro": round(negro, 3), + "figura": round(float(np.median(figura)), 4), + "figuraPico": round(float(np.percentile(figura, 90)), 4), + "brillo": round(float(fr.mean()), 2), + "vacios": round(float((figura < VACIA_FIGURA).mean()), 2), + "_mejor": int(np.argmax(figura)), + } + + +def clasificar(m, es_alfa=False): + """(clase, calidad, aviso). clase: silueta | con-fondo. + + Con es_alfa las metricas vienen del canal alfa, no de la luminancia: + 'negroPuro' es entonces el porcentaje de cuadro transparente. Un clip + con alfa nunca puede ser 'con-fondo' — como mucho, opaco entero. + """ + if m["negroPuro"] < UMBRAL_SILUETA: + if es_alfa: + return ("silueta", "vacia", + "Lleva canal alfa pero casi no hay zona transparente: " + "el recorte no separo la figura del fondo.") + return ("con-fondo", "descartable", + "No esta siluetado: se ve el fondo entero de la pelicula. " + "Pasalo por DETEKTION (siluetear.py) antes de usarlo.") + if m["figura"] < CALIDAD_VACIA or m["vacios"] > MUERTOS_VACIA: + return ("silueta", "vacia", + "Silueta correcta pero casi siempre vacia: apenas hay figura.") + if m["figura"] < CALIDAD_FLOJA: + return ("silueta", "floja", + "Figura pequena o muy oscura: se vera poco sobre el fondo.") + return ("silueta", "buena", "") + + +def miniatura(path, segundo, destino): + destino.parent.mkdir(parents=True, exist_ok=True) + cmd = ["ffmpeg", "-v", "error", "-ss", f"{segundo:.2f}", "-i", str(path), + "-frames:v", "1", "-vf", "scale=320:-2", "-q:v", "4", + str(destino), "-y"] + return subprocess.run(cmd, capture_output=True).returncode == 0 + + +# -------------------------------------------------------------------------- +def catalogar(limpiar=False): + if not VIDEOS.is_dir(): + sys.exit(f"No existe {VIDEOS}") + fichas, apartados = [], [] + + archivos = sorted(f for f in VIDEOS.iterdir() + if f.is_file() + and f.suffix.lower() in VIDEO_EXT + IMAGE_EXT) + for f in archivos: + ficha = {"archivo": f.name, "peso": f.stat().st_size} + ficha.update(analizar_nombre(f.stem)) + + if f.suffix.lower() in IMAGE_EXT: + ficha.update({"clase": "imagen", "calidad": "buena", "aviso": "", + "tipo": "imagen"}) + info = ffprobe(f) or {} + ficha.update(info) + mini = MINIS / (f.stem + ".jpg") + if miniatura(f, 0, mini): + ficha["miniatura"] = "miniaturas/" + mini.name + fichas.append(ficha) + print(f" imagen {f.name}") + continue + + info = ffprobe(f) + if not info: + print(f" ILEGIBLE {f.name}") + ficha.update({"clase": "roto", "calidad": "descartable", + "aviso": "ffprobe no puede leerlo."}) + fichas.append(ficha) + continue + ficha.update(info) + + # Las siluetas con canal alfa se miden por la transparencia + es_alfa = f.name.endswith("_silueta-alfa.webm") + fr = muestrear(f, canal_alfa=es_alfa) + if fr is None: + ficha.update({"clase": "roto", "calidad": "descartable", + "aviso": "No se pudo decodificar ningun fotograma."}) + fichas.append(ficha) + print(f" ILEGIBLE {f.name}") + continue + + m = medir(fr) + mejor = m.pop("_mejor") / FPS_MUESTRA + clase, calidad, aviso = clasificar(m, es_alfa) + ficha.update({"metricas": m, "clase": clase, "calidad": calidad, + "aviso": aviso}) + + mini = MINIS / (f.stem + ".jpg") + if miniatura(f, mejor, mini): + ficha["miniatura"] = "miniaturas/" + mini.name + + if limpiar and clase == "con-fondo": + DESCARTES.mkdir(parents=True, exist_ok=True) + shutil.move(str(f), str(DESCARTES / f.name)) + if mini.exists(): + mini.unlink() + apartados.append(f.name) + print(f" APARTADO {f.name} ({aviso})") + continue + + fichas.append(ficha) + print(f" {calidad:<10} {f.name[:44]:<44} " + f"negro={m['negroPuro']:.2f} figura={m['figura']:.3f}") + + datos = { + "generado": datetime.now(timezone.utc).astimezone().isoformat(timespec="seconds"), + "total": len(fichas), + "clips": fichas, + } + SALIDA.parent.mkdir(parents=True, exist_ok=True) + SALIDA.write_text(json.dumps(datos, indent=2, ensure_ascii=False), + encoding="utf-8") + print(f"\n{len(fichas)} fichas -> {SALIDA.relative_to(BASE)}") + if apartados: + print(f"{len(apartados)} apartados -> {DESCARTES.relative_to(BASE)}/") + porcal = {} + for x in fichas: + porcal[x.get("calidad", "?")] = porcal.get(x.get("calidad", "?"), 0) + 1 + print("Calidad: " + ", ".join(f"{k}={v}" for k, v in sorted(porcal.items()))) + + +if __name__ == "__main__": + ap = argparse.ArgumentParser(description="Cataloga la galeria de FOSFENO") + ap.add_argument("--limpiar", action="store_true", + help="aparta en _descartados/ los clips sin siluetear") + catalogar(ap.parse_args().limpiar) diff --git a/web/package.json b/web/package.json index 91a07d5..a633e19 100644 --- a/web/package.json +++ b/web/package.json @@ -8,6 +8,7 @@ "butterchurn-presets": "^2.4.7", "codemirror": "^5.65.16", "hydra-synth": "^1.3.29", + "milkdrop-preset-converter": "^0.1.2", "qrcode-generator": "^1.4.4", "socket.io-client": "^4.7.5" } diff --git a/web/panel/index.html b/web/panel/index.html index 76ce776..114bb1d 100644 --- a/web/panel/index.html +++ b/web/panel/index.html @@ -9,15 +9,33 @@ -
-

FOSFENO

- -
+ +
+
+

FOSFENO

+ + + +
- - + - -
+ + + +
Mapping
- -
- + + +
+ Previsualizacion (arrastra los puntos) + +

Arrastra los puntos para encajar cada capa en su sitio. + Toca dentro de una capa para seleccionarla. Se guarda solo.

+
+ + +
+
+ Capas + +
+
+
- Previsualizacion (arrastra los puntos) - - +

Capa = una zona que PROYECTA algo (eliges que en + Propiedades). Mascara = un recuadro negro que TAPA lo que haya + debajo; no lleva visual.

-

Arrastra los puntos para deformar. Selecciona una - superficie y usa + malla para subdividir y curvarla. - + Mascara tapa zonas con un recuadro negro (recorta derrames - de luz). Se guarda solo.

+

Sin capas: con el mapping activado + y ninguna capa, sale el motor a pantalla completa. Pulsa + + Capa para trocear la proyeccion en zonas.

+
+ + +
+
+ Propiedades + +
+ +

Selecciona una capa (en la lista o + tocando dentro de ella en la previsualizacion) para elegir que + visual se proyecta en esa zona.

+ + + +
diff --git a/web/panel/panel.css b/web/panel/panel.css index 0f0efa9..9bce58c 100644 --- a/web/panel/panel.css +++ b/web/panel/panel.css @@ -35,11 +35,17 @@ body { padding-bottom: 48px; } -/* --- Cabecera con el titulo centrado --- */ +/* --- Barra superior fija: titulo + pestanas + avisos --- */ +.topbar { + position: sticky; top: 0; z-index: 10; background: var(--bg); +} + +/* --- Cabecera con el titulo centrado y las pestanas a su derecha --- */ header { - position: sticky; top: 0; z-index: 10; + position: relative; display: flex; align-items: center; justify-content: center; - padding: 16px 20px; border-bottom: 2px solid var(--green-d); + flex-wrap: wrap; gap: 10px 20px; + padding: 14px 46px; border-bottom: 2px solid var(--green-d); background: var(--bg); } header h1 { @@ -50,6 +56,35 @@ header h1 { #conn { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); } + +/* --- Pestanas MOTORES / MAPPING --- */ +.tabs { display: flex; gap: 8px; } +.tab { + position: relative; cursor: pointer; + font-family: "Xirod", "Arial Black", sans-serif; + font-size: 12px; font-weight: 400; letter-spacing: 0.07em; + padding: 10px 15px; border-radius: 10px; + background: #161d10; border: 2px solid var(--line); color: var(--dim); +} +.tab.active { + border-color: var(--orange); color: var(--orange-n); + box-shadow: 0 0 12px rgba(255, 122, 0, 0.35); +} +/* Punto verde en la pestana MAPPING cuando el mapping esta activado, para + saber desde MOTORES que la salida se esta deformando. */ +.tabdot { + display: inline-block; width: 8px; height: 8px; border-radius: 50%; + background: var(--green); box-shadow: 0 0 8px var(--green); + margin-left: 7px; vertical-align: middle; +} + +/* En movil el titulo baja de tamano para que las pestanas quepan al lado */ +@media (max-width: 560px) { + header { padding: 12px 34px; gap: 8px 12px; } + header h1 { font-size: 23px; } + .tab { padding: 9px 11px; font-size: 11px; } + #conn { right: 12px; } +} .dot { width: 13px; height: 13px; border-radius: 50%; display: inline-block; } .dot.on { background: var(--green); box-shadow: 0 0 9px var(--green); } .dot.off { background: var(--red); box-shadow: 0 0 9px var(--red); } @@ -82,6 +117,61 @@ main { } } +/* --- Vistas (pestanas) --- + MOTORES ensena todo menos las tarjetas de mapping, y al reves. La vista + "capa" es MAPPING recortado: solo la previa y las propiedades de UNA capa, + sin la lista, para poder centrarse en su efecto. */ +body[data-view="motores"] [data-vista="mapping"] { display: none !important; } +body[data-view="mapping"] main > .column > :not([data-vista="mapping"]), +body[data-view="capa"] main > .column > :not([data-vista="mapping"]) { + display: none !important; +} +body[data-view="capa"] #card-capas { display: none !important; } +body[data-view="mapping"] main, +body[data-view="capa"] main { + flex-direction: column; width: 100%; max-width: 900px; +} +body[data-view="mapping"] .column, +body[data-view="capa"] .column { display: contents; } + +/* Pestanas de capa: mas pequenas que MOTORES/MAPPING, para que se lean como + lo que son (un atajo a cada capa) y no compitan con las dos principales. */ +.tab.tabcapa, .tab.tabnew { + font-size: 0.78em; padding: 6px 10px; letter-spacing: 0.06em; + max-width: 11ch; overflow: hidden; text-overflow: ellipsis; + white-space: nowrap; +} +.tab.tabnew { border-style: dashed; opacity: 0.85; } +.tab.tabnew:hover { opacity: 1; } + +/* En pantalla ancha el mapping se reparte: la previsualizacion grande a la + izquierda (que es donde se trabaja) y las capas con sus propiedades a la + derecha, sin tener que bajar y subir todo el rato. */ +@media (min-width: 1000px) { + body[data-view="mapping"] main { + display: grid; width: 96%; max-width: 1700px; + grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); + grid-template-areas: "previa capas" "previa props" "previa ."; + align-items: start; align-content: start; gap: 16px; + } + body[data-view="mapping"] #card-mapping { grid-area: previa; } + body[data-view="mapping"] #card-capas { grid-area: capas; } + body[data-view="mapping"] #card-propiedades { grid-area: props; } + /* La previsualizacion manda: que ocupe todo el alto util disponible */ + body[data-view="mapping"] #map-preview { aspect-ratio: 16 / 9; } + + /* La vista de una capa: previa a la izquierda, sus ajustes a la derecha */ + body[data-view="capa"] main { + display: grid; width: 96%; max-width: 1700px; + grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); + grid-template-areas: "previa props"; + align-items: start; align-content: start; gap: 16px; + } + body[data-view="capa"] #card-mapping { grid-area: previa; } + body[data-view="capa"] #card-propiedades { grid-area: props; } + body[data-view="capa"] #map-preview { aspect-ratio: 16 / 9; } +} + /* --- Tarjetas --- */ .card { background: var(--card); border: 1px solid var(--line); @@ -90,11 +180,12 @@ main { } .card.center { align-items: center; } -/* Cabecera de tarjeta: titulo centrado, boton de info a la derecha */ +/* Cabecera de tarjeta: titulo centrado, boton de info a la derecha. + El hueco lateral evita que un titulo largo se meta debajo del boton. */ .cardhead { position: relative; width: 100%; display: flex; align-items: center; justify-content: center; - min-height: 30px; + min-height: 30px; padding: 0 34px; } /* Titulo de cada tarjeta: mas grande y en la fuente Xirod */ .cardhead .label { @@ -108,8 +199,12 @@ main { .hint { color: var(--dim); font-size: 12px; line-height: 1.45; } .row { display: flex; align-items: center; justify-content: space-between; - gap: 10px; } + gap: 10px; flex-wrap: wrap; } .row .cmd { flex: 1; } +/* En una fila de etiqueta + desplegable, el desplegable no baja de un ancho + usable: si no cabe, la fila parte en dos lineas en vez de estrujarlo. */ +.row .label { flex: 1 1 auto; } +.row select.inline { flex: 0 1 auto; min-width: 148px; max-width: 100%; } /* --- Boton de informacion (circular naranja, esquina de la tarjeta) --- */ .info { @@ -139,11 +234,18 @@ main { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; } .engine { - width: 96px; height: 96px; border-radius: 50%; + width: 96px; aspect-ratio: 1 / 1; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; background: var(--card); border: 3px solid var(--line); color: var(--txt); } +/* En movil, algo mas pequenos para que entren TRES por fila: con 96 px se + quedaban en un 2+2+1 descuadrado (flex parte la linea antes de encoger). */ +@media (max-width: 560px) { + .engines { gap: 10px; } + .engine { width: 86px; } + .engine strong { font-size: 12px; } +} .engine strong { font-size: 13px; } .engine small { font-size: 9px; color: var(--dim); } .engine.active { @@ -222,15 +324,14 @@ input[type=range] { width: 100%; accent-color: var(--green); height: 30px; } font-size: 12px; font-family: monospace; padding: 4px 0 8px; } -/* --- Banda de avisos --- */ +/* --- Banda de avisos (dentro de la barra superior fija) --- */ .notif { display: flex; align-items: center; gap: 10px; padding: 12px 16px; font-size: 14px; font-weight: 600; - position: sticky; top: 66px; z-index: 9; } -.notif.info { background: var(--green); color: var(--ink); } -.notif.warn { background: var(--orange); color: var(--ink); } -.notif.error { background: var(--red); color: #fff; } +.notif.lv-info { background: var(--green); color: var(--ink); } +.notif.lv-warn { background: var(--orange); color: var(--ink); } +.notif.lv-error { background: var(--red); color: #fff; } .notif span { flex: 1; } .notif button { background: transparent; border: none; color: inherit; @@ -257,6 +358,70 @@ input[type=range] { width: 100%; accent-color: var(--green); height: 30px; } } .modal-box p { color: var(--txt); font-size: 14px; line-height: 1.5; } +/* --- Bloques agrupados dentro de una tarjeta --- + Un grupo de controles que aparece o desaparece junto (por ejemplo los de + la camara o los del fondo Butter en el mezclador). */ +.stack { display: flex; flex-direction: column; gap: 12px; } + +/* Controles que ahora mismo no pintan nada: siguen visibles pero apagados, + asi se ve que existen sin que despisten. */ +.dim { opacity: 0.42; } + +/* Resumen del mezclador: la linea que dice que va a salir por el proyector */ +.hint.resumen { + border-left: 3px solid var(--orange); padding: 6px 0 6px 10px; + color: var(--txt); font-size: 13px; +} + +/* --- Previsualizacion del mapping --- */ +#map-preview { + width: 100%; aspect-ratio: 16 / 9; display: block; margin: 6px 0; + background: #0a0a0a; border: 1px solid var(--line); border-radius: 8px; + touch-action: none; cursor: crosshair; +} + +/* --- Lista de capas del mapping --- + Una fila por capa: nombre + fuente a la izquierda, botones a la derecha. + La fila entera selecciona; los botones no la seleccionan. */ +#map-list { display: flex; flex-direction: column; gap: 8px; } +.capa { + display: flex; align-items: center; gap: 8px; cursor: pointer; + padding: 9px 10px; border-radius: 11px; + background: #161d10; border: 2px solid var(--line); +} +.capa.sel { border-color: var(--orange); box-shadow: 0 0 12px rgba(255,122,0,0.3); } +.capa.oculta { opacity: 0.45; } +.capa .txt { flex: 1; min-width: 0; } +.capa .nom { + display: block; color: var(--txt); font-weight: 700; font-size: 14px; + overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} +.capa .src { + display: block; color: var(--dim); font-size: 11px; + overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} +.capa.mascara .nom { color: #ff6b6b; } +.capa button { + flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9px; cursor: pointer; + background: #0d120c; border: 1px solid var(--line); color: var(--txt); + font-size: 14px; font-weight: 700; line-height: 1; padding: 0; +} +.capa button:disabled { opacity: 0.3; } +.capa .del { color: var(--red); } + +/* Malla: los +/- son botones pequenos y van juntos, no barras a lo ancho */ +.grupo { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; } +#map-sub-dec, #map-sub-inc { + flex: 0 0 auto; width: 46px; padding: 10px 0; font-size: 17px; +} +#map-sub-val { min-width: 40px; text-align: center; } + +/* Campo de texto (nombre de la capa) */ +.txt[type="text"] { + flex: 1; padding: 10px; border-radius: 10px; font-size: 14px; + background: #161d10; color: var(--txt); border: 1px solid var(--line); +} + /* Favoritos de projectM: lista de visuales para pinchar en directo */ #pm-fav-list { display: flex; flex-direction: column; gap: 8px; diff --git a/web/panel/panel.js b/web/panel/panel.js index 58497af..3a31dce 100644 --- a/web/panel/panel.js +++ b/web/panel/panel.js @@ -4,7 +4,10 @@ * Incluye editor de codigo, mezclador VJ, ventana de ayuda y avisos. */ -const socket = io(); +// Clave compartida (config.json -> auth.token). Llega en la direccion del +// panel, que es la que trae el codigo QR del proyector. Vacia = sin clave. +const CLAVE = new URLSearchParams(location.search).get("k") || ""; +const socket = io({ auth: { token: CLAVE } }); let state = null; let editorEngine = ""; // que motor tiene cargado el editor let helpData = {}; // textos de ayuda @@ -13,6 +16,91 @@ let lastNotifT = 0; // marca de tiempo del ultimo aviso mostrado const $ = (s) => document.querySelector(s); const $$ = (s) => document.querySelectorAll(s); +// ========================================================================== +// Vistas: MOTORES (lo de siempre) y MAPPING (encaje sobre la superficie) +// Se separan para no mezclar los controles de directo con los de montaje. +// La eleccion se recuerda en el propio navegador. +// ========================================================================== +/* Ademas de MOTORES y MAPPING hay una vista por CAPA ("capa:"): ensena + solo la previsualizacion y las propiedades de esa capa, para poder trastear + con su efecto sin el resto del panel delante. Es lo que hace usable tener + varias capas: sin esto habia que ir a MAPPING, buscarla en la lista y + volver. */ +/* mapSurfaces se declara mas abajo con let: al restaurar la vista guardada + esta funcion corre ANTES que esa linea, y tocarla daria ReferenceError. */ +function capasHoy() { + try { return mapSurfaces || []; } catch (e) { return []; } +} + +function setView(view) { + const esCapa = String(view).startsWith("capa:"); + if (!esCapa && view !== "mapping") view = "motores"; + if (esCapa) { + const id = view.slice(5); + // Si la capa ya no existe (borrada desde otro movil), no dejamos el panel + // en una vista fantasma + if (!capasHoy().some((s) => s.id === id)) return setView("mapping"); + mapSel = { type: "surface", id: id }; + document.body.dataset.capa = id; + } else { + delete document.body.dataset.capa; + } + document.body.dataset.view = esCapa ? "capa" : view; + vistaActual = view; + $$(".tab").forEach((t) => + t.classList.toggle("active", t.dataset.view === view)); + try { localStorage.setItem("fosfeno.view", view); } catch (e) { /* privado */ } + // El lienzo del mapping mide 0 mientras esta oculto: hay que repintarlo + // al entrar en su vista, ya con su tamano real. + if (state && (view === "mapping" || esCapa)) { + renderPropiedades(); + drawMapPreview(); + } +} +let vistaActual = "motores"; + +/* Rehace las pestanas de capa. Solo toca el DOM si algo cambio: si no, cada + estado que llega (y llegan muchos) tiraria la pestana que el usuario esta + pulsando. */ +function renderTabsCapas() { + const cont = $("#tabs-capas"); + if (!cont) return; + const capas = capasHoy(); + const sig = capas.map((s, i) => s.id + ":" + (s.nombre || i + 1)).join("|"); + if (cont.dataset.sig !== sig) { + cont.dataset.sig = sig; + cont.innerHTML = ""; + capas.forEach((s, i) => { + const b = document.createElement("button"); + b.className = "tab tabcapa"; + b.dataset.view = "capa:" + s.id; + b.textContent = (s.nombre || "CAPA " + (i + 1)).toUpperCase(); + b.title = "Editar esta capa"; + b.addEventListener("click", () => setView("capa:" + s.id)); + cont.appendChild(b); + }); + } + // La capa activa pudo desaparecer: volver a MAPPING antes de quedarnos en + // una vista sin contenido + if (vistaActual.startsWith("capa:") + && !capas.some((s) => s.id === vistaActual.slice(5))) { + setView("mapping"); + return; + } + $$(".tab").forEach((t) => + t.classList.toggle("active", t.dataset.view === vistaActual)); +} + +$$(".tab[data-view]").forEach((t) => + t.addEventListener("click", () => setView(t.dataset.view))); + +(function () { + let saved = "motores"; + try { saved = localStorage.getItem("fosfeno.view") || "motores"; } + catch (e) { /* almacenamiento no disponible */ } + setView(saved); +})(); + // Sliders del mezclador VJ (se generan dinamicamente) const MIXER_SLIDERS = [ { key: "mix", label: "Mezcla A/B", min: 0, max: 1, step: 0.01 }, @@ -109,7 +197,9 @@ let notifTimer = null; function showNotif(entry) { if (!entry || !entry.message) return; const n = $("#notif"); - n.className = "notif " + (entry.level || "info"); + // El nivel va con prefijo 'lv-': sin el, un aviso 'info' cogia tambien el + // estilo del boton redondo de ayuda (.info) y salia como una pelotita. + n.className = "notif lv-" + (entry.level || "info"); $("#notif-msg").textContent = entry.message; n.hidden = false; clearTimeout(notifTimer); @@ -132,7 +222,7 @@ function buildMixerSliders() { const wrap = document.createElement("div"); wrap.className = "slider"; wrap.innerHTML = - `
${cfg.label}` + + `
${cfg.label}` + `-
`; const input = document.createElement("input"); input.type = "range"; @@ -187,12 +277,17 @@ function render() { renderProjectM(); renderMapping(); + // Aviso en la pestana: el mapping esta deformando la salida aunque + // estemos mirando la pestana de motores. + $("#tab-map-dot").hidden = !(state.mapping && state.mapping.enabled); + $("#now").textContent = nowText() || "-"; const net = state.network || {}; const port = (net.port && net.port !== 80) ? ":" + net.port : ""; + const k = CLAVE ? "?k=" + encodeURIComponent(CLAVE) : ""; $("#net-foot").textContent = "Panel: http://" + - (net.hostname || "fosfeno") + ".local" + port + "/" + + (net.hostname || "fosfeno") + ".local" + port + "/" + k + (net.ip ? " (" + net.ip + ")" : ""); // Aviso pendiente recibido antes de abrir el panel @@ -218,16 +313,26 @@ function nowText() { return state.status.label || ""; } +// Opciones fijas que sobreviven al rellenar cada lista: el "-- elige ... --" +// de arriba, y lo que se ensena cuando no hay nada que listar. +const SELECT_FIJA = { + "mix-video": '', + "prop-video": '', + "prop-shader": '', +}; +const SELECT_VACIA = { + "mix-camera": '', + "prop-camara": '', + "prop-video": '', + "prop-preset": '', +}; + function fillSelectOnce(sel, items, valFn, txtFn) { items = items || []; if (sel.dataset.count == items.length) return; sel.dataset.count = items.length; - let keep = ""; - if (sel.id === "mix-video") { - keep = ''; - } else if (sel.id === "mix-camera" && items.length === 0) { - keep = ''; - } + let keep = SELECT_FIJA[sel.id] || ""; + if (!items.length && SELECT_VACIA[sel.id]) keep = SELECT_VACIA[sel.id]; sel.innerHTML = keep; items.forEach((it) => { const opt = document.createElement("option"); @@ -237,12 +342,80 @@ function fillSelectOnce(sel, items, valFn, txtFn) { }); } +/* Lista de clips con la ficha del catalogo (data/visuales.json, que genera + scripts/catalogar-visuales.py): agrupada por pelicula y con el nombre del + personaje en vez del nombre del archivo. Los clips que casi no tienen + figura salen marcados, que es lo que evita elegir a ciegas uno que sobre el + proyector se ve negro. Sin catalogo cae en la lista de siempre. */ +const MARCA_CALIDAD = { floja: " · poca figura", vacia: " · casi vacio" }; + +function fichaClip(archivo) { + return ((state.meta && state.meta.visuales) || {})[archivo] || null; +} + +/* Nombre corto para las frases ("Jack Sparrow y Will Turner") */ +function tituloClip(archivo) { + const f = fichaClip(archivo); + return (f && f.titulo) || archivo; +} + +/* Nombre largo para las listas: titulo + duracion + aviso de calidad */ +function etiquetaClip(archivo) { + const f = fichaClip(archivo); + if (!f) return archivo; + const dur = f.duracion ? " " + Math.round(f.duracion) + "s" : ""; + return f.titulo + dur + (MARCA_CALIDAD[f.calidad] || ""); +} + +function fillClipSelect(sel) { + const vs = (state.meta && state.meta.videos) || []; + const cat = (state.meta && state.meta.visuales) || {}; + // La firma incluye el catalogo: si se recataloga sin cambiar el numero de + // archivos, la lista tambien tiene que rehacerse. + const sig = vs.length + "|" + Object.keys(cat).length; + if (sel.dataset.sig === sig) return; + sel.dataset.sig = sig; + delete sel.dataset.count; // no dejar que fillSelectOnce lo de por hecho + + sel.innerHTML = (vs.length ? SELECT_FIJA[sel.id] : SELECT_VACIA[sel.id]) + || SELECT_FIJA[sel.id] || ""; + + // Agrupadas por obra, en el orden en que vienen los archivos (p1, p2...); + // lo que no tiene ficha va al final, en "Sin catalogar". + const grupos = new Map(); + vs.forEach((v) => { + const f = cat[v]; + const obra = (f && f.obra) || "Sin catalogar"; + if (!grupos.has(obra)) grupos.set(obra, []); + grupos.get(obra).push(v); + }); + + grupos.forEach((lista, obra) => { + const destino = grupos.size > 1 + ? sel.appendChild(Object.assign(document.createElement("optgroup"), + { label: obra })) + : sel; + lista.forEach((v) => { + const opt = document.createElement("option"); + opt.value = v; + opt.textContent = etiquetaClip(v); + const f = cat[v]; + if (f && f.aviso) opt.title = f.aviso; + destino.appendChild(opt); + }); + }); +} + function renderButterchurn() { if (state.engine !== "butterchurn") return; const b = state.butterchurn; fillSelectOnce($("#bc-preset"), state.meta.butterchurnPresets, (n) => n, (n) => n); - if (b.preset) $("#bc-preset").value = b.preset; + // El preset se sigue solo con el cambio automatico: no lo movemos mientras + // el usuario tiene la lista abierta eligiendo. + if (b.preset && document.activeElement !== $("#bc-preset")) { + $("#bc-preset").value = b.preset; + } $("#bc-shuffle").checked = b.shuffle; $("#bc-mode-seconds").classList.toggle("active", b.intervalMode === "seconds"); $("#bc-mode-beats").classList.toggle("active", b.intervalMode === "beats"); @@ -272,22 +445,76 @@ function renderEditor() { } } +/* Frase de una linea que dice exactamente que va a salir por el proyector + con los ajustes actuales. Es la respuesta a "y esto ahora que hace": el + mezclador tiene dos capas (fondo + clip) y tres formas de combinarlas. */ +function mixerResumen(m) { + const fondo = m.fondo === "butter" + ? "las visuales Butter (MilkDrop)" : "la camara"; + const clip = m.video ? tituloClip(m.video) : "el clip"; + if (m.source === "video") { + return m.video + ? "En pantalla: solo " + clip + ", a pantalla completa. El fondo no se usa." + : "En pantalla: nada todavia, elige un clip en la lista."; + } + if (m.source === "cam") { + return "En pantalla: solo " + fondo + ", a pantalla completa. " + + "El clip no se usa."; + } + if (m.blendMode === "recorte") { + return "En pantalla: " + clip + " recortado (su negro se vuelve " + + "transparente) DELANTE de " + fondo + ". El deslizador de arriba " + + "ajusta el umbral del recorte."; + } + const modo = $("#mix-blend").selectedOptions[0]; + return "En pantalla: " + clip + " y " + fondo + " combinados en modo " + + ((modo && modo.textContent) || m.blendMode).toLowerCase() + "."; +} + function renderMixer() { if (state.engine !== "mixer") return; const m = state.mixer; + const esButter = m.fondo === "butter"; + const usaFondo = m.source === "cam" || m.source === "mix"; + const usaClip = m.source === "video" || m.source === "mix"; + $$("#mixer-source .segbtn").forEach((b) => b.classList.toggle("active", b.dataset.src === m.source)); $("#mix-cam").checked = m.camOn; fillSelectOnce($("#mix-camera"), state.meta.cameraDevices, (d) => d.id, (d) => d.name); $("#mix-camera").value = m.cameraId; - fillSelectOnce($("#mix-video"), (state.meta.videos || []).map((v) => ({ v })), - (o) => o.v, (o) => o.v); + fillClipSelect($("#mix-video")); $("#mix-video").value = m.video || ""; $("#mix-fondo").value = m.fondo || "cam"; $("#mix-blend").value = m.blendMode; $("#mix-invert").checked = m.invert; $("#mix-beat").checked = m.beatPulse; + + // Cada capa ensena solo sus propios controles: con fondo Butter la camara + // no pinta nada (se apaga de verdad en el escenario) y al reves. + $("#mix-cam-block").hidden = esButter; + $("#mix-bg-block").hidden = !esButter; + // El modo de mezcla solo tiene sentido si se ven las dos capas a la vez + $("#mix-blend-row").hidden = m.source !== "mix"; + // Lo que no se esta usando queda atenuado, no escondido + $("#mix-fondo-row").classList.toggle("dim", !usaFondo); + $("#mix-cam-block").classList.toggle("dim", !usaFondo); + $("#mix-bg-block").classList.toggle("dim", !usaFondo); + $("#mix-clip-label").classList.toggle("dim", !usaClip); + $("#mix-video").classList.toggle("dim", !usaClip); + + // Preset de MilkDrop que hace de fondo (el mismo del motor Butter) + if (esButter) { + const b = state.butterchurn; + fillSelectOnce($("#mix-bg-preset"), state.meta.butterchurnPresets, + (n) => n, (n) => n); + if (b.preset && document.activeElement !== $("#mix-bg-preset")) { + $("#mix-bg-preset").value = b.preset; + } + $("#mix-bg-shuffle").checked = b.shuffle; + } + MIXER_SLIDERS.forEach((cfg) => { const input = $("#ms-" + cfg.key); if (input && document.activeElement !== input) { @@ -295,6 +522,13 @@ function renderMixer() { $("#mv-" + cfg.key).textContent = fmt(m[cfg.key], cfg.step); } }); + // En modo recorte el deslizador de mezcla no funde: fija el umbral + $("#ml-mix").textContent = (m.source === "mix" && m.blendMode === "recorte") + ? "Umbral del recorte" : "Mezcla A/B"; + $("#mv-mix").parentElement.parentElement.classList.toggle("dim", + m.source !== "mix"); + + $("#mix-resumen").textContent = mixerResumen(m); } function renderProjectM() { @@ -429,15 +663,52 @@ const MAP_MAXN = 6; const sidx = (c, r, n) => r * (n + 1) + c; const cl01 = (v) => (v < 0 ? 0 : v > 1 ? 1 : v); +/* Normaliza una capa: geometria a formato malla y ajustes con sus valores por + defecto. Tiene que coincidir con migrate() de stage/mapper.js. */ function mapMigrate(s) { - if (Array.isArray(s.points) && s.n) - return { id: s.id, n: s.n, points: s.points.map((p) => [p[0], p[1]]) }; - if (Array.isArray(s.corners)) { + const capa = { + id: s.id, + nombre: s.nombre || "", + visible: s.visible !== false, + opacidad: typeof s.opacidad === "number" ? s.opacidad : 1, + mezcla: s.mezcla === "sumar" ? "sumar" : "normal", + fuente: Object.assign({ tipo: "motor" }, s.fuente || {}), + }; + if (Array.isArray(s.points) && s.n) { + capa.n = s.n; capa.points = s.points.map((p) => [p[0], p[1]]); + } else if (Array.isArray(s.corners)) { const c = s.corners; - return { id: s.id, n: 1, points: [[c[0][0], c[0][1]], [c[1][0], c[1][1]], - [c[3][0], c[3][1]], [c[2][0], c[2][1]]] }; // TL,TR,BL,BR + capa.n = 1; + capa.points = [[c[0][0], c[0][1]], [c[1][0], c[1][1]], + [c[3][0], c[3][1]], [c[2][0], c[2][1]]]; // TL,TR,BL,BR + } else { + capa.n = 1; + capa.points = [[0.3, 0.3], [0.7, 0.3], [0.3, 0.7], [0.7, 0.7]]; } - return { id: s.id, n: 1, points: [[0.3, 0.3], [0.7, 0.3], [0.3, 0.7], [0.7, 0.7]] }; + return capa; +} + +// Etiqueta corta de la fuente de una capa (la que sale en la lista) +const FUENTE_NOMBRE = { + motor: "El motor de MOTORES", butter: "MilkDrop propio", + shader: "Shader GLSL", video: "Clip de la galeria", + camara: "Camara", negro: "Negro (tapa)", +}; +function fuenteTexto(f) { + f = f || {}; + const base = FUENTE_NOMBRE[f.tipo] || FUENTE_NOMBRE.motor; + if (f.tipo === "butter") { + if (f.biblioteca === "projectm") { + return "projectM" + (f.milk + ? " · " + f.milk.split("/").pop().replace(/\.milk$/i, "") + : " · sin preset elegido"); + } + return base + (f.auto ? " · cambio automatico" + : (f.preset ? " · " + f.preset : "")); + } + if (f.tipo === "video" && f.archivo) return base + " · " + etiquetaClip(f.archivo); + if (f.tipo === "shader" && f.shader) return base + " · " + f.shader; + return base; } function mapSample(s, u, v) { const n = s.n; @@ -454,7 +725,8 @@ function mapResample(s, newN) { const pts = []; for (let r = 0; r <= newN; r++) for (let c = 0; c <= newN; c++) pts.push(mapSample(s, c / newN, r / newN)); - return { id: s.id, n: newN, points: pts }; + // Solo cambia la malla: los ajustes de la capa se conservan + return Object.assign(mapMigrate(s), { n: newN, points: pts }); } function mapPointInQuad(x, y, c) { let inside = false; @@ -470,6 +742,18 @@ function mapOutline(s) { } const mapSelSurf = () => (mapSel && mapSel.type === "surface") ? mapSurfaces.find((s) => s.id === mapSel.id) : null; +/* Rotulo centrado que no se sale del lienzo: si la capa esta pegada a un + borde, el texto se recorta y se empuja hacia dentro. */ +function rotulo(ctx, txt, x, y, w) { + let t = txt; + while (t.length > 6 && ctx.measureText(t).width > w - 12) { + t = t.slice(0, -2); + } + if (t !== txt) t = t.slice(0, -1) + "…"; + const media = ctx.measureText(t).width / 2; + ctx.fillText(t, Math.min(Math.max(x, media + 5), w - media - 5), y); +} + function drawMapPreview() { const cv = $("#map-preview"); if (!cv) return; @@ -486,7 +770,7 @@ function drawMapPreview() { ctx.textAlign = "center"; ctx.textBaseline = "middle"; if (!mapSurfaces.length && !mapMasks.length) { ctx.fillStyle = "rgba(255,255,255,0.4)"; - ctx.fillText("Pulsa '+ Superficie'", w / 2, h / 2); + ctx.fillText("Pulsa '+ Capa'", w / 2, h / 2); return; } // superficies (malla n x n) @@ -494,13 +778,28 @@ function drawMapPreview() { const n = s.n; const sel = mapSel && mapSel.type === "surface" && mapSel.id === s.id; const col = sel ? "#00e5ff" : "#b4ff00"; + ctx.globalAlpha = s.visible ? 1 : 0.35; const P = (c, r) => { const p = s.points[sidx(c, r, n)]; return [p[0] * w, p[1] * h]; }; ctx.strokeStyle = sel ? "rgba(0,229,255,0.45)" : "rgba(180,255,0,0.3)"; ctx.lineWidth = 1; for (let r = 0; r <= n; r++) { ctx.beginPath(); for (let c = 0; c <= n; c++) { const p = P(c, r); c ? ctx.lineTo(p[0], p[1]) : ctx.moveTo(p[0], p[1]); } ctx.stroke(); } for (let c = 0; c <= n; c++) { ctx.beginPath(); for (let r = 0; r <= n; r++) { const p = P(c, r); r ? ctx.lineTo(p[0], p[1]) : ctx.moveTo(p[0], p[1]); } ctx.stroke(); } - const cc = P((n / 2) | 0, (n / 2) | 0); - ctx.fillStyle = col; ctx.fillText(String(i + 1), cc[0], cc[1]); + // Nombre en el centro de verdad (el medio de las cuatro esquinas). La + // linea de la fuente solo en la capa seleccionada: con varias capas + // solapadas, los rotulos se pisaban unos a otros y no se leia nada. + const esq = [P(0, 0), P(n, 0), P(n, n), P(0, n)]; + const cc = [(esq[0][0] + esq[1][0] + esq[2][0] + esq[3][0]) / 4, + (esq[0][1] + esq[1][1] + esq[2][1] + esq[3][1]) / 4]; + ctx.shadowColor = "#000"; ctx.shadowBlur = 5; // legible sobre la malla + ctx.fillStyle = col; + rotulo(ctx, s.nombre || "Capa " + (i + 1), cc[0], sel ? cc[1] - 8 : cc[1], w); + if (sel) { + ctx.font = "11px system-ui, sans-serif"; + ctx.fillStyle = "rgba(0,229,255,0.85)"; + rotulo(ctx, fuenteTexto(s.fuente), cc[0], cc[1] + 9, w); + ctx.font = "600 13px system-ui, sans-serif"; + } + ctx.shadowBlur = 0; for (let r = 0; r <= n; r++) for (let c = 0; c <= n; c++) { const p = P(c, r); ctx.beginPath(); ctx.arc(p[0], p[1], MAP_H, 0, Math.PI * 2); @@ -559,13 +858,15 @@ function onMapDown(ev) { ev.preventDefault(); const p = mapLocalPt(ev); const hit = mapPick(p); - if (!hit) { mapSel = null; mapDrag = null; drawMapPreview(); updateMapSelBar(); return; } + // Tocar fuera deselecciona; tocar dentro de una capa la selecciona y + // ensena sus propiedades (asi se elige la fuente sin buscarla en la lista). + if (!hit) { mapSel = null; mapDrag = null; drawMapPreview(); renderCapas(); renderPropiedades(); return; } mapSel = { type: hit.type, id: hit.id }; const arr = hit.type === "surface" ? mapSurfaces.find((s) => s.id === hit.id).points : mapMasks.find((m) => m.id === hit.id).corners; mapDrag = { type: hit.type, id: hit.id, pt: hit.pt, sx: p.x, sy: p.y, orig: arr.map((q) => q.slice()) }; - drawMapPreview(); updateMapSelBar(); + drawMapPreview(); renderCapas(); renderPropiedades(); } function onMapMove(ev) { if (!mapDrag) return; @@ -591,51 +892,206 @@ function emitMapNow() { socket.emit("set_mapping", { surfaces: mapSurfaces, masks: mapMasks }); } -function updateMapSelBar() { - const bar = $("#map-selbar"); +/* Cambia ajustes de una capa y lo manda. Todo el panel de propiedades pasa + por aqui: modifica solo la capa seleccionada y deja el resto igual. */ +function patchCapa(id, patch) { + mapSurfaces = mapSurfaces.map((s) => + (s.id === id ? Object.assign({}, s, patch) : s)); + emitMapNow(); +} +function patchFuente(id, patch) { + const s = mapSurfaces.find((x) => x.id === id); + if (!s) return; + patchCapa(id, { fuente: Object.assign({}, s.fuente, patch) }); +} +function moverCapa(id, delta) { + const i = mapSurfaces.findIndex((s) => s.id === id); + const j = i + delta; + if (i < 0 || j < 0 || j >= mapSurfaces.length) return; + const arr = mapSurfaces.slice(); + arr.splice(j, 0, arr.splice(i, 1)[0]); + mapSurfaces = arr; + emitMapNow(); +} + +// ---------------------------------------------------------------- la lista +function renderCapas() { + const list = $("#map-list"); + const sig = mapSurfaces.map((s) => [s.id, s.nombre, s.visible, s.n, + fuenteTexto(s.fuente)].join(",")).join("|") + + "##" + mapMasks.map((k) => k.id).join("|") + + "##" + (mapSel ? mapSel.type + mapSel.id : ""); + $("#map-list-vacio").hidden = !!(mapSurfaces.length || mapMasks.length); + if (list.dataset.sig === sig) return; + list.dataset.sig = sig; + list.innerHTML = ""; + + const fila = (opciones) => { + const row = document.createElement("div"); + row.className = "capa" + (opciones.sel ? " sel" : "") + + (opciones.oculta ? " oculta" : "") + + (opciones.mascara ? " mascara" : ""); + row.addEventListener("click", opciones.onSel); + const txt = document.createElement("div"); + txt.className = "txt"; + txt.innerHTML = ''; + txt.querySelector(".nom").textContent = opciones.nombre; + txt.querySelector(".src").textContent = opciones.sub; + row.appendChild(txt); + (opciones.botones || []).forEach((b) => { + const el = document.createElement("button"); + el.textContent = b.txt; + el.title = b.titulo || ""; + if (b.clase) el.className = b.clase; + if (b.off) el.disabled = true; + el.addEventListener("click", (e) => { e.stopPropagation(); b.fn(); }); + row.appendChild(el); + }); + list.appendChild(row); + }; + + // Las capas se pintan de arriba abajo: la ultima de la lista queda encima + // en el proyector, asi que la ensenamos al reves (como en cualquier VJ). + mapSurfaces.slice().reverse().forEach((s, ri) => { + const i = mapSurfaces.length - 1 - ri; + fila({ + nombre: s.nombre || "Capa " + (i + 1), + sub: fuenteTexto(s.fuente) + " · malla " + s.n + "x" + s.n, + sel: mapSel && mapSel.type === "surface" && mapSel.id === s.id, + oculta: !s.visible, + onSel: () => { mapSel = { type: "surface", id: s.id }; renderMapping(); }, + botones: [ + { txt: s.visible ? "◉" : "○", titulo: "Ver / ocultar", + fn: () => patchCapa(s.id, { visible: !s.visible }) }, + { txt: "▲", titulo: "Subir (mas al frente)", off: i === mapSurfaces.length - 1, + fn: () => moverCapa(s.id, 1) }, + { txt: "▼", titulo: "Bajar (mas al fondo)", off: i === 0, + fn: () => moverCapa(s.id, -1) }, + { txt: "✕", titulo: "Borrar capa", clase: "del", fn: () => { + mapSurfaces = mapSurfaces.filter((x) => x.id !== s.id); + if (mapSel && mapSel.id === s.id) mapSel = null; + emitMapNow(); + } }, + ], + }); + }); + + mapMasks.forEach((k, i) => fila({ + nombre: "Mascara " + (i + 1), + sub: "Recuadro negro que tapa", + sel: mapSel && mapSel.type === "mask" && mapSel.id === k.id, + onSel: () => { mapSel = { type: "mask", id: k.id }; renderMapping(); }, + mascara: true, + botones: [{ txt: "✕", titulo: "Borrar mascara", clase: "del", fn: () => { + mapMasks = mapMasks.filter((x) => x.id !== k.id); + if (mapSel && mapSel.id === k.id) mapSel = null; + emitMapNow(); + } }], + })); +} + +// ---------------------------------------------------------- las propiedades +function renderPropiedades() { const s = mapSelSurf(); - if (!s) { bar.hidden = true; return; } - bar.hidden = false; + const esMascara = mapSel && mapSel.type === "mask"; + $("#prop-vacio").hidden = !!(s || esMascara); + $("#prop-capa").hidden = !s; + $("#prop-mascara").hidden = !esMascara; + const i = s ? mapSurfaces.findIndex((x) => x.id === s.id) : -1; + $("#prop-titulo").textContent = s + ? (s.nombre || "Capa " + (i + 1)) + : (esMascara ? "Mascara" : "Propiedades"); + if (!s) return; + + const f = s.fuente; + if (document.activeElement !== $("#prop-nombre")) { + $("#prop-nombre").value = s.nombre; + $("#prop-nombre").placeholder = "Capa " + (i + 1); + } + $("#prop-fuente").value = f.tipo; + $$(".fuente-op").forEach((el) => { el.hidden = true; }); + const bloque = $("#fop-" + f.tipo); + if (bloque) bloque.hidden = false; + + if (f.tipo === "butter") { + const esMilk = f.biblioteca === "projectm"; + $("#prop-biblioteca").value = esMilk ? "projectm" : "butter"; + $("#fop-bib-butter").hidden = esMilk; + $("#fop-bib-milk").hidden = !esMilk; + if (esMilk) renderMilkCapa(f); + + fillSelectOnce($("#prop-preset"), state.meta.butterchurnPresets, + (n) => n, (n) => n); + if (f.preset && document.activeElement !== $("#prop-preset")) { + $("#prop-preset").value = f.preset; + } + $("#prop-auto").checked = !!f.auto; + $("#prop-auto-row").hidden = !f.auto; + $("#prop-seg").hidden = !f.auto; + $("#prop-seg").value = f.segundos || 20; + $("#prop-seg-val").textContent = f.segundos || 20; + // Con el cambio automatico puesto manda el reloj: elegir preset a mano + // no haria nada, asi que se apaga en vez de mentir. Con la biblioteca de + // projectM el preset va clavado, asi que el automatico tampoco aplica. + $("#prop-auto").disabled = esMilk; + $("#prop-preset").disabled = !!f.auto; + $("#prop-preset-prev").disabled = !!f.auto; + $("#prop-preset-next").disabled = !!f.auto; + const tr = typeof f.transicion === "number" ? f.transicion : 2.5; + if (document.activeElement !== $("#prop-transicion")) { + $("#prop-transicion").value = tr; + } + $("#prop-tr-val").textContent = Number(tr).toFixed(1); + } else if (f.tipo === "shader") { + fillSelectOnce($("#prop-shader"), shaderLib, (x) => x.id, (x) => x.name); + $("#prop-shader").value = f.shader || ""; + } else if (f.tipo === "video") { + fillClipSelect($("#prop-video")); + $("#prop-video").value = f.archivo || ""; + } else if (f.tipo === "camara") { + fillSelectOnce($("#prop-camara"), state.meta.cameraDevices, + (d) => d.id, (d) => d.name); + $("#prop-camara").value = f.camaraId || 0; + } + + if (document.activeElement !== $("#prop-opacidad")) { + $("#prop-opacidad").value = s.opacidad; + } + $("#prop-op-val").textContent = Math.round(s.opacidad * 100); + $("#prop-mezcla").value = s.mezcla; $("#map-sub-val").textContent = s.n + "x" + s.n; } -// refleja estado, dibuja previsualizacion y listas (superficies + mascaras) +// refleja estado, dibuja previsualizacion, lista de capas y propiedades function renderMapping() { const m = state.mapping || { enabled: false, edit: false, surfaces: [], masks: [] }; const en = $("#map-enabled"), ed = $("#map-edit"); if (document.activeElement !== en) en.checked = !!m.enabled; if (document.activeElement !== ed) ed.checked = !!m.edit; ed.disabled = !m.enabled; - const surfaces = m.surfaces || [], masks = m.masks || []; - if (!mapDrag) { - mapSurfaces = surfaces.map(mapMigrate); - mapMasks = masks.map((k) => ({ id: k.id, corners: k.corners.map((p) => [p[0], p[1]]) })); + // Mientras se arrastra, se escribe un nombre o queda un envio de nombre + // pendiente, no pisamos la copia local: el estado que llega todavia es el + // de antes y borraria lo que se acaba de escribir. + const escribiendo = document.activeElement === $("#prop-nombre") || !!nombreTimer; + if (!mapDrag && !escribiendo) { + mapSurfaces = (m.surfaces || []).filter((s) => s && s.id).map(mapMigrate); + // Una mascara sin esquinas (mapping.json raro) se descarta en vez de + // reventar el render del panel entero. + mapMasks = (m.masks || []) + .filter((k) => k && Array.isArray(k.corners) && k.corners.length === 4) + .map((k) => ({ id: k.id, corners: k.corners.map((p) => [p[0], p[1]]) })); if (mapSel) { - const ok = mapSel.type === "surface" ? mapSurfaces.some((s) => s.id === mapSel.id) : mapMasks.some((k) => k.id === mapSel.id); + const ok = mapSel.type === "surface" + ? mapSurfaces.some((s) => s.id === mapSel.id) + : mapMasks.some((k) => k.id === mapSel.id); if (!ok) mapSel = null; } } drawMapPreview(); - updateMapSelBar(); - - // lista (superficies + mascaras) con borrar - const list = $("#map-list"); - const sig = surfaces.map((s) => s.id + ":" + (s.n || 1)).join("|") + "##" + masks.map((k) => k.id).join("|"); - if (list.dataset.sig === sig) return; - list.dataset.sig = sig; - list.innerHTML = ""; - const addRow = (label, onDel) => { - const row = document.createElement("div"); row.className = "row"; - const lbl = document.createElement("span"); lbl.className = "label"; lbl.textContent = label; - const del = document.createElement("button"); del.className = "cmd favdel"; del.textContent = "✕"; - del.addEventListener("click", onDel); - row.appendChild(lbl); row.appendChild(del); list.appendChild(row); - }; - surfaces.forEach((s, i) => addRow("Superficie " + (i + 1) + " (" + (s.n || 1) + "x" + (s.n || 1) + ")", - () => socket.emit("set_mapping", { surfaces: surfaces.filter((x) => x.id !== s.id) }))); - masks.forEach((k, i) => addRow("Mascara " + (i + 1), - () => socket.emit("set_mapping", { masks: masks.filter((x) => x.id !== k.id) }))); + renderCapas(); + renderTabsCapas(); + renderPropiedades(); } // ========================================================================== @@ -649,37 +1105,312 @@ $("#map-enabled").addEventListener("change", (e) => socket.emit("set_mapping", { enabled: e.target.checked })); $("#map-edit").addEventListener("change", (e) => socket.emit("set_mapping", { edit: e.target.checked })); -$("#map-add").addEventListener("click", () => { - const cur = (state.mapping && state.mapping.surfaces) || []; - const s = 0.2, cx = 0.5, cy = 0.5; +/* Capa nueva: cae escalonada para que dos seguidas no se solapen del todo, + y queda seleccionada para poder elegir su fuente al momento. */ +/* Crea una capa y devuelve su id. Cae escalonada para que dos seguidas no se + solapen del todo. */ +function nuevaCapa() { + const n = mapSurfaces.length; + const s = 0.18; + const cx = cl01(0.3 + (n % 3) * 0.2), cy = cl01(0.35 + ((n / 3) | 0) * 0.2); const nueva = { id: "s" + Date.now() + "_" + Math.floor(Math.random() * 1e4), n: 1, + nombre: "", visible: true, opacidad: 1, mezcla: "normal", + fuente: fuenteDeCapaNueva(), points: [[cx - s, cy - s], [cx + s, cy - s], [cx - s, cy + s], [cx + s, cy + s]], // TL,TR,BL,BR }; - socket.emit("set_mapping", { enabled: true, edit: true, surfaces: cur.concat([nueva]) }); + mapSurfaces = mapSurfaces.concat([nueva]); + mapSel = { type: "surface", id: nueva.id }; + socket.emit("set_mapping", + { enabled: true, surfaces: mapSurfaces, masks: mapMasks }); + return nueva.id; +} + +$("#map-add").addEventListener("click", () => { + nuevaCapa(); + renderCapas(); renderTabsCapas(); renderPropiedades(); drawMapPreview(); +}); + +/* "+ CAPA" de la barra de arriba: crea la capa y te deja YA dentro de su + pestana, que es lo que hace que trabajar con varias capas no sea un + suplicio de ir y volver a MAPPING. */ +$("#tab-nueva-capa").addEventListener("click", () => { + const id = nuevaCapa(); + renderCapas(); renderTabsCapas(); + setView("capa:" + id); }); $("#map-add-mask").addEventListener("click", () => { - const cur = (state.mapping && state.mapping.masks) || []; const s = 0.15, cx = 0.5, cy = 0.5; const nueva = { id: "m" + Date.now() + "_" + Math.floor(Math.random() * 1e4), corners: [[cx - s, cy - s], [cx + s, cy - s], [cx + s, cy + s], [cx - s, cy + s]], // TL,TR,BR,BL }; - socket.emit("set_mapping", { enabled: true, edit: true, masks: cur.concat([nueva]) }); + mapMasks = mapMasks.concat([nueva]); + mapSel = { type: "mask", id: nueva.id }; + socket.emit("set_mapping", + { enabled: true, surfaces: mapSurfaces, masks: mapMasks }); + renderCapas(); renderPropiedades(); drawMapPreview(); }); $("#map-reset").addEventListener("click", () => { - if (confirm("Borrar todas las superficies y mascaras de mapping?")) + if (confirm("Borrar todas las capas y mascaras del mapping?")) { + mapSurfaces = []; mapMasks = []; mapSel = null; socket.emit("set_mapping", { surfaces: [], masks: [] }); + } }); $("#map-sub-inc").addEventListener("click", () => { const s = mapSelSurf(); if (!s || s.n >= MAP_MAXN) return; - const ns = mapResample(s, s.n + 1); - socket.emit("set_mapping", { surfaces: mapSurfaces.map((x) => x.id === s.id ? ns : x) }); + mapSurfaces = mapSurfaces.map((x) => (x.id === s.id ? mapResample(s, s.n + 1) : x)); + emitMapNow(); }); $("#map-sub-dec").addEventListener("click", () => { const s = mapSelSurf(); if (!s || s.n <= 1) return; - const ns = mapResample(s, s.n - 1); - socket.emit("set_mapping", { surfaces: mapSurfaces.map((x) => x.id === s.id ? ns : x) }); + mapSurfaces = mapSurfaces.map((x) => (x.id === s.id ? mapResample(s, s.n - 1) : x)); + emitMapNow(); +}); + +// --- Propiedades de la capa seleccionada --- +const selId = () => (mapSel && mapSel.type === "surface" ? mapSel.id : null); + +// El nombre se guarda con calma: cada pulsacion escribe mapping.json en el +// disco, asi que no mandamos una por tecla. +let nombreTimer = null; +$("#prop-nombre").addEventListener("input", (e) => { + const id = selId(); if (!id) return; + mapSurfaces = mapSurfaces.map((s) => + (s.id === id ? Object.assign({}, s, { nombre: e.target.value }) : s)); + clearTimeout(nombreTimer); + nombreTimer = setTimeout(() => { nombreTimer = null; emitMapNow(); }, 400); +}); +$("#prop-nombre").addEventListener("change", () => { renderCapas(); drawMapPreview(); }); + +/* Al cambiar de fuente estrenamos ajustes con algo que se vea ya: un preset al + azar, el primer shader o el primer clip de la lista. Elegir "MilkDrop" y + quedarse en negro esperando a rellenar otro desplegable es de las cosas que + mas despistan. */ +function fuenteEstrenada(tipo) { + const f = { tipo: tipo }; + if (tipo === "butter") { + const ps = (state.meta && state.meta.butterchurnPresets) || []; + f.preset = ps.length ? ps[Math.floor(Math.random() * ps.length)] : ""; + f.biblioteca = "butter"; f.milk = ""; + f.auto = false; f.segundos = 20; f.transicion = 2.5; + } else if (tipo === "shader") { + f.shader = shaderLib.length ? shaderLib[0].id : ""; + } else if (tipo === "video") { + const vs = (state.meta && state.meta.videos) || []; + f.archivo = vs.length ? vs[0] : ""; + } else if (tipo === "camara") { + f.camaraId = 0; + } + return f; +} + +/* Fuente con la que nace una capa nueva. NO puede ser "motor": esa fuente es + literalmente el lienzo del motor activo, asi que dos capas recien creadas + ensenaban la misma imagen y parecia que las capas no fueran independientes. + Nace en MilkDrop con preset al azar — contenido distinto desde el primer + clic — y solo cae en "motor" si Butterchurn aun no ha dado su lista. */ +function fuenteDeCapaNueva() { + const ps = (state.meta && state.meta.butterchurnPresets) || []; + return ps.length ? fuenteEstrenada("butter") : { tipo: "motor" }; +} + +$("#prop-fuente").addEventListener("change", (e) => { + const id = selId(); if (!id) return; + patchCapa(id, { fuente: fuenteEstrenada(e.target.value) }); + renderCapas(); renderPropiedades(); drawMapPreview(); +}); + +/* --- Biblioteca de projectM dentro de una capa --- + La ruta de un preset es "Categoria/Visual/Variante.milk"; el escenario la + pide al backend y la traduce a Butterchurn al vuelo (ver layers.js). Aqui + solo se elige. Las categorias y visuales ya vienen en el estado; las + variantes se piden al servidor al cambiar de visual, igual que hace el + motor projectM. */ +function partesMilk(ruta) { + const p = String(ruta || "").split("/"); + return { cat: p[0] || "", vis: p[1] || "", + vari: (p[2] || "").replace(/\.milk$/i, "") }; +} + +function rellena(sel, items, vacio) { + const sig = vacio + "|" + items.join("|"); + if (sel.dataset.sig === sig) return false; + sel.dataset.sig = sig; + sel.innerHTML = ""; + const o0 = document.createElement("option"); + o0.value = ""; o0.textContent = vacio; + sel.appendChild(o0); + items.forEach((v) => { + const o = document.createElement("option"); + o.value = v; o.textContent = v; + sel.appendChild(o); + }); + return true; +} + +function renderMilkCapa(f) { + const lib = (state.meta && state.meta.projectmPresets) || {}; + const { cat, vis, vari } = partesMilk(f.milk); + const cats = Object.keys(lib); + + rellena($("#prop-milk-cat"), cats, "-- categoria --"); + $("#prop-milk-cat").value = cat; + + rellena($("#prop-milk-vis"), cat ? (lib[cat] || []) : [], + cat ? "-- visual --" : "-- elige antes una categoria --"); + $("#prop-milk-vis").value = vis; + + const varSel = $("#prop-milk-var"); + const sig = cat + "|" + vis; + if (varSel.dataset.pedido !== sig) { + varSel.dataset.pedido = sig; + rellena(varSel, [], cat && vis ? "cargando variantes..." + : "-- elige antes un visual --"); + if (cat && vis) { + fetch("/pm/variantes?categoria=" + encodeURIComponent(cat) + + "&visual=" + encodeURIComponent(vis)) + .then((r) => r.json()) + .then((d) => { + if (varSel.dataset.pedido !== sig) return; // cambio a medias + varSel.dataset.sig = ""; // forzar repintado + rellena(varSel, d.variantes || [], "-- variante --"); + const s = mapSelSurf(); + varSel.value = partesMilk(s && s.fuente && s.fuente.milk).vari; + }) + .catch(() => rellena(varSel, [], "-- no se pudieron leer --")); + } + } else if (document.activeElement !== varSel) { + varSel.value = vari; + } + + const est = $("#prop-milk-est"); + if (est) { + est.textContent = f.milk + ? "En esta capa: " + f.milk.replace(/\.milk$/i, "") + : "Elige categoria, visual y variante — o pulsa 'Uno al azar'."; + } +} + +/* Pone en la capa el .milk que toque, con lo que haya elegido de cada nivel. + Sin variante no hay preset que cargar: se coge la primera del visual. */ +function ponMilk(cat, vis, vari) { + const id = selId(); if (!id) return; + if (!cat || !vis) { patchFuente(id, { biblioteca: "projectm", milk: "" }); return; } + if (vari) { + patchFuente(id, { biblioteca: "projectm", milk: `${cat}/${vis}/${vari}.milk` }); + return; + } + fetch("/pm/variantes?categoria=" + encodeURIComponent(cat) + + "&visual=" + encodeURIComponent(vis)) + .then((r) => r.json()) + .then((d) => { + const v = (d.variantes || [])[0]; + patchFuente(id, { biblioteca: "projectm", + milk: v ? `${cat}/${vis}/${v}.milk` : "" }); + }) + .catch(() => {}); +} + +$("#prop-biblioteca").addEventListener("change", (e) => { + const id = selId(); if (!id) return; + if (e.target.value === "projectm") { + // Estrenar con algo que se vea: si no habia .milk, uno al azar + const s = mapSelSurf(); + if (s && s.fuente && s.fuente.milk) patchFuente(id, { biblioteca: "projectm" }); + else { patchFuente(id, { biblioteca: "projectm", auto: false }); milkAzar(); } + } else { + patchFuente(id, { biblioteca: "butter" }); + } + renderPropiedades(); +}); + +$("#prop-milk-cat").addEventListener("change", (e) => + ponMilk(e.target.value, "", "")); +$("#prop-milk-vis").addEventListener("change", (e) => + ponMilk($("#prop-milk-cat").value, e.target.value, "")); +$("#prop-milk-var").addEventListener("change", (e) => + ponMilk($("#prop-milk-cat").value, $("#prop-milk-vis").value, e.target.value)); + +function milkAzar() { + const lib = (state.meta && state.meta.projectmPresets) || {}; + const cats = Object.keys(lib).filter((c) => (lib[c] || []).length); + if (!cats.length) { + showNotif({ level: "warn", message: "No hay biblioteca de projectM " + + "instalada: data/presets-projectm esta vacia." }); + return; + } + const cat = cats[Math.floor(Math.random() * cats.length)]; + const viss = lib[cat]; + ponMilk(cat, viss[Math.floor(Math.random() * viss.length)], ""); +} +$("#prop-milk-azar").addEventListener("click", milkAzar); + +$("#prop-preset").addEventListener("change", (e) => { + const id = selId(); if (id) patchFuente(id, { preset: e.target.value }); +}); +function pasoPresetCapa(delta) { + const id = selId(); const s = mapSelSurf(); + const ps = (state && state.meta.butterchurnPresets) || []; + if (!id || !s || !ps.length) return; + const i = ps.indexOf(s.fuente.preset); + patchFuente(id, { preset: ps[((i < 0 ? 0 : i) + delta + ps.length) % ps.length] }); +} +$("#prop-preset-prev").addEventListener("click", () => pasoPresetCapa(-1)); +$("#prop-preset-next").addEventListener("click", () => pasoPresetCapa(1)); +$("#prop-auto").addEventListener("change", (e) => { + const id = selId(); if (id) patchFuente(id, { auto: e.target.checked }); +}); +$("#prop-seg").addEventListener("input", (e) => + $("#prop-seg-val").textContent = e.target.value); +$("#prop-seg").addEventListener("change", (e) => { + const id = selId(); + if (id) patchFuente(id, { segundos: parseInt(e.target.value, 10) }); +}); +$("#prop-transicion").addEventListener("input", (e) => + $("#prop-tr-val").textContent = Number(e.target.value).toFixed(1)); +$("#prop-transicion").addEventListener("change", (e) => { + const id = selId(); + if (id) patchFuente(id, { transicion: parseFloat(e.target.value) }); +}); +$("#prop-shader").addEventListener("change", (e) => { + const id = selId(); if (id) patchFuente(id, { shader: e.target.value }); +}); +$("#prop-video").addEventListener("change", (e) => { + const id = selId(); if (id) patchFuente(id, { archivo: e.target.value }); +}); +$("#prop-camara").addEventListener("change", (e) => { + const id = selId(); if (id) patchFuente(id, { camaraId: parseInt(e.target.value, 10) }); +}); +$("#prop-opacidad").addEventListener("input", (e) => + $("#prop-op-val").textContent = Math.round(parseFloat(e.target.value) * 100)); +$("#prop-opacidad").addEventListener("change", (e) => { + const id = selId(); + if (id) patchCapa(id, { opacidad: parseFloat(e.target.value) }); +}); +$("#prop-mezcla").addEventListener("change", (e) => { + const id = selId(); if (id) patchCapa(id, { mezcla: e.target.value }); +}); + +/* Convierte la mascara seleccionada en una capa en el mismo sitio. Es el + error mas facil de cometer: pulsar "+ Mascara" buscando donde poner un + visual. En vez de dejar el callejon sin salida, se sale de el. */ +$("#mask-a-capa").addEventListener("click", () => { + if (!mapSel || mapSel.type !== "mask") return; + const m = mapMasks.find((k) => k.id === mapSel.id); + if (!m) return; + const c = m.corners; // TL,TR,BR,BL -> la capa los quiere TL,TR,BL,BR + const nueva = { + id: "s" + Date.now() + "_" + Math.floor(Math.random() * 1e4), n: 1, + nombre: "", visible: true, opacidad: 1, mezcla: "normal", + fuente: fuenteDeCapaNueva(), + points: [c[0].slice(), c[1].slice(), c[3].slice(), c[2].slice()], + }; + mapMasks = mapMasks.filter((k) => k.id !== m.id); + mapSurfaces = mapSurfaces.concat([nueva]); + mapSel = { type: "surface", id: nueva.id }; + emitMapNow(); + renderCapas(); renderPropiedades(); drawMapPreview(); }); // Previsualizacion arrastrable (raton + tactil via pointer events) (function () { @@ -792,6 +1523,25 @@ $("#mix-blend").addEventListener("change", (e) => socket.emit("update_settings", { engine: "mixer", patch: { blendMode: e.target.value } })); $("#mix-rescan").addEventListener("click", () => socket.emit("rescan_videos")); +// Fondo de visuales Butter: es el mismo preset del motor Butter, asi que se +// cambia por el estado (no con un comando al escenario) y queda elegido en +// los dos sitios. +$("#mix-bg-preset").addEventListener("change", (e) => + socket.emit("update_settings", + { engine: "butterchurn", patch: { preset: e.target.value } })); +$("#mix-bg-shuffle").addEventListener("change", (e) => + socket.emit("update_settings", + { engine: "butterchurn", patch: { shuffle: e.target.checked } })); +function pasoFondo(delta) { + const names = (state && state.meta.butterchurnPresets) || []; + if (!names.length) return; + const i = names.indexOf(state.butterchurn.preset); + const next = ((i < 0 ? 0 : i) + delta + names.length) % names.length; + socket.emit("update_settings", + { engine: "butterchurn", patch: { preset: names[next] } }); +} +$("#mix-bg-prev").addEventListener("click", () => pasoFondo(-1)); +$("#mix-bg-next").addEventListener("click", () => pasoFondo(1)); $("#mix-invert").addEventListener("change", (e) => socket.emit("update_settings", { engine: "mixer", patch: { invert: e.target.checked } })); @@ -837,7 +1587,7 @@ $("#mix-upload").addEventListener("change", () => { const fd = new FormData(); fd.append("file", f); const xhr = new XMLHttpRequest(); - xhr.open("POST", "/upload"); + xhr.open("POST", "/upload" + (CLAVE ? "?k=" + encodeURIComponent(CLAVE) : "")); xhr.upload.onprogress = (e) => { if (e.lengthComputable) { status.textContent = "subiendo " + Math.round(e.loaded / e.total * 100) + "%"; diff --git a/web/stage/index.html b/web/stage/index.html index 1a834ce..f108a8f 100644 --- a/web/stage/index.html +++ b/web/stage/index.html @@ -70,7 +70,11 @@ + + + diff --git a/web/stage/layers.js b/web/stage/layers.js new file mode 100644 index 0000000..874882a --- /dev/null +++ b/web/stage/layers.js @@ -0,0 +1,457 @@ +/* + * FOSFENO :: Capas del mapping + * -------------------------------------------------------------------------- + * Cada superficie del mapping puede llevar su PROPIA fuente: una instancia de + * Butterchurn con su preset, un shader GLSL, un clip de la galeria, la camara + * o el motor que este activo. Este modulo crea esas fuentes, las mantiene y + * le entrega al mapper el elemento que tiene que usar como textura. + * + * Fuente (va dentro de cada superficie, en data/mapping.json): + * { tipo: "motor" } el motor elegido en el panel + * { tipo: "butter", preset, auto, segundos } instancia propia de MilkDrop + * biblioteca: "butter" (los ~100 que trae Butterchurn) o "projectm" + * (los .milk de data/presets-projectm); con "projectm", milk lleva la + * ruta relativa del preset ("Dancer/Glowsticks/285.milk") + * { tipo: "shader", shader } shader GLSL de la libreria + * { tipo: "video", archivo } clip o imagen de data/videos + * { tipo: "camara", camaraId } webcam + * { tipo: "negro" } nada (tapa la zona) + * + * Cada capa se renderiza en un lienzo propio y PEQUENO (el mapper la estira + * al deformarla), que es lo que hace viable tener varias a la vez en una + * Raspberry. Las instancias con estado (Butterchurn, shaders) son una por + * superficie; las que no lo tienen (clips, camara) se comparten. + * + * API global: + * FosLayers.init({ audioCtx, gainNode, analyser, crearShader, shaders, report, + * onPreset(surfaceId, preset) }) preset elegido al azar + * FosLayers.setMotor(canvas) lienzo del motor activo (fuente "motor") + * FosLayers.sync(surfaces) crea/actualiza/destruye segun el estado + * FosLayers.fuenteDe(surface) -> { el, clave } o null (lo usa el mapper) + * FosLayers.presets() nombres de preset disponibles + */ +(function () { + 'use strict'; + + const ANCHO = 640; // resolucion interna de cada capa (se estira luego) + const ALTO = 360; + const SEGUNDOS = 20; // cambio automatico de preset por defecto + + let deps = null; + let motorEl = null; + + // Instancias con estado: una por superficie (id de superficie -> capa) + const capas = new Map(); + // Fuentes compartidas sin estado: clip o camara (clave -> recurso) + const compartidas = new Map(); + + const IMAGEN_RE = /\.(jpe?g|png|gif|webp)$/i; + + function aviso(nivel, msg) { + if (deps && deps.report) deps.report(nivel, msg); + else console.warn('[FOSFENO] capas:', msg); + } + + function lienzo() { + const cv = document.createElement('canvas'); + cv.width = ANCHO; cv.height = ALTO; + return cv; + } + + /* Suelta de verdad el contexto WebGL de un lienzo que se tira. Sin esto, el + contexto sigue vivo hasta que pase el recolector: el navegador solo + aguanta unos 16 a la vez y al pasarse mata EL MAS VIEJO, que es el del + compositor de mapping. Resultado: proyector en negro para siempre. */ + function soltarGL(cv) { + try { + const g = cv.getContext('webgl2') || cv.getContext('webgl'); + const ext = g && g.getExtension('WEBGL_lose_context'); + if (ext) ext.loseContext(); + } catch (e) { /* el lienzo no llego a tener contexto */ } + } + + // La fuente de una superficie, siempre normalizada (las superficies + // antiguas no la llevan: son del motor activo, como hasta ahora). + function fuenteDe(s) { + const f = (s && s.fuente) || {}; + return { tipo: f.tipo || 'motor', preset: f.preset || '', auto: !!f.auto, + segundos: f.segundos || SEGUNDOS, shader: f.shader || '', + archivo: f.archivo || '', camaraId: f.camaraId || 0, + biblioteca: f.biblioteca === 'projectm' ? 'projectm' : 'butter', + milk: f.milk || '', + // segundos de fundido al pasar de un preset al siguiente + transicion: typeof f.transicion === 'number' ? f.transicion : 2.5 }; + } + + /* Firma de una fuente: si no cambia, la capa se deja viva y solo se le + pasan los ajustes nuevos con aplicar(). Para Butterchurn la firma es el + tipo a secas, a proposito: cambiar de preset o de cambio automatico NO + puede recrear la instancia, porque cada instancia nueva es un contexto + WebGL mas (ver soltarGL). */ + function firma(f) { + if (f.tipo === 'butter') return 'butter'; + if (f.tipo === 'shader') return 'shader|' + f.shader; + if (f.tipo === 'video') return 'video|' + f.archivo; + if (f.tipo === 'camara') return 'camara|' + f.camaraId; + return f.tipo; + } + + /* ------------------------------------------------- presets .milk (projectM) + La biblioteca gorda son los 9795 .milk de data/presets-projectm, que + projectM lee en nativo y Butterchurn no entiende. Se traducen aqui, en el + navegador, con milkdrop-preset-converter: se pide el .milk al backend (ya + los sirve tal cual), se convierte y se le pasa a viz.loadPreset como + cualquier otro preset. Tarda unos milisegundos y no gasta disco: no hay + que pre-convertir 9795 ficheros en la tarjeta de la Raspberry. + + La cache guarda la promesa, no el resultado: si dos capas piden el mismo + preset a la vez, se convierte una sola vez. */ + const milkCache = new Map(); + + function cargarMilk(ruta) { + if (milkCache.has(ruta)) return milkCache.get(ruta); + const conv = window.milkdropPresetConverter; + if (!conv || !conv.convertPreset) { + return Promise.reject(new Error( + 'falta la libreria de conversion de presets .milk')); + } + const p = fetch('/data/presets-projectm/' + + ruta.split('/').map(encodeURIComponent).join('/')) + .then((r) => { + if (!r.ok) throw new Error('no esta en la biblioteca (' + r.status + ')'); + return r.text(); + }) + .then((txt) => conv.convertPreset(txt)) + .then((preset) => { + if (!preset || !preset.baseVals) throw new Error('conversion vacia'); + return preset; + }) + .catch((e) => { milkCache.delete(ruta); throw e; }); // que se reintente + milkCache.set(ruta, p); + return p; + } + + // ---------------------------------------------------------------- Butter + function crearButter(f) { + if (typeof window.butterchurn === 'undefined' || !window.butterchurnPresets) { + aviso('warn', 'No hay Butterchurn: la capa de visuales MilkDrop se queda en negro.'); + return null; + } + const bch = window.butterchurn.default || window.butterchurn; + const bp = window.butterchurnPresets.default || window.butterchurnPresets; + const presets = bp.getPresets(); + const nombres = Object.keys(presets); + const cv = lienzo(); + let viz; + try { + viz = bch.createVisualizer(deps.audioCtx, cv, { + width: ANCHO, height: ALTO, pixelRatio: 1, + }); + viz.connectAudio(deps.gainNode); + } catch (e) { + aviso('error', 'No se pudo crear la capa de visuales MilkDrop: ' + e.message); + return null; + } + /* Sin preset elegido (capa recien creada antes de que la lista llegara al + panel), indexOf devuelve -1 y el Math.max lo dejaba en 0: TODAS las + capas asi arrancaban en el mismo preset y parecian la misma imagen. + Ahora cada instancia coge uno al azar y lo devuelve en presetElegido, + para que el panel lo ensene en vez de dejar el desplegable en blanco. */ + let i = nombres.indexOf(f.preset); + let presetElegido = ''; + if (i < 0) { + i = Math.floor(Math.random() * nombres.length); + presetElegido = nombres[i]; + } + let raf = null, timer = null, seg = 0, fundido = f.transicion; + + // El fundido lo hace el propio Butterchurn al cargar: a 0 es corte seco, + // a 6 segundos se disuelve uno en otro sin que se note el cambio. + const cargar = (nombre) => { + if (!presets[nombre]) return; + try { viz.loadPreset(presets[nombre], fundido); } catch (e) { /* preset roto */ } + }; + const paso = () => { i = (i + 1) % nombres.length; cargar(nombres[i]); }; + /* Monta o desmonta el cambio automatico sin tocar la instancia. */ + const ritmo = (auto, segundos) => { + const s = Math.max(2, segundos || SEGUNDOS); + if (!!timer === !!auto && (!auto || s === seg)) return; + clearInterval(timer); timer = null; seg = s; + if (auto) timer = setInterval(paso, s * 1000); + }; + + /* Carga un .milk de la biblioteca de projectM. Va por promesa, asi que + hay que descartar el resultado si mientras tanto la capa cambio de + preset o se destruyo: si no, el que tarde mas en convertirse pisa al + que el usuario acaba de elegir. */ + let milkActual = ''; // el que se pidio el ultimo + let muerta = false; + const cargarDeMilk = (ruta) => { + milkActual = ruta; + cargarMilk(ruta).then((preset) => { + if (muerta || milkActual !== ruta) return; + try { viz.loadPreset(preset, fundido); } + catch (e) { aviso('warn', 'El preset .milk "' + ruta + '" no se pudo ' + + 'cargar: ' + e.message); } + }).catch((e) => { + if (muerta || milkActual !== ruta) return; + aviso('warn', 'No se pudo convertir el preset "' + ruta + '": ' + + e.message + '. La capa se queda con el anterior.'); + }); + }; + + if (f.biblioteca === 'projectm' && f.milk) cargarDeMilk(f.milk); + else cargar(nombres[i]); + const bucle = () => { viz.render(); raf = requestAnimationFrame(bucle); }; + bucle(); + ritmo(f.auto, f.segundos); + + return { + el: cv, + // Con un .milk clavado no hay preset de Butterchurn que anotar + presetElegido: (f.biblioteca === 'projectm' && f.milk) ? '' : presetElegido, + // Todos los ajustes se aplican en caliente: nunca hay que recrear la + // instancia (y con ella, un contexto WebGL nuevo). + aplicar(nf) { + fundido = nf.transicion; + if (nf.biblioteca === 'projectm') { + // El cambio automatico es de la lista de Butterchurn: con un .milk + // clavado no tiene sentido dejarlo girando por encima. + if (nf.milk && nf.milk !== milkActual) cargarDeMilk(nf.milk); + ritmo(false, nf.segundos); + return; + } + if (milkActual) { // volvemos a la biblioteca de Butterchurn + milkActual = ''; + cargar(nombres[i]); + } + if (!nf.auto && nf.preset && nf.preset !== nombres[i]) { + const j = nombres.indexOf(nf.preset); + if (j >= 0) { i = j; cargar(nombres[i]); } + } + ritmo(nf.auto, nf.segundos); + }, + destruir() { + muerta = true; + if (raf) cancelAnimationFrame(raf); + clearInterval(timer); + // Sin desconectar, cada instancia tirada deja un analizador colgando + // del audio compartido para siempre. + try { viz.disconnectAudio(deps.gainNode); } catch (e) { /* ya suelto */ } + soltarGL(cv); + }, + }; + } + + // ---------------------------------------------------------------- Shader + function crearShaderCapa(f, nombre) { + const codigo = (deps.shaders && deps.shaders[f.shader] + && deps.shaders[f.shader].code) || ''; + if (!codigo) { + aviso('warn', 'La capa "' + nombre + '" es de shader pero no tiene ' + + 'ninguno elegido: seleccionalo en Propiedades.'); + return null; + } + const cv = lienzo(); + let eng; + try { + eng = deps.crearShader(cv, { width: ANCHO, height: ALTO }); + // Que no compile no puede dejar el contexto colgando (ver soltarGL) + if (!eng.load(codigo)) { + aviso('warn', 'El shader de la capa "' + nombre + '" no compila.'); + soltarGL(cv); + return null; + } + eng.start(); + } catch (e) { + aviso('error', 'La capa de shader "' + nombre + '" fallo: ' + e.message); + soltarGL(cv); + return null; + } + return { + el: cv, aplicar() {}, + destruir() { + try { eng.stop(); } catch (e) { /* ya parado */ } + soltarGL(cv); + }, + }; + } + + // ------------------------------------------------- Clip / imagen / camara + // Sin estado propio: varias superficies pueden compartir el mismo recurso. + function recursoCompartido(clave, crear) { + let r = compartidas.get(clave); + if (!r) { r = crear(); if (!r) return null; compartidas.set(clave, r); } + r.usos = (r.usos || 0) + 1; + return r; + } + + /* Ojo al soltar: vaciar el src de un