setFetCompressor method
void
setFetCompressor({
- required bool enable,
- double threshold = 0.0,
- double ratio = 0.0,
- double knee = 0.0,
- bool kneeAuto = false,
- double gain = 0.0,
- bool gainAuto = false,
- double attack = 0.0,
- bool attackAuto = false,
- double release = 0.0,
- bool releaseAuto = false,
- double kneeMulti = 0.0,
- double maxAttack = 0.0,
- double maxRelease = 0.0,
- double crest = 0.0,
- double adapt = 0.0,
- bool noClip = false,
FET-style dynamics compressor.
Implementation
void setFetCompressor({
required bool enable,
double threshold = 0.0,
double ratio = 0.0,
double knee = 0.0,
bool kneeAuto = false,
double gain = 0.0,
bool gainAuto = false,
double attack = 0.0,
bool attackAuto = false,
double release = 0.0,
bool releaseAuto = false,
double kneeMulti = 0.0,
double maxAttack = 0.0,
double maxRelease = 0.0,
double crest = 0.0,
double adapt = 0.0,
bool noClip = false,
}) {
double nThreshold = (threshold / -60.0).clamp(0.0, 1.0);
double nGain = (gain / 60.0).clamp(-1.0, 1.0);
double nKnee = (knee / 60.0).clamp(0.0, 1.0);
double nAttack = attack <= 0.1 ? 0.0 : ((math.log(attack / 1000.0) + 9.21034) / 7.600903).clamp(0.0, 1.0);
double nRelease = release <= 5.0 ? 0.0 : ((math.log(release / 1000.0) + 5.298317) / 5.991465).clamp(0.0, 1.0);
double nMaxAttack = maxAttack <= 0.1 ? 0.879450 : ((math.log(maxAttack / 1000.0) + 9.21034) / 7.600903).clamp(0.0, 1.0);
double nMaxRelease = maxRelease <= 5.0 ? 0.884311 : ((math.log(maxRelease / 1000.0) + 5.298317) / 5.991465).clamp(0.0, 1.0);
double nCrest = crest <= 5.0 ? 0.615689 : ((math.log(crest / 1000.0) + 5.298317) / 5.991465).clamp(0.0, 1.0);
double nAdapt = adapt <= 0.0 ? 0.660964 : (math.log(adapt) / 1.386294).clamp(0.0, 1.0);
_fetCompressor(
_enginePtr, enable ? 1 : 0, nThreshold, ratio, nKnee, kneeAuto ? 1 : 0,
nGain, gainAuto ? 1 : 0, nAttack, attackAuto ? 1 : 0, nRelease, releaseAuto ? 1 : 0,
kneeMulti, nMaxAttack, nMaxRelease, nCrest, nAdapt, noClip ? 1 : 0,
);
}