29 #include "siddefs-fp.h"
41 inline short softClip(
int x)
const
43 constexpr
int threshold = 28000;
44 if (likely(x < threshold))
47 constexpr
double t = threshold / 32768.;
48 constexpr
double a = 1. - t;
49 constexpr
double b = 1. / a;
51 double value =
static_cast<double>(x - threshold) / 32768.;
52 value = t + a * tanh(b * value);
53 return static_cast<short>(value * 32768.);
56 virtual int output()
const = 0;
69 virtual bool input(
int sample) = 0;
78 return softClip(output());
81 virtual void reset() = 0;
Definition: Resampler.h:39
short getOutput() const
Definition: Resampler.h:76
virtual bool input(int sample)=0