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
+79
View File
@@ -0,0 +1,79 @@
#N canvas 0 0 900 500 10;
#X obj 5 5 loadbang;
#X msg 5 25 pd dsp 1;
#X connect 0 0 1 0;
#X text 20 10 -- NOTE BUTTONS (click to play) --;
#X text 22 50 C3;
#X obj 20 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 20 100 48 100;
#X obj 20 130 noteout;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X text 62 50 D3;
#X obj 60 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 60 100 50 100;
#X obj 60 130 noteout;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X text 102 50 E3;
#X obj 100 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 100 100 52 100;
#X obj 100 130 noteout;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X text 142 50 F3;
#X obj 140 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 140 100 53 100;
#X obj 140 130 noteout;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X text 182 50 G3;
#X obj 180 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 180 100 55 100;
#X obj 180 130 noteout;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X text 222 50 A3;
#X obj 220 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 220 100 57 100;
#X obj 220 130 noteout;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X text 262 50 B3;
#X obj 260 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 260 100 59 100;
#X obj 260 130 noteout;
#X connect 28 0 29 0;
#X connect 29 0 30 0;
#X text 302 50 C4;
#X obj 300 70 bng 15 15 0 1 0 0 empty empty -2 -8 0 10 -262144 -1 -1;
#X msg 300 100 60 100;
#X obj 300 130 noteout;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X text 20 210 -- CONTROLS --;
#X obj 30 230 hsl 128 15 0 127 64 0 0 0 empty Filter-CC -2 -8 0 10 -262144 -1 -1 7200 1;
#X obj 30 270 ctlout 74;
#X connect 36 0 37 0;
#X text 20 310 -- AUDIO MONITOR --;
#X obj 30 330 adc~ 1;
#X obj 30 370 *~;
#X obj 30 410 dac~ 1 2;
#X obj 140 330 hsl 128 15 0 100 50 0 0 0 empty Monitor-Volume -2 -8 0 10 -262144 -1 -1 7200 1;
#X obj 140 370 / 100;
#X connect 39 0 40 0;
#X connect 40 0 41 0;
#X connect 40 0 41 1;
#X connect 42 0 43 0;
#X connect 43 0 40 1;