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