Classes | |
| struct | Instance |
Typedefs | |
| using | Engine = signal::ChorusEnsemble |
| using | Voicing = Engine::Voicing |
| using | JunoMode = Engine::JunoMode |
Functions | |
| std::string | chorus_type_id (Voicing voicing, JunoMode juno_mode, bool bbd_color) |
| The type id for one realization. | |
| std::string | chorus_display_name (Voicing voicing, JunoMode juno_mode, bool bbd_color) |
| float | chorus_worst_case_gain (Voicing voicing, double sample_rate) |
| Worst-case linear gain for the Forge registry (series law 8). | |
| CustomNodeType | make_chorus_node (Voicing voicing=Voicing::ce2, JunoMode juno_mode=JunoMode::mode_I, bool bbd_color=false) |
| One chorus voicing as a lowerable custom node. | |
Variables | |
| constexpr state::ParamID | kRateHz = 1 |
| constexpr state::ParamID | kDepth = 2 |
| constexpr state::ParamID | kMix = 3 |
| constexpr state::ParamID | kStereoWidth = 4 |
| constexpr double | kRateMinHz = 0.05 |
| The registered rate span, in Hz. | |
| constexpr double | kRateMaxHz = 10.0 |
| std::string pulp::host::modulation::chorus::chorus_display_name | ( | Voicing | voicing, |
| JunoMode | juno_mode, | ||
| bool | bbd_color ) |
| std::string pulp::host::modulation::chorus::chorus_type_id | ( | Voicing | voicing, |
| JunoMode | juno_mode, | ||
| bool | bbd_color ) |
The type id for one realization.
Built from the arguments rather than picked from a fixed list, because the realization axes multiply: four voicings, three Juno positions on one of them, and the colour stage on any. A registry that gave two differently behaving nodes the same id would make a session unreloadable in the direction that is hardest to notice — it loads, and sounds wrong.
| float pulp::host::modulation::chorus::chorus_worst_case_gain | ( | Voicing | voicing, |
| double | sample_rate ) |
Worst-case linear gain for the Forge registry (series law 8).
Delegates to the DSP's own closed-form L1 bound rather than restating it, because two of its terms are counterintuitive and a hand-written number would get them wrong: each modulated tap carries the 4-point Lagrange kernel's L1 norm of 1.25 rather than unity, and the Dimension D's cross-feed high-pass carries nearly 2 rather than the unity its passband gain suggests. The DSP suite recomputes both directly from the shipped kernel.
Reported at the node's PARAMETER CEILING — full stereo width — because a baked param can be automated anywhere in its declared range, and width multiplies two of the terms.
| CustomNodeType pulp::host::modulation::chorus::make_chorus_node | ( | Voicing | voicing = Voicing::ce2, |
| JunoMode | juno_mode = JunoMode::mode_I, | ||
| bool | bbd_color = false ) |
One chorus voicing as a lowerable custom node.
voicing, juno_mode and bbd_color are REGISTRATION-TIME REALIZATIONS, and none of them is frozen for the usual latency reason — this engine reports zero latency in every configuration. Three separate arguments force it:
What is left — rate, depth, mix and width — are pure coefficient stores, and they inject.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
The registered rate span, in Hz.
The DSP clamps to the same window; quoting it here rather than restating numbers keeps the two from drifting.
|
inlineconstexpr |