Ardour
9.0-pre0-582-g084a23a80d
|
#include <Sequence.h>
Classes | |
class | const_iterator |
struct | EarlierNoteComparator |
struct | EarlierPatchChangeComparator |
struct | EarlierSysExComparator |
struct | LaterNoteEndComparator |
struct | NoteNumberComparator |
struct | WriteLockImpl |
Public Member Functions | |
Sequence (const TypeMap &type_map) | |
Sequence (const Sequence< Time > &other) | |
virtual ReadLock | read_lock () const |
virtual WriteLock | write_lock () |
void | clear () |
void | start_write () |
bool | writing () const |
void | end_write (StuckNoteOption, Time when=Time()) |
void | append (const Event< Time > &ev, Evoral::event_id_t evid) |
const TypeMap & | type_map () const |
size_t | n_notes () const |
bool | empty () const |
Notes & | notes () |
const Notes & | notes () const |
void | get_notes (Notes &, NoteOperator, uint8_t val, int chan_mask=0) const |
void | remove_overlapping_notes () |
void | trim_overlapping_notes () |
void | remove_duplicate_notes () |
bool | overlapping_pitches_accepted () const |
void | overlapping_pitches_accepted (bool yn) |
OverlapPitchResolution | overlap_pitch_resolution () const |
void | set_overlap_pitch_resolution (OverlapPitchResolution opr) |
void | set_notes (const typename Sequence< Time >::Notes &n) |
SysExes & | sysexes () |
const SysExes & | sysexes () const |
PatchChanges & | patch_changes () |
const PatchChanges & | patch_changes () const |
const_iterator | begin (Time t=Time(), bool force_discrete=false, const std::set< Evoral::Parameter > &f=std::set< Evoral::Parameter >(), WeakActiveNotes const *active_notes=0) const |
const const_iterator & | end () const |
void | dump (std::ostream &, const_iterator x, uint32_t limit=0) const |
Notes::const_iterator | note_lower_bound (Time t) const |
PatchChanges::const_iterator | patch_change_lower_bound (Time t) const |
SysExes::const_iterator | sysex_lower_bound (Time t) const |
Notes::iterator | note_lower_bound (Time t) |
PatchChanges::iterator | patch_change_lower_bound (Time t) |
SysExes::iterator | sysex_lower_bound (Time t) |
bool | control_to_midi_event (std::shared_ptr< Event< Time > > &ev, const ControlIterator &iter) const |
bool | edited () const |
void | set_edited (bool yn) |
bool | contains (const NotePtr &ev) const |
bool | add_note_unlocked (const NotePtr note, void *arg=0) |
void | remove_note_unlocked (const constNotePtr note) |
void | add_patch_change_unlocked (const PatchChangePtr) |
void | remove_patch_change_unlocked (const constPatchChangePtr) |
void | add_sysex_unlocked (const SysExPtr) |
void | remove_sysex_unlocked (const SysExPtr) |
uint8_t | lowest_note () const |
uint8_t | highest_note () const |
Time | duration () const |
void | set_duration (Time const &) |
Public Member Functions inherited from Evoral::ControlSet | |
ControlSet () | |
ControlSet (const ControlSet &) | |
virtual | ~ControlSet () |
virtual std::shared_ptr< Evoral::Control > | control_factory (const Evoral::Parameter &id)=0 |
std::shared_ptr< Control > | control (const Parameter &id, bool create_if_missing=false) |
std::shared_ptr< const Control > | control (const Parameter &id) const |
Controls & | controls () |
const Controls & | controls () const |
virtual void | add_control (std::shared_ptr< Control >) |
virtual bool | controls_empty () const |
virtual void | clear_controls () |
void | what_has_data (std::set< Parameter > &) const |
Glib::Threads::Mutex & | control_lock () const |
void | start_domain_bounce (Temporal::DomainBounceInfo &) |
void | finish_domain_bounce (Temporal::DomainBounceInfo &) |
Public Member Functions inherited from Temporal::TimeDomainSwapper | |
virtual | ~TimeDomainSwapper () |
Public Member Functions inherited from PBD::Destructible | |
virtual | ~Destructible () |
virtual void | drop_references () |
Static Public Member Functions | |
static bool | note_time_comparator (const std::shared_ptr< const Note< Time > > &a, const std::shared_ptr< const Note< Time > > &b) |
Protected Types | |
typedef std::multiset< NotePtr, NoteNumberComparator > | Pitches |
Protected Member Functions | |
virtual int | resolve_overlaps_unlocked (const NotePtr, void *=0) |
Pitches & | pitches (uint8_t chan) |
const Pitches & | pitches (uint8_t chan) const |
virtual void | control_list_marked_dirty () |
Protected Member Functions inherited from Evoral::ControlSet | |
virtual void | control_list_interpolation_changed (Parameter const &, ControlList::InterpolationStyle) |
Protected Attributes | |
bool | _edited |
bool | _overlapping_pitches_accepted |
OverlapPitchResolution | _overlap_pitch_resolution |
Glib::Threads::RWLock | _lock |
bool | _writing |
Protected Attributes inherited from Evoral::ControlSet | |
Glib::Threads::Mutex | _control_lock |
Controls | _controls |
PBD::ScopedConnectionList | _list_connections |
Private Types | |
typedef std::priority_queue< NotePtr, std::deque< NotePtr >, LaterNoteEndComparator > | ActiveNotes |
typedef std::multiset< NotePtr, EarlierNoteComparator > | WriteNotes |
Private Member Functions | |
bool | contains_unlocked (const NotePtr &ev) const |
void | append_note_on_unlocked (const Event< Time > &event, Evoral::event_id_t) |
void | append_note_off_unlocked (const Event< Time > &event) |
void | append_control_unlocked (const Parameter ¶m, Time time, double value, Evoral::event_id_t) |
void | append_sysex_unlocked (const Event< Time > &ev, Evoral::event_id_t) |
void | append_patch_change_unlocked (const PatchChange< Time > &, Evoral::event_id_t) |
void | get_notes_by_pitch (Notes &, NoteOperator, uint8_t val, int chan_mask=0) const |
void | get_notes_by_velocity (Notes &, NoteOperator, uint8_t val, int chan_mask=0) const |
void | update_duration_unlocked (Time const &, bool can_shorten=false) |
Private Attributes | |
const TypeMap & | _type_map |
Notes | _notes |
Pitches | _pitches [16] |
SysExes | _sysexes |
PatchChanges | _patch_changes |
WriteNotes | _write_notes [16] |
int | _bank [16] |
const const_iterator | _end_iter |
bool | _percussive |
uint8_t | _lowest_note |
uint8_t | _highest_note |
Time | _duration |
bool | _explicit_duration |
Friends | |
class | const_iterator |
Additional Inherited Members | |
Public Attributes inherited from PBD::Destructible | |
PBD::Signal< void()> | Destroyed |
PBD::Signal< void()> | DropReferences |
This is a higher level view of events, with separate representations for notes (instead of just unassociated note on/off events) and controller data. Controller data is represented as a list of time-stamped float values.
Definition at line 69 of file Sequence.h.
|
private |
Definition at line 219 of file Sequence.h.
typedef std::shared_ptr<const Evoral::Note<Time> > Evoral::Sequence< Time >::constNotePtr |
Definition at line 91 of file Sequence.h.
typedef std::shared_ptr<const PatchChange<Time> > Evoral::Sequence< Time >::constPatchChangePtr |
Definition at line 206 of file Sequence.h.
typedef std::shared_ptr<const Event<Time> > Evoral::Sequence< Time >::constSysExPtr |
Definition at line 193 of file Sequence.h.
typedef std::shared_ptr<Evoral::Note<Time> > Evoral::Sequence< Time >::NotePtr |
Definition at line 89 of file Sequence.h.
typedef std::multiset<NotePtr, EarlierNoteComparator> Evoral::Sequence< Time >::Notes |
Definition at line 157 of file Sequence.h.
typedef std::shared_ptr<PatchChange<Time> > Evoral::Sequence< Time >::PatchChangePtr |
Definition at line 205 of file Sequence.h.
typedef std::multiset<PatchChangePtr, EarlierPatchChangeComparator> Evoral::Sequence< Time >::PatchChanges |
Definition at line 214 of file Sequence.h.
|
protected |
Definition at line 331 of file Sequence.h.
typedef std::shared_ptr<Glib::Threads::RWLock::ReaderLock> Evoral::Sequence< Time >::ReadLock |
Definition at line 94 of file Sequence.h.
typedef std::multiset<SysExPtr, EarlierSysExComparator> Evoral::Sequence< Time >::SysExes |
Definition at line 201 of file Sequence.h.
typedef std::shared_ptr< Event<Time> > Evoral::Sequence< Time >::SysExPtr |
Definition at line 192 of file Sequence.h.
typedef std::set<WeakNotePtr, std::owner_less<WeakNotePtr> > Evoral::Sequence< Time >::WeakActiveNotes |
Definition at line 92 of file Sequence.h.
typedef std::weak_ptr<Evoral::Note<Time> > Evoral::Sequence< Time >::WeakNotePtr |
Definition at line 90 of file Sequence.h.
typedef std::shared_ptr<WriteLockImpl> Evoral::Sequence< Time >::WriteLock |
Definition at line 95 of file Sequence.h.
|
private |
Definition at line 358 of file Sequence.h.
enum Evoral::Sequence::NoteOperator |
Enumerator | |
---|---|
PitchEqual | |
PitchLessThan | |
PitchLessThanOrEqual | |
PitchGreater | |
PitchGreaterThanOrEqual | |
VelocityEqual | |
VelocityLessThan | |
VelocityLessThanOrEqual | |
VelocityGreater | |
VelocityGreaterThanOrEqual |
Definition at line 161 of file Sequence.h.
enum Evoral::Sequence::OverlapPitchResolution |
Enumerator | |
---|---|
LastOnFirstOff | |
FirstOnFirstOff |
Definition at line 180 of file Sequence.h.
enum Evoral::Sequence::StuckNoteOption |
Enumerator | |
---|---|
Relax | |
DeleteStuckNotes | |
ResolveStuckNotes |
Definition at line 105 of file Sequence.h.
Evoral::Sequence< Time >::Sequence | ( | const TypeMap & | type_map | ) |
Evoral::Sequence< Time >::Sequence | ( | const Sequence< Time > & | other | ) |
bool Evoral::Sequence< Time >::add_note_unlocked | ( | const NotePtr | note, |
void * | arg = 0 |
||
) |
void Evoral::Sequence< Time >::add_patch_change_unlocked | ( | const | PatchChangePtr | ) |
void Evoral::Sequence< Time >::add_sysex_unlocked | ( | const | SysExPtr | ) |
void Evoral::Sequence< Time >::append | ( | const Event< Time > & | ev, |
Evoral::event_id_t | evid | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
Definition at line 275 of file Sequence.h.
void Evoral::Sequence< Time >::clear | ( | ) |
bool Evoral::Sequence< Time >::contains | ( | const NotePtr & | ev | ) | const |
|
private |
|
protectedvirtual |
Reimplemented from Evoral::ControlSet.
Reimplemented in ARDOUR::MidiModel.
bool Evoral::Sequence< Time >::control_to_midi_event | ( | std::shared_ptr< Event< Time > > & | ev, |
const ControlIterator & | iter | ||
) | const |
void Evoral::Sequence< Time >::dump | ( | std::ostream & | , |
const_iterator | x, | ||
uint32_t | limit = 0 |
||
) | const |
|
inline |
Definition at line 317 of file Sequence.h.
|
inline |
Definition at line 300 of file Sequence.h.
|
inline |
Definition at line 118 of file Sequence.h.
|
inline |
Definition at line 283 of file Sequence.h.
void Evoral::Sequence< Time >::end_write | ( | StuckNoteOption | , |
Time | when = Time() |
||
) |
void Evoral::Sequence< Time >::get_notes | ( | Notes & | , |
NoteOperator | , | ||
uint8_t | val, | ||
int | chan_mask = 0 |
||
) | const |
|
private |
|
private |
|
inline |
Definition at line 315 of file Sequence.h.
|
inline |
Definition at line 314 of file Sequence.h.
|
inline |
Definition at line 117 of file Sequence.h.
Notes::iterator Evoral::Sequence< Time >::note_lower_bound | ( | Time | t | ) |
Notes::const_iterator Evoral::Sequence< Time >::note_lower_bound | ( | Time | t | ) | const |
|
inlinestatic |
Definition at line 120 of file Sequence.h.
|
inline |
Definition at line 158 of file Sequence.h.
|
inline |
Definition at line 159 of file Sequence.h.
|
inline |
Definition at line 187 of file Sequence.h.
|
inline |
Definition at line 185 of file Sequence.h.
|
inline |
Definition at line 186 of file Sequence.h.
PatchChanges::iterator Evoral::Sequence< Time >::patch_change_lower_bound | ( | Time | t | ) |
PatchChanges::const_iterator Evoral::Sequence< Time >::patch_change_lower_bound | ( | Time | t | ) | const |
|
inline |
Definition at line 215 of file Sequence.h.
|
inline |
Definition at line 216 of file Sequence.h.
|
inlineprotected |
Definition at line 332 of file Sequence.h.
|
inlineprotected |
Definition at line 333 of file Sequence.h.
|
inlinevirtual |
Definition at line 97 of file Sequence.h.
void Evoral::Sequence< Time >::remove_duplicate_notes | ( | ) |
void Evoral::Sequence< Time >::remove_note_unlocked | ( | const constNotePtr | note | ) |
void Evoral::Sequence< Time >::remove_overlapping_notes | ( | ) |
void Evoral::Sequence< Time >::remove_patch_change_unlocked | ( | const | constPatchChangePtr | ) |
void Evoral::Sequence< Time >::remove_sysex_unlocked | ( | const | SysExPtr | ) |
|
inlineprotectedvirtual |
Reimplemented in ARDOUR::MidiModel.
Definition at line 327 of file Sequence.h.
void Evoral::Sequence< Time >::set_duration | ( | Time const & | ) |
|
inline |
Definition at line 301 of file Sequence.h.
void Evoral::Sequence< Time >::set_notes | ( | const typename Sequence< Time >::Notes & | n | ) |
void Evoral::Sequence< Time >::set_overlap_pitch_resolution | ( | OverlapPitchResolution | opr | ) |
void Evoral::Sequence< Time >::start_write | ( | ) |
SysExes::iterator Evoral::Sequence< Time >::sysex_lower_bound | ( | Time | t | ) |
SysExes::const_iterator Evoral::Sequence< Time >::sysex_lower_bound | ( | Time | t | ) | const |
|
inline |
Definition at line 202 of file Sequence.h.
|
inline |
Definition at line 203 of file Sequence.h.
void Evoral::Sequence< Time >::trim_overlapping_notes | ( | ) |
|
inline |
Definition at line 115 of file Sequence.h.
|
private |
|
inlinevirtual |
Definition at line 98 of file Sequence.h.
|
inline |
Definition at line 103 of file Sequence.h.
|
friend |
Definition at line 338 of file Sequence.h.
|
private |
Current bank number on each channel so that we know what to put in PatchChange events when program changes are seen.
Definition at line 365 of file Sequence.h.
|
private |
Definition at line 373 of file Sequence.h.
|
protected |
Definition at line 321 of file Sequence.h.
|
private |
Definition at line 367 of file Sequence.h.
|
private |
Definition at line 374 of file Sequence.h.
|
private |
Definition at line 371 of file Sequence.h.
|
mutableprotected |
Definition at line 324 of file Sequence.h.
|
private |
Definition at line 370 of file Sequence.h.
|
private |
Definition at line 353 of file Sequence.h.
|
protected |
Definition at line 323 of file Sequence.h.
|
protected |
Definition at line 322 of file Sequence.h.
|
private |
Definition at line 356 of file Sequence.h.
|
private |
Definition at line 368 of file Sequence.h.
|
private |
Definition at line 354 of file Sequence.h.
|
private |
Definition at line 355 of file Sequence.h.
|
private |
Definition at line 351 of file Sequence.h.
|
private |
Definition at line 359 of file Sequence.h.
|
protected |
Definition at line 325 of file Sequence.h.