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>
49 lines
2.0 KiB
XML
49 lines
2.0 KiB
XML
<?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> |