# Records need a timebase

Run `python generate.py` with matplotlib. It reproduces twelve deterministic synthetic tone cases, a separate 1,602-row illustrative spiral table, metadata and two original PNG/SVG/PDF figures. The twelve numerical cases are shared by the scanning and recording lessons; they are not two experiments. All reproduced metrics match their archived values exactly in this execution. Private source provenance is stored outside this public asset directory.

The signal is a sine of amplitude 0.8 at 100, 1000 or 10000 Hz, sampled at 48000 samples/s for two seconds. Scanner endpoint phase errors are 0, 0.1, 1 or 10 degrees at two turns/s. Time lag equals scanner phase/(360*turns per second). The time lag grows linearly from zero across the samples; interpolation reads earlier sample positions and clamps endpoints. This is deterministic timebase stretching, not random jitter. Audio endpoint phase lag is 360*tone frequency*time lag and must not be confused with scanner phase.

A one-pole recursion uses coefficient 1−exp(−2*pi*20000/48000). The number 20000 is a coefficient-design parameter, not an exact digital −3 dB cutoff. The initial 0.1 second is discarded. Output is fitted by sine and cosine at the original tone frequency. The fitted-tone signal-to-residual ratio is 10*log10(fitted mean square/residual mean square); relative residual RMS is 100*sqrt(residual mean square/fitted mean square). They obey residual%=100*10^(−ratio/20), so they are not independent performance measures.

No random noise is injected. Frequency mismatch contributes to residual, and tiny zero-drift residuals are dominated by numerical precision. These are not ordinary measured signal-to-noise or harmonic-distortion metrics. Correlation is phase-sensitive and not a perceptual quality score. No physical tolerance, hardware acceptance rate or recording demonstration follows from the chosen cases.

Spiral geometry is separate: r=r0+pitch*theta/(2*pi), x=r*cos(theta), y=r*sin(theta), r0=10 mm and pitch=0 or 2 mm per turn over four turns. Zero pitch gives a circle. Both paths are sampled at 801 points. With two turns/s, four turns take two seconds; at constant angular speed linear spot speed changes with radius. The table is not a simulation of medium, spot size or servo, and pitch alone supplies no storage capacity or resolution.

Checks verify exact archived metric parity, ratio/residual identity, zero-drift cases, radius reconstructed from x/y, circle limit and final spiral radius of 18 mm. The very large residual percentages at severe mismatch mean the fitted nominal tone is small; they do not imply energy gain. Figures are calculations, not physical measurements.
