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 ¤t_sample_offset, bool *expression_event_dropped=nullptr) |
| Convenience: install tracker callbacks that forward events to out with the given sample offset. | |
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.