Exact to 0.000% on all four bench waveforms, against a PVS recomputed from the
decoded samples. The offset (Tran label - 12) is now established rather than
inferred: four independent confirmations plus a fifth on the other firmware
line.
RETRACTION. The previous entry observed the float running 2-5% above
max(T,V,L) and concluded it was NOT the peak vector sum, "because computed PVS
runs higher than both". That computed PVS was sqrt(T^2+V^2+L^2) from the three
REPORTED CHANNEL PEAKS, which is an upper bound on the real quantity rather
than the quantity -- the channel maxima do not occur at the same instant, so
combining them overstates the true peak. Every row of the old table is in fact
consistent with max(T,V,L) <= stored <= sqrt(sum of squares).
I also got this wrong in the other direction today and want it recorded. On
UM20147's event the stored float matched sqrt(sum of peak squares) to 0.048%,
and I called it the vector sum on that basis. It is not -- that event's peaks
merely happen to be nearly coincident in time. The six CB events separated the
two formulas immediately, with errors to -9.5%. ONE SAMPLE AGREEING WITH A
FORMULA IS NOT EVIDENCE WHEN A SECOND FORMULA FITS IT EQUALLY WELL.
Why it is worth having: it is a FREE SELF-CHECK ON THE DECODER. The device
computed this number from the same samples we decode, independently of our
codec, so a mismatch means the decode is wrong. Given this codebase's history
of silent channel truncation -- walker bugs that shorten a channel and raise
nothing -- a per-event invariant costing one float comparison is cheap
insurance, and worth wiring into the download path.
Also added the full 0x0C field map from real UM20147 bytes: timestamp, the
record-type byte, sensor-location label, setup name, serial, the PVS float and
the four channel labels with their offsets.
Noted in passing: the setup name appears as "test2" in 0x0C, "test2.MMB" in
0x41 and "test2.mmb" in 0x40 -- three commands, three spellings of one file, in
one session.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ru8Lg9HkkYvX9VWWo65SmL