#include <glibmm/fileutils.h>
#include <glibmm/miscutils.h>
-#include "evoral/types.hpp"
+#include "evoral/Beats.hpp"
#include "pbd/xml++.h"
#include "pbd/basename.h"
}
framecnt_t
-MidiRegion::read_at (Evoral::EventSink<framepos_t>& out, framepos_t position, framecnt_t dur, uint32_t chan_n, NoteMode mode, MidiStateTracker* tracker) const
+MidiRegion::read_at (Evoral::EventSink<framepos_t>& out,
+ framepos_t position,
+ framecnt_t dur,
+ uint32_t chan_n,
+ NoteMode mode,
+ MidiStateTracker* tracker,
+ MidiChannelFilter* filter) const
{
- return _read_at (_sources, out, position, dur, chan_n, mode, tracker);
+ return _read_at (_sources, out, position, dur, chan_n, mode, tracker, filter);
}
framecnt_t
framecnt_t dur,
uint32_t chan_n,
NoteMode mode,
- MidiStateTracker* tracker) const
+ MidiStateTracker* tracker,
+ MidiChannelFilter* filter) const
{
frameoffset_t internal_offset = 0;
framecnt_t to_read = 0;
_start + internal_offset, // where to start reading in the source
to_read, // read duration in frames
tracker,
+ filter,
_filtered_parameters
) != to_read) {
return 0; /* "read nothing" */
_start_beats = Evoral::Beats();
}
-/** Transpose the notes in this region by a given number of semitones */
-void
-MidiRegion::transpose (int semitones)
-{
- BeatsFramesConverter c (_session.tempo_map(), _start);
- model()->transpose (c.from (_start), c.from (_start + _length), semitones);
-}
-
void
MidiRegion::set_start_internal (framecnt_t s)
{