Initial commit: Arduino Uno Q USB Audio Synth project

- USB gadget (UAC1 + MIDI) with boot persistence
- USB host mode with auto-detection
- Pure Data synth patch with ALSA + UDP netreceive MIDI input
- MIDI rawmidi-to-UDP bridge (midi-bridge.py)
- LED matrix visualization (led-matrix-viz.py via arduino-router RPC)
- MCU sketch for LED matrix control (Arduino_RouterBridge + ArduinoGraphics)
- Conftest/OPA Rego policy validation suite for .pd files
- gen_synth_pd.py: programmatic .pd file generator
- System services: midi-bridge, led-matrix-viz, pd-synth-auto, usb-role-detect
- Justfile with deploy, enable, diagnostic recipes
- Diagnostic script (diag.sh)
This commit is contained in:
2026-06-22 22:46:36 -07:00
commit 8cd796e3dd
38 changed files with 2681 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
#N canvas 0 0 900 550 10;
#X obj 20 20 notein;
#X obj 80 50 pack 0 0;
#X obj 80 80 unpack 0 0;
#X obj 20 110 s midi-pitch;
#X obj 80 110 s midi-vel;
#X obj 400 20 netreceive -u 8081;
#X obj 400 60 route midi;
#X obj 400 100 route 144 128;
#X obj 400 140 unpack 0 0;
#X obj 480 140 unpack 0 0;
#X obj 400 180 s midi-pitch;
#X obj 480 180 s midi-vel;
#X obj 20 160 r midi-vel;
#X obj 20 190 r midi-pitch;
#X obj 20 220 stripnote;
#X obj 20 260 mtof;
#X obj 20 290 env~ 50 200 0.7 400;
#X obj 140 260 osc~;
#X obj 140 290 *~ 0.3;
#X obj 220 260 osc~;
#X obj 220 290 *~ 0.3;
#X obj 180 330 +~;
#X obj 180 360 *~ 0.5;
#X obj 180 400 lop~;
#X obj 180 460 *~;
#X obj 320 460 *~;
#X obj 250 530 dac~;
#X obj 350 330 hsl 128 15 100 18000 10000 0 0 0 empty Cutoff -2 -8 0 10 -262144 -1 -1 7200 1;
#X obj 350 430 hsl 128 15 0 100 40 0 0 0 empty Volume -2 -8 0 10 -262144 -1 -1 7200 1;
#X obj 350 460 / 100;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 8 0 10 0;
#X connect 8 1 11 0;
#X connect 9 0 10 0;
#X connect 9 1 11 0;
#X connect 12 0 14 1;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 17 0;
#X connect 15 0 19 0;
#X connect 17 0 18 0;
#X connect 19 0 20 0;
#X connect 18 0 21 0;
#X connect 20 0 21 1;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 14 0 16 0;
#X connect 16 0 24 1;
#X connect 24 0 25 0;
#X connect 27 0 23 1;
#X connect 28 0 29 0;
#X connect 29 0 25 1;
#X connect 25 0 26 0;
#X connect 25 0 26 1;