Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::host::dynamics Namespace Reference

Namespaces

namespace  true_peak
namespace  vca
namespace  fet
namespace  diode

Classes

struct  FeedforwardCompressorInstance

Functions

float feedforward_compressor_worst_case_gain ()
 Worst-case linear gain for the Forge registry (series law 8).
CustomNodeType make_feedforward_compressor_node (float lookahead_ms=0.0f)
 The transparent/modern compressor as a lowerable custom node.

Variables

constexpr const char * kFeedforwardCompressorTypeId = "dynamics.feedforward_compressor"
constexpr state::ParamID kThresholdDb = 1
constexpr state::ParamID kRatio = 2
constexpr state::ParamID kKneeDb = 3
constexpr state::ParamID kAttackMs = 4
constexpr state::ParamID kReleaseMs = 5
constexpr state::ParamID kDetectorMode = 6
constexpr state::ParamID kRmsWindowMs = 7
constexpr state::ParamID kProgramDependent = 9
constexpr state::ParamID kMakeupDb = 10
constexpr state::ParamID kAutoMakeup = 11
constexpr state::ParamID kStereoLink = 12
constexpr float kNodeMaxLookaheadMs = 10.0f
 This node's lookahead ceiling, in ms.

Function Documentation

◆ feedforward_compressor_worst_case_gain()

float pulp::host::dynamics::feedforward_compressor_worst_case_gain ( )

Worst-case linear gain for the Forge registry (series law 8).

The topology is feedforward — the sidechain reads the input, never the output — so there is no loop to bound and no small-signal-gain argument to make. The gain computer can only ever reduce, so the bound is exactly the makeup ceiling: 10^(24/20). Asserted directly by the DSP suite's makeup-gain bound test rather than reasoned about here.

◆ make_feedforward_compressor_node()

CustomNodeType pulp::host::dynamics::make_feedforward_compressor_node ( float lookahead_ms = 0.0f)

The transparent/modern compressor as a lowerable custom node.

lookahead_ms is a construction-time realization axis because it changes intrinsic latency. Non-zero values therefore receive stable, collision-free type identities; the historical zero-lookahead node retains its base id.

Variable Documentation

◆ kAttackMs

state::ParamID pulp::host::dynamics::kAttackMs = 4
inlineconstexpr

◆ kAutoMakeup

state::ParamID pulp::host::dynamics::kAutoMakeup = 11
inlineconstexpr

◆ kDetectorMode

state::ParamID pulp::host::dynamics::kDetectorMode = 6
inlineconstexpr

◆ kFeedforwardCompressorTypeId

const char* pulp::host::dynamics::kFeedforwardCompressorTypeId = "dynamics.feedforward_compressor"
inlineconstexpr

◆ kKneeDb

state::ParamID pulp::host::dynamics::kKneeDb = 3
inlineconstexpr

◆ kMakeupDb

state::ParamID pulp::host::dynamics::kMakeupDb = 10
inlineconstexpr

◆ kNodeMaxLookaheadMs

float pulp::host::dynamics::kNodeMaxLookaheadMs = 10.0f
inlineconstexpr

This node's lookahead ceiling, in ms.

The DSP header supports any value up to kMaxLookaheadMsCeiling; this is the value THIS node instantiates, which fixes the ring-buffer size at prepare() and therefore the largest latency the node can ever report. A future node can bake a larger ceiling without a header change. [design parameter] default 10 ms, range 0 .. 50 ms.

◆ kProgramDependent

state::ParamID pulp::host::dynamics::kProgramDependent = 9
inlineconstexpr

◆ kRatio

state::ParamID pulp::host::dynamics::kRatio = 2
inlineconstexpr

◆ kReleaseMs

state::ParamID pulp::host::dynamics::kReleaseMs = 5
inlineconstexpr

◆ kRmsWindowMs

state::ParamID pulp::host::dynamics::kRmsWindowMs = 7
inlineconstexpr

◆ kStereoLink

state::ParamID pulp::host::dynamics::kStereoLink = 12
inlineconstexpr

◆ kThresholdDb

state::ParamID pulp::host::dynamics::kThresholdDb = 1
inlineconstexpr