#pragma once #include "../FXProcessor.h" namespace serum { // =========================================================================== // Compressor — soft-knee RMS compressor with makeup gain. p[0]=threshold, // p[1]=ratio, p[2]=attack, p[3]=release. // =========================================================================== class CompressorUnit : public FXUnit { public: void prepare (double sampleRate, int maxBlockSize) override; void reset() override; void process (float* l, float* r, int numSamples, const float p[4]) override; private: double sr = 44100.0; float envL = 0.0f, envR = 0.0f; float gainL = 1.0f, gainR = 1.0f; }; } // namespace serum