Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
clip.hpp File Reference
#include <pulp/runtime/result.hpp>
#include <pulp/timebase/rational_time.hpp>
#include <pulp/timebase/tick.hpp>
#include <pulp/timeline/assets.hpp>
#include <pulp/timeline/item_id.hpp>
#include <pulp/timeline/midi_lane.hpp>
#include <pulp/timeline/note_modifier.hpp>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <optional>
#include <span>
#include <string>
#include <utility>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

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...

Namespaces

namespace  pulp
namespace  pulp::timeline

Typedefs

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.

Enumerations

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...

Functions

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

Variables

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.