From 3e38bb2672e8e93518da31cde858e202cfb9c869 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 25 Jun 2021 13:46:23 +0300 Subject: [PATCH] Add audio::convert(sample) --- libs/audio/include/psemek/audio/sample.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) 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)); + } + }