Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
parameter.hpp File Reference
#include <algorithm>
#include <atomic>
#include <bit>
#include <cctype>
#include <cmath>
#include <cstdint>
#include <functional>
#include <limits>
#include <optional>
#include <string>
#include <string_view>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::state::BaseOffsetValue
 Canonical automation value shared by graph, Processor, and timeline delivery. More...
struct  pulp::state::ParamRange
 Defines the numeric range of a parameter, including normalization. More...
struct  pulp::state::SkewedRange< T >
 Skew-aware normalized range with optional symmetric center. More...
struct  pulp::state::ParamInfo
 Immutable parameter metadata, registered once at plugin initialization. More...
class  pulp::state::ParamValue
 Thread-safe atomic parameter value for lock-free audio/UI communication. More...

Namespaces

namespace  pulp
namespace  pulp::state
 SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the bulk, observable state a step sequencer / mod-matrix / pattern engine holds outside its automatable parameter set (e.g.

Typedefs

using pulp::state::ParamID = uint32_t
 Unique parameter identifier, stable across plugin versions.
using pulp::state::ParamChangeCallback = std::function<void(ParamID id, float new_value)>
 Callback signature for parameter change notifications.

Enumerations

enum class  pulp::state::BaseOffsetRefusal : std::uint8_t { pulp::state::None , pulp::state::NonFiniteBase , pulp::state::NonFiniteOffset , pulp::state::OutOfRange }
enum class  pulp::state::ParamRate { pulp::state::ControlRate , pulp::state::AudioRate }
 Parameter update-rate classification. More...
enum class  pulp::state::ParamKind { pulp::state::Continuous , pulp::state::Integer , pulp::state::Toggle , pulp::state::Enum }
 Author-declared parameter semantics. More...
enum class  pulp::state::ParamDesignation { pulp::state::None , pulp::state::Bypass , pulp::state::Reset }
 Declared semantic role of a parameter. More...

Functions

BaseOffsetRefusal pulp::state::validate_base_offset (BaseOffsetValue value, float minimum, float maximum) noexcept
bool pulp::state::is_discrete_param (const ParamInfo &info)
float pulp::state::value_from_host_normalized (const ParamInfo &info, double normalized)
 The plain value a host means by a normalized write.
double pulp::state::host_normalized_from_value (const ParamInfo &info, float value)
 The normalized value to report to a host for value: the inverse of value_from_host_normalized(), in double precision for a linear range, so a value the host reads back (a default, an output parameter) maps to exactly the same plain value when the host writes it again.
bool pulp::state::is_boolean_param (const ParamInfo &info)
uint32_t pulp::state::param_value_count (const ParamInfo &info)
float pulp::state::constrain_param_value (const ParamInfo &info, float value)
std::optional< float > pulp::state::param_value_for_label (const ParamInfo &info, std::string_view text)
bool pulp::state::is_bypass_param (const ParamInfo &info)
 Decide whether info is a bypass control.
bool pulp::state::is_modulatable_param (const ParamInfo &info)
 Decide whether a host may apply a modulation offset to info.
bool pulp::state::is_hidden_param (const ParamInfo &info)
 Whether the host should omit this parameter from its generic parameter list and automation lanes.
bool pulp::state::is_read_only_param (const ParamInfo &info)
 Whether the host may read this parameter but must not write it.
bool pulp::state::is_automatable_param (const ParamInfo &info)
 Whether the host may record and play back automation for this parameter.