The travel of one preamp's input GAIN — min, max and the step it actually resolves, all in dB
of gain. The honest answer to "how far does this knob go, and how finely?", asked of the
preamp rather than of the console.
What differs between fabrics is only this travel: a Roland box's SENS byte spans 0..55 at
1 dB/step (REAC_HEAD_AMP_GAIN_RANGE); an RME Babyface Pro's Mic-AN<n> Gain spans
0..65 at 1; its line inputs 3/4 span 0..18. Imposing one of those on another is a control that
lies about the hardware behind it in one direction or the other, so the travel is declared by
the import('./source.js').HeadAmpCapability that declares the control, and every clamp
here takes it as a parameter.
stepDb is load-bearing, not decoration: clampGainDb quantizes to it. A surface that
steps finer than the preamp resolves asks for a value the hardware rounds away — the write
lands, the echo never differs, and the control feels dead (rig-found 2026-07-31).
The travel of one preamp's input GAIN — min, max and the step it actually resolves, all in dB of gain. The honest answer to "how far does this knob go, and how finely?", asked of the preamp rather than of the console.
What differs between fabrics is only this travel: a Roland box's SENS byte spans 0..55 at 1 dB/step (REAC_HEAD_AMP_GAIN_RANGE); an RME Babyface Pro's
Mic-AN<n> Gainspans 0..65 at 1; its line inputs 3/4 span 0..18. Imposing one of those on another is a control that lies about the hardware behind it in one direction or the other, so the travel is declared by the import('./source.js').HeadAmpCapability that declares the control, and every clamp here takes it as a parameter.stepDbis load-bearing, not decoration: clampGainDb quantizes to it. A surface that steps finer than the preamp resolves asks for a value the hardware rounds away — the write lands, the echo never differs, and the control feels dead (rig-found 2026-07-31).