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