22inline double to_linear(
double db) {
return pow(10.0, db / 20.0); }
27inline float to_linear(
float db) {
return powf(10.0f, db / 20.0f); }
38 if (db <= threshold) {
49 if (db <= threshold) {
62inline double to_db(
double linear) {
return 20.0 * log10(linear); }
67inline float to_db(
float linear) {
return 20.0f * log10f(linear); }
76inline double apply(
double lin,
double gain) {
return lin *
to_linear(gain); }
92inline double apply_off(
double lin,
double gain,
double threshold) {
99inline float apply(
float lin,
float gain,
float threshold) {
Decibel conversion functions.
double to_db(double linear)
Converts linear gain factor to decibel (relative to 1.0) value.
double apply_off(double lin, double gain, double threshold)
Apply a decibel gain to a linear signal, muting if below threshold.
double to_linear_off(double db, double threshold)
Converts decibel (relative to 1.0) value to linear gain factor. If value is below given threshold,...
constexpr double DB_REF
Reference value for all decibel conversions.
double apply(double lin, double gain)
Apply a decibel gain to a linear signal.
double to_linear(double db)
Converts decibel (relative to 1.0) value to linear gain factor.