58 static inline double limiter(
const double x,
const double lmtr_lvl)
63 xp = tanh((x + lmtr_lvl) / (1-lmtr_lvl)) * (1-lmtr_lvl) - lmtr_lvl;
64 else if (x <= lmtr_lvl)
67 xp = tanh((x - lmtr_lvl) / (1-lmtr_lvl)) * (1-lmtr_lvl) + lmtr_lvl;
75 const unsigned int len = data.
size();
76 const bool use_limiter = (
m_gain > 1.0);
78 for (
unsigned int i = 0; i < len; i++) {
91 m_gain = QVariant(g).toDouble();
97 m_limit = QVariant(l).toDouble();
void input(Kwave::SampleArray data)
virtual void goOn() Q_DECL_OVERRIDE
static double limiter(const double x, const double lmtr_lvl)
void setLimiterLevel(const QVariant l)
static double sample2double(const sample_t s)
virtual ~Normalizer() Q_DECL_OVERRIDE
static sample_t double2sample(const double f)
unsigned int size() const
void output(Kwave::SampleArray data)
void setGain(const QVariant g)