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

Classes

struct  DistortionInstance

Typedefs

using DiodeModel = signal::DiodeModel
using Topology = signal::ClipperTopology

Enumerations

enum class  OversampleTier : std::uint8_t { x1 , x2 , x4 , x8 }
 Oversampling tiers this node registers. More...

Functions

int oversample_factor (OversampleTier tier)
 Returns the integer oversampling factor for a registered tier.
const char * distortion_type_id (Topology topology, OversampleTier tier)
 Stable type id for a topology/tier realization.
const char * distortion_default_name (Topology topology)
 Default display name for a topology.
float distortion_worst_case_gain ()
 Worst-case linear gain for the Forge registry (series law 8).
CustomNodeType make_distortion_node (Topology topology, OversampleTier tier=OversampleTier::x4)
 One factory, eight registered realizations (2 topologies x 4 tiers).
ForgeNodeDescriptor distortion_descriptor ()
 Descriptor for the distortion family and its registered realizations.
int distortion_latency_samples (OversampleTier tier, double sample_rate)
 Reported latency for a tier at the supplied sample rate.

Variables

constexpr const char * kToGroundX1TypeId = "distortion.to_ground.x1"
constexpr const char * kToGroundX2TypeId = "distortion.to_ground.x2"
constexpr const char * kToGroundX4TypeId = "distortion.to_ground.x4"
constexpr const char * kToGroundX8TypeId = "distortion.to_ground.x8"
constexpr const char * kInLoopX1TypeId = "distortion.in_loop.x1"
constexpr const char * kInLoopX2TypeId = "distortion.in_loop.x2"
constexpr const char * kInLoopX4TypeId = "distortion.in_loop.x4"
constexpr const char * kInLoopX8TypeId = "distortion.in_loop.x8"
constexpr state::ParamID kDriveDb = 1
constexpr state::ParamID kSymmetry = 2
constexpr state::ParamID kDiodeModel = 3
constexpr state::ParamID kPreToneHz = 4
constexpr state::ParamID kPostToneHz = 5
constexpr state::ParamID kToneMix = 6
constexpr state::ParamID kOutputDb = 7
constexpr state::ParamID kPreGainDb = 8
constexpr float kDriveDbMin = 0.0f
 Drive range.
constexpr float kDriveDbMax = 40.0f
constexpr float kDriveDbDefault = 12.0f
constexpr float kOutputDbMin = -24.0f
 Output trim. [design parameter] default 0 dB, range −24 .. +12 dB.
constexpr float kOutputDbMax = 12.0f

Typedef Documentation

◆ DiodeModel

◆ Topology

Enumeration Type Documentation

◆ OversampleTier

enum class pulp::host::distortion::OversampleTier : std::uint8_t
strong

Oversampling tiers this node registers.

×1 is the zero-latency tier and does NOT antialias.

Enumerator
x1 
x2 
x4 
x8 

Function Documentation

◆ distortion_default_name()

const char * pulp::host::distortion::distortion_default_name ( Topology topology)

Default display name for a topology.

◆ distortion_descriptor()

ForgeNodeDescriptor pulp::host::distortion::distortion_descriptor ( )

Descriptor for the distortion family and its registered realizations.

◆ distortion_latency_samples()

int pulp::host::distortion::distortion_latency_samples ( OversampleTier tier,
double sample_rate )

Reported latency for a tier at the supplied sample rate.

◆ distortion_type_id()

const char * pulp::host::distortion::distortion_type_id ( Topology topology,
OversampleTier tier )

Stable type id for a topology/tier realization.

◆ distortion_worst_case_gain()

float pulp::host::distortion::distortion_worst_case_gain ( )

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

◆ make_distortion_node()

CustomNodeType pulp::host::distortion::make_distortion_node ( Topology topology,
OversampleTier tier = OversampleTier::x4 )

One factory, eight registered realizations (2 topologies x 4 tiers).

◆ oversample_factor()

int pulp::host::distortion::oversample_factor ( OversampleTier tier)

Returns the integer oversampling factor for a registered tier.

Variable Documentation

◆ kDiodeModel

state::ParamID pulp::host::distortion::kDiodeModel = 3
inlineconstexpr

◆ kDriveDb

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

◆ kDriveDbDefault

float pulp::host::distortion::kDriveDbDefault = 12.0f
inlineconstexpr

◆ kDriveDbMax

float pulp::host::distortion::kDriveDbMax = 40.0f
inlineconstexpr

◆ kDriveDbMin

float pulp::host::distortion::kDriveDbMin = 0.0f
inlineconstexpr

Drive range.

The primary "how hard" control. [design parameter] default 12 dB, range 0 .. 40 dB.

◆ kInLoopX1TypeId

const char* pulp::host::distortion::kInLoopX1TypeId = "distortion.in_loop.x1"
inlineconstexpr

◆ kInLoopX2TypeId

const char* pulp::host::distortion::kInLoopX2TypeId = "distortion.in_loop.x2"
inlineconstexpr

◆ kInLoopX4TypeId

const char* pulp::host::distortion::kInLoopX4TypeId = "distortion.in_loop.x4"
inlineconstexpr

◆ kInLoopX8TypeId

const char* pulp::host::distortion::kInLoopX8TypeId = "distortion.in_loop.x8"
inlineconstexpr

◆ kOutputDb

state::ParamID pulp::host::distortion::kOutputDb = 7
inlineconstexpr

◆ kOutputDbMax

float pulp::host::distortion::kOutputDbMax = 12.0f
inlineconstexpr

◆ kOutputDbMin

float pulp::host::distortion::kOutputDbMin = -24.0f
inlineconstexpr

Output trim. [design parameter] default 0 dB, range −24 .. +12 dB.

◆ kPostToneHz

state::ParamID pulp::host::distortion::kPostToneHz = 5
inlineconstexpr

◆ kPreGainDb

state::ParamID pulp::host::distortion::kPreGainDb = 8
inlineconstexpr

◆ kPreToneHz

state::ParamID pulp::host::distortion::kPreToneHz = 4
inlineconstexpr

◆ kSymmetry

state::ParamID pulp::host::distortion::kSymmetry = 2
inlineconstexpr

◆ kToGroundX1TypeId

const char* pulp::host::distortion::kToGroundX1TypeId = "distortion.to_ground.x1"
inlineconstexpr

◆ kToGroundX2TypeId

const char* pulp::host::distortion::kToGroundX2TypeId = "distortion.to_ground.x2"
inlineconstexpr

◆ kToGroundX4TypeId

const char* pulp::host::distortion::kToGroundX4TypeId = "distortion.to_ground.x4"
inlineconstexpr

◆ kToGroundX8TypeId

const char* pulp::host::distortion::kToGroundX8TypeId = "distortion.to_ground.x8"
inlineconstexpr

◆ kToneMix

state::ParamID pulp::host::distortion::kToneMix = 6
inlineconstexpr