29 if (
auto* ump = block.ump()) ump->clear();
35 if (block.dropped_event_count() > 0 || block.dropped_sysex_count() > 0) {
38 const auto* ump = block.ump();
39 return ump !=
nullptr && ump->dropped_event_count() > 0;
47 for (
const auto& sx : src.sysex()) {
48 if (sx.data.empty()) {
49 if (!dst.add_sysex({}, sx.sample_offset, sx.timestamp)) {
52 }
else if (!dst.add_sysex_copy(sx.data.data(), sx.data.size(),
53 sx.sample_offset, sx.timestamp)) {
57 const auto* src_ump = src.ump();
58 auto* dst_ump = dst.ump();
59 if (src_ump !=
nullptr && dst_ump !=
nullptr) {
60 for (
const auto& ev : *src_ump) {
61 if (!dst_ump->add(ev)) copied_all =
false;
63 }
else if (src_ump !=
nullptr && !src_ump->empty()) {
75 for (
const auto& ev : src) {
76 if (!dst.add(ev)) copied_all =
false;
84 bool copied_all = src.dropped_event_count() == 0;
85 constexpr std::size_t kChunk = 64;
86 std::array<MpeExpressionEvent, kChunk> chunk{};
87 std::size_t offset = 0;
88 while (offset < src.size()) {
89 const auto count = std::min<std::size_t>(kChunk, src.size() - offset);
90 for (std::size_t i = 0; i < count; ++i)
91 chunk[i] = src[offset + i];
92 if (!dst.add_batch(std::span<const MpeExpressionEvent>(chunk.data(), count)))
100 return block.dropped_event_count() != 0;
Collection of timestamped MIDI events within a single audio buffer period.
Definition buffer.hpp:31
A time-ordered list of per-note expression events for one block.
Definition mpe_buffer.hpp:51
Sample-accurate MPE expression event stream.
Definition custom_node_events.hpp:26
void clear_midi_block(MidiBuffer &block) noexcept
Definition block_ops.hpp:26
bool copy_midi_sidecars(const MidiBuffer &src, MidiBuffer &dst) noexcept
Definition block_ops.hpp:45
bool mpe_buffer_has_drops(const MpeBuffer &block) noexcept
Definition block_ops.hpp:99
bool copy_midi_block(const MidiBuffer &src, MidiBuffer &dst) noexcept
Definition block_ops.hpp:73
bool copy_mpe_block(const MpeBuffer &src, MpeBuffer &dst) noexcept
Definition block_ops.hpp:83
bool midi_block_has_drops(const MidiBuffer &block) noexcept
Definition block_ops.hpp:34
Sample-accurate MIDI 2.0 UMP packet stream.