diff --git a/libs/audio/include/psemek/audio/sample.hpp b/libs/audio/include/psemek/audio/sample.hpp index 5191ce98..31cb757d 100644 --- a/libs/audio/include/psemek/audio/sample.hpp +++ b/libs/audio/include/psemek/audio/sample.hpp @@ -18,4 +18,13 @@ namespace psemek::audio return static_cast(std::min(max, std::max(min, std::round(v)))); } + // maps [-1, 1] range to samples + inline sample convert(float v) + { + static auto const min = static_cast(std::numeric_limits::min()); + static auto const max = static_cast(std::numeric_limits::max()); + + return clamp(min + (v * 0.5f + 0.5f) * (max - min)); + } + }