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

Classes

struct  SaturatorInstance

Typedefs

using Shape = signal::SaturatorShape
using AliasPolicy = signal::SaturatorAliasPolicy

Functions

const char * saturator_type_id (Shape shape)
const char * saturator_default_name (Shape shape)
const char * alias_policy_id (AliasPolicy policy) noexcept
Shape normalized_shape (Shape shape) noexcept
AliasPolicy normalized_alias_policy (AliasPolicy policy) noexcept
float saturator_worst_case_gain (Shape shape)
 The largest gain this realization can present, for the Forge registry's worst_case_gain row (series law 8).
CustomNodeType make_saturator_node (Shape shape, AliasPolicy alias_policy=AliasPolicy::adaa)
 One factory, four registered realizations.
ForgeNodeDescriptor saturator_descriptor ()

Variables

constexpr const char * kTanhTypeId = "saturator.tanh"
constexpr const char * kAtanTypeId = "saturator.atan"
constexpr const char * kCubicTypeId = "saturator.cubic"
constexpr const char * kSinhArcTypeId = "saturator.sinh_arc"
constexpr state::ParamID kDriveDb = 1
constexpr state::ParamID kBias = 2
constexpr state::ParamID kTonePreHz = 3
constexpr state::ParamID kMix = 4
constexpr state::ParamID kOutputTrimDb = 5
constexpr state::ParamID kToneTracking = 6
constexpr state::ParamID kToneDeHz = 7
constexpr state::ParamID kPreBoostDb = 8

Typedef Documentation

◆ AliasPolicy

◆ Shape

Function Documentation

◆ alias_policy_id()

const char * pulp::host::saturator::alias_policy_id ( AliasPolicy policy)
inlinenoexcept

◆ make_saturator_node()

CustomNodeType pulp::host::saturator::make_saturator_node ( Shape shape,
AliasPolicy alias_policy = AliasPolicy::adaa )
inline

One factory, four registered realizations.

alias_policy is a construction-time choice because it determines latency_samples(); see the header note.

◆ normalized_alias_policy()

AliasPolicy pulp::host::saturator::normalized_alias_policy ( AliasPolicy policy)
inlinenoexcept

◆ normalized_shape()

Shape pulp::host::saturator::normalized_shape ( Shape shape)
inlinenoexcept

◆ saturator_default_name()

const char * pulp::host::saturator::saturator_default_name ( Shape shape)
inline

◆ saturator_descriptor()

ForgeNodeDescriptor pulp::host::saturator::saturator_descriptor ( )
inline

◆ saturator_type_id()

const char * pulp::host::saturator::saturator_type_id ( Shape shape)
inline

◆ saturator_worst_case_gain()

float pulp::host::saturator::saturator_worst_case_gain ( Shape shape)
inline

The largest gain this realization can present, for the Forge registry's worst_case_gain row (series law 8).

Exactly 1.0 while bias is zero, because every shape is globally compressive past the origin. With bias it is 1 / f'(b), which the DSP computes and its test suite asserts across the full drive/bias grid. This function reports the bound at the node's own bias CEILING, since a baked param can be automated anywhere in its declared range and the registry entry has to cover all of it.

Variable Documentation

◆ kAtanTypeId

const char* pulp::host::saturator::kAtanTypeId = "saturator.atan"
inlineconstexpr

◆ kBias

state::ParamID pulp::host::saturator::kBias = 2
inlineconstexpr

◆ kCubicTypeId

const char* pulp::host::saturator::kCubicTypeId = "saturator.cubic"
inlineconstexpr

◆ kDriveDb

state::ParamID pulp::host::saturator::kDriveDb = 1
inlineconstexpr

◆ kMix

state::ParamID pulp::host::saturator::kMix = 4
inlineconstexpr

◆ kOutputTrimDb

state::ParamID pulp::host::saturator::kOutputTrimDb = 5
inlineconstexpr

◆ kPreBoostDb

state::ParamID pulp::host::saturator::kPreBoostDb = 8
inlineconstexpr

◆ kSinhArcTypeId

const char* pulp::host::saturator::kSinhArcTypeId = "saturator.sinh_arc"
inlineconstexpr

◆ kTanhTypeId

const char* pulp::host::saturator::kTanhTypeId = "saturator.tanh"
inlineconstexpr

◆ kToneDeHz

state::ParamID pulp::host::saturator::kToneDeHz = 7
inlineconstexpr

◆ kTonePreHz

state::ParamID pulp::host::saturator::kTonePreHz = 3
inlineconstexpr

◆ kToneTracking

state::ParamID pulp::host::saturator::kToneTracking = 6
inlineconstexpr