Recording through headphones and a mic always lands late — delayed by the device's round-trip audio latency.
This demo proves the fix against dawcore, an AudioWorklet-based multitrack editor: measure round-trip latency with the
<latency-test> component, then apply that value to a recording's start offset.
Unlike a simpler "no compensation vs. measured" comparison, dawcore already applies its own internal
compensation to every recording (based on AudioContext.outputLatency, the browser's own estimate).
So the "uncalibrated" take below isn't truly uncompensated — it's dawcore's own built-in guess. The "calibrated"
take replaces that guess with the value <latency-test> actually measured. The alignment proof
in step 6 shows both numbers side by side, so the real comparison stays honest.
Follow the steps below in order.
Record the metronome guide track through your mic, using dawcore's own built-in compensation (no external measurement applied yet).
Listen for any remaining late "flam" against the guide track and look at the waveform offset.
Compare it against the guide track by ear, then delete it using its own control in the editor below — a known dawcore bug (#501) makes mute/volume unreliable once another track is added, so delete is used instead to keep only the calibrated take playing next.
Record again — this time the measured latency replaces dawcore's internal estimate. Play it back to compare.
Detected metronome clicks are matched between the guide track and each take to measure the actual misalignment in samples — not just by eye or ear.