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>
This commit is contained in:
lucianoandClaude Opus 4.8 committed 2026-06-29 13:06:15 +02:00
commit b94c787231
81 files changed
+23994

No files matched your search

+79
View File
@@ -0,0 +1,79 @@
<?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="81.031418mm"
height="93.854591mm"
viewBox="0 0 81.031418 93.854591"
version="1.1"
id="svg29"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="Public speaker.svg">
<title
id="title44">Public speaker</title>
<defs
id="defs23" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.28756345"
inkscape:cx="1272.9771"
inkscape:cy="78.669811"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="3832"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata26">
<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>Public speaker</dc:title>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-11.374626,-98.942772)">
<path
style="fill:#000000;stroke-width:1"
d="m 42.951976,192.74111 c -3.029622,-0.18122 -5.593464,-0.6446 -7.987064,-1.44354 -2.43054,-0.81127 -3.778722,-1.4468 -6.804863,-3.20778 -1.966296,-1.14422 -2.889924,-1.79857 -4.098043,-2.90326 -2.679094,-2.44973 -4.460273,-4.52099 -6.020886,-7.00145 l -0.463213,-0.73623 -1.16e-4,-8.10883 c -5.6e-5,-4.45986 -0.01718,-8.67326 -0.03802,-9.36312 l -0.03788,-1.25429 H 14.92446 c -1.417589,0 -2.734238,-0.0164 -2.925887,-0.0364 l -0.348453,-0.0364 -0.0366,-1.10253 c -0.07162,-2.15736 -0.26471,-11.99129 -0.236007,-12.01999 0.03103,-0.031 0.413807,-0.0465 10.237202,-0.41266 3.473076,-0.12947 6.426432,-0.24951 6.563014,-0.26674 0.246095,-0.0311 0.248172,-0.0333 0.230675,-0.24358 -0.01687,-0.2028 -0.02708,-0.21224 -0.229398,-0.21224 H 27.96727 l -0.03534,-0.57668 c -0.02902,-0.47352 -0.130646,-3.37721 -0.119448,-3.4129 0.0017,-0.006 0.296926,-0.029 0.655824,-0.0517 l 0.652541,-0.0413 -0.01617,-0.84211 -0.01617,-0.8421 0.410179,-0.0169 c 0.232116,-0.01 0.434118,-0.0471 0.465328,-0.0865 0.03033,-0.0383 0.952145,-2.11978 2.04847,-4.62546 2.967086,-6.78139 2.89254,-6.6163 3.028376,-6.70649 0.08121,-0.0539 0.432185,-0.10329 1.020842,-0.1436 l 0.897089,-0.0614 0.207587,-0.39504 c 0.341297,-0.64949 1.065434,-1.19856 1.921849,-1.45722 0.466313,-0.14084 1.548203,-0.17821 2.047224,-0.0707 1.266129,0.27275 2.120777,0.93015 2.402114,1.8477 0.303502,0.98985 -0.242797,2.04115 -1.348645,2.59535 -0.6575,0.3295 -1.04977,0.41167 -1.947327,0.40792 -0.682158,-0.003 -0.835627,-0.0221 -1.239869,-0.15597 -0.851255,-0.2818 -1.495594,-0.76496 -1.800525,-1.35011 l -0.160198,-0.30742 -0.519015,0.033 c -0.789393,0.0503 -0.762251,0.0368 -0.959513,0.47483 -0.705845,1.56724 -4.317167,9.86315 -4.317167,9.91731 0,0.016 0.203676,0.0113 0.452613,-0.0104 l 0.452614,-0.0395 0.03757,0.44441 c 0.02066,0.24443 0.03757,0.63801 0.03757,0.87462 v 0.43021 l 0.562267,-0.0208 0.562267,-0.0208 0.03674,0.63435 c 0.0202,0.34889 0.05594,1.25068 0.07942,2.00398 l 0.04268,1.36962 H 33.184539 32.86003 v 0.23067 0.23067 l 0.418096,-3e-5 c 0.229952,-2e-5 2.104894,-0.0645 4.166536,-0.14337 8.543318,-0.32666 10.003964,-0.37909 10.694319,-0.38386 0.760921,-0.005 6.094896,0.4305 6.346676,0.5185 0.07929,0.0277 3.034524,1.98942 6.567177,4.35935 3.532659,2.36993 6.459927,4.32314 6.505047,4.34045 0.06663,0.0256 0.07878,-0.0366 0.06468,-0.33073 l -0.01735,-0.36221 -6.599393,-4.42228 -6.599391,-4.42229 -1.128165,-0.10129 c -0.620495,-0.0557 -1.971566,-0.17271 -3.002388,-0.26 l -1.874219,-0.15871 -2.933573,0.10926 c -1.613463,0.0601 -2.942406,0.10043 -2.953203,0.0896 -0.01079,-0.0108 0.148911,-0.62834 0.354909,-1.37233 0.766403,-2.76795 1.253463,-4.8594 1.433519,-6.15557 0.113916,-0.82007 0.11367,-1.42345 -0.0013,-3.06069 -0.06124,-0.87245 -0.0834,-1.76495 -0.06679,-2.68974 0.0231,-1.28581 0.03784,-1.44415 0.207619,-2.23086 0.289535,-1.34165 0.679076,-2.33235 1.480655,-3.76571 0.201041,-0.3595 0.211368,-0.36792 0.591678,-0.4826 0.212887,-0.0642 1.853284,-0.54872 3.645326,-1.07673 2.223939,-0.65526 3.313179,-1.00224 3.431267,-1.09302 0.09515,-0.0731 0.445486,-0.3639 0.778521,-0.64609 0.7103,-0.60188 0.678866,-0.51493 0.694638,-1.92149 l 0.01003,-0.89385 -0.370408,-0.72086 c -0.409809,-0.79752 -0.651816,-1.48725 -0.882096,-2.51401 -0.119339,-0.53208 -0.180474,-0.70036 -0.278307,-0.76608 -0.236534,-0.15888 -0.612749,-0.58286 -0.786142,-0.88594 -0.262159,-0.45824 -0.370345,-1.03466 -0.331869,-1.7682 0.03747,-0.71423 0.14248,-1.0986 0.407928,-1.49305 l 0.191972,-0.28527 0.03556,-2.06915 c 0.04293,-2.49802 0.151155,-3.66003 0.408645,-4.38781 0.106421,-0.30079 0.553974,-0.96531 0.975823,-1.44889 1.145351,-1.31293 2.846179,-2.238955 4.883713,-2.658935 0.930334,-0.19176 1.072018,-0.19667 1.73005,-0.0599 2.983892,0.62011 5.16364,2.192375 6.484077,4.676995 0.330075,0.6211 0.395426,1.00693 0.394382,2.32842 -8.72e-4,1.08661 -0.06133,1.86272 -0.253844,3.25826 -0.06344,0.45991 -0.120211,0.88337 -0.126137,0.94103 -0.008,0.0778 0.06293,0.12982 0.275319,0.20184 0.656929,0.22273 0.711351,0.96128 0.192,2.60558 -0.43461,1.37602 -1.126493,2.20306 -1.917615,2.29223 l -0.233107,0.0263 -6.54e-4,0.61404 c -6.53e-4,0.66515 -0.07199,0.95799 -0.388897,1.59155 -0.189233,0.37831 -0.192025,0.58478 -0.01578,1.16724 0.08563,0.28299 0.102044,0.30032 0.300411,0.31717 0.207451,0.0176 0.220023,0.0342 1.108893,1.45954 l 0.899062,1.4417 0.547848,0.28932 c 0.301318,0.15912 2.857468,1.50256 5.680332,2.98541 2.822866,1.48285 5.163993,2.71603 5.202509,2.7404 0.04483,0.0284 0.154585,0.78025 0.305003,2.08941 1.273875,11.08707 2.501893,17.99948 3.574359,20.1197 0.237449,0.46942 0.416796,0.69644 0.550211,0.69644 0.04592,0 1.755316,-0.62282 3.798671,-1.38404 2.043358,-0.76123 3.788896,-1.3839 3.878974,-1.38372 0.500729,8.7e-4 0.938582,0.30722 1.054438,0.73748 0.05194,0.19288 0.04841,0.27238 -0.01776,0.40034 -0.131364,0.25403 -0.257231,0.32998 -0.922272,0.55652 -0.821769,0.27993 -1.458306,0.6068 -1.715334,0.88084 -0.114212,0.12178 -0.397226,0.48092 -0.628918,0.79809 -1.08528,1.48571 -2.291258,2.77983 -2.928849,3.14293 l -Line truncated
id="path42"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB