|
Ardour
9.0-pre0-1950-g391fe97693
|
#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 |
| uint16_t | channels_present () const |
| Time | duration () const |
| void | set_duration (Time const &) |
| void | shift (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 |
| uint16_t | _channels_present |
| 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 335 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 362 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.
|
inline |
Definition at line 317 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 319 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 336 of file Sequence.h.
|
inlineprotected |
Definition at line 337 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 331 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 >::shift | ( | Time const & | ) |
| 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 342 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 369 of file Sequence.h.
|
private |
Definition at line 376 of file Sequence.h.
|
private |
Definition at line 378 of file Sequence.h.
|
protected |
Definition at line 325 of file Sequence.h.
|
private |
Definition at line 371 of file Sequence.h.
|
private |
Definition at line 379 of file Sequence.h.
|
private |
Definition at line 375 of file Sequence.h.
|
mutableprotected |
Definition at line 328 of file Sequence.h.
|
private |
Definition at line 374 of file Sequence.h.
|
private |
Definition at line 357 of file Sequence.h.
|
protected |
Definition at line 327 of file Sequence.h.
|
protected |
Definition at line 326 of file Sequence.h.
|
private |
Definition at line 360 of file Sequence.h.
|
private |
Definition at line 372 of file Sequence.h.
|
private |
Definition at line 358 of file Sequence.h.
|
private |
Definition at line 359 of file Sequence.h.
|
private |
Definition at line 355 of file Sequence.h.
|
private |
Definition at line 363 of file Sequence.h.
|
protected |
Definition at line 329 of file Sequence.h.