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

Immutable arrangement-note event lowered by the program compiler. More...

#include <program.hpp>

Public Member Functions

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

Public Attributes

timebase::SamplePosition sample
timebase::TickPosition tick
timeline::ItemId clip_id
timeline::ItemId note_id
std::uint16_t velocity = 0xffff
std::uint8_t pitch = 60
std::uint8_t channel = 0
NoteProgramEventKind kind = NoteProgramEventKind::On

Detailed Description

Immutable arrangement-note event lowered by the program compiler.

Musical ticks remain available for diagnostics and state snapshots, while the sample position is authoritative for half-open block scheduling against the exact CompiledTempoMap used to build the owning PlaybackProgram. Distinct ticks can quantize to the same compiled sample, so tick order remains authoritative within one sample; note-offs precede note-ons only when both the sample and tick are equal.

Member Function Documentation

◆ operator<=>()

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

Member Data Documentation

◆ channel

std::uint8_t pulp::playback::NoteProgramEvent::channel = 0

◆ clip_id

timeline::ItemId pulp::playback::NoteProgramEvent::clip_id

◆ kind

NoteProgramEventKind pulp::playback::NoteProgramEvent::kind = NoteProgramEventKind::On

◆ note_id

timeline::ItemId pulp::playback::NoteProgramEvent::note_id

◆ pitch

std::uint8_t pulp::playback::NoteProgramEvent::pitch = 60

◆ sample

timebase::SamplePosition pulp::playback::NoteProgramEvent::sample

◆ tick

timebase::TickPosition pulp::playback::NoteProgramEvent::tick

◆ velocity

std::uint16_t pulp::playback::NoteProgramEvent::velocity = 0xffff

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