BLOBBO/demos
type-two 1e2e49518f Lane F: procedural WebAudio engine + soundboard demo
Event-driven comedy SFX, all synthesized (no assets, no deps):
- engine.ts: lazy AudioContext (dormant until ui:play / first gesture),
  master chain at ~-12dBFS through a soft limiter, persisted mute
  (blobbo:muted), 10-voice polyphony cap with steal-nearest-to-finish.
- sounds.ts: squish (impact-scaled wet splat), boing (springy sweep),
  splat (per-colour pentatonic bloop, PALETTE order), sparkle (bubbly
  arpeggio), clank+windup (0.5s accelerating ratchet matching the machine
  telegraph), tick (starter blip), fanfare (major arpeggio + new-best
  flourish), optional ambient conveyor hum. All ±10% pitch-randomized,
  all <400ms except fanfare.
- install.ts: subscribes the frozen wire events, returns { engine },
  mounts the bottom-right mute button.
- demos/lane-f.html + src/demo/lane-f.ts: soundboard driving the real
  installAudio wiring; impact slider, colour picker, splat-storm stress.

Verified: tsc strict + vite build pass; 36-check headless harness proves
dormancy pre-unlock, single-context creation, every sound synthesizes,
voice cap holds under a 60-splat storm, and mute persists. Caught+fixed a
clank() infinite loop (geometric tick interval converged below windup).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 11:46:28 +10:00
..
lane-a.html Foundation: vite+ts+three+rapier scaffold, frozen contracts, lane docs A-E 2026-07-17 19:55:43 +10:00
lane-b.html Foundation: vite+ts+three+rapier scaffold, frozen contracts, lane docs A-E 2026-07-17 19:55:43 +10:00
lane-c.html Lane C: Rube-Goldberg machine toolkit — telegraphs, parts, surfaces, chain demo 2026-07-17 20:26:52 +10:00
lane-f.html Lane F: procedural WebAudio engine + soundboard demo 2026-07-18 11:46:28 +10:00