Переглянути джерело

audio: add clipping functions for audio samples

wip/image-kernel
Sam Hocevar 10 місяці тому
джерело
коміт
a381581ab1
1 змінених файлів з 29 додано та 0 видалено
  1. +29
    -0
      include/lol/private/audio/stream.h

+ 29
- 0
include/lol/private/audio/stream.h Переглянути файл

@@ -127,6 +127,35 @@ public:
return T(x ^ y) < 0 ? T(ret) : x >= 0 ? T(std::min(ret, umax)) : T(std::max(ret, umin));
}
}

// Clipping for samples
template<typename T>
static inline T clip(T x)
{
if constexpr (std::is_floating_point_v<T>)
{
return std::min(T(1), std::max(T(-1), x));
}
else
{
// Clipping is only relevant for floating point types
return x;
}
}

template<typename T>
static inline T softclip(T x)
{
if constexpr (std::is_floating_point_v<T>)
{
return std::tanh(x);
}
else
{
// Clipping is only relevant for floating point types
return x;
}
}
};

template<typename T>


Завантаження…
Відмінити
Зберегти