Files
djAudiovisualizaerPi/svg/freesvg-speaker-symbol.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

97 lines
6.0 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="393.48242"
height="453.78821"
viewBox="0 0 393.48242 453.78821"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="minimal speaker icon 2.svg"
inkscape:export-filename="/home/qubodup/x22.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
style="shape-rendering:crispEdges">
<defs
id="defs4">
<linearGradient
id="linearGradient3880">
<stop
offset="0"
style="stop-color:#57b7ec"
id="stop3882" />
<stop
offset="1"
style="stop-color:#066b9d"
id="stop3884" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="339.25784"
inkscape:cy="316.67811"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1734"
inkscape:window-height="865"
inkscape:window-x="73"
inkscape:window-y="130"
inkscape:window-maximized="0"
inkscape:snap-bbox="false"
inkscape:object-nodes="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-object-midpoints="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-55,-285.4683)">
<path
id="path4241"
transform="translate(0,-27.637839)"
d="m 363.85547,318.10547 -17.97656,17.58203 c 0,0 16.52752,15.94264 33.54101,50.1875 17.0135,34.24487 34.04492,86.33391 34.04492,157.11719 0,70.78408 -17.06532,121.54454 -34.04492,154.59179 C 362.44113,730.63529 346.13086,745.5 346.13086,745.5 l 18.37695,16.39453 c 0,0 25.53075,-23.20254 43.41016,-58.00586 17.88345,-34.70163 35.56445,-87.96437 35.56445,-160.5957 0,-73.00015 -17.7147,-127.24969 -35.55859,-163.16992 -17.84472,-35.91701 -44.0625,-61.71485 -44.0625,-61.71485 z m -52.71094,50.07226 -0.004,0.20508 -19.48046,16.78711 c 0,0 12.92971,12.15877 26.22851,38.08008 13.29878,25.92052 26.73242,65.32349 26.73242,119.03516 0,53.71168 -13.46915,92.01625 -26.73242,117.01757 -13.26331,25.00132 -25.97656,36.0625 -25.97656,36.0625 l 18.125,17.03907 c 0,0 21.89304,-19.7706 36.0957,-46.54492 14.20264,-26.77354 28.2461,-67.57237 28.2461,-123.57032 0,-56.00118 -14.07896,-97.72991 -28.2461,-125.33789 -14.16715,-27.61443 -34.98828,-48.77344 -34.98828,-48.77344 z m -99.39062,16.84375 c -2.36303,-0.19454 -5.70772,1.16692 -10.40625,4.38282 -18.79515,12.864 -87.07422,87.34765 -87.07422,87.34765 -0.59554,0 -1.06454,0.21213 -1.64258,0.27539 l -52.63086,0 0,130.88477 54.27734,0 c 0,0 67.06648,74.75904 87.07422,87.62305 20.00722,12.86347 15.88086,-7.12385 15.88086,-15.88086 l 0,-274.64258 c 0,-6.56856 1.61235,-19.4036 -5.47656,-19.98828 z m 39.89453,30.81446 -20.26953,18.96094 c 0,0 47.66406,33.54316 47.66406,106.67968 0,73.1333 -47.41211,104.41016 -47.41211,104.41016 l 19.76367,21.18555 c 0,0 57.40625,-46.41246 57.40625,-125.58789 0,-79.18107 -57.1543,-125.63672 -57.1543,-125.63672 z"
style="fill:#2e2e2e;fill-opacity:1;stroke:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccssccccscccccccsscccscccccccccsssccccccscccc" />
<path
style="fill:#343434;fill-opacity:1;stroke:none;stroke-width:5.27213335"
d="m 363.85547,318.10547 -17.97656,17.58203 c 0,0 16.52752,15.94264 33.54101,50.1875 17.0135,34.24487 34.04492,86.33391 34.04492,157.11719 0,70.78408 -17.06532,121.54454 -34.04492,154.59179 C 362.44113,730.63529 346.13086,745.5 346.13086,745.5 l 18.37695,16.39453 c 0,0 25.53075,-23.20254 43.41016,-58.00586 17.88345,-34.70163 35.56445,-87.96437 35.56445,-160.5957 0,-73.00015 -17.7147,-127.24969 -35.55859,-163.16992 -17.84472,-35.91701 -44.0625,-61.71485 -44.0625,-61.71485 z m -52.71094,50.07226 -0.004,0.20508 -19.48046,16.78711 c 0,0 12.92971,12.15877 26.22851,38.08008 13.29878,25.92052 26.73242,65.32349 26.73242,119.03516 0,53.71168 -13.46915,92.01625 -26.73242,117.01757 -13.26331,25.00132 -25.97656,36.0625 -25.97656,36.0625 l 18.125,17.03907 c 0,0 21.89304,-19.7706 36.0957,-46.54492 14.20264,-26.77354 28.2461,-67.57237 28.2461,-123.57032 0,-56.00118 -14.07896,-97.72991 -28.2461,-125.33789 -14.16715,-27.61443 -34.98828,-48.77344 -34.98828,-48.77344 z m -99.39062,16.84375 c -2.36303,-0.19454 -5.70772,1.16692 -10.40625,4.38282 -18.79515,12.864 -87.07422,87.34765 -87.07422,87.34765 -0.59554,0 -1.06454,0.21213 -1.64258,0.27539 l -52.63086,0 0,130.88477 54.27734,0 c 0,0 67.06648,74.75904 87.07422,87.62305 20.00722,12.86347 15.88086,-7.12385 15.88086,-15.88086 l 0,-274.64258 c 0,-6.56856 1.61235,-19.4036 -5.47656,-19.98828 z m 39.89453,30.81446 -20.26953,18.96094 c 0,0 47.66406,33.54316 47.66406,106.67968 0,73.1333 -47.41211,104.41016 -47.41211,104.41016 l 19.76367,21.18555 c 0,0 57.40625,-46.41246 57.40625,-125.58789 0,-79.18107 -57.1543,-125.63672 -57.1543,-125.63672 z"
transform="translate(0,-27.637839)"
id="path2842"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccssccccscccccccsscccscccccccccsssccccccscccc" />
</g>
</svg>