Commit Graph

7 Commits

Author SHA1 Message Date
shawn d6480a35ed P3-R3: Multi-track recording engine
Lint & Validate / lint (push) Has been cancelled
- WAV writer with streaming support for 16/24/32-bit integer and 32-bit float
- MultiTrackRecorder with per-channel arming, arm state machine, write-ahead
  buffer queues decoupling JACK real-time thread from SD card I/O
- Punch in/out recording on individual channels with punch region tracking
- Session file format (JSON): session metadata, takes, tracks, mixer state,
  punch regions, serialization round-trip
- Take management: create, delete, rename, list, track association
- Stereo bounce engine with pan law (-3dB constant power), normalisation,
  master bus volume/mute/dim, block-based processing for memory efficiency
- Disk space monitor with configurable warning/critical thresholds, estimated
  recording time remaining, background polling, callback on threshold change
- 117 tests: sample conversion, WAV header validation, recorder lifecycle,
  session CRUD, serialization, bounce with pan/normalisation/master, integration

Integrates with JACK capture ports → mixer → recording ports → disk.
Architecture: JACK callback → recorder.write() → buffer queue → writer thread → WAV files.
2026-05-19 21:44:28 -04:00
shawn 349139ad1f P5-R3: fix count-in recursion + test buffer loop size
Lint & Validate / lint (push) Has been cancelled
2026-05-19 21:08:15 -04:00
shawn b79d7288c5 P5-R3: Web app frontend — touch-optimized mixer UI
Lint & Validate / lint (push) Has been cancelled
- Complete SPA rewrite: 4 tabs (Mixer, Routing, Plugins, Sessions)
- Touch-optimized faders with animated level meters (dark theme)
- Channel strips: fader, mute, solo, pan, EQ modal with 3-band EQ + compressor + gate
- Routing matrix: drag-and-drop source→destination, connection list with mute toggles
- Plugin control: per-channel plugin cards with bypass and parameter sliders
- Session browser: list/load/save/delete scenes via REST API
- Transport controls: play, stop, record, loop, locate (keyboard shortcuts: space=play)
- Responsive: phone portrait (touch-first), landscape, tablet, desktop
- Zero dependencies: vanilla JS + WebSocket only
- Backend: added DELETE /api/v1/scenes/{name} endpoint, wired delete_scene callback

web/app.js (917 lines), web/style.css (1100 lines), web/index.html (160 lines)
2026-05-19 21:05:43 -04:00
shawn 9cd8292acc Phase 1-4: Audio stack, mixer engine, MIDI, and network API
Lint & Validate / lint (push) Has been cancelled
P2-R1: ALSA + JACK2 low-latency config (scripts, quirks, tuning)
P2-R2: Carla integration (build scripts, 8ch rack config, NAM LV2 support)
P2-R3: Plugin manager, categories, blacklist, NAM model support
P3-R1: Mixer DSP engine (channel strip, routing matrix, bus mgr, automation)
P4-R1: MIDI engine (learn mode, clock sync, HID discovery, mapping store)
P4-R2: Network API (OSC server, FastAPI REST, WebSocket, auth, rate limiter)
P5-R1: Touchscreen UI evaluation + main entry point
docs: Audio stack, Carla integration, MIDI support, UI evaluation
tests: Full test suite (292 passing)
2026-05-19 20:39:17 -04:00
shawn 7b123762b5 P1-R3: Add credential files to .gitignore
Lint & Validate / lint (push) Has been cancelled
2026-05-19 19:11:55 -04:00
shawn c51feb4b1e P1-R3: Add CI/CD skeleton (Gitea Actions)
Lint & Validate / lint (push) Has been cancelled
- .gitea/workflows/lint.yaml: EditorConfig, Markdown, ShellCheck, YAML lint
- Runs on push/PR to main
2026-05-19 19:08:02 -04:00
shawn 96a6b96b7e P1-R3: Initial project infrastructure
- Project directory structure: docs/, src/, build/, recipes/, scripts/, wiki/
- README.md with project overview and status
- .editorconfig for consistent code style
- .gitignore for Python, C/C++, kernel, and build artifacts
- docs/research/: system research report + base OS decision
- docs/audio-stack-config.md: audio stack configuration notes
- config/: JACK, ALSA, CPU performance configs
- Preserved research from P1-R1 and P1-R2 tasks
2026-05-19 19:06:12 -04:00