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,49 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 512 512" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path d="M400.614,221.519l-90.837-17.556l-44.773-80.973l-44.773,80.973l-90.837,17.556l63.161,67.609L181.18,380.95
|
||||
l83.823-39.194l83.82,39.194l-11.373-91.822L400.614,221.519z M302.109,256.106l-15.437,16.524l2.779,22.441l0.621,5.012
|
||||
l-4.582-2.143l-20.487-9.578l-20.487,9.578l-4.585,2.143l0.621-5.012l2.78-22.441l-15.437-16.522l-3.455-3.698l4.964-0.959
|
||||
l22.205-4.292l10.944-19.792l2.447-4.424l2.447,4.424l10.944,19.792l22.205,4.292l4.962,0.959L302.109,256.106z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="193.883,59.397 148.465,50.619 126.077,10.134 103.689,50.619 58.271,59.397 89.852,93.201 84.165,139.113
|
||||
126.077,119.516 167.987,139.113 162.301,93.201 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="431.388,75.318 395.04,68.294 377.125,35.894 359.21,68.294 322.862,75.318 348.135,102.371 343.584,139.113
|
||||
377.125,123.431 410.664,139.113 406.115,102.371 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="193.469,436.495 157.121,429.469 139.205,397.071 121.289,429.469 84.941,436.495 110.214,463.548
|
||||
105.664,500.288 139.205,484.607 172.745,500.288 168.195,463.548 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="512,295.801 486.452,290.865 473.859,268.092 461.266,290.865 435.719,295.801 453.482,314.818 450.284,340.642
|
||||
473.859,329.62 497.433,340.642 494.236,314.818 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="371.229,457.025 345.68,452.088 333.088,429.316 320.495,452.088 294.946,457.025 312.711,476.041
|
||||
309.513,501.866 333.088,490.843 356.662,501.866 353.464,476.041 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="93.232,253.591 62.007,247.557 46.616,219.725 31.226,247.557 0,253.591 21.712,276.833 17.802,308.398
|
||||
46.616,294.924 75.429,308.398 71.521,276.833 "/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
Reference in new issue
Block a user