Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::timebase::TriggerGrid< MaxTracks, MaxSteps > Class Template Reference

Fixed-capacity authored trigger data with allocation-free tick projection. More...

#include <trigger_grid.hpp>

Public Member Functions

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.

Static Public Attributes

static constexpr std::size_t maximum_tracks = MaxTracks
static constexpr std::size_t maximum_steps = MaxSteps
static constexpr std::size_t maximum_events = MaxTracks * MaxSteps

Detailed Description

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.

Member Function Documentation

◆ cell()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
const TriggerCell * pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::cell ( std::size_t track,
std::size_t step ) const
inlineconstexprnoexcept

◆ clear()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
void pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::clear ( )
inlineconstexprnoexcept

◆ configure()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
TriggerGridError pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::configure ( std::size_t track_count,
std::size_t step_count,
TickDuration step_duration )
inlineconstexprnoexcept

◆ coordinate_count()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
std::size_t pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::coordinate_count ( ) const
inlineconstexprnoexcept

◆ maximum_microtiming()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
TickDuration pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::maximum_microtiming ( ) const
inlineconstexprnoexcept

◆ minimum_microtiming()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
TickDuration pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::minimum_microtiming ( ) const
inlineconstexprnoexcept

◆ project_window()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
TriggerProjectionResult pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::project_window ( TickPosition cycle_start,
TickPosition window_begin,
TickPosition window_end,
std::span< const std::uint64_t > probability_draws,
std::span< TriggerEvent > output ) const
inlineconstexprnoexcept

Projects this cycle into [window_begin, window_end) without allocation.

probability_draws must contain exactly one word per configured cell in step-major, then track-major order. Validation and event counting finish before output is written, so every error leaves it unchanged.

◆ set_cell()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
TriggerGridError pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::set_cell ( std::size_t track,
std::size_t step,
TriggerCell cell )
inlineconstexprnoexcept

◆ step_count()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
std::size_t pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::step_count ( ) const
inlineconstexprnoexcept

◆ step_duration()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
TickDuration pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::step_duration ( ) const
inlineconstexprnoexcept

◆ track_count()

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
std::size_t pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::track_count ( ) const
inlineconstexprnoexcept

Member Data Documentation

◆ maximum_events

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
std::size_t pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::maximum_events = MaxTracks * MaxSteps
staticconstexpr

◆ maximum_steps

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
std::size_t pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::maximum_steps = MaxSteps
staticconstexpr

◆ maximum_tracks

template<std::size_t MaxTracks = 16, std::size_t MaxSteps = 64>
std::size_t pulp::timebase::TriggerGrid< MaxTracks, MaxSteps >::maximum_tracks = MaxTracks
staticconstexpr

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/timebase/include/pulp/timebase/trigger_grid.hpp