Block timing for one sample-accurate step-player call. More...
#include <step_player.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 |
| StepPlayerTransportEvent | transport_event = StepPlayerTransportEvent::Continuous |
Block timing for one sample-accurate step-player call.
tick_start and sample_start describe the same block boundary. A compiled tempo map gives the exact tick-to-sample projection; callers without one can leave it null and provide the block's constant tempo and sample rate. transport_event is explicit because a loop wrap can keep the sample clock monotonic while the musical clock jumps.
| bool pulp::midi::StepPlayerBlock::playing = true |
| std::int32_t pulp::midi::StepPlayerBlock::sample_count = 0 |
| timebase::RationalRate pulp::midi::StepPlayerBlock::sample_rate {} |
| timebase::SamplePosition pulp::midi::StepPlayerBlock::sample_start {} |
| double pulp::midi::StepPlayerBlock::tempo_bpm = 120.0 |
| const timebase::CompiledTempoMap* pulp::midi::StepPlayerBlock::tempo_map = nullptr |
| timebase::TickPosition pulp::midi::StepPlayerBlock::tick_start {} |
| StepPlayerTransportEvent pulp::midi::StepPlayerBlock::transport_event = StepPlayerTransportEvent::Continuous |