#pragma once #include #include typedef struct { float targetLevel; float maxGain; float minGain; float attackTime; float releaseTime; float currentGain; float currentLevel; uint32_t sampleRate; float attackCoef; float releaseCoef; float rmsBuffer; float rmsAlpha; float rmsBeta; } AGC; void initAGC(AGC* agc, uint32_t sampleRate, float targetLevel, float minGain, float maxGain, float attackTime, float releaseTime); float process_agc(AGC* agc, float sidechain);