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

Block timing for one sample-accurate arpeggiator call. More...

#include <arpeggiator.hpp>

Public Attributes

timebase::SamplePosition sample_start {}
timebase::TickPosition tick_start {}
std::int32_t sample_count = 0
timebase::RationalRate sample_rate {}
double tempo_bpm = 120.0
const timebase::CompiledTempoMap * tempo_map = nullptr
bool playing = true
ArpeggiatorTransportEvent transport_event = ArpeggiatorTransportEvent::Continuous

Detailed Description

Block timing for one sample-accurate arpeggiator call.

tick_start and sample_start describe the same block boundary. A compiled tempo map gives the exact tick-to-sample projection used by Pulp's sequencer. Host-facing plugins can leave it null and provide the block's constant tempo and sample rate instead. transport_event is explicit because a loop wrap can keep the host sample clock monotonic while its musical clock jumps.

Member Data Documentation

◆ playing

bool pulp::midi::ArpeggiatorBlock::playing = true

◆ sample_count

std::int32_t pulp::midi::ArpeggiatorBlock::sample_count = 0

◆ sample_rate

timebase::RationalRate pulp::midi::ArpeggiatorBlock::sample_rate {}

◆ sample_start

timebase::SamplePosition pulp::midi::ArpeggiatorBlock::sample_start {}

◆ tempo_bpm

double pulp::midi::ArpeggiatorBlock::tempo_bpm = 120.0

◆ tempo_map

const timebase::CompiledTempoMap* pulp::midi::ArpeggiatorBlock::tempo_map = nullptr

◆ tick_start

timebase::TickPosition pulp::midi::ArpeggiatorBlock::tick_start {}

◆ transport_event

ArpeggiatorTransportEvent pulp::midi::ArpeggiatorBlock::transport_event = ArpeggiatorTransportEvent::Continuous

The documentation for this struct was generated from the following file: