82 std::span<PluginBindingContext> contexts)
noexcept;
84 std::span<PluginBindingContext> contexts)
noexcept;
176 std::span<const Connection> connections);
188 std::span<const GraphNode> nodes,
189 std::span<const Connection> connections,
190 const std::function<
int(
NodeId)>& custom_latency_for);
207 explicit operator bool() const noexcept {
208 return bool(resolve_);
217 : resolve_(
std::move(resolve)) {}
280 std::span<const Connection> connections,
282 std::vector<PluginBindingContext>& plugin_ctx,
285 bool parallel_safe =
false,
286 std::vector<CustomBindingContext>* custom_ctx =
nullptr);
298 std::span<const Connection> connections,
299 const std::function<std::atomic<float>*(
NodeId)>& gain_for,
301 std::vector<PluginBindingContext>& plugin_ctx,
304 bool parallel_safe =
false,
307 std::vector<CustomBindingContext>* custom_ctx =
nullptr,
316 custom_transport_for = {},
321 const std::function<int(
NodeId)>& plugin_latency_for = {},
322 const std::function<const std::vector<HostParamInfo>*(
NodeId)>&
323 plugin_params_for = {},
325 parameter_events_for = {});
Measures the CPU load of an audio processing callback.
Definition load_measurer.hpp:182
Non-owning view over multi-channel audio sample data.
Definition buffer.hpp:30
Definition signal_graph_executor_routing.hpp:204
format::GraphRuntimeNodeBinding operator()(NodeId id) const
Definition signal_graph_executor_routing.hpp:210
SpectralResolver()=default
friend class SignalGraph
Definition signal_graph_executor_routing.hpp:215
Definition plugin_slot.hpp:94
Definition signal_graph_runtime.hpp:83
Collection of timestamped MIDI events within a single audio buffer period.
Definition buffer.hpp:31
Definition parameter_event_queue.hpp:82
The event block a Custom graph node receives, and the callback types that take it.
Definition analyzer_provider.hpp:12
Definition graph_runtime_buffer_assignment.hpp:8
std::uint32_t NodeId
Definition graph_types.hpp:7
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition anticipation_eligibility.hpp:9
std::function< void(audio::BufferView< float > &output, const audio::BufferView< const float > &input, int num_samples, const CustomNodeEventBlock &events)> CustomNodeEventProcessFn
Stateless event-aware process callback.
Definition custom_node_events.hpp:62
void reset_plugin_parameter_event_sequences(std::span< PluginBindingContext > contexts) noexcept
int calculate_lowerable_graph_latency_samples(std::span< const GraphNode > nodes, std::span< const Connection > connections, const std::function< int(NodeId)> &custom_latency_for)
bool build_signal_graph_executor_routing(const SignalGraph &graph, SignalGraphExecutorRouting &out)
void commit_plugin_parameter_event_sequences(std::span< PluginBindingContext > contexts) noexcept
std::function< void(audio::BufferView< float > &output, const audio::BufferView< const float > &input, int num_samples, const format::ProcessContext &transport)> CustomNodeTransportProcessFn
Definition custom_node_type.hpp:84
bool signal_graph_topology_executor_eligible(std::span< const GraphNode > nodes, std::span< const Connection > connections)
bool signal_graph_executor_eligible(const SignalGraph &graph)
std::function< void(audio::BufferView< float > &output, const audio::BufferView< const float > &input, int num_samples)> CustomNodeProcessFn
Definition custom_node_type.hpp:24
bool build_executor_snapshot(std::span< const GraphNode > nodes, std::span< const Connection > connections, const ExecutorSnapshotBinders &binders, std::vector< PluginBindingContext > &plugin_ctx, PluginRoutingScratch &scratch, format::GraphRuntimeSnapshot &out, bool parallel_safe=false, std::vector< CustomBindingContext > *custom_ctx=nullptr)
Process context — passed every audio callback with transport state.
Definition process_context.hpp:89
Definition signal_graph_connection.hpp:18
Definition signal_graph_executor_routing.hpp:112
CustomNodeProcessFn process
Definition signal_graph_executor_routing.hpp:113
CustomNodeEventProcessFn process_events
Definition signal_graph_executor_routing.hpp:127
CustomNodeTransportProcessFn process_transport
Definition signal_graph_executor_routing.hpp:120
Definition signal_graph_executor_routing.hpp:200
std::function< ParameterEventInjectionBinding(NodeId)> parameter_events_for
Definition signal_graph_executor_routing.hpp:257
std::function< PluginSlot *(NodeId)> plugin_for
Definition signal_graph_executor_routing.hpp:225
std::function< std::atomic< float > *(NodeId)> gain_for
Definition signal_graph_executor_routing.hpp:222
std::function< audio::AudioProcessLoadMeasurer *(NodeId)> load_for
Definition signal_graph_executor_routing.hpp:230
std::function< const std::vector< HostParamInfo > *(NodeId)> plugin_params_for
Definition signal_graph_executor_routing.hpp:253
std::function< const CustomNodeTransportProcessFn *(NodeId)> custom_transport_for
Definition signal_graph_executor_routing.hpp:239
std::function< const CustomNodeProcessFn *(NodeId)> custom_for
Definition signal_graph_executor_routing.hpp:234
std::function< int(NodeId)> custom_latency_for
Definition signal_graph_executor_routing.hpp:248
std::function< int(NodeId)> plugin_latency_for
Definition signal_graph_executor_routing.hpp:252
SpectralResolver spectral_for
Definition signal_graph_executor_routing.hpp:258
std::function< const CustomNodeEventProcessFn *(NodeId)> custom_event_for
Definition signal_graph_executor_routing.hpp:243
Definition signal_graph_node.hpp:126
Definition plugin_slot.hpp:74
Definition signal_graph_executor_routing.hpp:74
std::atomic< std::uint64_t > * live_sequence_seen
Definition signal_graph_executor_routing.hpp:77
PluginBindingContext::AppendParameterEventsFn append
Definition signal_graph_executor_routing.hpp:76
std::atomic< std::uint64_t > * exact_sequence_seen
Definition signal_graph_executor_routing.hpp:78
void * user_data
Definition signal_graph_executor_routing.hpp:75
Definition signal_graph_executor_routing.hpp:55
std::uint64_t exact
Definition signal_graph_executor_routing.hpp:57
std::uint64_t live
Definition signal_graph_executor_routing.hpp:56
Definition signal_graph_executor_routing.hpp:50
bool wants_transport
Definition signal_graph_executor_routing.hpp:71
std::atomic< std::uint64_t > * parameter_events_live_sequence_seen
Definition signal_graph_executor_routing.hpp:63
NodeId node_id
Definition signal_graph_executor_routing.hpp:51
PendingParameterEventSequences(*)( void *, state::ParameterEventQueue &) noexcept AppendParameterEventsFn
Definition signal_graph_executor_routing.hpp:59
PendingParameterEventSequences parameter_events_pending_sequences
Definition signal_graph_executor_routing.hpp:65
void * parameter_events_user_data
Definition signal_graph_executor_routing.hpp:61
PluginSlot * slot
Definition signal_graph_executor_routing.hpp:52
AppendParameterEventsFn append_parameter_events
Definition signal_graph_executor_routing.hpp:62
std::unique_ptr< PluginRoutingScratch > owned_scratch
Definition signal_graph_executor_routing.hpp:54
PluginRoutingScratch * scratch
Definition signal_graph_executor_routing.hpp:53
std::atomic< std::uint64_t > * parameter_events_exact_sequence_seen
Definition signal_graph_executor_routing.hpp:64
Definition signal_graph_executor_routing.hpp:38
state::ParameterEventQueue param_events
Definition signal_graph_executor_routing.hpp:41
midi::MidiBuffer midi_out
Definition signal_graph_executor_routing.hpp:40
midi::MidiBuffer midi_in
Definition signal_graph_executor_routing.hpp:39
Definition signal_graph_executor_routing.hpp:143
std::shared_ptr< const void > snapshot_keepalive
Definition signal_graph_executor_routing.hpp:149
PluginRoutingScratch plugin_scratch
Definition signal_graph_executor_routing.hpp:148
std::vector< CustomBindingContext > custom_ctx
Definition signal_graph_executor_routing.hpp:147
format::GraphRuntimeSnapshot snapshot
Definition signal_graph_executor_routing.hpp:144
bool valid
Definition signal_graph_executor_routing.hpp:150
std::vector< PluginBindingContext > plugin_ctx
Definition signal_graph_executor_routing.hpp:146
format::GraphRuntimeBufferPool pool
Definition signal_graph_executor_routing.hpp:145