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:
commit
b94c787231
81 files changed
+23994
No files matched your search
@@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<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"
|
||||
width="156"
|
||||
height="151"
|
||||
id="svg2"
|
||||
version="1.1">
|
||||
<title
|
||||
id="title4411">Bicolor Lightning Bolt</title>
|
||||
<defs
|
||||
id="defs4" />
|
||||
<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>Bicolor Lightning Bolt</dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
<dc:date>2016-03-07</dc:date>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>mazeo</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>openclipart.org</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:language>en</dc:language>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>lightning</rdf:li>
|
||||
<rdf:li>lightning bolt</rdf:li>
|
||||
<rdf:li>bicolor</rdf:li>
|
||||
<rdf:li>energy</rdf:li>
|
||||
<rdf:li>electricity</rdf:li>
|
||||
<rdf:li>power</rdf:li>
|
||||
<rdf:li>duality</rdf:li>
|
||||
<rdf:li>dualism</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:description>Lightning bolt and ring in opposing colors</dc:description>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>mazeo</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</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
|
||||
id="layer1"
|
||||
transform="translate(-36.642321,-496.12009)">
|
||||
<g
|
||||
id="g4397">
|
||||
<g
|
||||
id="g4393">
|
||||
<path
|
||||
style="color:#000000;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:#d40000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 120.40039,497.76758 c -15.67764,-0.6377 -31.640714,3.67866 -45.357421,13.2832 l 7.570312,10.81055 c 25.844169,-18.09629 61.079479,-13.4577 81.359379,10.71094 c 20.27989,24.16863 18.73103,59.67521 -3.57813,81.98437 l 9.33008,9.33203 c 27.06402,-27.06402 28.95967,-70.479 4.35742,-99.79883 c -13.83876,-16.49239 -33.52467,-25.50236 -53.68164,-26.32226 z"
|
||||
id="path4357" />
|
||||
<path
|
||||
style="color:#000000;fill:#ffcc00;fill-opacity:1;fill-rule:nonzero;stroke:#d40000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 75.044922,511.04492 c -22.88855,16.02674 -34.795746,43.62865 -30.746094,71.27539 c 4.049653,27.64675 23.372974,50.67396 49.896484,59.46289 c 26.523508,8.78894 55.773448,1.85742 75.531248,-17.90039 l -9.33203,-9.33203 c -16.24886,16.24887 -40.23583,21.93312 -62.048827,14.70508 c -21.812995,-7.22804 -37.657837,-26.11091 -40.988281,-48.84766 c -3.330444,-22.73674 6.432263,-45.37231 25.255859,-58.55273 l -7.568359,-10.81055 z"
|
||||
id="path4359" />
|
||||
</g>
|
||||
<g
|
||||
id="g4389">
|
||||
<path
|
||||
id="path4363"
|
||||
d="m 189.10274,502.30697 l -104.288182,77.3751 l 35.323412,1.68207 l -82.421301,55.50823 l 129.519191,-65.60063 l -45.41582,-1.68208 l 67.2827,-67.28269 z"
|
||||
style="fill:#ffcc00;fill-opacity:1;stroke:#d40000" />
|
||||
<path
|
||||
id="path4365"
|
||||
d="m 120.13797,581.36414 l -82.421301,55.50823 l 129.519191,-65.60063 l -45.41582,-1.68208 l -1.68207,11.77448 z"
|
||||
style="fill:#ff6600;fill-opacity:1;stroke:#d40000" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
Reference in new issue
Block a user