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 |
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.
| bool pulp::midi::ArpeggiatorBlock::playing = true |
| std::int32_t pulp::midi::ArpeggiatorBlock::sample_count = 0 |
| timebase::RationalRate pulp::midi::ArpeggiatorBlock::sample_rate {} |
| timebase::SamplePosition pulp::midi::ArpeggiatorBlock::sample_start {} |
| double pulp::midi::ArpeggiatorBlock::tempo_bpm = 120.0 |
| const timebase::CompiledTempoMap* pulp::midi::ArpeggiatorBlock::tempo_map = nullptr |
| timebase::TickPosition pulp::midi::ArpeggiatorBlock::tick_start {} |
| ArpeggiatorTransportEvent pulp::midi::ArpeggiatorBlock::transport_event = ArpeggiatorTransportEvent::Continuous |