envelope_follower

NODE

Measures how loud the signal is and writes it to the aux bus. The main signal passes through untouched.

Parameters

FIELDWHAT IT DECIDESRANGEREQUIRED
attack_msAttack [ms].0.01 〜 5,000yes
detectorDetector type.peak / rmsyes
release_msRelease [ms].0.01 〜 5,000yes
{
  "attack_ms": 1,
  "detector": "rms",
  "release_ms": 50,
  "type": "envelope_follower"
}

How it is computed

detector = peak   the rectified value, followed with attack_ms and release_ms
detector = rms    the running root mean square, followed the same way

the value is written to the aux bus; the main signal is passed through
the maximum across channels is taken and the same value is written to all of them

Using it

  • It is the first half of a side chain.

    On its own it changes nothing you can hear. It exists to feed signal_gain, usually through one_pole_smoother, which is how power supply sag is built.

  • Detection is linked across channels on purpose.

    A power supply is shared, and detecting per channel would make the image move with level: the left would dip on its own. The maximum across channels is used for all of them.

  • There is only one aux bus.

    A second envelope_follower overwrites what the first one wrote. Only the last one upstream is heard from.

  • Peak or RMS changes the feel, not the amount.

    Peak reacts to transients; RMS reacts to sustained level. With a slow release the difference shows mostly in how a percussive attack is treated.