Anvil P1 · bench mock

Self-test page for verify/cdp_bench.mjs — drives a realtime AudioContext and a blob-URL AudioWorklet ('av-voice': small oscillator bank + 256-entry µs timing ring + underrun counter) through the same window.__avEngine facade the real engine exposes, so the rig exercises identical code paths. All numbers below are measured in the audio render thread.
—
AudioContext.currentTime — must advance in wall-clock realtime (rig sanity phase)