A time-ordered list of per-note expression events for one block. More...
#include <mpe_buffer.hpp>
Public Member Functions | |
| MpeBuffer (bool reserve_storage=true) | |
| bool | add (const MpeExpressionEvent &e) |
| bool | add (MpeExpressionEvent &&e) |
| bool | add_batch (std::span< const MpeExpressionEvent > events) |
| Append a group atomically. | |
| void | clear () |
| bool | empty () const |
| std::size_t | size () const |
| std::size_t | capacity () const |
| std::uint32_t | dropped_event_count () const |
| void | reserve (std::size_t capacity) |
| void | set_realtime_capacity_limit (bool enabled=true) |
| void | sort () |
| auto | begin () |
| auto | end () |
| auto | begin () const |
| auto | end () const |
| const MpeExpressionEvent & | operator[] (std::size_t i) const |
A time-ordered list of per-note expression events for one block.
Ownership and lifetime mirror MidiBuffer: the format adapter owns the buffer, fills it before process(), passes a pointer to the processor, and clears it afterwards. Not thread-safe; all access is assumed to happen on the audio thread in one producer/consumer pair.
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
Append a group atomically.
Under the realtime capacity limit, either every event is appended in source order or none are. Rejected events are all reflected in the saturating drop counter.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |