Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
Model and authoring

Immutable values and authored musical intent. More...

Namespaces

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

Classes

class  pulp::timeline::ContentHash
 Durable SHA-256 identity for sealed media bytes. More...
struct  pulp::timeline::AssetLocator
 Non-authoritative location hint for resolving content by hash. More...
struct  pulp::timeline::AssetRepresentation
 Alternate fidelity, analysis, or cache form of the same logical asset. More...
struct  pulp::timeline::AudioLoopPoint
 Frame position at which sealed audio may loop. More...
struct  pulp::timeline::AudioFrameRange
 Half-open frame interval [start_frame, end_frame). More...
struct  pulp::timeline::AudioLoopInfo
 Typed musical metadata attached to sealed audio content. More...
struct  pulp::timeline::AutomationPoint
 One identity-bearing automation value at a canonical musical tick. More...
struct  pulp::timeline::AutomationPointPositionLess
 Canonical ordering for authored automation points and curve storage. More...
struct  pulp::timeline::AutomationCurveError
 Automation curve failure with the offending and, when relevant, conflicting identities. More...
class  pulp::timeline::AutomationCurve
 Immutable, position-ordered automation points. More...
struct  pulp::timeline::AutomationTargetCases< Fs >
 Overload set for visiting an AutomationTarget with no generic fallback. More...
struct  pulp::timeline::AutomationLaneError
 Automation lane failure with the lane and related target identity. More...
class  pulp::timeline::AutomationLane
 Immutable ownership of one authored automation curve and its logical target. More...
struct  pulp::timeline::ModelError
 Model failure with the offending and, when relevant, conflicting identity. More...
struct  pulp::timeline::SchemaIdentity
 Versioned extension-schema identity. More...
class  pulp::timeline::ItemIdAllocator
 Monotonic allocator for non-zero document ItemIds. More...
struct  pulp::timeline::EmptyContent
 Clip content that intentionally carries no media, notes, or extension value. More...
struct  pulp::timeline::MediaAsset
 Project-owned sealed media metadata. More...
struct  pulp::timeline::MediaRef
 Borrowed range of frames from a project-owned MediaAsset. More...
struct  pulp::timeline::SequenceRef
 Reference to a sibling sequence in the same Project pool. More...
struct  pulp::timeline::MusicalTimeRange
 Musical clip placement in canonical ticks. More...
struct  pulp::timeline::AbsoluteTimeRange
 Absolute clip placement in samples at an explicit rational rate. More...
struct  pulp::timeline::AbsoluteTimelineDuration
 Sequence duration in absolute samples at an explicit rational rate. More...
struct  pulp::timeline::ClipPlaybackProperties
 Clip-level audio controls. More...
struct  pulp::timeline::NoteEvent
 One identity-bearing MIDI-style note in canonical musical ticks. More...
class  pulp::timeline::MidiContent
 Immutable MIDI clip content: start-then-identity-ordered notes with sparse deterministic modifiers, beside the controller and expression streams those notes sound against. More...
class  pulp::timeline::RegisteredContent
 Extension-defined typed C++ content admitted by a SchemaRegistry. More...
struct  pulp::timeline::OpaqueContentLimits
 Parser bounds retained with an opaque extension envelope. More...
class  pulp::timeline::OpaqueContent
 Exact validated JSON for an unavailable extension schema. More...
struct  pulp::timeline::ClipContentCases< Fs >
 Overload set for visiting a ClipContent with no generic fallback. More...
class  pulp::timeline::Clip
 Immutable identity-bearing placement of one ClipContent value. More...
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...
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...
struct  pulp::timeline::DeviceConfiguration
 Authored device configuration excluding placement identity and opaque state. More...
struct  pulp::timeline::DevicePlacement
 Durable declaration for one logical placement in a Track device chain. More...
struct  pulp::timeline::ItemId
 Nonzero monotonic identity for a Timeline-owned object. More...
struct  pulp::timeline::MidiLaneAddress
 Address of one continuous controller stream within a MidiContent. More...
struct  pulp::timeline::MidiLanePoint
 One authored value on a controller lane, positioned in canonical ticks. More...
struct  pulp::timeline::MidiExpressionLane
 One controller stream's authored points, ordered by (position, id). More...
struct  pulp::timeline::TrackIndexStats
 Diagnostic counters for persistent track clip-index allocation. More...
struct  pulp::timeline::LauncherIndexStats
 Diagnostic counters for persistent launcher-index allocation. More...
struct  pulp::timeline::TrackInput
 Complete input for constructing a Track and its owned collections. More...
class  pulp::timeline::Track
 Immutable identity-bearing arrangement track. More...
struct  pulp::timeline::ChordScaleEvent
 Harmonic statement in force from position until the next event. More...
class  pulp::timeline::ChordScaleLane
 Immutable chord/scale context lane owned by a sequence. More...
struct  pulp::timeline::DynamicsEvent
 Intensity statement in force from position until the next event. More...
class  pulp::timeline::DynamicsLane
 Immutable intensity context lane owned by a sequence. More...
struct  pulp::timeline::SequenceMarker
 Named point on a sequence's musical timeline. More...
struct  pulp::timeline::SequenceRegion
 Named positive-duration span on a sequence's musical timeline. More...
struct  pulp::timeline::GrooveStep
 One timing offset and per-mille accent in a repeating groove table. More...
struct  pulp::timeline::GrooveTemplateInput
 Complete validated construction input for a GrooveTemplate. More...
class  pulp::timeline::GrooveTemplate
 Immutable sequence-owned swing, timing-offset, and accent context. More...
struct  pulp::timeline::SequenceInput
 Complete construction input for a Sequence and its owned collections. More...
class  pulp::timeline::Sequence
 Immutable identity-bearing arrangement with tracks, annotations, context, and launch scenes. More...
struct  pulp::timeline::SessionStart
 Absolute source/house-clock position corresponding to project time zero. More...
struct  pulp::timeline::ProjectInput
 Complete input for constructing a Project and its identity domain. More...
struct  pulp::timeline::ItemLocation
 Canonical ownership and ancestor coordinates for one project identity. More...
struct  pulp::timeline::IdentityMutation
 Planned identity-index transition accompanying an immutable model edit. More...
struct  pulp::timeline::ProjectIdentityStats
 Diagnostic counters for persistent project identity-index allocation. More...
class  pulp::timeline::SequenceCompileStructureToken
 Opaque, process-local identity for the part of a Project snapshot that determines nested-sequence and registered-content compile subscribers. More...
class  pulp::timeline::Project
 Immutable root of a Timeline document and its monotonic identity domain. More...
class  pulp::timeline::IdRemapTable
 Canonically ordered mapping from source identities to remapped identities. More...
struct  pulp::timeline::ExternalIdFixup
 Optional non-throwing translation for an externally referenced identity. More...
struct  pulp::timeline::RemapIdFixups
 Independent external-reference fixups for media assets and sequences. More...
struct  pulp::timeline::RemappedClip
 Remapped clip snapshot and its complete owned-identity table. More...
struct  pulp::timeline::RemappedTrack
 Remapped track snapshot and its complete owned-identity table. More...
struct  pulp::timeline::RemappedSequence
 Remapped sequence snapshot and its complete owned-identity table. More...
struct  pulp::timeline::RemappedProject
 Remapped project snapshot and complete source-to-destination identity table. More...
struct  pulp::timeline::ModulationTargetCases< Fs >
 Overload set for visiting a ModulationTarget with no generic fallback. More...
struct  pulp::timeline::Modulator
 A track-owned generator of modulation signal. More...
struct  pulp::timeline::MacroControl
 A track-owned named control that a performer sets and that drives parameters through ordinary modulation routes. More...
struct  pulp::timeline::ModulationSourceRef
 Reference to the track-owned source a route reads. More...
struct  pulp::timeline::ModulationRoute
 One authored source-to-parameter connection. More...
struct  pulp::timeline::NoteModifier
 Sparse playback modifier attached to one note identity. More...
struct  pulp::timeline::NoteModifierDraw
 One deterministic probability draw for a note key and loop pass. More...
struct  pulp::timeline::DeviceParameterTarget
 Format-neutral document target for a placed device parameter. More...
struct  pulp::timeline::TrackMixerTarget
 Format-neutral document target for one of the owning track's own mixer controls. More...
struct  pulp::timeline::ProductionDeclaration
 What a piece of content declares about its own production. More...
class  pulp::timeline::Take
 Immutable sample-anchored recording take referencing a project media asset. More...
struct  pulp::timeline::TakeCompSegment
 Exact absolute-time selection from one take for a comp. More...
struct  pulp::timeline::TrackFreeze
 Sealed offline-rendered track artifact and its source-plan identity. More...
class  pulp::timeline::TakeLane
 Immutable alternate recording lane owned by a Track. More...
struct  pulp::timeline::TrackMixer
 Track-owned linear gain and stereo balance. More...
struct  pulp::timeline::TuningReference
 Durable statement of the tuning a project or one instrument plays in. More...

Typedefs

using pulp::timeline::AutomationTarget = ParameterTarget
 Exhaustive authored-target set.
using pulp::timeline::ClipTimeRange = std::variant<MusicalTimeRange, AbsoluteTimeRange>
 Exhaustive authored clip-placement domains.
using pulp::timeline::ClipContent
 Exhaustive set of immutable payloads a Clip can own or reference.
using pulp::timeline::ModulationTarget = ParameterTarget
 Exhaustive authored target set for a modulation route.
using pulp::timeline::ParameterTarget = std::variant<DeviceParameterTarget, TrackMixerTarget>
 Exhaustive set of document parameters an authored control can address.

Enumerations

enum class  pulp::timeline::AssetStoragePolicy : std::uint8_t { pulp::timeline::AssetStoragePolicy::External , pulp::timeline::AssetStoragePolicy::Embedded , pulp::timeline::AssetStoragePolicy::PreferEmbedded }
 Preferred storage relationship between a project and an asset's bytes. More...
enum class  pulp::timeline::AssetLocatorKind : std::uint8_t { pulp::timeline::AssetLocatorKind::PackageRelative , pulp::timeline::AssetLocatorKind::ExternalUri }
 Namespace in which an asset locator hint is interpreted. More...
enum class  pulp::timeline::AudioLoopPointKind : std::uint8_t { pulp::timeline::AudioLoopPointKind::Manual , pulp::timeline::AudioLoopPointKind::Automatic }
 Provenance of a suggested audio loop point. More...
enum class  pulp::timeline::AutomationInterpolation : std::uint8_t { pulp::timeline::AutomationInterpolation::Hold , pulp::timeline::AutomationInterpolation::Continuous }
 Interpolation applied from an automation point to its successor. More...
enum class  pulp::timeline::AutomationCurveErrorCode : std::uint8_t {
  pulp::timeline::AutomationCurveErrorCode::InvalidPointId , pulp::timeline::AutomationCurveErrorCode::DuplicatePointId , pulp::timeline::AutomationCurveErrorCode::DuplicatePosition , pulp::timeline::AutomationCurveErrorCode::InvalidInterpolation ,
  pulp::timeline::AutomationCurveErrorCode::NonFiniteValue , pulp::timeline::AutomationCurveErrorCode::InvalidCurvature , pulp::timeline::AutomationCurveErrorCode::MissingPoint
}
 Validation failures returned by AutomationCurve factories and edits. More...
enum class  pulp::timeline::AutomationLaneErrorCode : std::uint8_t { pulp::timeline::AutomationLaneErrorCode::InvalidLaneId , pulp::timeline::AutomationLaneErrorCode::InvalidDevicePlacementId , pulp::timeline::AutomationLaneErrorCode::InvalidDeviceId = InvalidDevicePlacementId }
 Validation failures returned when constructing an AutomationLane. More...
enum class  pulp::timeline::ModelErrorCode : std::uint8_t {
  pulp::timeline::ModelErrorCode::InvalidItemId , pulp::timeline::ModelErrorCode::DuplicateItemId , pulp::timeline::ModelErrorCode::ItemIdExhausted , pulp::timeline::ModelErrorCode::InvalidDuration ,
  pulp::timeline::ModelErrorCode::InvalidMediaRange , pulp::timeline::ModelErrorCode::InvalidSampleRate , pulp::timeline::ModelErrorCode::InvalidNote , pulp::timeline::ModelErrorCode::OverlappingClips ,
  pulp::timeline::ModelErrorCode::MissingAsset , pulp::timeline::ModelErrorCode::MissingRootSequence , pulp::timeline::ModelErrorCode::NextItemIdNotMonotonic , pulp::timeline::ModelErrorCode::MixedTimeAnchors ,
  pulp::timeline::ModelErrorCode::IncompatibleSampleRate , pulp::timeline::ModelErrorCode::MissingItem , pulp::timeline::ModelErrorCode::IdentityConflict , pulp::timeline::ModelErrorCode::InvalidIdentityTransition ,
  pulp::timeline::ModelErrorCode::InvalidSchemaIdentity , pulp::timeline::ModelErrorCode::InvalidContentHash , pulp::timeline::ModelErrorCode::InvalidAssetLocator , pulp::timeline::ModelErrorCode::DuplicateAssetRepresentation ,
  pulp::timeline::ModelErrorCode::InvalidOpaqueContent , pulp::timeline::ModelErrorCode::OpaqueContentLimitExceeded , pulp::timeline::ModelErrorCode::OpaqueContentCannotRemap , pulp::timeline::ModelErrorCode::InvalidClipPlaybackProperties ,
  pulp::timeline::ModelErrorCode::MissingAutomationTarget , pulp::timeline::ModelErrorCode::DuplicateAutomationTarget , pulp::timeline::ModelErrorCode::InvalidTake , pulp::timeline::ModelErrorCode::DuplicateTake ,
  pulp::timeline::ModelErrorCode::ActiveTakeLaneRemoval , pulp::timeline::ModelErrorCode::InvalidTakeComp , pulp::timeline::ModelErrorCode::OverlappingTakeComp , pulp::timeline::ModelErrorCode::ActiveCompTakeRemoval ,
  pulp::timeline::ModelErrorCode::InvalidAudioLoopInfo , pulp::timeline::ModelErrorCode::InvalidAssetStoragePolicy , pulp::timeline::ModelErrorCode::InvalidMarker , pulp::timeline::ModelErrorCode::InvalidRegion ,
  pulp::timeline::ModelErrorCode::InvalidSessionStart , pulp::timeline::ModelErrorCode::InvalidChordScaleEvent , pulp::timeline::ModelErrorCode::UnorderedChordScaleLane , pulp::timeline::ModelErrorCode::InvalidDynamicsEvent ,
  pulp::timeline::ModelErrorCode::UnorderedDynamicsLane , pulp::timeline::ModelErrorCode::InvalidGrooveTemplate , pulp::timeline::ModelErrorCode::InvalidNoteModifier , pulp::timeline::ModelErrorCode::InvalidMidiLane ,
  pulp::timeline::ModelErrorCode::DuplicateMidiLaneAddress , pulp::timeline::ModelErrorCode::MissingSequenceReference , pulp::timeline::ModelErrorCode::SequenceReferenceCycle , pulp::timeline::ModelErrorCode::SequenceNestingTooDeep ,
  pulp::timeline::ModelErrorCode::InvalidTrackMixer , pulp::timeline::ModelErrorCode::InvalidTimeConform , pulp::timeline::ModelErrorCode::InvalidTuningReference , pulp::timeline::ModelErrorCode::InvalidModulator ,
  pulp::timeline::ModelErrorCode::InvalidMacroControl , pulp::timeline::ModelErrorCode::InvalidModulationRoute , pulp::timeline::ModelErrorCode::MissingModulationSource , pulp::timeline::ModelErrorCode::MissingModulationTarget
}
 Validation and identity failures returned by immutable Timeline model edits. More...
enum class  pulp::timeline::ClipTimeAnchor : std::uint8_t { pulp::timeline::ClipTimeAnchor::Musical , pulp::timeline::ClipTimeAnchor::Absolute }
 Time domain in which a clip's placement remains anchored. More...
enum class  pulp::timeline::TimeConform : std::uint8_t { pulp::timeline::TimeConform::None , pulp::timeline::TimeConform::Resample , pulp::timeline::TimeConform::Stretch }
 Authored policy for adapting a musical media clip when its duration and source duration differ. More...
enum class  pulp::timeline::ClipFadeShape : std::uint8_t { pulp::timeline::ClipFadeShape::Linear , pulp::timeline::ClipFadeShape::EqualPower }
 Gain curve traversed across a clip's fade region, in both directions. More...
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...
enum class  pulp::timeline::DeviceChainPosition : std::uint8_t { pulp::timeline::DeviceChainPosition::PreFader , pulp::timeline::DeviceChainPosition::PostFader }
 Authored position of a device relative to the track fader. More...
enum class  pulp::timeline::DeviceSlotKind : std::uint8_t { pulp::timeline::DeviceSlotKind::EventToEvent , pulp::timeline::DeviceSlotKind::EventToAudio , pulp::timeline::DeviceSlotKind::AudioToAudio }
 Static signal-domain contract of one device slot. More...
enum class  pulp::timeline::DeviceKind : std::uint8_t { pulp::timeline::DeviceKind::Unresolved , pulp::timeline::DeviceKind::BuiltIn , pulp::timeline::DeviceKind::External , pulp::timeline::DeviceKind::Generated }
 Format-neutral namespace of a durable device binding key. More...
enum class  pulp::timeline::ChordQuality : std::uint8_t {
  pulp::timeline::ChordQuality::Major = 0 , pulp::timeline::ChordQuality::Minor = 1 , pulp::timeline::ChordQuality::Diminished = 2 , pulp::timeline::ChordQuality::Augmented = 3 ,
  pulp::timeline::ChordQuality::Dominant7 = 4 , pulp::timeline::ChordQuality::Major7 = 5 , pulp::timeline::ChordQuality::Minor7 = 6 , pulp::timeline::ChordQuality::HalfDiminished7 = 7 ,
  pulp::timeline::ChordQuality::Suspended2 = 8 , pulp::timeline::ChordQuality::Suspended4 = 9
}
 Harmonic quality of a chord statement. More...
enum class  pulp::timeline::ScaleMode : std::uint8_t {
  pulp::timeline::ScaleMode::Major = 0 , pulp::timeline::ScaleMode::NaturalMinor = 1 , pulp::timeline::ScaleMode::HarmonicMinor = 2 , pulp::timeline::ScaleMode::MelodicMinor = 3 ,
  pulp::timeline::ScaleMode::Dorian = 4 , pulp::timeline::ScaleMode::Phrygian = 5 , pulp::timeline::ScaleMode::Lydian = 6 , pulp::timeline::ScaleMode::Mixolydian = 7 ,
  pulp::timeline::ScaleMode::Locrian = 8 , pulp::timeline::ScaleMode::Chromatic = 9
}
 Scale mode associated with a harmonic context event. More...
enum  pulp::timeline::ChordExtension : std::uint16_t {
  pulp::timeline::kChordExtensionNinth = 1u << 0 , pulp::timeline::kChordExtensionFlatNinth = 1u << 1 , pulp::timeline::kChordExtensionSharpNinth = 1u << 2 , pulp::timeline::kChordExtensionEleventh = 1u << 3 ,
  pulp::timeline::kChordExtensionSharpEleventh = 1u << 4 , pulp::timeline::kChordExtensionThirteenth = 1u << 5 , pulp::timeline::kChordExtensionFlatThirteenth = 1u << 6
}
 Added scale degree a chord statement carries above its quality. More...
enum class  pulp::timeline::ChordVoicing : std::uint8_t {
  pulp::timeline::ChordVoicing::Close , pulp::timeline::ChordVoicing::Open , pulp::timeline::ChordVoicing::Drop2 , pulp::timeline::ChordVoicing::Drop3 ,
  pulp::timeline::ChordVoicing::Rootless , pulp::timeline::ChordVoicing::Shell
}
 Non-binding hint for how a generator should spread a chord's tones. More...
enum class  pulp::timeline::SectionRole : std::uint8_t {
  pulp::timeline::SectionRole::Unspecified , pulp::timeline::SectionRole::Intro , pulp::timeline::SectionRole::Verse , pulp::timeline::SectionRole::PreChorus ,
  pulp::timeline::SectionRole::Chorus , pulp::timeline::SectionRole::Bridge , pulp::timeline::SectionRole::Breakdown , pulp::timeline::SectionRole::Drop ,
  pulp::timeline::SectionRole::Solo , pulp::timeline::SectionRole::Interlude , pulp::timeline::SectionRole::Outro
}
 Structural part a region names, independent of what the region is called. More...
enum class  pulp::timeline::ItemKind : std::uint8_t {
  pulp::timeline::ItemKind::Project , pulp::timeline::ItemKind::Asset , pulp::timeline::ItemKind::Sequence , pulp::timeline::ItemKind::Track ,
  pulp::timeline::ItemKind::Clip , pulp::timeline::ItemKind::Note , pulp::timeline::ItemKind::MidiLane , pulp::timeline::ItemKind::MidiLanePoint ,
  pulp::timeline::ItemKind::DevicePlacement , pulp::timeline::ItemKind::AutomationLane , pulp::timeline::ItemKind::AutomationPoint , pulp::timeline::ItemKind::Modulator ,
  pulp::timeline::ItemKind::MacroControl , pulp::timeline::ItemKind::ModulationRoute , pulp::timeline::ItemKind::TakeLane , pulp::timeline::ItemKind::Take ,
  pulp::timeline::ItemKind::Marker , pulp::timeline::ItemKind::Region , pulp::timeline::ItemKind::Scene , pulp::timeline::ItemKind::Slot
}
 Kind of an identity-bearing item in a Project. More...
enum class  pulp::timeline::IdentityMutationKind : std::uint8_t { pulp::timeline::IdentityMutationKind::Insert , pulp::timeline::IdentityMutationKind::Deactivate , pulp::timeline::IdentityMutationKind::Reactivate }
 Allowed transition applied to one identity-index entry. More...
enum class  pulp::timeline::ModulatorKind : std::uint8_t { pulp::timeline::ModulatorKind::Lfo , pulp::timeline::ModulatorKind::Envelope , pulp::timeline::ModulatorKind::Random , pulp::timeline::ModulatorKind::StepSequence }
 The signal shape a modulator produces. More...
enum class  pulp::timeline::ModulationSourceKind : std::uint8_t { pulp::timeline::ModulationSourceKind::Modulator , pulp::timeline::ModulationSourceKind::Macro }
 Which track-owned entity a route draws its signal from. More...
enum class  pulp::timeline::NoteConditionKind : std::uint8_t { pulp::timeline::NoteConditionKind::Always , pulp::timeline::NoteConditionKind::EveryNth , pulp::timeline::NoteConditionKind::First , pulp::timeline::NoteConditionKind::Fill }
 Pass-relative condition controlling when a note may sound. More...
enum class  pulp::timeline::TrackMixerParameter : std::uint8_t { pulp::timeline::TrackMixerParameter::Gain , pulp::timeline::TrackMixerParameter::Pan }
 The mixer controls a track owns directly, independent of any device it hosts. More...
enum class  pulp::timeline::ProductionMode : std::uint8_t { pulp::timeline::ProductionMode::Synchronous , pulp::timeline::ProductionMode::Buffered }
 Where content is produced relative to the audio callback that consumes it. More...
enum class  pulp::timeline::ReproducibilityClass : std::uint8_t { pulp::timeline::ReproducibilityClass::Deterministic , pulp::timeline::ReproducibilityClass::Tolerance , pulp::timeline::ReproducibilityClass::Materialized , pulp::timeline::ReproducibilityClass::BestEffort }
 What a second render of the same document may claim about the first. More...
enum class  pulp::timeline::ProductionDeclarationErrorCode : std::uint8_t { pulp::timeline::ProductionDeclarationErrorCode::None , pulp::timeline::ProductionDeclarationErrorCode::SynchronousDeclaresLookahead , pulp::timeline::ProductionDeclarationErrorCode::BufferedDeclaresNoLookahead , pulp::timeline::ProductionDeclarationErrorCode::LookaheadExceedsLimit }
 Validation result for a ProductionDeclaration. More...
enum class  pulp::timeline::TuningSystem : std::uint8_t { pulp::timeline::TuningSystem::EqualTemperament , pulp::timeline::TuningSystem::MtsEsp , pulp::timeline::TuningSystem::Scala }
 How a document states the mapping from note number to pitch. More...

Functions

bool pulp::timeline::package_relative_path_is_lexically_safe (std::string_view path) noexcept
 Returns whether a persisted package-relative locator preserves Timeline's historical lexical contract: relative, NUL-free, and without parent traversal.
bool pulp::timeline::package_relative_path_is_portable (std::string_view path) noexcept
 Returns whether a new package-publication path is portable across supported filesystems and cannot be reinterpreted as a device or alternate data stream.
float pulp::timeline::evaluate_continuous_automation_segment (timebase::TickPosition position, timebase::TickPosition start, timebase::TickPosition end, float start_value, float end_value, float curvature) noexcept
 Evaluates one continuous segment and clamps outside it.
template<class... Fs>
 pulp::timeline::AutomationTargetCases (Fs...) -> AutomationTargetCases< Fs... >
template<class... Fs>
 pulp::timeline::ClipContentCases (Fs...) -> ClipContentCases< Fs... >
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 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.
constexpr bool pulp::timeline::midi_lane_address_well_formed (const MidiLaneAddress &address) noexcept
 Returns whether every address component fits the width the wire gives it.
std::optional< ModelError > pulp::timeline::validate_sequence_graph (std::span< const Sequence > sequences)
 Validates all SequenceRef targets, cycles, and maximum graph depth.
std::optional< ModelError > pulp::timeline::validate_sequence_edge (std::span< const Sequence > sequences, ItemId parent_id, ItemId child_id)
 Validates one prospective parent-to-child edge against a sequence pool.
constexpr ItemId pulp::timeline::immediate_parent_id (ItemKind kind, ItemId project_id, ItemId sequence_id, ItemId track_id, ItemId clip_id, ItemId lane_id={}) noexcept
 Derives the canonical immediate owner from an item's kind and coordinates.
runtime::Result< RemappedClip, ModelError > pulp::timeline::remap_ids (const Clip &clip, ItemIdAllocator &allocator, ExternalIdFixup external={})
 Remaps a clip's owned identities, optionally translating asset references.
runtime::Result< RemappedClip, ModelError > pulp::timeline::remap_ids (const Clip &clip, ItemIdAllocator &allocator, RemapIdFixups fixups)
 Remaps a clip with independent asset and sequence reference fixups.
runtime::Result< RemappedTrack, ModelError > pulp::timeline::remap_ids (const Track &track, ItemIdAllocator &allocator, ExternalIdFixup external={})
 Remaps a track's owned subtree, optionally translating asset references.
runtime::Result< RemappedTrack, ModelError > pulp::timeline::remap_ids (const Track &track, ItemIdAllocator &allocator, RemapIdFixups fixups)
 Remaps a track with independent asset and sequence reference fixups.
runtime::Result< RemappedSequence, ModelError > pulp::timeline::remap_ids (const Sequence &sequence, ItemIdAllocator &allocator, ExternalIdFixup external={})
 Remaps a sequence's owned subtree, optionally translating asset references.
runtime::Result< RemappedSequence, ModelError > pulp::timeline::remap_ids (const Sequence &sequence, ItemIdAllocator &allocator, RemapIdFixups fixups)
 Remaps a sequence with independent asset and sequence reference fixups.
runtime::Result< RemappedSequence, ModelError > pulp::timeline::remap_ids (const Sequence &sequence, std::span< const std::pair< ItemId, ItemId > > carried_ids, RemapIdFixups fixups={})
 Rebuilds a sequence from an explicit carried identity table and reference fixups.
runtime::Result< RemappedProject, ModelError > pulp::timeline::remap_ids (const Project &project, std::uint64_t first_id)
 Remaps every project-owned identity starting at first_id.
template<class... Fs>
 pulp::timeline::ModulationTargetCases (Fs...) -> ModulationTargetCases< Fs... >
constexpr std::string_view pulp::timeline::modulator_kind_name (ModulatorKind value) noexcept
 The canonical persisted spelling of a modulator kind, shared by the encoder, the decoder, and every interchange reader so no surface invents its own.
constexpr bool pulp::timeline::known_modulator_kind (ModulatorKind value) noexcept
 Returns whether value names a declared modulator kind.
constexpr std::optional< ModulatorKind > pulp::timeline::modulator_kind_from_name (std::string_view name) noexcept
 Parses the canonical persisted modulator-kind spelling.
constexpr std::string_view pulp::timeline::modulation_source_kind_name (ModulationSourceKind value) noexcept
 The canonical persisted spelling of a modulation source kind.
constexpr std::optional< ModulationSourceKind > pulp::timeline::modulation_source_kind_from_name (std::string_view name) noexcept
 Parses the canonical persisted modulation-source-kind spelling.
constexpr std::uint64_t pulp::timeline::note_modifier_mix (std::uint64_t value) noexcept
 Mixes one 64-bit value with the stable note-modifier avalanche function.
constexpr std::string_view pulp::timeline::note_condition_name (NoteConditionKind condition) noexcept
 Returns the canonical persisted spelling of condition.
constexpr bool pulp::timeline::parse_note_condition (std::string_view name, NoteConditionKind &out) noexcept
 Parses a canonical condition name into out.
constexpr bool pulp::timeline::note_modifier_is_neutral (const NoteModifier &modifier) noexcept
 Returns whether modifier encodes unconditional, single-play behavior.
constexpr bool pulp::timeline::note_modifier_well_formed (const NoteModifier &modifier) noexcept
 Checks structural validity independently of whether the note identity exists.
constexpr std::uint64_t pulp::timeline::note_modifier_draw_key (std::uint64_t seed, ItemId note_id) noexcept
 Derives the deterministic draw key for one authored seed and note identity.
constexpr bool pulp::timeline::note_probability_sounds (std::uint16_t probability, NoteModifierDraw draw) noexcept
 Tests an authored probability against draw.
constexpr bool pulp::timeline::note_condition_holds (NoteConditionKind condition, std::uint16_t period, std::uint16_t offset, std::uint64_t pass_index) noexcept
 Returns whether a pass-relative condition admits pass_index.
constexpr bool pulp::timeline::note_modifier_sounds (const NoteModifier &modifier, std::uint64_t draw_key, std::uint64_t pass_index) noexcept
 Applies both the modifier's condition and deterministic probability gate.
constexpr std::string_view pulp::timeline::track_mixer_parameter_name (TrackMixerParameter value) noexcept
 The canonical persisted spelling of a mixer parameter, shared by the encoder, the decoder, and every interchange reader so no surface invents its own.
constexpr std::optional< TrackMixerParameter > pulp::timeline::track_mixer_parameter_from_name (std::string_view name) noexcept
 Parses the canonical persisted mixer-parameter spelling.
std::string_view pulp::timeline::production_mode_name (ProductionMode mode) noexcept
 Canonical wire name, stable across builds and safe to persist.
std::string_view pulp::timeline::reproducibility_class_name (ReproducibilityClass reproducibility) noexcept
 Canonical persisted name for a reproducibility class.
std::optional< ProductionMode > pulp::timeline::production_mode_from_name (std::string_view name) noexcept
 Parse a canonical wire name.
std::optional< ReproducibilityClass > pulp::timeline::reproducibility_class_from_name (std::string_view name) noexcept
 Parses a canonical reproducibility-class name and rejects unknown names.
std::uint8_t pulp::timeline::replay_strength (ReproducibilityClass reproducibility) noexcept
 Replay strength, ascending: BestEffort < Tolerance < Materialized < Deterministic.
ReproducibilityClass pulp::timeline::weakest (ReproducibilityClass left, ReproducibilityClass right) noexcept
 The weaker of two claims — the only correct way to aggregate a render that spans several classes.
bool pulp::timeline::is_bit_reproducible (ReproducibilityClass reproducibility) noexcept
 True when a second render is entitled to claim bit-equality with the first.
ProductionDeclarationErrorCode pulp::timeline::validate_production_declaration (const ProductionDeclaration &declaration) noexcept
 Validate a declaration. Returns None when the declaration is coherent.
constexpr bool pulp::timeline::valid_tuning_reference (const TuningReference &tuning) noexcept
 Returns whether a tuning reference is internally consistent.

Variables

constexpr std::size_t pulp::timeline::kAutomationTargetAlternativeCount
 Guard for code that can only be correct for a known set of alternatives — chiefly std::get<T> on a target, which under this module's -fno-exceptions build calls std::terminate rather than throwing when the alternative does not match.
constexpr std::size_t pulp::timeline::kClipContentAlternativeCount = std::variant_size_v<ClipContent>
 Guard for code that can only be correct while ClipContent holds exactly the alternatives it does today — a decoder keyed on envelope type names, a referential-integrity scan that assumes MediaRef is the only alternative naming an asset, an audio path that assumes MediaRef is the only alternative carrying samples.
constexpr std::size_t pulp::timeline::kMaximumDeviceBindingKeyBytes = 1024
 Maximum UTF-8 byte length of a durable binding key.
constexpr std::uint8_t pulp::timeline::midi_lane_address_maximum = 15u
 Largest admitted UMP group and channel address component.
constexpr std::uint16_t pulp::timeline::kChordExtensionMask
 Every extension bit the vocabulary defines; anything outside is rejected.
constexpr std::int32_t pulp::timeline::kGrooveUnitScale = 1000
 Per-mille identity scale for deterministic groove strengths and velocity.
constexpr std::int32_t pulp::timeline::kMaxGrooveVelocityScale = 4000
 Largest admitted per-step groove velocity multiplier, in per-mille.
constexpr std::size_t pulp::timeline::kMaxGrooveSteps = 1024
 Largest admitted number of entries in a repeating groove table.
constexpr std::size_t pulp::timeline::kMaxSequenceNestingDepth = 8
 Maximum admitted depth of an acyclic SequenceRef graph.
constexpr std::size_t pulp::timeline::kModulationTargetAlternativeCount
 Number of alternatives a route target may take.
constexpr float pulp::timeline::kMaximumModulationDepth = 1.0f
 Largest magnitude a route depth may carry.
constexpr std::uint16_t pulp::timeline::note_probability_certain = 0xffffu
 Denominator and exact "always sounds" value for authored note probability.
constexpr std::uint16_t pulp::timeline::note_ratchet_maximum = 64u
 Largest admitted authored retrigger count.
constexpr std::size_t pulp::timeline::kParameterTargetAlternativeCount
 Number of alternatives in ParameterTarget.
constexpr std::uint64_t pulp::timeline::kMaxProductionLookaheadMs = 60'000
 Upper bound on a declared lookahead.
constexpr float pulp::timeline::kMaximumTrackGainLinear = 64.0f
 Largest admitted authored linear track gain.
constexpr std::uint32_t pulp::timeline::kDefaultReferencePitchMillihertz = 440'000
 Reference pitch for A4 that a document states when it states nothing else.
constexpr std::uint32_t pulp::timeline::kMinReferencePitchMillihertz = 20'000
 Lowest reference pitch a document may state, in millihertz.
constexpr std::uint32_t pulp::timeline::kMaxReferencePitchMillihertz = 20'000'000
 Highest reference pitch a document may state, in millihertz.

Detailed Description

Immutable values and authored musical intent.

Typedef Documentation

◆ AutomationTarget

Exhaustive authored-target set.

Adding a target category extends this variant without changing AutomationLane's factory signature or observer API.

◆ ClipContent

Initial value:
Immutable MIDI clip content: start-then-identity-ordered notes with sparse deterministic modifiers,...
Definition clip.hpp:246
Exact validated JSON for an unavailable extension schema.
Definition clip.hpp:395
Extension-defined typed C++ content admitted by a SchemaRegistry.
Definition clip.hpp:329
Clip content that intentionally carries no media, notes, or extension value.
Definition clip.hpp:134
Borrowed range of frames from a project-owned MediaAsset.
Definition clip.hpp:153
Reference to a sibling sequence in the same Project pool.
Definition clip.hpp:162

Exhaustive set of immutable payloads a Clip can own or reference.

◆ ClipTimeRange

Exhaustive authored clip-placement domains.

◆ ModulationTarget

Exhaustive authored target set for a modulation route.

This is the shared ParameterTarget vocabulary under a route-side name, and deliberately so: a route and a lane name the same parameters, and what differs between them is what they write there, not what they can reach. The alias is not a distinct C++ type, so the guard against a silently ignored new alternative is the no-fallback overload set below plus the alternative count — both of which break at compile time when the variant widens.

◆ ParameterTarget

Exhaustive set of document parameters an authored control can address.

One vocabulary serves every consumer that names a parameter — automation lanes and modulation routes today — because "which parameter" is addressing rather than a property of what writes there. Consumers alias this under their own name and visit it through their own no-fallback overload set, so adding an alternative here is a compile error at every one of them.

Enumeration Type Documentation

◆ AssetLocatorKind

enum class pulp::timeline::AssetLocatorKind : std::uint8_t
strong

Namespace in which an asset locator hint is interpreted.

Enumerator
PackageRelative 

A lexically safe path relative to a project package.

ExternalUri 

An application-resolved external URI.

◆ AssetStoragePolicy

enum class pulp::timeline::AssetStoragePolicy : std::uint8_t
strong

Preferred storage relationship between a project and an asset's bytes.

Enumerator
External 

Resolve the bytes outside the project package.

Embedded 

Store the bytes in the project package.

PreferEmbedded 

Prefer packaged bytes while permitting external resolution.

◆ AudioLoopPointKind

enum class pulp::timeline::AudioLoopPointKind : std::uint8_t
strong

Provenance of a suggested audio loop point.

Enumerator
Manual 
Automatic 

◆ AutomationCurveErrorCode

enum class pulp::timeline::AutomationCurveErrorCode : std::uint8_t
strong

Validation failures returned by AutomationCurve factories and edits.

Enumerator
InvalidPointId 
DuplicatePointId 
DuplicatePosition 
InvalidInterpolation 
NonFiniteValue 
InvalidCurvature 
MissingPoint 

◆ AutomationInterpolation

enum class pulp::timeline::AutomationInterpolation : std::uint8_t
strong

Interpolation applied from an automation point to its successor.

Enumerator
Hold 
Continuous 

◆ AutomationLaneErrorCode

enum class pulp::timeline::AutomationLaneErrorCode : std::uint8_t
strong

Validation failures returned when constructing an AutomationLane.

Enumerator
InvalidLaneId 
InvalidDevicePlacementId 
InvalidDeviceId 

◆ ChordExtension

enum pulp::timeline::ChordExtension : std::uint16_t

Added scale degree a chord statement carries above its quality.

One bit per degree, so a chord may state several at once. The values are a bitmask rather than an enum class because that is what they are; naming them here keeps the spelling out of every call site that builds one.

Enumerator
kChordExtensionNinth 
kChordExtensionFlatNinth 
kChordExtensionSharpNinth 
kChordExtensionEleventh 
kChordExtensionSharpEleventh 
kChordExtensionThirteenth 
kChordExtensionFlatThirteenth 

◆ ChordQuality

enum class pulp::timeline::ChordQuality : std::uint8_t
strong

Harmonic quality of a chord statement.

Spelling and voicing are presentation and generation concerns.

Enumerator
Major 
Minor 
Diminished 
Augmented 
Dominant7 
Major7 
Minor7 
HalfDiminished7 
Suspended2 
Suspended4 

◆ ChordVoicing

enum class pulp::timeline::ChordVoicing : std::uint8_t
strong

Non-binding hint for how a generator should spread a chord's tones.

A hint, not an instruction: nothing in the document is re-voiced because one changed, and a generator that ignores it is still correct.

Enumerator
Close 
Open 
Drop2 
Drop3 
Rootless 
Shell 

◆ ClipFadeShape

enum class pulp::timeline::ClipFadeShape : std::uint8_t
strong

Gain curve traversed across a clip's fade region, in both directions.

Linear is equal-gain: two complementary linear fades over uncorrelated material sum to (1-t)^2 + t^2, which is 0.5 at the midpoint — an audible 3 dB dip. EqualPower is the sine quarter-cycle, whose complementary pair squares to sin^2 + cos^2 = 1, holding power constant across the transition. Correlated material (the same take on both sides) inverts the preference, which is why the shape is authored rather than inferred.

Enumerator
Linear 
EqualPower 

◆ ClipTimeAnchor

enum class pulp::timeline::ClipTimeAnchor : std::uint8_t
strong

Time domain in which a clip's placement remains anchored.

Enumerator
Musical 
Absolute 

◆ DeviceChainPosition

enum class pulp::timeline::DeviceChainPosition : std::uint8_t
strong

Authored position of a device relative to the track fader.

Enumerator
PreFader 

Runs before the authored track fader.

PostFader 

Runs after the authored track fader.

◆ DeviceKind

enum class pulp::timeline::DeviceKind : std::uint8_t
strong

Format-neutral namespace of a durable device binding key.

Enumerator
Unresolved 

Has no resolver binding yet.

BuiltIn 

Resolves through Pulp's built-in device namespace.

External 

Resolves through an external device namespace.

Generated 

Resolves through a generated-device namespace.

◆ DeviceSlotKind

enum class pulp::timeline::DeviceSlotKind : std::uint8_t
strong

Static signal-domain contract of one device slot.

Enumerator
EventToEvent 

Accepts events and emits events.

EventToAudio 

Accepts events and emits audio.

AudioToAudio 

Accepts audio and emits audio.

◆ FollowActionKind

enum class pulp::timeline::FollowActionKind : std::uint8_t
strong

Action applied when a slot's follow timer elapses.

Enumerator
None 
Stop 
Again 
Previous 
Next 
First 
Last 
Any 
Other 
Jump 

◆ FollowOutcome

enum class pulp::timeline::FollowOutcome : std::uint8_t
strong

Runtime request produced by resolving an authored follow action.

Enumerator
None 
Stop 
Play 

◆ IdentityMutationKind

enum class pulp::timeline::IdentityMutationKind : std::uint8_t
strong

Allowed transition applied to one identity-index entry.

Enumerator
Insert 
Deactivate 
Reactivate 

◆ ItemKind

enum class pulp::timeline::ItemKind : std::uint8_t
strong

Kind of an identity-bearing item in a Project.

Enumerator
Project 
Asset 
Sequence 
Track 
Clip 
Note 
MidiLane 
MidiLanePoint 
DevicePlacement 
AutomationLane 
AutomationPoint 
Modulator 
MacroControl 
ModulationRoute 
TakeLane 
Take 
Marker 
Region 
Scene 
Slot 

◆ ModelErrorCode

enum class pulp::timeline::ModelErrorCode : std::uint8_t
strong

Validation and identity failures returned by immutable Timeline model edits.

Enumerator
InvalidItemId 
DuplicateItemId 
ItemIdExhausted 
InvalidDuration 
InvalidMediaRange 
InvalidSampleRate 
InvalidNote 
OverlappingClips 
MissingAsset 
MissingRootSequence 
NextItemIdNotMonotonic 
MixedTimeAnchors 
IncompatibleSampleRate 
MissingItem 
IdentityConflict 
InvalidIdentityTransition 
InvalidSchemaIdentity 
InvalidContentHash 
InvalidAssetLocator 
DuplicateAssetRepresentation 
InvalidOpaqueContent 
OpaqueContentLimitExceeded 
OpaqueContentCannotRemap 
InvalidClipPlaybackProperties 
MissingAutomationTarget 
DuplicateAutomationTarget 
InvalidTake 
DuplicateTake 
ActiveTakeLaneRemoval 
InvalidTakeComp 
OverlappingTakeComp 
ActiveCompTakeRemoval 
InvalidAudioLoopInfo 
InvalidAssetStoragePolicy 
InvalidMarker 
InvalidRegion 
InvalidSessionStart 
InvalidChordScaleEvent 
UnorderedChordScaleLane 
InvalidDynamicsEvent 

A dynamics event carries a negative position, or an intensity that is not finite and within [0, 1], or an unrecognized interpolation.

UnorderedDynamicsLane 

Dynamics events were supplied out of position order, or two share a position.

Authored order is the document's order and is never sorted.

InvalidGrooveTemplate 
InvalidNoteModifier 
InvalidMidiLane 
DuplicateMidiLaneAddress 
MissingSequenceReference 
SequenceReferenceCycle 
SequenceNestingTooDeep 
InvalidTrackMixer 
InvalidTimeConform 
InvalidTuningReference 
InvalidModulator 
InvalidMacroControl 
InvalidModulationRoute 
MissingModulationSource 
MissingModulationTarget 

◆ ModulationSourceKind

enum class pulp::timeline::ModulationSourceKind : std::uint8_t
strong

Which track-owned entity a route draws its signal from.

Enumerator
Modulator 
Macro 

◆ ModulatorKind

enum class pulp::timeline::ModulatorKind : std::uint8_t
strong

The signal shape a modulator produces.

Timeline stores which kind a modulator declares and nothing about how it runs: rate, shape parameters, retrigger policy, and the sample generation itself are engine concerns that arrive with the modulator runtime. A document authored now therefore keeps its routing when that runtime lands.

Enumerator
Lfo 
Envelope 
Random 
StepSequence 

◆ NoteConditionKind

enum class pulp::timeline::NoteConditionKind : std::uint8_t
strong

Pass-relative condition controlling when a note may sound.

EveryNth and Fill read the modifier period; EveryNth also reads its offset. Pass indices count from zero at the transport's monotonic origin.

Enumerator
Always 
EveryNth 
First 
Fill 

◆ ProductionDeclarationErrorCode

enum class pulp::timeline::ProductionDeclarationErrorCode : std::uint8_t
strong

Validation result for a ProductionDeclaration.

Enumerator
None 
SynchronousDeclaresLookahead 

Synchronous content produces in band, so a lookahead is meaningless.

BufferedDeclaresNoLookahead 

A buffered producer with no lookahead is a synchronous producer that can starve — the category error worth rejecting at the declaration.

LookaheadExceedsLimit 

◆ ProductionMode

enum class pulp::timeline::ProductionMode : std::uint8_t
strong

Where content is produced relative to the audio callback that consumes it.

Enumerator
Synchronous 

Produced in band, inside the callback that consumes it. Cannot starve.

Buffered 

Produced ahead of the playhead on another thread and consumed through a ring.

Bounded wall-clock production cost, and it can starve.

◆ ReproducibilityClass

enum class pulp::timeline::ReproducibilityClass : std::uint8_t
strong

What a second render of the same document may claim about the first.

Ordered by replay strength in replay_strength(), weakest first, so a render spanning several classes can report the weakest claim it is entitled to make.

Enumerator
Deterministic 

Bit-exact from the document and its declared inputs alone.

Tolerance 

Reproducible only within a declared numeric tolerance — a different device, driver, or vectorization may move the low bits.

Materialized 

Bit-exact against a pinned, content-hashed artifact rather than against the producer.

Regenerating mints a new artifact identity.

BestEffort 

No replay guarantee.

Live input and unseeded generation live here; a bit-exact gate must exclude the audio while still asserting the inputs.

◆ ScaleMode

enum class pulp::timeline::ScaleMode : std::uint8_t
strong

Scale mode associated with a harmonic context event.

Enumerator
Major 
NaturalMinor 
HarmonicMinor 
MelodicMinor 
Dorian 
Phrygian 
Lydian 
Mixolydian 
Locrian 
Chromatic 

◆ SectionRole

enum class pulp::timeline::SectionRole : std::uint8_t
strong

Structural part a region names, independent of what the region is called.

The name is free text a user typed; the role is the typed restatement a generator can dispatch on without parsing prose. Unspecified is a region that states a span without claiming a part.

Enumerator
Unspecified 
Intro 
Verse 
PreChorus 
Chorus 
Bridge 
Breakdown 
Drop 
Solo 
Interlude 
Outro 

◆ TimeConform

enum class pulp::timeline::TimeConform : std::uint8_t
strong

Authored policy for adapting a musical media clip when its duration and source duration differ.

Non-default intent is invalid for absolute clips and non-media content. Playback support is provided separately.

Enumerator
None 
Resample 
Stretch 

◆ TrackMixerParameter

enum class pulp::timeline::TrackMixerParameter : std::uint8_t
strong

The mixer controls a track owns directly, independent of any device it hosts.

They are named rather than numbered so a document never has to agree with a host on which control a numeric index meant.

Enumerator
Gain 
Pan 

◆ TuningSystem

enum class pulp::timeline::TuningSystem : std::uint8_t
strong

How a document states the mapping from note number to pitch.

The document names a tuning; it does not implement one. core/midi owns the providers that realize each of these at play time.

Enumerator
EqualTemperament 

Twelve equal divisions of the octave against the stated reference pitch.

MtsEsp 

Defer to whichever MTS-ESP master is present when the document plays.

The tuning itself lives outside the document by design: an MTS-ESP master is a live session-wide source, so a document that stores its current table would pin a snapshot the user did not author.

Scala 

A sealed Scala scale, and optionally a sealed keyboard mapping.

Function Documentation

◆ AutomationTargetCases()

template<class... Fs>
pulp::timeline::AutomationTargetCases ( Fs... ) ->AutomationTargetCases< Fs... >

◆ ClipContentCases()

template<class... Fs>
pulp::timeline::ClipContentCases ( Fs... ) ->ClipContentCases< Fs... >

◆ evaluate_continuous_automation_segment()

float pulp::timeline::evaluate_continuous_automation_segment ( timebase::TickPosition position,
timebase::TickPosition start,
timebase::TickPosition end,
float start_value,
float end_value,
float curvature )
noexcept

Evaluates one continuous segment and clamps outside it.

Reversed or empty intervals resolve to their start value before end and end value otherwise.

Parameters
positionPosition to evaluate, in canonical ticks.
startInclusive start of the segment.
endEnd of the segment.
start_valueValue at start.
end_valueValue at end.
curvatureSigned quadratic curvature; zero is linear.
Returns
The deterministically evaluated value.

◆ follow_action()

FollowActionSet pulp::timeline::follow_action ( FollowActionKind kind,
timebase::TickDuration grid,
std::uint32_t repetitions = 1 )
constexprnoexcept

Builds a one-candidate follow set with unit weight.

◆ follow_action_mix()

std::uint64_t pulp::timeline::follow_action_mix ( std::uint64_t value)
constexprnoexcept

Applies the deterministic SplitMix64 finalizer used by follow draws.

◆ immediate_parent_id()

ItemId pulp::timeline::immediate_parent_id ( ItemKind kind,
ItemId project_id,
ItemId sequence_id,
ItemId track_id,
ItemId clip_id,
ItemId lane_id = {} )
constexprnoexcept

Derives the canonical immediate owner from an item's kind and coordinates.

lane_id supplies the owning automation lane, take lane, MIDI expression lane, or scene for AutomationPoint, Take, MidiLanePoint, and Slot respectively.

◆ is_bit_reproducible()

bool pulp::timeline::is_bit_reproducible ( ReproducibilityClass reproducibility)
noexcept

True when a second render is entitled to claim bit-equality with the first.

◆ known_modulator_kind()

bool pulp::timeline::known_modulator_kind ( ModulatorKind value)
constexprnoexcept

Returns whether value names a declared modulator kind.

The enum is std::uint8_t-backed, so a value outside the declared set is representable. Callers that accept one from outside the module — a cast, a widened decoder — check this rather than assuming the switch above covered it.

◆ launch_every_bars()

LaunchQuantize pulp::timeline::launch_every_bars ( std::int64_t count,
timebase::MeterSignature meter )
constexprnoexcept

Returns a phase-zero grid spanning count bars under meter.

A bar spans numerator * (4 / denominator) quarter notes; the arithmetic remains in exact canonical ticks for every supported denominator.

◆ launch_every_quarters()

LaunchQuantize pulp::timeline::launch_every_quarters ( std::int64_t count)
constexprnoexcept

Returns a phase-zero grid spanning count quarter notes.

A non-positive count produces immediate launch semantics.

◆ launch_immediate()

LaunchQuantize pulp::timeline::launch_immediate ( )
constexprnoexcept

Returns an immediate, phase-zero launch policy.

◆ midi_lane_address_well_formed()

bool pulp::timeline::midi_lane_address_well_formed ( const MidiLaneAddress & address)
constexprnoexcept

Returns whether every address component fits the width the wire gives it.

◆ modulation_source_kind_from_name()

std::optional< ModulationSourceKind > pulp::timeline::modulation_source_kind_from_name ( std::string_view name)
constexprnoexcept

Parses the canonical persisted modulation-source-kind spelling.

Returns
The corresponding kind, or std::nullopt for an unknown name.

◆ modulation_source_kind_name()

std::string_view pulp::timeline::modulation_source_kind_name ( ModulationSourceKind value)
constexprnoexcept

The canonical persisted spelling of a modulation source kind.

◆ ModulationTargetCases()

template<class... Fs>
pulp::timeline::ModulationTargetCases ( Fs... ) ->ModulationTargetCases< Fs... >

◆ modulator_kind_from_name()

std::optional< ModulatorKind > pulp::timeline::modulator_kind_from_name ( std::string_view name)
constexprnoexcept

Parses the canonical persisted modulator-kind spelling.

Returns
The corresponding kind, or std::nullopt for an unknown name.

◆ modulator_kind_name()

std::string_view pulp::timeline::modulator_kind_name ( ModulatorKind value)
constexprnoexcept

The canonical persisted spelling of a modulator kind, shared by the encoder, the decoder, and every interchange reader so no surface invents its own.

◆ note_condition_holds()

bool pulp::timeline::note_condition_holds ( NoteConditionKind condition,
std::uint16_t period,
std::uint16_t offset,
std::uint64_t pass_index )
constexprnoexcept

Returns whether a pass-relative condition admits pass_index.

Invalid zero periods return false for periodic conditions.

◆ note_condition_name()

std::string_view pulp::timeline::note_condition_name ( NoteConditionKind condition)
constexprnoexcept

Returns the canonical persisted spelling of condition.

◆ note_modifier_draw_key()

std::uint64_t pulp::timeline::note_modifier_draw_key ( std::uint64_t seed,
ItemId note_id )
constexprnoexcept

Derives the deterministic draw key for one authored seed and note identity.

◆ note_modifier_is_neutral()

bool pulp::timeline::note_modifier_is_neutral ( const NoteModifier & modifier)
constexprnoexcept

Returns whether modifier encodes unconditional, single-play behavior.

◆ note_modifier_mix()

std::uint64_t pulp::timeline::note_modifier_mix ( std::uint64_t value)
constexprnoexcept

Mixes one 64-bit value with the stable note-modifier avalanche function.

This copy is deliberately independent of other randomization surfaces so changing another mixer cannot re-roll authored notes.

◆ note_modifier_sounds()

bool pulp::timeline::note_modifier_sounds ( const NoteModifier & modifier,
std::uint64_t draw_key,
std::uint64_t pass_index )
constexprnoexcept

Applies both the modifier's condition and deterministic probability gate.

draw_key normally comes from note_modifier_draw_key(). The function is pure and evaluation order cannot change its result.

◆ note_modifier_well_formed()

bool pulp::timeline::note_modifier_well_formed ( const NoteModifier & modifier)
constexprnoexcept

Checks structural validity independently of whether the note identity exists.

◆ note_probability_sounds()

bool pulp::timeline::note_probability_sounds ( std::uint16_t probability,
NoteModifierDraw draw )
constexprnoexcept

Tests an authored probability against draw.

Zero is always silent and note_probability_certain always sounds. Interior values map exactly onto the same-size residue range.

◆ package_relative_path_is_lexically_safe()

bool pulp::timeline::package_relative_path_is_lexically_safe ( std::string_view path)
inlinenoexcept

Returns whether a persisted package-relative locator preserves Timeline's historical lexical contract: relative, NUL-free, and without parent traversal.

◆ package_relative_path_is_portable()

bool pulp::timeline::package_relative_path_is_portable ( std::string_view path)
inlinenoexcept

Returns whether a new package-publication path is portable across supported filesystems and cannot be reinterpreted as a device or alternate data stream.

◆ parse_note_condition()

bool pulp::timeline::parse_note_condition ( std::string_view name,
NoteConditionKind & out )
constexprnoexcept

Parses a canonical condition name into out.

Returns
false for an unknown spelling, leaving out unchanged.

◆ production_mode_from_name()

std::optional< ProductionMode > pulp::timeline::production_mode_from_name ( std::string_view name)
noexcept

Parse a canonical wire name.

Fails closed: an unknown name is rejected rather than defaulted, so a document from a newer build never silently reads as the strongest claim.

◆ production_mode_name()

std::string_view pulp::timeline::production_mode_name ( ProductionMode mode)
noexcept

Canonical wire name, stable across builds and safe to persist.

◆ remap_ids() [1/8]

runtime::Result< RemappedClip, ModelError > pulp::timeline::remap_ids ( const Clip & clip,
ItemIdAllocator & allocator,
ExternalIdFixup external = {} )

Remaps a clip's owned identities, optionally translating asset references.

◆ remap_ids() [2/8]

runtime::Result< RemappedClip, ModelError > pulp::timeline::remap_ids ( const Clip & clip,
ItemIdAllocator & allocator,
RemapIdFixups fixups )

Remaps a clip with independent asset and sequence reference fixups.

◆ remap_ids() [3/8]

runtime::Result< RemappedProject, ModelError > pulp::timeline::remap_ids ( const Project & project,
std::uint64_t first_id )

Remaps every project-owned identity starting at first_id.

The deterministic two-pass operation allocates all owned identities before rebuilding references.

◆ remap_ids() [4/8]

runtime::Result< RemappedSequence, ModelError > pulp::timeline::remap_ids ( const Sequence & sequence,
ItemIdAllocator & allocator,
ExternalIdFixup external = {} )

Remaps a sequence's owned subtree, optionally translating asset references.

◆ remap_ids() [5/8]

runtime::Result< RemappedSequence, ModelError > pulp::timeline::remap_ids ( const Sequence & sequence,
ItemIdAllocator & allocator,
RemapIdFixups fixups )

Remaps a sequence with independent asset and sequence reference fixups.

◆ remap_ids() [6/8]

runtime::Result< RemappedSequence, ModelError > pulp::timeline::remap_ids ( const Sequence & sequence,
std::span< const std::pair< ItemId, ItemId > > carried_ids,
RemapIdFixups fixups = {} )

Rebuilds a sequence from an explicit carried identity table and reference fixups.

◆ remap_ids() [7/8]

runtime::Result< RemappedTrack, ModelError > pulp::timeline::remap_ids ( const Track & track,
ItemIdAllocator & allocator,
ExternalIdFixup external = {} )

Remaps a track's owned subtree, optionally translating asset references.

◆ remap_ids() [8/8]

runtime::Result< RemappedTrack, ModelError > pulp::timeline::remap_ids ( const Track & track,
ItemIdAllocator & allocator,
RemapIdFixups fixups )

Remaps a track with independent asset and sequence reference fixups.

◆ replay_strength()

std::uint8_t pulp::timeline::replay_strength ( ReproducibilityClass reproducibility)
noexcept

Replay strength, ascending: BestEffort < Tolerance < Materialized < Deterministic.

Only an ordering, not a quality score.

◆ reproducibility_class_from_name()

std::optional< ReproducibilityClass > pulp::timeline::reproducibility_class_from_name ( std::string_view name)
noexcept

Parses a canonical reproducibility-class name and rejects unknown names.

◆ reproducibility_class_name()

std::string_view pulp::timeline::reproducibility_class_name ( ReproducibilityClass reproducibility)
noexcept

Canonical persisted name for a reproducibility class.

◆ resolve_follow_action()

FollowResolution pulp::timeline::resolve_follow_action ( std::span< const Slot > lane,
std::size_t self_index,
FollowDraw draw )
constexprnoexcept

Resolves the successor of self_index under that slot's follow-action set.

Resolution is allocation-free and depends only on lane, self_index, and draw. An unsatisfied candidate, such as a missing jump target, resolves to None rather than silently stopping the slot.

◆ select_follow_action()

std::size_t pulp::timeline::select_follow_action ( const FollowActionSet & set,
FollowDraw draw )
constexprnoexcept

Selects one active candidate by relative weight.

Each candidate owns a half-open interval proportional to its weight. Returns kMaxChoices when the set is empty or every weight is zero.

◆ track_mixer_parameter_from_name()

std::optional< TrackMixerParameter > pulp::timeline::track_mixer_parameter_from_name ( std::string_view name)
constexprnoexcept

Parses the canonical persisted mixer-parameter spelling.

Returns
The corresponding parameter, or std::nullopt for an unknown name.

◆ track_mixer_parameter_name()

std::string_view pulp::timeline::track_mixer_parameter_name ( TrackMixerParameter value)
constexprnoexcept

The canonical persisted spelling of a mixer parameter, shared by the encoder, the decoder, and every interchange reader so no surface invents its own.

◆ valid_tuning_reference()

bool pulp::timeline::valid_tuning_reference ( const TuningReference & tuning)
constexprnoexcept

Returns whether a tuning reference is internally consistent.

A non-Scala system carrying a payload hash is rejected rather than having the hash ignored: a reader that ignored it would play a different scale from the one the document names.

◆ validate_production_declaration()

ProductionDeclarationErrorCode pulp::timeline::validate_production_declaration ( const ProductionDeclaration & declaration)
noexcept

Validate a declaration. Returns None when the declaration is coherent.

◆ validate_sequence_edge()

std::optional< ModelError > pulp::timeline::validate_sequence_edge ( std::span< const Sequence > sequences,
ItemId parent_id,
ItemId child_id )

Validates one prospective parent-to-child edge against a sequence pool.

◆ validate_sequence_graph()

std::optional< ModelError > pulp::timeline::validate_sequence_graph ( std::span< const Sequence > sequences)

Validates all SequenceRef targets, cycles, and maximum graph depth.

◆ weakest()

ReproducibilityClass pulp::timeline::weakest ( ReproducibilityClass left,
ReproducibilityClass right )
noexcept

The weaker of two claims — the only correct way to aggregate a render that spans several classes.

Variable Documentation

◆ kAutomationTargetAlternativeCount

std::size_t pulp::timeline::kAutomationTargetAlternativeCount
inlineconstexpr
Initial value:
=
constexpr std::size_t kParameterTargetAlternativeCount
Number of alternatives in ParameterTarget.
Definition parameter_target.hpp:102

Guard for code that can only be correct for a known set of alternatives — chiefly std::get<T> on a target, which under this module's -fno-exceptions build calls std::terminate rather than throwing when the alternative does not match.

Anything that cannot be expressed as an AutomationTargetCases visit should assert on this count so widening the variant trips at compile time instead of aborting the process at run time.

◆ kChordExtensionMask

std::uint16_t pulp::timeline::kChordExtensionMask
inlineconstexpr
Initial value:
=
@ kChordExtensionEleventh
Definition model.hpp:335
@ kChordExtensionFlatNinth
Definition model.hpp:333
@ kChordExtensionSharpNinth
Definition model.hpp:334
@ kChordExtensionSharpEleventh
Definition model.hpp:336
@ kChordExtensionFlatThirteenth
Definition model.hpp:338
@ kChordExtensionNinth
Definition model.hpp:332
@ kChordExtensionThirteenth
Definition model.hpp:337

Every extension bit the vocabulary defines; anything outside is rejected.

◆ kClipContentAlternativeCount

std::size_t pulp::timeline::kClipContentAlternativeCount = std::variant_size_v<ClipContent>
inlineconstexpr

Guard for code that can only be correct while ClipContent holds exactly the alternatives it does today — a decoder keyed on envelope type names, a referential-integrity scan that assumes MediaRef is the only alternative naming an asset, an audio path that assumes MediaRef is the only alternative carrying samples.

Those sites cannot be expressed as a visit, so they assert on the alternative count instead: widening the variant stops the build with a message naming the decision that site owes, rather than shipping a document that silently loses the new content on load, save, or render.

◆ kDefaultReferencePitchMillihertz

std::uint32_t pulp::timeline::kDefaultReferencePitchMillihertz = 440'000
inlineconstexpr

Reference pitch for A4 that a document states when it states nothing else.

◆ kGrooveUnitScale

std::int32_t pulp::timeline::kGrooveUnitScale = 1000
inlineconstexpr

Per-mille identity scale for deterministic groove strengths and velocity.

◆ kMaxGrooveSteps

std::size_t pulp::timeline::kMaxGrooveSteps = 1024
inlineconstexpr

Largest admitted number of entries in a repeating groove table.

◆ kMaxGrooveVelocityScale

std::int32_t pulp::timeline::kMaxGrooveVelocityScale = 4000
inlineconstexpr

Largest admitted per-step groove velocity multiplier, in per-mille.

◆ kMaximumDeviceBindingKeyBytes

std::size_t pulp::timeline::kMaximumDeviceBindingKeyBytes = 1024
inlineconstexpr

Maximum UTF-8 byte length of a durable binding key.

◆ kMaximumModulationDepth

float pulp::timeline::kMaximumModulationDepth = 1.0f
inlineconstexpr

Largest magnitude a route depth may carry.

◆ kMaximumTrackGainLinear

float pulp::timeline::kMaximumTrackGainLinear = 64.0f
inlineconstexpr

Largest admitted authored linear track gain.

◆ kMaxProductionLookaheadMs

std::uint64_t pulp::timeline::kMaxProductionLookaheadMs = 60'000
inlineconstexpr

Upper bound on a declared lookahead.

A declaration past this is a document error, not a very patient producer.

◆ kMaxReferencePitchMillihertz

std::uint32_t pulp::timeline::kMaxReferencePitchMillihertz = 20'000'000
inlineconstexpr

Highest reference pitch a document may state, in millihertz.

◆ kMaxSequenceNestingDepth

std::size_t pulp::timeline::kMaxSequenceNestingDepth = 8
inlineconstexpr

Maximum admitted depth of an acyclic SequenceRef graph.

◆ kMinReferencePitchMillihertz

std::uint32_t pulp::timeline::kMinReferencePitchMillihertz = 20'000
inlineconstexpr

Lowest reference pitch a document may state, in millihertz.

◆ kModulationTargetAlternativeCount

std::size_t pulp::timeline::kModulationTargetAlternativeCount
inlineconstexpr
Initial value:

Number of alternatives a route target may take.

See kParameterTargetAlternativeCount for why a caller asserts on it.

◆ kParameterTargetAlternativeCount

std::size_t pulp::timeline::kParameterTargetAlternativeCount
inlineconstexpr
Initial value:
=
std::variant_size_v<ParameterTarget>

Number of alternatives in ParameterTarget.

Guard for code that can only be correct for a known set of alternatives, chiefly std::get<T> on a target, which under this module's -fno-exceptions build calls std::terminate rather than throwing on a mismatch. Anything that cannot be expressed as an exhaustive visit asserts on this count, so widening the variant trips at compile time instead of aborting the process at run time.

◆ midi_lane_address_maximum

std::uint8_t pulp::timeline::midi_lane_address_maximum = 15u
inlineconstexpr

Largest admitted UMP group and channel address component.

◆ note_probability_certain

std::uint16_t pulp::timeline::note_probability_certain = 0xffffu
inlineconstexpr

Denominator and exact "always sounds" value for authored note probability.

◆ note_ratchet_maximum

std::uint16_t pulp::timeline::note_ratchet_maximum = 64u
inlineconstexpr

Largest admitted authored retrigger count.