Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::host::CustomNodeEventBlock Struct Reference

The events visible to one Custom node for one block. More...

#include <custom_node_events.hpp>

Public Attributes

const midi::MidiBuffer * in = nullptr
midi::MidiBuffer * out = nullptr
TriggerContext * triggers = nullptr

Detailed Description

The events visible to one Custom node for one block.

in is the node's gathered inbound MIDI. A null in means "no events this block" and is not an error: the routed path only allocates an event input port when the compiled shape carries MIDI, so an audio-only graph hands the callback nothing while the reference walk hands it an empty buffer. A conforming callback must treat the two as identical, which is why the parity test compares rendered audio rather than buffer identity.

out is the node's own MIDI output buffer: a real, writable destination that downstream nodes gather from, cleared by the caller immediately before dispatch so nothing a previous block emitted survives into this one. It is nullable on exactly the same terms as in — the routed path's per-node scratch is null when the compiled shape carries no MIDI at all (an audio-only graph), while the reference walk always hands over its per-node buffer — so a conforming callback must null-check it and treat a null as "this graph has no event lane", never as an error. Appends respect the buffer's realtime capacity: an add() past capacity is dropped and recorded, and the executor derives this node's out_incomplete from those drops after the callback returns, exactly as it does for a plugin node.

Member Data Documentation

◆ in

const midi::MidiBuffer* pulp::host::CustomNodeEventBlock::in = nullptr

◆ out

midi::MidiBuffer* pulp::host::CustomNodeEventBlock::out = nullptr

◆ triggers

TriggerContext* pulp::host::CustomNodeEventBlock::triggers = nullptr

The documentation for this struct was generated from the following file: