Files
reasampler/temp_cortex/limiter_base.cpp
T
2026-08-01 15:09:30 -04:00

16 lines
526 B
C++

#include "limiter_base.hpp"
#include "basicmaths.h"
LimiterBase::LimiterBase(float sampleRate) : sampleRate(sampleRate), gainReduction(1.0f), makeupGain(1.0f)
{
setTiming(0.01f, 12.0f);
}
void LimiterBase::setTiming(float attackMs, float releaseMs)
{
// Convert milliseconds to coefficient for exponential decay
// Formula: coeff = exp(-1 / (time_in_samples))
attackCoeff = expf(-1.0f / (attackMs * 0.001f * sampleRate + 1e-6f));
releaseCoeff = expf(-1.0f / (releaseMs * 0.001f * sampleRate + 1e-6f));
}