template<typename T = float>
struct pulp::state::SkewedRange< T >
Skew-aware normalized range with optional symmetric center.
SkewedRange<T> extends ParamRange with a non-linear mapping between the [0, 1] host-automation domain and the [min, max] parameter domain. Two shape controls:
- skew: <1 weights toward `min`, >1 weights toward max, 1 = linear. Conventionally, a skew of log(0.5) / log((mid - min) / (max - min)) places mid at the center (0.5) of the normalized range.
- symmetric_skew: when true, the curve is mirrored around the center, so values near 0.5 in normalized space land near the midpoint and values near the edges fan out symmetrically. Useful for bipolar parameters like pan, balance, detune.
Step quantization is honored on denormalize (matches ParamRange::step).
Skew-aware normalized range with optional symmetric center.
Definition parameter.hpp:238
T denormalize(T normalized) const
Map a normalized [0, 1] value back to the real range.
Definition parameter.hpp:284
T normalize(T value) const
Map a real value in [min, max] to a normalized value in [0, 1].
Definition parameter.hpp:269