Graph nodes

A graph is a series chain of these, plus one aux bus. Each has its own page with the parameters and the arithmetic.

The fourteen

NODEWHAT THE STAGE DOESBUSNONLINEAR
gainRaises or lowers the level. The tone does not changemainno
biquadEQ and filters. Lifts, cuts or removes a bandmainno
dc_blockerRemoves the DC componentmainno
waveshaperSaturation. Rounds the peaks and adds harmonicsmainyes
harmonic_shaperAdds the 2nd to 5th harmonics in set proportionsmainyes
hysteresisMagnetic saturation with memorymainyes
envelope_followerMeasures the level and writes it to the aux busmain to auxno
one_pole_smootherSmooths the control signal on the aux busaux onlyno
signal_gainPulls the level down by the aux value (power sag)aux to mainyes
elliptical_eqCentres the low end, with a high shelf and widthmainno
allpass_decorrelatorPhase difference between channels, flat magnitudemainno
crosstalk_cancellerCancels what each speaker sends to the far earmainno
directional_eqHeight band and depth dip, on the side componentmainno
early_reflectorEarly reflections from the side componentmainno

How they go together

  • The chain is one line, upstream to downstream, plus one aux bus. Branching and merging cannot be expressed.
  • Order matters: a dc_blocker only removes what was created before it, and signal_gain only sees what an upstream envelope_follower wrote.
  • An empty list is a bypass.
  • One nonlinear node changes the whole chain: it is simulated before it can be heard, the output limiter is armed for the session, and it is soft started.
  • Every node is written in Hz and dB, so the same graph loads at both internal rates.
  • There is one aux bus, not one per node.

    A second envelope_follower overwrites the first. If a side chain is not behaving, check whether something upstream is writing to the same bus.

  • Linear stages are combined for the A/B match.

    gain, biquad and dc_blocker are combined from their coefficients. Nonlinear and spatial stages count as 0 dB, so their level changes are yours to compensate.