Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
clip_launch.hpp File Reference

Immutable authored scene, slot, quantization, and follow-action model. More...

#include <pulp/timebase/compiled_meter_map.hpp>
#include <pulp/timebase/tick.hpp>
#include <pulp/timeline/item_id.hpp>
#include <array>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <initializer_list>
#include <iterator>
#include <memory>
#include <span>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::timeline::LaunchQuantize
 Musical-boundary quantization for one launch. More...
struct  pulp::timeline::FollowAction
 One weighted follow-action candidate. More...
struct  pulp::timeline::FollowActionSet
 Bounded weighted follow behavior attached to a slot. More...
struct  pulp::timeline::Slot
 One authored launch slot. More...
class  pulp::timeline::SlotList
 Immutable authored slot order with persistent structural sharing. More...
class  pulp::timeline::SlotList::Iterator
 Forward iterator that retains raw or persistent slot storage. More...
struct  pulp::timeline::Scene
 Authored grouping of slots presented as one launchable column. More...
struct  pulp::timeline::FollowDraw
 Stable identity of one reproducible follow-action decision. More...
struct  pulp::timeline::FollowResolution
 Deterministic outcome and optional target slot of follow resolution. More...

Namespaces

namespace  pulp
namespace  pulp::timeline
namespace  pulp::timeline::detail
namespace  pulp::timeline::follow_detail

Enumerations

enum class  pulp::timeline::FollowActionKind : std::uint8_t {
  pulp::timeline::FollowActionKind::None , pulp::timeline::FollowActionKind::Stop , pulp::timeline::FollowActionKind::Again , pulp::timeline::FollowActionKind::Previous ,
  pulp::timeline::FollowActionKind::Next , pulp::timeline::FollowActionKind::First , pulp::timeline::FollowActionKind::Last , pulp::timeline::FollowActionKind::Any ,
  pulp::timeline::FollowActionKind::Other , pulp::timeline::FollowActionKind::Jump
}
 Action applied when a slot's follow timer elapses. More...
enum class  pulp::timeline::FollowOutcome : std::uint8_t { pulp::timeline::FollowOutcome::None , pulp::timeline::FollowOutcome::Stop , pulp::timeline::FollowOutcome::Play }
 Runtime request produced by resolving an authored follow action. More...

Functions

constexpr LaunchQuantize pulp::timeline::launch_immediate () noexcept
 Returns an immediate, phase-zero launch policy.
constexpr LaunchQuantize pulp::timeline::launch_every_quarters (std::int64_t count) noexcept
 Returns a phase-zero grid spanning count quarter notes.
constexpr LaunchQuantize pulp::timeline::launch_every_bars (std::int64_t count, timebase::MeterSignature meter) noexcept
 Returns a phase-zero grid spanning count bars under meter.
constexpr FollowActionSet pulp::timeline::follow_action (FollowActionKind kind, timebase::TickDuration grid, std::uint32_t repetitions=1) noexcept
 Builds a one-candidate follow set with unit weight.
constexpr std::uint64_t pulp::timeline::follow_action_mix (std::uint64_t value) noexcept
 Applies the deterministic SplitMix64 finalizer used by follow draws.
constexpr std::size_t pulp::timeline::select_follow_action (const FollowActionSet &set, FollowDraw draw) noexcept
 Selects one active candidate by relative weight.
constexpr std::size_t pulp::timeline::follow_detail::count_non_empty (std::span< const Slot > lane) noexcept
constexpr std::size_t pulp::timeline::follow_detail::nth_non_empty (std::span< const Slot > lane, std::size_t n) noexcept
constexpr std::size_t pulp::timeline::follow_detail::step_non_empty (std::span< const Slot > lane, std::size_t from, bool forward) noexcept
constexpr FollowResolution pulp::timeline::follow_detail::play (std::span< const Slot > lane, std::size_t index) noexcept
constexpr FollowResolution pulp::timeline::resolve_follow_action (std::span< const Slot > lane, std::size_t self_index, FollowDraw draw) noexcept
 Resolves the successor of self_index under that slot's follow-action set.

Detailed Description

Immutable authored scene, slot, quantization, and follow-action model.

Where the linear model places clips at absolute timeline positions, this surface describes what is launchable and how it quantizes. Playback resolves triggers sample-accurately and owns transport launch progress.