Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::playback::ControllerProgramEvent Struct Reference

Immutable controller/expression value lowered by the program compiler. More...

#include <program.hpp>

Public Member Functions

constexpr auto operator<=> (const ControllerProgramEvent &) const =default

Public Attributes

timebase::SamplePosition sample
timebase::TickPosition tick
timeline::ItemId clip_id
timeline::ItemId lane_id
timeline::ItemId point_id
timeline::MidiLaneAddress address
std::uint32_t value = 0
ControllerProgramEventOrigin origin = ControllerProgramEventOrigin::Authored

Detailed Description

Immutable controller/expression value lowered by the program compiler.

This is the runtime counterpart of timeline::MidiExpressionLane, and it deliberately mirrors NoteProgramEvent: the sample position is authoritative for half-open block scheduling against the exact CompiledTempoMap the owning PlaybackProgram was built with, while the tick stays available for diagnostics and state snapshots.

The full wire address is carried rather than a Pulp-local controller enumeration, so a controller family nobody anticipated needs new values and never a new type — the same reason the storage lane keeps the wire encoding. lane_id and point_id preserve authored provenance through flattening, so a value can still be traced back to the lane and the point that produced it after a nested sequence has been expanded. A chased value keeps the provenance of the point it read, which is what makes it reproducible.

Member Function Documentation

◆ operator<=>()

auto pulp::playback::ControllerProgramEvent::operator<=> ( const ControllerProgramEvent & ) const
constexprdefault

Member Data Documentation

◆ address

timeline::MidiLaneAddress pulp::playback::ControllerProgramEvent::address

◆ clip_id

timeline::ItemId pulp::playback::ControllerProgramEvent::clip_id

◆ lane_id

timeline::ItemId pulp::playback::ControllerProgramEvent::lane_id

◆ origin

ControllerProgramEventOrigin pulp::playback::ControllerProgramEvent::origin = ControllerProgramEventOrigin::Authored

◆ point_id

timeline::ItemId pulp::playback::ControllerProgramEvent::point_id

◆ sample

timebase::SamplePosition pulp::playback::ControllerProgramEvent::sample

◆ tick

timebase::TickPosition pulp::playback::ControllerProgramEvent::tick

◆ value

std::uint32_t pulp::playback::ControllerProgramEvent::value = 0

The documentation for this struct was generated from the following file:
  • /home/runner/work/pulp/pulp/core/playback/include/pulp/playback/program.hpp