10#ifndef SBL_DSP_MATH_PARAM_HPP_
11#define SBL_DSP_MATH_PARAM_HPP_
22 return static_cast<float>(val) * (1.0f / 127.0f);
27 return static_cast<float>(val) * (1.0f / 65535.0f);
32 return static_cast<float>(val) * (1.0f / 16383.0f);
38inline constexpr float map_linear(
float t,
float min,
float max) {
39 return min + (max - min) * t;
45 return min + (max - min) * t * t;
50inline constexpr float map_scurve(
float t,
float min,
float max) {
51 float s = t * t * (3.0f - 2.0f * t);
52 return min + (max - min) * s;
59 float s = 2.0f * t - t * t;
60 return min + (max - min) * s;
68 float octaves = __builtin_log2f(max / min);
Fast analytical approximations (Audio Stack — Atoms)
Cross-cutting math used at every audio layer.
float fast_exp2f(float x)
constexpr float map_linear(float t, float min, float max)
Linear mapping: t → min + (max - min) * t.
constexpr float u16_to_float(uint16_t val)
Normalize 16-bit unsigned (0-65535) to [0.0, 1.0].
constexpr float u14_to_float(uint16_t val)
Normalize 14-bit MIDI (0-16383) to [0.0, 1.0] (pitch bend, NRPN)
constexpr float map_inv_quadratic(float t, float min, float max)
constexpr float cc_to_float(uint8_t val)
Normalize MIDI CC (0-127) to [0.0, 1.0].
constexpr float map_quadratic(float t, float min, float max)
constexpr float map_scurve(float t, float min, float max)
float map_exponential(float t, float min, float max)