21#include <pluginterfaces/vst/ivstaudioprocessor.h>
29using namespace Steinberg;
30using namespace Steinberg::Vst;
32#define BIT_SET(a,b) ((a) |= (static_cast<std::make_unsigned_t<decltype(a)>>(1)<<(b)))
33#define BIT_CLEAR(a,b) ((a) &= ~(static_cast<std::make_unsigned_t<decltype(a)>>(1)<<(b)))
34#define BIT_TEST(a,b) (((a) & (static_cast<std::make_unsigned_t<decltype(a)>>(1)<<(b))) != 0)
38constexpr T
bitSet(T a,
int bit) {
return a | (
static_cast<std::make_unsigned_t<T>
>(1) << bit); }
42constexpr T
bitClear(T a,
int bit) {
return a & ~(
static_cast<std::make_unsigned_t<T>
>(1) << bit); }
46constexpr bool bitTest(T a,
int bit) {
return (a & (
static_cast<std::make_unsigned_t<T>
>(1) << bit)) != 0; }
53template<
typename SampleType>
83template<
typename SampleType>
86 return static_cast<SampleType
>(std::pow(10.0, valueInDb / 20.0));
92template<
typename SampleType>
95 return std::log10(valueInSample) * 20.0;
SampleType getSampleSilentThreshold() noexcept
constexpr bool bitTest(T a, int bit)
Test if bit bit is set in a.
Definition AudioUtils.h:46
bool isSilent(Sample32 value)
Definition AudioUtils.h:63
constexpr Sample64 getSampleSilentThreshold< Sample64 >() noexcept
Definition AudioUtils.h:58
SampleType dbToSample(double valueInDb)
Definition AudioUtils.h:84
constexpr Sample32 Sample32SilentThreshold
Definition AudioUtils.h:49
constexpr Sample64 Sample64SilentThreshold
Definition AudioUtils.h:50
double sampleToDb(SampleType valueInSample)
Definition AudioUtils.h:93
constexpr T bitClear(T a, int bit)
Clears bit bit in a.
Definition AudioUtils.h:42
constexpr T bitSet(T a, int bit)
Sets bit bit in a.
Definition AudioUtils.h:38