#pragma once class LimiterBase { protected: float sampleRate; float gainReduction; float attackCoeff; float releaseCoeff; float makeupGain; public: LimiterBase(float sampleRate); virtual ~LimiterBase() = default; virtual void setTiming(float attackMs, float releaseMs); virtual void process(float input[2], float thresholdDb = -3.0f, float ceilingDb = -0.1f) = 0; };