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

Classes

struct  Instance

Typedefs

using Comp = signal::FetCompressor

Functions

float fet_compressor_worst_case_gain ()
 Worst-case linear gain for the Forge registry (series law 8).
CustomNodeType make_fet_compressor_node ()

Variables

constexpr const char * kTypeId = "dynamics.fet_compressor"
constexpr state::ParamID kInputGainDb = 1
constexpr state::ParamID kOutputGainDb = 2
constexpr state::ParamID kRatio = 3
constexpr state::ParamID kAttackUs = 4
constexpr state::ParamID kReleaseMs = 5
constexpr state::ParamID kKneeDb = 6
constexpr state::ParamID kTransformerAmount = 7
constexpr state::ParamID kMix = 8
constexpr float kRatioSteps = 4.0f
 The ratio switch's positions, in injection order: 4:1, 8:1, 12:1, 20:1, all-buttons-in.

Typedef Documentation

◆ Comp

Function Documentation

◆ fet_compressor_worst_case_gain()

float pulp::host::dynamics::fet::fet_compressor_worst_case_gain ( )

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

This member has a feedback loop, so series law 8 bites hardest here. The number is NOT an estimate: the DSP exposes a closed-form ℓ∞ bound assembled from its shipped stages — input gain × divider supremum × the resampling pair's ℓ1 product × output gain × transformer supremum — and its suite asserts both that realised gain never exceeds it and that the divider supremum really is exactly 1. Reported at the node's PARAMETER CEILINGS, because a baked param can be automated anywhere in its declared range.

◆ make_fet_compressor_node()

CustomNodeType pulp::host::dynamics::fet::make_fet_compressor_node ( )

Variable Documentation

◆ kAttackUs

state::ParamID pulp::host::dynamics::fet::kAttackUs = 4
inlineconstexpr

◆ kInputGainDb

state::ParamID pulp::host::dynamics::fet::kInputGainDb = 1
inlineconstexpr

◆ kKneeDb

state::ParamID pulp::host::dynamics::fet::kKneeDb = 6
inlineconstexpr

◆ kMix

state::ParamID pulp::host::dynamics::fet::kMix = 8
inlineconstexpr

◆ kOutputGainDb

state::ParamID pulp::host::dynamics::fet::kOutputGainDb = 2
inlineconstexpr

◆ kRatio

state::ParamID pulp::host::dynamics::fet::kRatio = 3
inlineconstexpr

◆ kRatioSteps

float pulp::host::dynamics::fet::kRatioSteps = 4.0f
inlineconstexpr

The ratio switch's positions, in injection order: 4:1, 8:1, 12:1, 20:1, all-buttons-in.

ABI is the documented distinct circuit state, not a fifth ratio — but in this model it is five coefficient changes over an unchanged signal path with unchanged latency, so it is a stepped PARAM (a front-panel switch a user automates) rather than a fifth registered realization.

◆ kReleaseMs

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

◆ kTransformerAmount

state::ParamID pulp::host::dynamics::fet::kTransformerAmount = 7
inlineconstexpr

◆ kTypeId

const char* pulp::host::dynamics::fet::kTypeId = "dynamics.fet_compressor"
inlineconstexpr