The per-leg coefficient a fold applies when a stereo bus's legs sum onto ONE mono destination
port — exactly one half, and THE ONE PLACE IT IS DECLARED (spec
2026-07-16-per-leg-output-routing.md, amendment 2026-09-07b; operator ruling 2026-09-07).
It is not a taste and not a per-destination setting: correlated content — the case a fold
exists to survive — sums as L + R = 2 L, so the coefficient that returns it to unity is the
RECIPROCAL of that sum and nothing else. (x + x) × ½ === x, exactly, in floating point.
(−3 dB, the constant-power pan law, is the right figure for UNCORRELATED legs and the wrong
one for a fold.)
It replaces a -6 dB route field the operator could dial. Two things were wrong with that:
the ruling ("we cannot allow a user to set any number he figures out"), and the arithmetic —
dbToLinearGain(-6) is 0.5011872…, so the fold landed 0.02 dB hot while five sites each
declared the constant for themselves. The native fold_coef initialises to the identical
0.5f; that literal is what a route holds before the engine has spoken, not a second
declaration.
WHETHER a destination folds is the ENDPOINT's shape (isFoldOutputEndpoint — both roles
on one port), derived and stored nowhere. This constant is only HOW MUCH, once it does.
The per-leg coefficient a fold applies when a stereo bus's legs sum onto ONE mono destination port — exactly one half, and THE ONE PLACE IT IS DECLARED (spec
2026-07-16-per-leg-output-routing.md, amendment 2026-09-07b; operator ruling 2026-09-07).It is not a taste and not a per-destination setting: correlated content — the case a fold exists to survive — sums as
L + R = 2 L, so the coefficient that returns it to unity is the RECIPROCAL of that sum and nothing else.(x + x) × ½ === x, exactly, in floating point. (−3 dB, the constant-power pan law, is the right figure for UNCORRELATED legs and the wrong one for a fold.)It replaces a
-6 dBroute field the operator could dial. Two things were wrong with that: the ruling ("we cannot allow a user to set any number he figures out"), and the arithmetic —dbToLinearGain(-6)is0.5011872…, so the fold landed 0.02 dB hot while five sites each declared the constant for themselves. The nativefold_coefinitialises to the identical0.5f; that literal is what a route holds before the engine has spoken, not a second declaration.WHETHER a destination folds is the ENDPOINT's shape (isFoldOutputEndpoint — both roles on one port), derived and stored nowhere. This constant is only HOW MUCH, once it does.