aqua-feel sync: audio-visual onset lag vs perceptual windows #32
Loading…
Reference in a new issue
No description provided.
Delete branch "aqua/feel-sync"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds
node feel.mjs sync(tools/aqua-feel/sync.mjs, SYNC.md): audio onsets, visual onsets (luma step or motion flux), per-event lag in ms (+ = audio late), verdict against detectability windows (default 25 ms lead / 100 ms lag; BT.1359-1, EBU R37, ATSC IS-191 profiles) judged on a truth interval that accounts for frame quantisation. Input: WAV + per-frame CSV, or a video via ffmpeg (no ffprobe needed). Optional event log.Three Soul passes (separate context) ran against it; fixed on the branch: bed/DC-fooled onset refinement, understated frame-quantisation uncertainty (now an interval), dense-event mispairing (one-to-one + ambiguous-pairing), unpaired onsets passing, fail-open CLI options, lenient parsers, a video start offset counted twice, resampled-video interval too narrow. Documented limits (pulsing bed, noise gates, the 2.5 Hz cost of the ambiguity rule, wrong-sign reads beyond half the hit spacing) are in SYNC.md.
Measured: 46 checks (37 without ffmpeg), including clips built with ffmpeg whose video or audio stream starts late by a known amount at 15/24/60 fps, and one real headless-Chromium MediaRecorder clip (fixtures/browser-capture.webm: 7 hits, constant +40.5 ms audio late, which is a measurement of that chain, not independently verified). No Playground UI or Perlines capture exists to run.
node test.mjs26/26.🤖 Generated with Claude Code