Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
forge_drum_catalog_contract.hpp File Reference
#include <pulp/host/signal_graph.hpp>
#include <pulp/signal/drum/engine_registry.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <memory>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  pulp
namespace  pulp::host
 Bounded event contracts shared by host ingress and graph-authored nodes.
namespace  pulp::host::forge_drum

Enumerations

enum class  pulp::host::forge_drum::EngineId
 Stable identities for the drum engines Pulp can describe. More...

Variables

constexpr const char * pulp::host::forge_drum::kKickOscillatorTypeId = "drum.kick.oscillator"
constexpr const char * pulp::host::forge_drum::kKickResonantTypeId = "drum.kick.resonant"
constexpr const char * pulp::host::forge_drum::kKickCircuitTypeId = "drum.kick.circuit"
constexpr const char * pulp::host::forge_drum::kSnareTypeId = "drum.snare"
constexpr const char * pulp::host::forge_drum::kHatTypeId = "drum.hat"
constexpr const char * pulp::host::forge_drum::kClapTypeId = "drum.clap"
constexpr const char * pulp::host::forge_drum::kTomGenericTypeId = "drum.tom.generic"
constexpr const char * pulp::host::forge_drum::kTomSimmonsTypeId = "drum.tom.simmons"
constexpr const char * pulp::host::forge_drum::kCymbalTypeId = "drum.cymbal.comb"
constexpr const char * pulp::host::forge_drum::kMembraneTypeId = "drum.membrane.modal"
constexpr const char * pulp::host::forge_drum::kStringTypeId = "drum.string.karplus-strong"
constexpr const char * pulp::host::forge_drum::kZapTypeId = "drum.zap.cz"
constexpr const char * pulp::host::forge_drum::kFm2TypeId = "drum.fm2"
constexpr const char * pulp::host::forge_drum::kFm6TypeId = "drum.fm6"
constexpr const char * pulp::host::forge_drum::kFm8TypeId = "drum.fm8"
constexpr state::ParamID pulp::host::forge_drum::kTrigger = 1
constexpr state::ParamID pulp::host::forge_drum::kVelocity = 2
constexpr state::ParamID pulp::host::forge_drum::kChoke = 3
constexpr state::ParamID pulp::host::forge_drum::kChokeMs = 4
constexpr state::ParamID pulp::host::forge_drum::kVelocityLevelDb = 5
constexpr state::ParamID pulp::host::forge_drum::kVelocityBendOctaves = 6
constexpr state::ParamID pulp::host::forge_drum::kVelocityBrightnessOctaves = 7
constexpr state::ParamID pulp::host::forge_drum::kVelocityNoiseBalance = 8
constexpr state::ParamID pulp::host::forge_drum::kTuneHz = 10
constexpr state::ParamID pulp::host::forge_drum::kDecay = 11
constexpr state::ParamID pulp::host::forge_drum::kPitchSweepOctaves = 12
constexpr state::ParamID pulp::host::forge_drum::kPitchSweepMs = 13
constexpr state::ParamID pulp::host::forge_drum::kNoiseColor = 14
constexpr state::ParamID pulp::host::forge_drum::kOutputDrive = 20
constexpr state::ParamID pulp::host::forge_drum::kOutputFold = 21
constexpr state::ParamID pulp::host::forge_drum::kOutputLevel = 22
constexpr state::ParamID pulp::host::forge_drum::kOutputAhdEnabled = 23
constexpr state::ParamID pulp::host::forge_drum::kOutputAttackMs = 24
constexpr state::ParamID pulp::host::forge_drum::kOutputHoldMs = 25
constexpr state::ParamID pulp::host::forge_drum::kOutputDecayMs = 26
constexpr state::ParamID pulp::host::forge_drum::kOutputBits = 27
constexpr state::ParamID pulp::host::forge_drum::kOutputHoldRateHz = 28
constexpr state::ParamID pulp::host::forge_drum::kOutputJitter = 29
constexpr state::ParamID pulp::host::forge_drum::kOutputSmoothing = 30
constexpr state::ParamID pulp::host::forge_drum::kOutputDeadZone = 31
constexpr state::ParamID pulp::host::forge_drum::kGateRiseMs = 40
constexpr state::ParamID pulp::host::forge_drum::kGateFallMs = 41
constexpr state::ParamID pulp::host::forge_drum::kGateColour = 42
constexpr state::ParamID pulp::host::forge_drum::kGateClosedHz = 43
constexpr state::ParamID pulp::host::forge_drum::kGateOpenHz = 44
constexpr state::ParamID pulp::host::forge_drum::kGateGainExponent = 45
constexpr state::ParamID pulp::host::forge_drum::kToneLofiBits = 50
constexpr state::ParamID pulp::host::forge_drum::kToneLofiHoldRateHz = 51
constexpr state::ParamID pulp::host::forge_drum::kToneLofiJitter = 52
constexpr state::ParamID pulp::host::forge_drum::kToneLofiSmoothing = 53
constexpr state::ParamID pulp::host::forge_drum::kToneLofiDeadZone = 54
constexpr state::ParamID pulp::host::forge_drum::kNoiseLofiBits = 55
constexpr state::ParamID pulp::host::forge_drum::kNoiseLofiHoldRateHz = 56
constexpr state::ParamID pulp::host::forge_drum::kNoiseLofiJitter = 57
constexpr state::ParamID pulp::host::forge_drum::kNoiseLofiSmoothing = 58
constexpr state::ParamID pulp::host::forge_drum::kNoiseLofiDeadZone = 59
constexpr state::ParamID pulp::host::forge_drum::kCircuitC41 = 60
constexpr state::ParamID pulp::host::forge_drum::kCircuitC42 = 61
constexpr state::ParamID pulp::host::forge_drum::kCircuitR161 = 62
constexpr state::ParamID pulp::host::forge_drum::kCircuitR165 = 63
constexpr state::ParamID pulp::host::forge_drum::kCircuitR166 = 64
constexpr state::ParamID pulp::host::forge_drum::kCircuitR167 = 65
constexpr state::ParamID pulp::host::forge_drum::kCircuitR170 = 66
constexpr state::ParamID pulp::host::forge_drum::kControl0 = 100
constexpr state::ParamID pulp::host::forge_drum::kControl1 = 101
constexpr state::ParamID pulp::host::forge_drum::kControl2 = 102
constexpr state::ParamID pulp::host::forge_drum::kControl3 = 103
constexpr state::ParamID pulp::host::forge_drum::kControl4 = 104
constexpr state::ParamID pulp::host::forge_drum::kControl5 = 105
constexpr state::ParamID pulp::host::forge_drum::kControl6 = 106
constexpr state::ParamID pulp::host::forge_drum::kControl7 = 107
constexpr state::ParamID pulp::host::forge_drum::kControl8 = 108
constexpr state::ParamID pulp::host::forge_drum::kControl9 = 109
constexpr state::ParamID pulp::host::forge_drum::kControl10 = 110
constexpr state::ParamID pulp::host::forge_drum::kControl11 = 111
constexpr state::ParamID pulp::host::forge_drum::kControl12 = 112
constexpr state::ParamID pulp::host::forge_drum::kControl13 = 113
constexpr state::ParamID pulp::host::forge_drum::kControl14 = 114
constexpr state::ParamID pulp::host::forge_drum::kControl15 = 115
constexpr state::ParamID pulp::host::forge_drum::kControl16 = 116
constexpr state::ParamID pulp::host::forge_drum::kControl17 = 117
constexpr state::ParamID pulp::host::forge_drum::kControl18 = 118
constexpr state::ParamID pulp::host::forge_drum::kControl19 = 119
constexpr state::ParamID pulp::host::forge_drum::kControl20 = 120
constexpr state::ParamID pulp::host::forge_drum::kControl21 = 121
constexpr state::ParamID pulp::host::forge_drum::kControl22 = 122
constexpr auto pulp::host::forge_drum::kKickClickLevel = kControl0
constexpr auto pulp::host::forge_drum::kKickClickToneHz = kControl1
constexpr auto pulp::host::forge_drum::kKickClickDecayMs = kControl2
constexpr auto pulp::host::forge_drum::kKickNoiseLevel = kControl3
constexpr auto pulp::host::forge_drum::kKickNoiseDecayMs = kControl4
constexpr auto pulp::host::forge_drum::kKickSubLevel = kControl5
constexpr auto pulp::host::forge_drum::kKickTriangle = kControl6
constexpr auto pulp::host::forge_drum::kKickFmAmount = kControl7
constexpr auto pulp::host::forge_drum::kKickFmRatio = kControl8
constexpr auto pulp::host::forge_drum::kKickCircuitFeedback = kControl6
constexpr auto pulp::host::forge_drum::kKickCircuitDrive = kControl7
constexpr auto pulp::host::forge_drum::kKickCircuitAttackMs = kControl8
constexpr auto pulp::host::forge_drum::kKickCircuitPulseMs = kControl9
constexpr auto pulp::host::forge_drum::kKickCircuitSigh = kControl10
constexpr auto pulp::host::forge_drum::kKickCircuitHitLife = kControl11
constexpr auto pulp::host::forge_drum::kSnareToneRatio = kControl0
constexpr auto pulp::host::forge_drum::kSnareToneLevel = kControl1
constexpr auto pulp::host::forge_drum::kSnareFmAmount = kControl2
constexpr auto pulp::host::forge_drum::kSnareRing = kControl3
constexpr auto pulp::host::forge_drum::kSnareNoiseLevel = kControl4
constexpr auto pulp::host::forge_drum::kSnareNoiseDecayMs = kControl5
constexpr auto pulp::host::forge_drum::kSnareNoiseCutoffHz = kControl6
constexpr auto pulp::host::forge_drum::kSnareNoiseResonance = kControl7
constexpr auto pulp::host::forge_drum::kSnareNoiseSweepOctaves = kControl8
constexpr auto pulp::host::forge_drum::kSnareRattle = kControl9
constexpr auto pulp::host::forge_drum::kSnareRattleHz = kControl10
constexpr auto pulp::host::forge_drum::kSnareSnapLevel = kControl11
constexpr auto pulp::host::forge_drum::kSnareSnapCutoffHz = kControl12
constexpr auto pulp::host::forge_drum::kSnareSnapDecayMs = kControl13
constexpr auto pulp::host::forge_drum::kSnareShellLevel = kControl14
constexpr auto pulp::host::forge_drum::kSnareShellResonance = kControl15
constexpr auto pulp::host::forge_drum::kHatSpread = kControl0
constexpr auto pulp::host::forge_drum::kHatMetal = kControl1
constexpr auto pulp::host::forge_drum::kHatGrit = kControl2
constexpr auto pulp::host::forge_drum::kHatGritRatio = kControl3
constexpr auto pulp::host::forge_drum::kHatCutoffHz = kControl4
constexpr auto pulp::host::forge_drum::kHatResonance = kControl5
constexpr auto pulp::host::forge_drum::kHatBandpass = kControl6
constexpr auto pulp::host::forge_drum::kClapBurstCount = kControl0
constexpr auto pulp::host::forge_drum::kClapBurstSpacingMs = kControl1
constexpr auto pulp::host::forge_drum::kClapBurstDecayMs = kControl2
constexpr auto pulp::host::forge_drum::kClapBurstFalloff = kControl3
constexpr auto pulp::host::forge_drum::kClapGapJitter = kControl4
constexpr auto pulp::host::forge_drum::kClapAlternatePolarity = kControl5
constexpr auto pulp::host::forge_drum::kClapStereoWidth = kControl6
constexpr auto pulp::host::forge_drum::kClapTailLevel = kControl7
constexpr auto pulp::host::forge_drum::kClapTailDecayMs = kControl8
constexpr auto pulp::host::forge_drum::kClapCutoffHz = kControl9
constexpr auto pulp::host::forge_drum::kClapResonance = kControl10
constexpr auto pulp::host::forge_drum::kClapBodyLevel = kControl11
constexpr auto pulp::host::forge_drum::kClapBodyHz = kControl12
constexpr auto pulp::host::forge_drum::kTomWave = kControl0
constexpr auto pulp::host::forge_drum::kTomNoiseBalance = kControl1
constexpr auto pulp::host::forge_drum::kTomNoiseCutoffHz = kControl2
constexpr auto pulp::host::forge_drum::kTomNoiseResonance = kControl3
constexpr auto pulp::host::forge_drum::kTomClickLevel = kControl4
constexpr auto pulp::host::forge_drum::kTomClickCutoffHz = kControl5
constexpr auto pulp::host::forge_drum::kTomClickDecayMs = kControl6
constexpr auto pulp::host::forge_drum::kMembraneStructure = kControl0
constexpr auto pulp::host::forge_drum::kMembraneStretch = kControl1
constexpr auto pulp::host::forge_drum::kMembraneDamping = kControl2
constexpr auto pulp::host::forge_drum::kMembraneBrightness = kControl3
constexpr auto pulp::host::forge_drum::kMembranePosition = kControl4
constexpr auto pulp::host::forge_drum::kMembraneSpread = kControl5
constexpr auto pulp::host::forge_drum::kMembraneExciterMs = kControl6
constexpr auto pulp::host::forge_drum::kMembraneExciterCutoffHz = kControl7
constexpr auto pulp::host::forge_drum::kMembraneExciter = kControl8
constexpr auto pulp::host::forge_drum::kMembraneSubLevel = kControl9
constexpr auto pulp::host::forge_drum::kMembraneAirLevel = kControl10
constexpr auto pulp::host::forge_drum::kMembraneAirDecayMs = kControl11
constexpr auto pulp::host::forge_drum::kMembraneClickLevel = kControl12
constexpr auto pulp::host::forge_drum::kMembraneClickDecayMs = kControl13
constexpr auto pulp::host::forge_drum::kCymbalDecayTilt = kControl0
constexpr auto pulp::host::forge_drum::kCymbalHighModeEmphasisDb = kControl1
constexpr auto pulp::host::forge_drum::kCymbalVelocityFeedback = kControl2
constexpr auto pulp::host::forge_drum::kCymbalVelocityHighModeDb = kControl3
constexpr auto pulp::host::forge_drum::kCymbalUpperHighpassHz = kControl4
constexpr auto pulp::host::forge_drum::kCymbalSpread = kControl5
constexpr auto pulp::host::forge_drum::kCymbalInharmonicity = kControl6
constexpr auto pulp::host::forge_drum::kCymbalShiftHz = kControl7
constexpr auto pulp::host::forge_drum::kCymbalNoiseLevel = kControl8
constexpr auto pulp::host::forge_drum::kCymbalStrikeLevel = kControl9
constexpr auto pulp::host::forge_drum::kCymbalStrikeMs = kControl10
constexpr auto pulp::host::forge_drum::kCymbalToneHz = kControl11
constexpr auto pulp::host::forge_drum::kCymbalLowCutHz = kControl12
constexpr auto pulp::host::forge_drum::kCymbalHitLife = kControl14
constexpr auto pulp::host::forge_drum::kStringDamping = kControl0
constexpr auto pulp::host::forge_drum::kStringStiffness = kControl1
constexpr auto pulp::host::forge_drum::kStringPluckPosition = kControl2
constexpr auto pulp::host::forge_drum::kStringExciterMs = kControl3
constexpr auto pulp::host::forge_drum::kStringBrightnessHz = kControl4
constexpr auto pulp::host::forge_drum::kStringPickDirection = kControl5
constexpr auto pulp::host::forge_drum::kStringRestartOnHit = kControl6
constexpr auto pulp::host::forge_drum::kStringModulation = kControl7
constexpr auto pulp::host::forge_drum::kStringModulationMix = kControl8
constexpr auto pulp::host::forge_drum::kStringModulationRatio = kControl9
constexpr auto pulp::host::forge_drum::kStringFmDepthOctaves = kControl10
constexpr auto pulp::host::forge_drum::kStringLpgAmount = kControl11
constexpr auto pulp::host::forge_drum::kZapShape = kControl0
constexpr auto pulp::host::forge_drum::kZapDistortion = kControl1
constexpr auto pulp::host::forge_drum::kZapDistortionMs = kControl2
constexpr auto pulp::host::forge_drum::kZapResonantDepth = kControl3
constexpr auto pulp::host::forge_drum::kZapDetuneCents = kControl4
constexpr auto pulp::host::forge_drum::kZapRing = kControl5
constexpr auto pulp::host::forge_drum::kZapRingRatio = kControl6
constexpr auto pulp::host::forge_drum::kFmAlgorithm = kControl0
constexpr auto pulp::host::forge_drum::kFmDepth = kControl1
constexpr auto pulp::host::forge_drum::kFmFormantHz = kControl2
constexpr auto pulp::host::forge_drum::kFmFormantQ = kControl3
constexpr auto pulp::host::forge_drum::kFm6Feedback = kControl4
constexpr auto pulp::host::forge_drum::kFm8Transient = kControl4
constexpr auto pulp::host::forge_drum::kFm8NoiseLevel = kControl5
constexpr auto pulp::host::forge_drum::kFm8NoiseDecayMs = kControl6
constexpr auto pulp::host::forge_drum::kFm8ClickLevel = kControl7
constexpr auto pulp::host::forge_drum::kFm2Ratio = kControl0
constexpr auto pulp::host::forge_drum::kFm2Index = kControl1
constexpr auto pulp::host::forge_drum::kFm2IndexMs = kControl2
constexpr auto pulp::host::forge_drum::kFm2Feedback = kControl3
constexpr auto pulp::host::forge_drum::kFm2CarrierWave = kControl4
constexpr auto pulp::host::forge_drum::kFm2ModulatorWave = kControl5
constexpr auto pulp::host::forge_drum::kFm2CarrierWarp = kControl6
constexpr auto pulp::host::forge_drum::kFm2ModulatorWarp = kControl7
constexpr auto pulp::host::forge_drum::kFm2CarrierWarpMs = kControl8
constexpr auto pulp::host::forge_drum::kFm2ModulatorWarpMs = kControl9
constexpr auto pulp::host::forge_drum::kFm2LfoRateHz = kControl10
constexpr auto pulp::host::forge_drum::kFm2LfoDepthOctaves = kControl11
constexpr auto pulp::host::forge_drum::kFm2LfoDelayMs = kControl12
constexpr auto pulp::host::forge_drum::kFm2LfoFadeMs = kControl13
constexpr auto pulp::host::forge_drum::kFm2HardSync = kControl14
constexpr auto pulp::host::forge_drum::kFm2Transient = kControl15
constexpr auto pulp::host::forge_drum::kFm2NoiseLevel = kControl16
constexpr auto pulp::host::forge_drum::kFm2NoiseDecayMs = kControl17
constexpr auto pulp::host::forge_drum::kFm2CutoffHz = kControl18
constexpr auto pulp::host::forge_drum::kFm2Resonance = kControl19
constexpr auto pulp::host::forge_drum::kFm2Bandpass = kControl20
constexpr auto pulp::host::forge_drum::kFm2ClickLevel = kControl21
constexpr auto pulp::host::forge_drum::kFm2ClickCutoffHz = kControl22
constexpr float pulp::host::forge_drum::kHoldRateBypassHz = 192000.0f
 Top of every sample-and-hold rate range, and their shared default.
constexpr signal::drum::OutputOversampling pulp::host::forge_drum::kDrumNodeOversampling
 The output quality every drum node runs at, named once so the prepare hook and the declared latency derive from the same choice.
constexpr state::ParamID pulp::host::forge_drum::kOperatorRatioBase = 200
constexpr state::ParamID pulp::host::forge_drum::kOperatorLevelBase = 220
constexpr state::ParamID pulp::host::forge_drum::kOperatorDecayBase = 240
constexpr state::ParamID pulp::host::forge_drum::kOperatorFeedbackBase = 260
constexpr state::ParamID pulp::host::forge_drum::kOperatorWaveBase = 280