Bounded handoff for event batches produced ahead of the audio playhead. More...
#include <pulp/audio/rt_safety_contract.hpp>#include <pulp/midi/ump.hpp>#include <pulp/playback/clip_launch.hpp>#include <pulp/runtime/seqlock.hpp>#include <pulp/timebase/tick.hpp>#include <array>#include <atomic>#include <cstddef>#include <cstdint>#include <memory>#include <span>#include <vector>Go to the source code of this file.
Classes | |
| struct | pulp::playback::GeneratedEventSpan |
| A half-open span on the transport's non-looping clock. More... | |
| struct | pulp::playback::GeneratedEvent |
| One value-owned generated event. More... | |
| struct | pulp::playback::GeneratedEventDegradationLadder |
| struct | pulp::playback::GeneratedEventSourceConfig |
| struct | pulp::playback::GeneratedEventStageResult |
| struct | pulp::playback::GeneratedEventCommitResult |
| struct | pulp::playback::GeneratedEventPullResult |
| class | pulp::playback::GeneratedEventSource |
| struct | pulp::playback::GeneratedEventSource::Stats |
Namespaces | |
| namespace | pulp |
| namespace | pulp::runtime |
| namespace | pulp::playback |
Typedefs | |
| using | pulp::playback::GeneratedEventCommitGeneration = std::uint64_t |
| using | pulp::playback::GeneratedEventRevision = std::uint64_t |
Bounded handoff for event batches produced ahead of the audio playhead.
The producer may revise private staged batches until a quantized commit freezes their span. Commit copies complete batches into a separate SPSC ring, so the audio consumer never observes or races a revision. Missing batches advance as event silence, accumulate exact tick lag, and request an active-note flush so a lost note-off cannot become a stuck note.
Thread model: