41 template <
typename Type>
43 Type minusInfinityDb = Type (defaultMinusInfinitydB))
45 return decibels > minusInfinityDb ? std::pow (Type (10.0), decibels * Type (0.05))
55 template <
typename Type>
57 Type minusInfinityDb = Type (defaultMinusInfinitydB))
59 return gain > Type() ? jmax (minusInfinityDb,
static_cast<Type
> (std::log10 (gain)) * Type (20.0))
67 template <
typename Type>
72 jassert (lowerBoundDb < (Type) 0.0);
85 template <
typename Type>
87 int decimalPlaces = 2,
88 Type minusInfinityDb = Type (defaultMinusInfinitydB),
89 bool shouldIncludeSuffix =
true,
95 if (decibels <= minusInfinityDb)
97 if (customMinusInfinityString.isEmpty())
100 s << customMinusInfinityString;
104 if (decibels >= Type())
107 if (decimalPlaces <= 0)
108 s << roundToInt (decibels);
110 s << String (decibels, decimalPlaces);
113 if (shouldIncludeSuffix)
121 enum { defaultMinusInfinitydB = -100 };
static Type gainWithLowerBound(Type gain, Type lowerBoundDb)
static Type decibelsToGain(Type decibels, Type minusInfinityDb=Type(defaultMinusInfinitydB))
static Type gainToDecibels(Type gain, Type minusInfinityDb=Type(defaultMinusInfinitydB))
static String toString(Type decibels, int decimalPlaces=2, Type minusInfinityDb=Type(defaultMinusInfinitydB), bool shouldIncludeSuffix=true, StringRef customMinusInfinityString={})
void preallocateBytes(size_t numBytesNeeded)