Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
mpe_buffer.hpp File Reference

Sample-accurate MPE expression event stream. More...

#include <pulp/midi/mpe_voice_tracker.hpp>
#include <algorithm>
#include <array>
#include <cstdint>
#include <limits>
#include <span>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::midi::MpeExpressionEvent
 A single per-note expression event. More...
class  pulp::midi::MpeBuffer
 A time-ordered list of per-note expression events for one block. More...

Namespaces

namespace  pulp
namespace  pulp::midi

Functions

void pulp::midi::bind_tracker_to_buffer (MpeVoiceTracker &tracker, MpeBuffer &out, int32_t &current_sample_offset, bool *expression_event_dropped=nullptr)
 Convenience: install tracker callbacks that forward events to out with the given sample offset.

Detailed Description

Sample-accurate MPE expression event stream.

MpeBuffer is a parallel sidecar to MidiBuffer: while MidiBuffer carries raw MIDI 1.0 events, MpeBuffer carries higher-level per-note expression deltas emitted by an MpeVoiceTracker. Plugins that opt into MPE via PluginDescriptor::supports_mpe access the buffer through Processor::mpe_input() during process().

A format adapter typically fills this by running the inbound MidiBuffer through an MpeVoiceTracker whose callbacks append to the buffer with the source event's sample_offset attached.