Classes | |
| struct | Instance |
Typedefs | |
| using | Comp = signal::VcaCompressor |
Functions | |
| float | vca_compressor_worst_case_gain () |
| Worst-case linear gain for the Forge registry (series law 8). | |
| CustomNodeType | make_vca_compressor_node (float lookahead_ms=0.0f, double attack_release_k=Comp::kRatioKDefault) |
| lookahead_ms is a construction-time argument, not a param: it IS this member's latency_samples(). | |
Variables | |
| constexpr const char * | kTypeId = "dynamics.vca_compressor" |
| constexpr state::ParamID | kThresholdDb = 1 |
| constexpr state::ParamID | kRatio = 2 |
| constexpr state::ParamID | kKneeDb = 3 |
| constexpr state::ParamID | kTimeMs = 4 |
| constexpr state::ParamID | kMakeupDb = 5 |
| constexpr state::ParamID | kMix = 6 |
| constexpr state::ParamID | kNegativeRatio = 7 |
| constexpr state::ParamID | kNegRatioAmount = 8 |
| constexpr state::ParamID | kCeilingDb = 9 |
| CustomNodeType pulp::host::dynamics::vca::make_vca_compressor_node | ( | float | lookahead_ms = 0.0f, |
| double | attack_release_k = Comp::kRatioKDefault ) |
lookahead_ms is a construction-time argument, not a param: it IS this member's latency_samples().
The DSP sizes its ring for the whole declared range at prepare(), so any value in range is allocation-free — it is frozen here for the host's sake, not the allocator's.
| float pulp::host::dynamics::vca::vca_compressor_worst_case_gain | ( | ) |
Worst-case linear gain for the Forge registry (series law 8).
Feedforward topology: the detector reads the input, so there is no loop to bound. The gain command is bounded above by the makeup ceiling and below by −ceiling_db, and the DSP suite asserts both rather than assuming them — this is that asserted upper bound, not a fresh estimate.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |