Files
djAudiovisualizaerPi/svg/fireworks-svgrepo-com.svg
T
lucianoandClaude Opus 4.8 b94c787231 DJ Visualizer Pi: standalone Node+WebSocket server with mobile PWA remote
New separate project (the Electron Mac app stays untouched). Reuses the visual
engine (WebGL shaders, effect catalog, Web Audio) verbatim and replaces Electron
IPC with a Node HTTP+WebSocket server:

- server.js: serves the kiosk output page + mobile control PWA, relays the same
  ctl/rpt JSON protocol over WebSocket, plus REST for media library/upload,
  JSON state (pads), waveform peaks and MP4 recording (ffmpeg).
- public/js/net.js: window.djv shim over WebSocket+HTTP so output.js runs intact.
- public/index.html + control.js: touch-first mobile remote (effects, media/queue,
  ticker, pads, audio/EQ, fullscreen + recording).
- PWA (manifest + service worker + generated icons).
- scripts/: Chromium kiosk launcher + install-pi.sh (systemd units for Pi 5).

Verified: REST endpoints, WebSocket relay both directions, control PWA loads the
2958-effect catalog and renders. (Headless WebGL output not testable without GPU.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 13:06:15 +02:00

2 lines
4.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--emojione-monotone" preserveAspectRatio="xMidYMid meet"><path d="M32 30.774s-1.712-10.722-1.712-11.469s.768-1.354 1.712-1.354s1.712.606 1.712 1.354S32 30.774 32 30.774z" fill="#000000"></path><path d="M32 33.277s1.712 10.721 1.712 11.469S32.944 46.1 32 46.1s-1.712-.605-1.712-1.354S32 33.277 32 33.277z" fill="#000000"></path><path d="M30.748 32.025s-10.721 1.712-11.468 1.712c-.748 0-1.354-.767-1.354-1.712c0-.944.606-1.711 1.354-1.711c.747 0 11.468 1.711 11.468 1.711" fill="#000000"></path><path d="M33.252 32.025s10.721-1.711 11.469-1.711c.747 0 1.354.767 1.354 1.711c0 .945-.606 1.712-1.354 1.712c-.748 0-11.469-1.712-11.469-1.712" fill="#000000"></path><path d="M31.114 31.141s-8.791-6.37-9.318-6.899c-.529-.528-.416-1.499.253-2.167c.668-.668 1.638-.781 2.167-.253c.527.528 6.898 9.319 6.898 9.319" fill="#000000"></path><path d="M32.886 32.911s8.791 6.37 9.318 6.899c.529.529.416 1.499-.253 2.168c-.668.668-1.638.781-2.167.252c-.527-.529-6.898-9.319-6.898-9.319" fill="#000000"></path><path d="M31.114 32.911s-6.371 8.79-6.898 9.319c-.529.529-1.499.416-2.167-.252c-.669-.669-.782-1.639-.253-2.168c.527-.529 9.318-6.899 9.318-6.899" fill="#000000"></path><path d="M32.886 31.141s6.371-8.791 6.898-9.319c.529-.528 1.499-.415 2.167.253c.669.668.782 1.639.253 2.167c-.527.529-9.318 6.899-9.318 6.899" fill="#000000"></path><path d="M31.156 29.938s-8.815-17.252-9.319-18.5s-.203-2.546.673-2.9c.877-.354 1.995.371 2.499 1.619c.504 1.246 6.147 19.781 6.147 19.781" fill="#000000"></path><path d="M32.844 34.115s8.815 17.251 9.319 18.5c.504 1.247.203 2.545-.673 2.898c-.877.355-1.995-.369-2.499-1.617s-6.147-19.781-6.147-19.781" fill="#000000"></path><path d="M29.911 32.87s-17.252 8.815-18.5 9.319c-1.248.505-2.546.203-2.9-.674c-.354-.875.371-1.995 1.619-2.499c1.247-.504 19.781-6.146 19.781-6.146" fill="#000000"></path><path d="M34.089 31.182s17.252-8.815 18.5-9.319c1.248-.505 2.546-.202 2.9.674c.354.876-.371 1.995-1.619 2.499c-1.247.503-19.781 6.146-19.781 6.146" fill="#000000"></path><path d="M29.926 31.146s-18.433-5.965-19.671-6.491c-1.238-.525-1.943-1.656-1.574-2.527c.369-.869 1.674-1.148 2.912-.622c1.238.524 18.333 9.64 18.333 9.64" fill="#000000"></path><path d="M34.074 32.906s18.433 5.965 19.671 6.49c1.238.526 1.943 1.658 1.574 2.527c-.369.871-1.674 1.15-2.912.623c-1.238-.525-18.333-9.64-18.333-9.64" fill="#000000"></path><path d="M31.12 34.1s-5.965 18.433-6.491 19.672c-.526 1.238-1.657 1.943-2.527 1.574c-.87-.37-1.148-1.674-.624-2.912c.527-1.239 9.642-18.334 9.642-18.334" fill="#000000"></path><path d="M32.88 29.952s5.965-18.433 6.491-19.671c.526-1.239 1.657-1.943 2.527-1.574s1.149 1.672.624 2.911c-.527 1.239-9.642 18.334-9.642 18.334" fill="#000000"></path><path d="M32.006 47.068s1.714 12.484 1.714 13.354S32.954 62 32.009 62s-1.711-.705-1.711-1.576s1.708-13.356 1.708-13.356" fill="#000000"></path><path d="M31.995 15.955S30.28 4.287 30.28 3.474S31.046 2 31.991 2s1.711.659 1.711 1.473c0 .814-1.707 12.482-1.707 12.482" fill="#000000"></path><path d="M42.659 42.65s10.04 7.616 10.654 8.231c.617.616.574 1.656-.094 2.325c-.668.668-1.709.711-2.324.096c-.616-.614-8.236-10.652-8.236-10.652" fill="#000000"></path><path d="M20.651 20.658s-9.463-7.038-10.039-7.613c-.575-.576-.5-1.584.168-2.252c.668-.669 1.677-.744 2.252-.168c.576.574 7.619 10.033 7.619 10.033" fill="#000000"></path><path d="M42.659 21.349s7.62-10.036 8.236-10.651c.615-.616 1.656-.573 2.324.096c.668.668.711 1.709.094 2.324c-.614.614-10.654 8.231-10.654 8.231" fill="#000000"></path><path d="M20.651 43.341s-7.043 9.46-7.619 10.034c-.575.576-1.584.5-2.252-.168c-.668-.669-.743-1.677-.168-2.252c.576-.575 10.039-7.614 10.039-7.614" fill="#000000"></path><path d="M47.068 31.994s12.484-1.714 13.355-1.714c.871-.001 1.577.766 1.577 1.71c.001.945-.704 1.712-1.575 1.712c-.871.001-13.357-1.708-13.357-1.708" fill="#000000"></path><path d="M15.956 32.006S4.286 33.719 3.474 33.72C2.659 33.72 2 32.953 2 32.009c0-.945.659-1.712 1.474-1.712c.812 0 12.482 1.709 12.482 1.709" fill="#000000"></path><circle cx="20.728" cy="5.096" r="1.84" fill="#000000"></circle><circle cx="43.544" cy="5.096" r="1.84" fill="#000000"></circle><circle cx="20.209" cy="59.025" r="1.841" fill="#000000"></circle><circle cx="43.025" cy="59.025" r="1.841" fill="#000000"></circle><circle cx="4.912" cy="43.209" r="1.84" fill="#000000"></circle><circle cx="4.912" cy="20.393" r="1.84" fill="#000000"></circle><circle cx="58.841" cy="43.728" r="1.841" fill="#000000"></circle><circle cx="58.841" cy="20.912" r="1.84" fill="#000000"></circle></svg>