# Why the dots form repeating slopes

The apparent repeating lines follow from the plotting transformation. Every wavelength,
including an arbitrary synthetic one, lies on the same predetermined branches.
No atomic model is needed to predict these branches.

For wavelength \(\lambda\), in nanometres, define

\[
K=1200\log_2\!\left(\frac{c\,10^9}{2^{40}\,440}\right),\qquad
d_m(\lambda)=K-1200\log_2\lambda-100m,
\]

where \(m\) indexes the nearest semitone relative to A4. Each branch is used only
where its offset lies in [−50,50). Both axes are thus functions of the same measured
wavelength; the vertical coordinate is not an independent measurement.

On a linear wavelength axis:

\[
\frac{d d_m}{d\lambda}=-\frac{1200}{\lambda\ln2},\qquad
\frac{d^2d_m}{d\lambda^2}=\frac{1200}{\lambda^2\ln2}>0.
\]

The branches are translated logarithmic curves, not globally parallel straight lines.
Their local slopes are −2.4732 cents/nm at 700 nm, −2.1640 at 800 nm, and −1.9236
at 900 nm. Each branch shares the same derivative formula. Screen angles also depend
on axis scaling and panel aspect ratio, so comparing angles across the old At and Fr
panels is not a coordinate-independent geometric test.

On \(x=\log_2\lambda\), the equation is exactly

\[
d_m=K-1200x-100m.
\]

These are genuinely parallel straight lines, all with slope −1200 cents per octave.
Nearest-note rounding restricts them to repeating segments, separated by wraps of
100 cents. This is the geometry that creates the visual alignment.

![Actual and synthetic points on the predicted branches](Parallel_Lines_Check.png)

## Calculation check

All 59 original At/Fr entries were checked against the equation without fitting any
parameters. A second formula, computed directly from photon frequency, checks 1,000
arbitrary synthetic wavelengths. Both checks agree within 10⁻⁸ cents; the exact
floating-point residuals are in CHECK_RESULTS.json. The zoomed figure shows every At
entry from 690 to 940 nm and an equal number of synthetic points. It does not reclassify
the two possible hyperfine components or change the earlier statistical counts.

The analytic identity is the reason the slopes occur; finite numerical checks merely
verify implementation. The random-wavelength control is an illustration, not a realistic
statistical model of an atom and not proof that atomic wavelengths are random.

## What remains physically testable

The physical information is which wavelengths are occupied, their relative strengths,
and relationships between assigned transitions. The curve slope itself is fixed by
the axes. An additional physical pattern would require a prediction about those
occupied wavelengths that goes beyond this transformation, assessed on unused data.
For example, a frozen frequency-ratio prediction for named transitions can be checked
without fitting a musical-reference shift after observing the values.

This clarification supplements At_Fr_Followup_Report.md and preserves its data and
conclusions. That earlier plot should have labeled the deterministic coordinate
dependence explicitly.

## Reproduce

Run `python3 check.py` with numpy and matplotlib installed. SOURCE_RESULTS.json is
an unchanged copy of the prior analysis results, whose original measurement provenance
is recorded in At_Fr_Followup_Report.md and At_Fr_Followup_Lab.zip. This follow-up adds
no new physical measurements.
