Skip to content

Commit

Permalink
Merge pull request #2750 from ronso0/mic-ducking-strength
Browse files Browse the repository at this point in the history
make mic ducking use strength the same way in Auto & Man mode
  • Loading branch information
daschuer authored May 6, 2020
2 parents c5e8164 + 6232a33 commit e2b0fc5
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions src/engine/enginesidechaincompressor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
#include "engine/enginesidechaincompressor.h"

EngineSideChainCompressor::EngineSideChainCompressor(const char* group)
: m_compressRatio(0.0),
: m_compressRatio(1.0),
m_bAboveThreshold(false),
m_threshold(1.0),
m_strength(0.0),
m_strength(1.0),
m_attackTime(0),
m_decayTime(0),
m_attackPerFrame(0.0),
Expand Down Expand Up @@ -54,28 +54,27 @@ void EngineSideChainCompressor::processKey(const CSAMPLE* pIn, const int iBuffer

double EngineSideChainCompressor::calculateCompressedGain(int frames) {
if (m_bAboveThreshold) {
if (m_compressRatio < m_strength) {
m_compressRatio += m_attackPerFrame * frames;
if (m_compressRatio > m_strength) {
if (m_compressRatio > m_strength) {
m_compressRatio -= m_attackPerFrame * frames;
if (m_compressRatio < m_strength) {
// If we overshot, clamp.
m_compressRatio = m_strength;
}
} else if (m_compressRatio > m_strength) {
} else if (m_compressRatio < m_strength) {
// If the strength param was changed, we might be compressing too much.
m_compressRatio -= m_decayPerFrame * frames;
m_compressRatio += m_decayPerFrame * frames;
}
} else {
if (m_compressRatio > 0) {
m_compressRatio -= m_decayPerFrame * frames;
if (m_compressRatio < 0) {
VERIFY_OR_DEBUG_ASSERT(m_compressRatio >= 0) {
qWarning() << "Programming error, below-zero compression detected.";
}
if (m_compressRatio < 1) {
m_compressRatio += m_decayPerFrame * frames;
if (m_compressRatio > 1) {
// If we overshot, clamp.
m_compressRatio = 0;
m_compressRatio = 1;
}
} else if (m_compressRatio < 0) {
// Complain loudly.
qWarning() << "Programming error, below-zero compression detected.";
m_compressRatio += m_attackPerFrame * frames;
}
}
return (1. - m_compressRatio);
return m_compressRatio;
}

0 comments on commit e2b0fc5

Please sign in to comment.