Monorepo for Aesthetic.Computer aesthetic.computer

notepat: AudioWorklet-backed WASM browser prototype, M4L recorder, Live transport master

WASM browser prototype (fedac/native/wasm/build-offline-page.mjs): - AudioWorklet path: inline speaker-bundled.mjs as a worklet module so harp (Karplus-Strong), whistle (Cook/STK waveguide), room reverb, and glitch bitcrush use the same DSP as ac-web. Messages match bios.mjs's triggerSound/killSound/updateSound wire format. Voices spawned before addModule resolves are queued and drained on ready. Prefers data: URL on file:// origins (Chrome blocks blob: workletURLs there). - Inline AC bitmap fonts (font-matrix-chunky8.h, font-6x10.h) parsed from the C headers; write() blits into the WASM framebuffer instead of canvas-2D fillText, matching ac-native's pixel grid. - Ctrl+/Ctrl-/Ctrl+0 density shortcuts; framebuffer + canvas backing resize to viewport on each change. - Real getUserMedia mic capture into samplePlayer; in-flight Promise dedupe so concurrent rec() taps share one permission prompt. - speaker.getRecentBuffer 12s ring tap post-worklet; speaker.drawStrip renders waveform with anchor needle. - Inline qrcode.min.js so globalThis.qr() draws real QR matrices. - Viewport-filling canvas (no shell wrapper). - ws/system stubs round out the surface notepat polls each frame. notepat piece (fedac/native/pieces/notepat.mjs): - REC button now always visible at the rightmost of the wave row; octave button moves one slot left. Press auto-switches wave to "sample" so playback hears the capture. Bubbles up to ac-native. oven/bundler.mjs: - Notepat→Live recording bridge: fall back to a sticky auto-created session clip when no clip is recording, so notes always land. Reuses the same clip across the recording pass instead of one per keypress. Throttled state-change logging via logOnChange. ac-web: - bios.mjs + notepat-remote.mjs: route Live transport via daw:transport message + UI button (Live grabs spacebar globally so the iframe never sees the keydown). - synth.mjs: coerce id to Number before whistle seed multiply to fix BigInt mix TypeError. ac-os: ac-os oven [ref|status|watch] commands for triggering remote OTA builds with vault-backed admin key. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>


+3918 -677
12 changed files