Change in math constants

This commit is contained in:
Paul Fd 2020-03-10 13:50:21 +01:00
parent 9065f82339
commit 7e696828a7
4 changed files with 20 additions and 19 deletions

View file

@ -124,8 +124,8 @@ inline float midiNoteFrequency(const int noteNumber)
template<class T> template<class T>
constexpr T clamp( T v, T lo, T hi ) constexpr T clamp( T v, T lo, T hi )
{ {
v = std::min(v, hi); v = min(v, hi);
v = std::max(v, lo); v = max(v, lo);
return v; return v;
} }
@ -148,18 +148,19 @@ constexpr ValueType linearInterpolation(ValueType left, ValueType right, ValueTy
return left * leftCoeff + right * rightCoeff; return left * leftCoeff + right * rightCoeff;
} }
template <class Type> constexpr double dPi { 3.141592653589793238462643383279502884};
constexpr Type pi { static_cast<Type>(3.141592653589793238462643383279502884) }; constexpr double dTwoPi { dPi * 2 };
template <class Type> constexpr double dPiTwo { dPi / 2 };
constexpr Type twoPi { static_cast<Type>(2) * pi<Type> }; constexpr double dPiFour { dPi / 4 };
template <class Type> constexpr double dSqrtTwo { 1.414213562373095048801688724209698078569671875376948073176 };
constexpr Type piTwo { pi<Type> / static_cast<Type>(2) }; constexpr double dSqrtTwoInv { 0.707106781186547524400844362104849039284835937688474036588 };
template <class Type>
constexpr Type piFour { pi<Type> / static_cast<Type>(4) }; constexpr float fPi { 3.141592653589793238462643383279502884};
template <class Type> constexpr float fTwoPi { fPi * 2 };
constexpr Type sqrtTwo { static_cast<Type>(1.414213562373095048801688724209698078569671875376948073176) }; constexpr float fPiTwo { fPi / 2 };
template <class Type> constexpr float fPiFour { fPi / 4 };
constexpr Type sqrtTwoInv { static_cast<Type>(0.707106781186547524400844362104849039284835937688474036588) }; constexpr float fSqrtTwo { 1.414213562373095048801688724209698078569671875376948073176 };
constexpr float fSqrtTwoInv { 0.707106781186547524400844362104849039284835937688474036588 };
/** /**
@brief A fraction which is parameterized by integer type @brief A fraction which is parameterized by integer type

View file

@ -26,7 +26,7 @@ public:
template <class C> template <class C>
static Type normalizedGain(Type cutoff, C sampleRate) static Type normalizedGain(Type cutoff, C sampleRate)
{ {
return std::tan(cutoff / static_cast<Type>(sampleRate) * pi<float>); return std::tan(cutoff / static_cast<Type>(sampleRate) * fPi);
} }
OnePoleFilter(Type gain) OnePoleFilter(Type gain)

View file

@ -748,7 +748,7 @@ namespace _internals {
int i = 0; int i = 0;
for (; i < panSize; ++i) for (; i < panSize; ++i)
pan[i] = std::cos(i * (piTwo<double> / (panSize - 1))); pan[i] = std::cos(i * (dPiTwo / (panSize - 1)));
for (; i < static_cast<int>(pan.size()); ++i) for (; i < static_cast<int>(pan.size()); ++i)
pan[i] = pan[panSize - 1]; pan[i] = pan[panSize - 1];

View file

@ -479,7 +479,7 @@ void sfz::Voice::fillWithGenerator(AudioSpan<float> buffer) noexcept
auto bends = tempSpan2.first(buffer.getNumFrames()); auto bends = tempSpan2.first(buffer.getNumFrames());
auto phases = tempSpan2.first(buffer.getNumFrames()); auto phases = tempSpan2.first(buffer.getNumFrames());
const float step = baseFrequency * twoPi<float> / sampleRate; const float step = baseFrequency * fTwoPi / sampleRate;
fill<float>(jumps, step); fill<float>(jumps, step);
if (region->bendStep > 1) if (region->bendStep > 1)
@ -496,8 +496,8 @@ void sfz::Voice::fillWithGenerator(AudioSpan<float> buffer) noexcept
copy<float>(leftSpan, rightSpan); copy<float>(leftSpan, rightSpan);
// Wrap the phase so we don't loose too much precision on longer notes // Wrap the phase so we don't loose too much precision on longer notes
const auto numTwoPiWraps = static_cast<int>(phase / twoPi<float>); const auto numTwoPiWraps = static_cast<int>(phase / fTwoPi);
phase -= twoPi<float> * static_cast<float>(numTwoPiWraps); phase -= fTwoPi * static_cast<float>(numTwoPiWraps);
} }
} }