Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::graph Namespace Reference

Classes

struct  GraphRuntimeNodeSlots
struct  GraphRuntimeBufferAssignment
struct  GraphRuntimeLevelization
struct  GraphRuntimeLimits
struct  GraphRuntimeNodeSpec
struct  GraphRuntimeAutomationSpec
struct  GraphRuntimeConnectionSpec
struct  GraphRuntimeNodePlan
struct  GraphRuntimeConnectionPlan
struct  GraphRuntimePlan
struct  GraphRuntimePlanError
struct  GraphRuntimePlanResult
struct  GraphRuntimeProbeSample
class  GraphRuntimeProbe
struct  GraphCommandTiming
struct  GraphCommand
struct  GraphTimedCommand
struct  GraphEvent
struct  GraphMidiOutputEvent
struct  GraphRuntimeQueueStats
class  GraphRuntimeQueues
 Fixed-capacity graph command/event queues for realtime graph runtimes. More...
struct  SpectralResult
struct  SpectralFrameContract
 Versioned, canonical identity carried by every routed spectral batch. More...
class  SpectralIdentity
 Profile-one indexed channels: symmetric float Hann, local-window phase, forward scale one, inverse 1/N and full-overlap startup. More...
class  QualifiedSpectralStage
 Closed catalog value. More...
struct  SpectralFrameStamp
struct  SpectralFrameReadView
struct  SpectralFrameBatchView
 Snapshot-owned payload and descriptors; callback borrows never own storage. More...

Typedefs

using NodeId = std::uint32_t
using PortIndex = std::uint32_t

Enumerations

enum class  GraphRuntimeNodeKind : std::uint8_t {
  AudioInput , AudioOutput , Processor , Utility ,
  MidiInput , MidiOutput , Custom , SpectralAnalysis ,
  SpectralStage , SpectralSynthesis
}
enum class  GraphRuntimeConnectionKind : std::uint8_t {
  Audio , Event , Automation , Spectral ,
  Trigger
}
enum class  GraphRuntimePlanErrorCode : std::uint8_t {
  None , InvalidLimits , TooManyNodes , TooManyConnections ,
  TooManyPorts , InvalidNodeId , DuplicateNodeId , InvalidNodePortCount ,
  UnknownSourceNode , UnknownDestinationNode , SourcePortOutOfRange , DestinationPortOutOfRange ,
  CycleDetected , AllocationFailed , UnsupportedTrigger , NonAudioFeedback ,
  InvalidConnectionKind
}
enum class  GraphCommandType : std::uint8_t {
  SetNodeGain , SetNodeParameter , SetNodeBypass , ResetNode ,
  InjectMidi , TransportJump , ActivateSnapshot , DeactivateSnapshot
}
enum class  GraphCommandTimingType : std::uint8_t { Immediate , BlockOffset }
enum class  GraphEventType : std::uint8_t {
  CommandAccepted , CommandRejected , CommandDropped , SnapshotActivated ,
  SnapshotDeactivated , NodeReset , LatencyChanged , TailChanged ,
  Diagnostic
}
enum class  SpectralError : std::uint8_t {
  None = 0 , InvalidIdentity = 1 , InvalidMask = 2 , IdentityMismatch = 3 ,
  InvalidConnection = 4 , UnsupportedOperation = 5 , RequiresStoppedController = 6 , TransitionPending = 7 ,
  Busy = 8 , PendingMailboxData = 9 , UnsupportedTransactionalReplacement = 10 , SpectralPinnedExecutionUnsupported = 11 ,
  EpochExhausted = 12 , ChronologyExhausted = 13 , CapacityExceeded = 14 , InvalidFrame = 15 ,
  MissingFrame = 16 , StageContractViolation = 17 , SynthesisOverflow = 18 , OutputUnderrun = 19 ,
  InvalidContract = 20
}

Functions

GraphRuntimeBufferAssignment build_graph_runtime_buffer_assignment (const GraphRuntimePlan &plan, bool allow_reuse=true)
std::uint64_t graph_runtime_node_cost_weight (GraphRuntimeNodeKind kind, std::uint32_t input_ports, std::uint32_t output_ports) noexcept
GraphRuntimeLevelization build_graph_runtime_levelization (const GraphRuntimePlan &plan)
template<class Connection>
constexpr bool is_event (const Connection &c) noexcept
template<class Connection>
constexpr bool is_automation_conn (const Connection &c) noexcept
template<class Connection>
constexpr bool carries_audio (const Connection &c) noexcept
template<class Connection>
constexpr bool is_spectral (const Connection &c) noexcept
GraphRuntimePlanResult build_graph_runtime_plan (std::span< const GraphRuntimeNodeSpec > nodes, std::span< const GraphRuntimeConnectionSpec > connections, GraphRuntimeLimits limits={})

Variables

constexpr std::uint32_t kGraphRuntimeNoSlot = 0xFFFFFFFFu

Typedef Documentation

◆ NodeId

using pulp::graph::NodeId = std::uint32_t

◆ PortIndex

using pulp::graph::PortIndex = std::uint32_t

Enumeration Type Documentation

◆ GraphCommandTimingType

enum class pulp::graph::GraphCommandTimingType : std::uint8_t
strong
Enumerator
Immediate 
BlockOffset 

◆ GraphCommandType

enum class pulp::graph::GraphCommandType : std::uint8_t
strong
Enumerator
SetNodeGain 
SetNodeParameter 
SetNodeBypass 
ResetNode 
InjectMidi 
TransportJump 
ActivateSnapshot 
DeactivateSnapshot 

◆ GraphEventType

enum class pulp::graph::GraphEventType : std::uint8_t
strong
Enumerator
CommandAccepted 
CommandRejected 
CommandDropped 
SnapshotActivated 
SnapshotDeactivated 
NodeReset 
LatencyChanged 
TailChanged 
Diagnostic 

◆ GraphRuntimeConnectionKind

enum class pulp::graph::GraphRuntimeConnectionKind : std::uint8_t
strong
Enumerator
Audio 
Event 
Automation 
Spectral 
Trigger 

◆ GraphRuntimeNodeKind

enum class pulp::graph::GraphRuntimeNodeKind : std::uint8_t
strong
Enumerator
AudioInput 
AudioOutput 
Processor 
Utility 
MidiInput 
MidiOutput 
Custom 
SpectralAnalysis 
SpectralStage 
SpectralSynthesis 

◆ GraphRuntimePlanErrorCode

enum class pulp::graph::GraphRuntimePlanErrorCode : std::uint8_t
strong
Enumerator
None 
InvalidLimits 
TooManyNodes 
TooManyConnections 
TooManyPorts 
InvalidNodeId 
DuplicateNodeId 
InvalidNodePortCount 
UnknownSourceNode 
UnknownDestinationNode 
SourcePortOutOfRange 
DestinationPortOutOfRange 
CycleDetected 
AllocationFailed 
UnsupportedTrigger 
NonAudioFeedback 
InvalidConnectionKind 

◆ SpectralError

enum class pulp::graph::SpectralError : std::uint8_t
strong
Enumerator
None 
InvalidIdentity 
InvalidMask 
IdentityMismatch 
InvalidConnection 
UnsupportedOperation 
RequiresStoppedController 
TransitionPending 
Busy 
PendingMailboxData 
UnsupportedTransactionalReplacement 
SpectralPinnedExecutionUnsupported 
EpochExhausted 
ChronologyExhausted 
CapacityExceeded 
InvalidFrame 
MissingFrame 
StageContractViolation 
SynthesisOverflow 
OutputUnderrun 
InvalidContract 

Function Documentation

◆ build_graph_runtime_buffer_assignment()

GraphRuntimeBufferAssignment pulp::graph::build_graph_runtime_buffer_assignment ( const GraphRuntimePlan & plan,
bool allow_reuse = true )

◆ build_graph_runtime_levelization()

GraphRuntimeLevelization pulp::graph::build_graph_runtime_levelization ( const GraphRuntimePlan & plan)

◆ build_graph_runtime_plan()

GraphRuntimePlanResult pulp::graph::build_graph_runtime_plan ( std::span< const GraphRuntimeNodeSpec > nodes,
std::span< const GraphRuntimeConnectionSpec > connections,
GraphRuntimeLimits limits = {} )

◆ carries_audio()

template<class Connection>
bool pulp::graph::carries_audio ( const Connection & c)
constexprnoexcept

◆ graph_runtime_node_cost_weight()

std::uint64_t pulp::graph::graph_runtime_node_cost_weight ( GraphRuntimeNodeKind kind,
std::uint32_t input_ports,
std::uint32_t output_ports )
noexcept

◆ is_automation_conn()

template<class Connection>
bool pulp::graph::is_automation_conn ( const Connection & c)
constexprnoexcept

◆ is_event()

template<class Connection>
bool pulp::graph::is_event ( const Connection & c)
constexprnoexcept

◆ is_spectral()

template<class Connection>
bool pulp::graph::is_spectral ( const Connection & c)
constexprnoexcept

Variable Documentation

◆ kGraphRuntimeNoSlot

std::uint32_t pulp::graph::kGraphRuntimeNoSlot = 0xFFFFFFFFu
inlineconstexpr