|
| constexpr TriggerGridError | configure (std::size_t track_count, std::size_t step_count, TickDuration step_duration) noexcept |
| constexpr std::size_t | track_count () const noexcept |
| constexpr std::size_t | step_count () const noexcept |
| constexpr std::size_t | coordinate_count () const noexcept |
| constexpr TickDuration | step_duration () const noexcept |
| constexpr TickDuration | minimum_microtiming () const noexcept |
| constexpr TickDuration | maximum_microtiming () const noexcept |
| constexpr TriggerGridError | set_cell (std::size_t track, std::size_t step, TriggerCell cell) noexcept |
| constexpr const TriggerCell * | cell (std::size_t track, std::size_t step) const noexcept |
| constexpr void | clear () noexcept |
| constexpr TriggerProjectionResult | project_window (TickPosition cycle_start, TickPosition window_begin, TickPosition window_end, std::span< const std::uint64_t > probability_draws, std::span< TriggerEvent > output) const noexcept |
| | Projects this cycle into [window_begin, window_end) without allocation.
|
template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
class pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >
Fixed-capacity authored trigger data with allocation-free tick projection.
This is a document-scale pattern value, not a transport or transform chain. The caller supplies the cycle origin, projection window, and one stable random word per configured coordinate. Events are emitted in step-major, then track-major order. Microtiming is bounded so adjacent steps cannot reverse, although saturation at a signed tick endpoint can make positions equal.