Ardour  9.0-pre0-582-g084a23a80d
MidiView Class Referenceabstract

#include <midi_view.h>

Inheritance diagram for MidiView:
[legend]

Classes

struct  NoteResizeData
 
struct  SplitInfo
 

Public Types

enum  MouseState {
  None , Pressed , SelectTouchDragging , SelectRectDragging ,
  SelectVerticalDragging , AddDragging
}
 
typedef Evoral::Note< Temporal::BeatsNoteType
 
typedef Evoral::Sequence< Temporal::Beats >::Notes Notes
 
typedef std::set< NoteBase * > Selection
 

Public Member Functions

 MidiView (std::shared_ptr< ARDOUR::MidiTrack > mt, ArdourCanvas::Item &parent, EditingContext &ec, MidiViewBackground &bg, uint32_t basic_color)
 
 MidiView (MidiView const &other)
 
virtual ~MidiView ()
 
void init (bool wfd)
 
virtual void set_samples_per_pixel (double)
 
virtual bool display_is_enabled () const
 
virtual ArdourCanvas::Itemdrag_group () const =0
 
void step_add_note (uint8_t channel, uint8_t number, uint8_t velocity, Temporal::Beats pos, Temporal::Beats len)
 
void step_sustain (Temporal::Beats beats)
 
virtual void set_height (double)
 
void apply_note_range (uint8_t lowest, uint8_t highest, bool force=false)
 
virtual uint32_t get_fill_color () const
 
void color_handler ()
 
void show_step_edit_cursor (Temporal::Beats pos)
 
void move_step_edit_cursor (Temporal::Beats pos)
 
void hide_step_edit_cursor ()
 
void set_step_edit_cursor_width (Temporal::Beats beats)
 
virtual GhostRegionadd_ghost (TimeAxisView &)
 
virtual std::string get_modifier_name () const
 
virtual void set_region (std::shared_ptr< ARDOUR::MidiRegion >)
 
virtual void set_track (std::shared_ptr< ARDOUR::MidiTrack >)
 
virtual void set_model (std::shared_ptr< ARDOUR::MidiModel >)
 
NoteBaseadd_note (const std::shared_ptr< NoteType > note, bool visible)
 
void cut_copy_clear (Editing::CutCopyOp)
 
bool paste (Temporal::timepos_t const &pos, const ::Selection &selection, PasteContext &ctx)
 
void paste_internal (Temporal::timepos_t const &pos, unsigned paste_count, float times, const MidiCutBuffer &)
 
void add_canvas_patch_change (ARDOUR::MidiModel::PatchChangePtr patch)
 
void remove_canvas_patch_change (PatchChange *pc)
 
void get_patch_key_at (Temporal::Beats time, uint8_t channel, MIDI::Name::PatchPrimaryKey &key) const
 
MIDI::Name::PatchPrimaryKey patch_change_to_patch_key (ARDOUR::MidiModel::PatchChangePtr)
 
void change_patch_change (PatchChange &old_patch, const MIDI::Name::PatchPrimaryKey &new_patch)
 
void change_patch_change (ARDOUR::MidiModel::PatchChangePtr, Evoral::PatchChange< Temporal::Beats > const &)
 
void add_patch_change (Temporal::timecnt_t const &, Evoral::PatchChange< Temporal::Beats > const &)
 
void move_patch_change (PatchChange &, Temporal::Beats)
 
void delete_patch_change (PatchChange *)
 
void edit_patch_change (PatchChange *)
 
void delete_sysex (SysEx *)
 
void step_patch (PatchChange &patch, bool bank, int delta)
 
void display_patch_changes ()
 
void display_sysexes ()
 
void begin_write ()
 
void end_write ()
 
void extend_active_notes ()
 
void extend_active_notes (Temporal::timecnt_t const &)
 
virtual void begin_drag_edit (std::string const &why)
 
void end_drag_edit ()
 
void display_model (std::shared_ptr< ARDOUR::MidiModel > model)
 
std::shared_ptr< ARDOUR::MidiModelmodel () const
 
void start_note_diff_command (std::string name="midi edit")
 
void note_diff_add_change (NoteBase *ev, ARDOUR::MidiModel::NoteDiffCommand::Property, uint8_t val)
 
void note_diff_add_change (NoteBase *ev, ARDOUR::MidiModel::NoteDiffCommand::Property, Temporal::Beats val)
 
void note_diff_add_note (const std::shared_ptr< NoteType > note, bool selected, bool show_velocity=false)
 
void note_diff_remove_note (NoteBase *ev)
 
void apply_note_diff (bool as_subcommand=false, bool was_copy=false)
 
void abort_note_diff ()
 
void note_entered (NoteBase *ev)
 
void note_left (NoteBase *ev)
 
void patch_entered (PatchChange *)
 
void patch_left (PatchChange *)
 
void sysex_entered (SysEx *p)
 
void sysex_left (SysEx *p)
 
void note_mouse_position (float xfraction, float yfraction, bool can_set_cursor=true)
 
void unique_select (NoteBase *ev)
 
void note_selected (NoteBase *ev, bool add, bool extend=false)
 
void note_deselected (NoteBase *ev)
 
void delete_selection ()
 
void delete_note (std::shared_ptr< NoteType >)
 
size_t selection_size ()
 
void select_all_notes ()
 
void select_range (Temporal::timepos_t const &start, Temporal::timepos_t const &end)
 
void invert_selection ()
 
void extend_selection ()
 
void duplicate_selection ()
 
Temporal::Beats earliest_in_selection ()
 
void move_selection (Temporal::timecnt_t const &dx, double dy, double cumulative_dy)
 
void note_dropped (NoteBase *ev, Temporal::timecnt_t const &d_qn, int8_t d_note, bool copy)
 
NoteBasecopy_selection (NoteBase *primary)
 
void move_copies (Temporal::timecnt_t const &dx_qn, double dy, double cumulative_dy)
 
void select_notes (std::list< Evoral::event_id_t >, bool allow_audition)
 
void select_matching_notes (uint8_t notenum, uint16_t channel_mask, bool add, bool extend)
 
void toggle_matching_notes (uint8_t notenum, uint16_t channel_mask)
 
virtual bool note_in_region_range (const std::shared_ptr< NoteType > note, bool &visible) const
 
virtual bool note_in_region_time_range (const std::shared_ptr< NoteType > note) const
 
double get_position_pixels ()
 
double get_end_position_pixels ()
 
void begin_resizing (bool at_front)
 
void update_resizing (NoteBase *primary, bool at_front, double delta_x, bool relative, double snap_delta, bool with_snap)
 
void finish_resizing (NoteBase *primary, bool at_front, double delat_x, bool relative, double snap_delta, bool with_snap)
 
void abort_resizing ()
 
void change_channel (uint8_t channel)
 
MouseState mouse_state () const
 
double snap_to_pixel (double x, bool ensure_snap=false)
 
Temporal::timecnt_t snap_pixel_to_time (double x, bool ensure_snap=false)
 
void goto_previous_note (bool add_to_selection)
 
void goto_next_note (bool add_to_selection)
 
void change_note_lengths (bool, bool, Temporal::Beats beats, bool start, bool end)
 
void change_velocities (bool up, bool fine, bool allow_smush, bool all_together)
 
void set_velocity (NoteBase *primary, int velocity)
 
bool set_velocity_for_notes (std::vector< NoteBase * > &notes, int velocity)
 
bool set_velocities_for_notes (std::vector< NoteBase * > &notes, std::vector< int > &velocities)
 
void transpose (bool up, bool fine, bool allow_smush)
 
void nudge_notes (bool forward, bool fine)
 
void channel_edit ()
 
void velocity_edit ()
 
void show_list_editor ()
 
void set_note_range (uint8_t low, uint8_t high)
 
virtual void set_visibility_note_range (MidiViewBackground::VisibleNoteRange, bool)
 
Selection const & selection () const
 
void selection_as_notelist (Notes &selected, bool allow_all_if_none_selected=false)
 
void set_channel_selector_scoped_note (NoteBase *note)
 
NoteBasechannel_selector_scoped_note ()
 
void trim_front_starting ()
 
void trim_front_ending ()
 
void create_note_at (Temporal::timepos_t const &t, double y, Temporal::Beats length, uint32_t state, bool shift_snap)
 
void clear_selection ()
 
void note_deleted (NoteBase *)
 
void clear_note_selection ()
 
void show_verbose_cursor_for_new_note_value (std::shared_ptr< NoteType > current_note, uint8_t new_note) const
 
std::shared_ptr< ARDOUR::MidiTrackmidi_track () const
 
std::shared_ptr< ARDOUR::MidiRegionmidi_region () const
 
EditingContextediting_context () const
 
MidiViewBackgroundmidi_context () const
 
void clip_data_recorded (samplecnt_t)
 
virtual void select_self (bool add)
 
virtual void unselect_self ()
 
void select_self ()
 
virtual void select_self_uniquely ()
 
void show_start (bool yn)
 
void show_end (bool yn)
 
virtual bool canvas_group_event (GdkEvent *ev)
 
- Public Member Functions inherited from LineMerger
virtual ~LineMerger ()
 
virtual MergeableLinemake_merger ()=0
 

Protected Types

typedef std::unordered_map< std::shared_ptr< NoteType >, NoteBase * > Events
 
typedef std::unordered_map< ARDOUR::MidiModel::PatchChangePtr, std::shared_ptr< PatchChange > > PatchChanges
 
typedef std::unordered_map< ARDOUR::MidiModel::constSysExPtr, std::shared_ptr< SysEx > > SysExes
 
typedef std::vector< NoteBase * > CopyDragEvents
 

Protected Member Functions

void init (std::shared_ptr< ARDOUR::MidiTrack >)
 
virtual void region_resized (const PBD::PropertyChange &)
 
void set_flags (XMLNode *)
 
void store_flags ()
 
virtual void reset_width_dependent_items (double pixel_width)
 
void redisplay (bool view_only)
 
void invert_note_selection ()
 
void extend_note_selection ()
 
void move_note_starts_earlier_fine ()
 
void move_note_starts_earlier ()
 
void move_note_ends_later_fine ()
 
void move_note_ends_later ()
 
void move_note_starts_later_fine ()
 
void move_note_starts_later ()
 
void move_note_ends_earlier_fine ()
 
void move_note_ends_earlier ()
 
void select_next_note ()
 
void select_previous_note ()
 
void add_select_next_note ()
 
void add_select_previous_note ()
 
void increase_note_velocity ()
 
void increase_note_velocity_fine ()
 
void increase_note_velocity_smush ()
 
void increase_note_velocity_together ()
 
void increase_note_velocity_fine_smush ()
 
void increase_note_velocity_fine_together ()
 
void increase_note_velocity_smush_together ()
 
void increase_note_velocity_fine_smush_together ()
 
void decrease_note_velocity ()
 
void decrease_note_velocity_fine ()
 
void decrease_note_velocity_smush ()
 
void decrease_note_velocity_together ()
 
void decrease_note_velocity_fine_smush ()
 
void decrease_note_velocity_fine_together ()
 
void decrease_note_velocity_smush_together ()
 
void decrease_note_velocity_fine_smush_together ()
 
void transpose_up_octave ()
 
void transpose_up_octave_smush ()
 
void transpose_up_tone ()
 
void transpose_up_tone_smush ()
 
void transpose_down_octave ()
 
void transpose_down_octave_smush ()
 
void transpose_down_tone ()
 
void transpose_down_tone_smush ()
 
void nudge_notes_later ()
 
void nudge_notes_later_fine ()
 
void nudge_notes_earlier ()
 
void nudge_notes_earlier_fine ()
 
void quantize_selected_notes ()
 
void play_midi_note (std::shared_ptr< NoteType > note)
 
void start_playing_midi_note (std::shared_ptr< NoteType > note)
 
void start_playing_midi_chord (std::vector< std::shared_ptr< NoteType > > notes)
 
void clear_selection_internal ()
 
void clear_events ()
 
virtual void clear_ghost_events ()
 
virtual void ghosts_model_changed ()
 
virtual void ghosts_view_changed ()
 
virtual void ghost_remove_note (NoteBase *)
 
virtual void ghost_add_note (NoteBase *)
 
virtual void ghost_sync_selection (NoteBase *)
 
bool note_canvas_event (GdkEvent *ev)
 
void track_going_away ()
 
void region_going_away ()
 
void midi_channel_mode_changed ()
 
void instrument_settings_changed ()
 
void change_note_channel (NoteBase *, int8_t, bool relative=false)
 
void change_note_velocity (NoteBase *ev, int8_t vel, bool relative=false)
 
uint8_t change_note_note (NoteBase *ev, int8_t note, bool relative=false)
 
void change_note_time (NoteBase *ev, ARDOUR::MidiModel::TimeType, bool relative=false)
 
void change_note_length (NoteBase *, ARDOUR::MidiModel::TimeType)
 
void trim_note (NoteBase *ev, ARDOUR::MidiModel::TimeType start_delta, ARDOUR::MidiModel::TimeType end_delta)
 
void update_drag_selection (Temporal::timepos_t const &start, Temporal::timepos_t const &end, double y0, double y1, bool extend)
 
void update_vertical_drag_selection (double last_y, double y, bool extend)
 
void add_to_selection (NoteBase *)
 
void remove_from_selection (NoteBase *)
 
std::string get_note_name (std::shared_ptr< NoteType > note, uint8_t note_value) const
 
void show_verbose_cursor (std::string const &, double, double) const
 
void show_verbose_cursor (std::shared_ptr< NoteType >) const
 
uint8_t get_velocity_for_add (ARDOUR::MidiModel::TimeType time) const
 
uint8_t get_channel_for_add (ARDOUR::MidiModel::TimeType time) const
 
MidiCutBufferselection_as_cut_buffer () const
 
NoteBasefind_canvas_note (std::shared_ptr< NoteType >)
 
NoteBasefind_canvas_note (Evoral::event_id_t id)
 
std::shared_ptr< PatchChangefind_canvas_patch_change (ARDOUR::MidiModel::PatchChangePtr p)
 
std::shared_ptr< SysExfind_canvas_sys_ex (ARDOUR::MidiModel::SysExPtr s)
 
void sync_velocity_drag (double factor)
 
void update_note (NoteBase *)
 
virtual void update_sustained (Note *)
 
virtual void update_hit (Hit *)
 
void create_ghost_note (double, double, uint32_t state)
 
void update_ghost_note (double, double, uint32_t state)
 
void snap_changed ()
 
virtual bool motion (GdkEventMotion *)
 
virtual bool scroll (GdkEventScroll *)
 
virtual bool key_press (GdkEventKey *)
 
virtual bool key_release (GdkEventKey *)
 
virtual bool button_press (GdkEventButton *)
 
virtual bool button_release (GdkEventButton *)
 
virtual bool enter_notify (GdkEventCrossing *)
 
virtual bool leave_notify (GdkEventCrossing *)
 
void drop_down_keys ()
 
void maybe_select_by_position (GdkEventButton *ev, double x, double y)
 
void get_events (Events &e, Evoral::Sequence< Temporal::Beats >::NoteOperator op, uint8_t val, int chan_mask=0)
 
void display_patch_changes_on_channel (uint8_t, bool)
 
void data_recorded (std::weak_ptr< ARDOUR::MidiSource >)
 
Temporal::Beats get_grid_beats (Temporal::timepos_t const &pos) const
 
Temporal::Beats get_draw_length_beats (Temporal::timepos_t const &pos) const
 
void remove_ghost_note ()
 
virtual void mouse_mode_changed ()
 
virtual void enter_internal (uint32_t state)
 
virtual void leave_internal ()
 
void hide_verbose_cursor ()
 
ARDOUR::ChannelMode get_channel_mode () const
 
uint16_t get_selected_channels () const
 
virtual double height () const
 
virtual double contents_height () const
 
double note_height () const
 
double note_to_y (uint8_t note) const
 
uint8_t y_to_note (double y) const
 
void update_patch_changes ()
 
void update_sysexes ()
 
void view_changed ()
 
void model_changed ()
 
void sync_ghost_selection (NoteBase *)
 
bool extensible () const
 
void set_extensible (bool yn)
 
void start_note_splitting ()
 
void end_note_splitting ()
 
void split_notes_grid ()
 
void split_notes_more ()
 
void split_notes_less ()
 
void join_notes ()
 
void join_notes_on_channel (int channel)
 
void add_split_notes ()
 
void region_update_sustained (Note *, double &, double &, double &, double &)
 
void clip_capture_update_sustained (Note *, double &, double &, double &, double &)
 
void size_start_rect ()
 
void size_end_rect ()
 
bool start_boundary_event (GdkEvent *)
 
bool end_boundary_event (GdkEvent *)
 
virtual void add_control_points_to_selection (Temporal::timepos_t const &, Temporal::timepos_t const &, double y0, double y1)
 

Protected Attributes

PBD::ScopedConnectionList connections_requiring_model
 
PBD::ScopedConnection track_going_away_connection
 
PBD::ScopedConnectionList region_connections
 
std::shared_ptr< ARDOUR::MidiTrack_midi_track
 
EditingContext_editing_context
 
MidiViewBackground_midi_context
 
std::shared_ptr< ARDOUR::MidiModel_model
 
std::shared_ptr< ARDOUR::MidiRegion_midi_region
 
Events _events
 
CopyDragEvents _copy_drag_events
 
PatchChanges _patch_changes
 
SysExes _sys_exes
 
Note ** _active_notes
 
Temporal::timecnt_t active_note_end
 
ArdourCanvas::Container_note_group
 
ARDOUR::MidiModel::NoteDiffCommand_note_diff_command
 
NoteBase_ghost_note
 
double _last_ghost_x
 
double _last_ghost_y
 
ArdourCanvas::Rectangle_step_edit_cursor
 
Temporal::Beats _step_edit_cursor_width
 
Temporal::Beats _step_edit_cursor_position
 
NoteBase_channel_selection_scoped_note
 
MouseState _mouse_state
 
int _pressed_button
 
ArdourCanvas::Rectangle_start_boundary_rect
 
ArdourCanvas::Rectangle_end_boundary_rect
 
bool _show_source
 
Selection _selection
 
std::set< std::shared_ptr< NoteType > > _marked_for_selection
 
std::set< Evoral::event_id_t_pending_note_selection
 
std::set< std::shared_ptr< NoteType > > _marked_for_velocity
 
std::vector< NoteResizeData * > _resize_data
 
Events::iterator _optimization_iterator
 
MidiListEditor_list_editor
 
bool _no_sound_notes
 
samplecnt_t _last_display_zoom
 
double _last_event_x
 
double _last_event_y
 
bool _entered
 
NoteBase_entered_note
 
bool _select_all_notes_after_add
 
bool _mouse_changed_selection
 
Gtkmm2ext::Color _patch_change_outline
 
Gtkmm2ext::Color _patch_change_fill
 
std::shared_ptr< CursorContext > _press_cursor_ctx
 
std::vector< SplitInfosplit_info
 
uint32_t split_tuple
 
bool note_splitting
 
bool _extensible
 

Friends

class EditingContext
 
class Editor
 
class MidiRubberbandSelectDrag
 
class MidiVerticalSelectDrag
 
class NoteDrag
 
class NoteCreateDrag
 
class HitCreateDrag
 
class MidiGhostRegion
 
class EditNoteDialog
 
class VelocityDisplay
 

Detailed Description

Definition at line 79 of file midi_view.h.

Member Typedef Documentation

◆ CopyDragEvents

typedef std::vector<NoteBase*> MidiView::CopyDragEvents
protected

Definition at line 488 of file midi_view.h.

◆ Events

typedef std::unordered_map<std::shared_ptr<NoteType>, NoteBase*> MidiView::Events
protected

Definition at line 485 of file midi_view.h.

◆ Notes

Definition at line 83 of file midi_view.h.

◆ NoteType

Definition at line 82 of file midi_view.h.

◆ PatchChanges

typedef std::unordered_map<ARDOUR::MidiModel::PatchChangePtr, std::shared_ptr<PatchChange> > MidiView::PatchChanges
protected

Definition at line 486 of file midi_view.h.

◆ Selection

typedef std::set<NoteBase*> MidiView::Selection

Definition at line 307 of file midi_view.h.

◆ SysExes

typedef std::unordered_map<ARDOUR::MidiModel::constSysExPtr, std::shared_ptr<SysEx> > MidiView::SysExes
protected

Definition at line 487 of file midi_view.h.

Member Enumeration Documentation

◆ MouseState

Enumerator
None 
Pressed 
SelectTouchDragging 
SelectRectDragging 
SelectVerticalDragging 
AddDragging 

Definition at line 259 of file midi_view.h.

Constructor & Destructor Documentation

◆ MidiView() [1/2]

MidiView::MidiView ( std::shared_ptr< ARDOUR::MidiTrack mt,
ArdourCanvas::Item parent,
EditingContext ec,
MidiViewBackground bg,
uint32_t  basic_color 
)

◆ MidiView() [2/2]

MidiView::MidiView ( MidiView const &  other)

◆ ~MidiView()

virtual MidiView::~MidiView ( )
virtual

Member Function Documentation

◆ abort_note_diff()

void MidiView::abort_note_diff ( )

◆ abort_resizing()

void MidiView::abort_resizing ( )

◆ add_canvas_patch_change()

void MidiView::add_canvas_patch_change ( ARDOUR::MidiModel::PatchChangePtr  patch)

◆ add_control_points_to_selection()

virtual void MidiView::add_control_points_to_selection ( Temporal::timepos_t const &  ,
Temporal::timepos_t const &  ,
double  y0,
double  y1 
)
inlineprotectedvirtual

Reimplemented in MidiRegionView.

Definition at line 662 of file midi_view.h.

◆ add_ghost()

virtual GhostRegion* MidiView::add_ghost ( TimeAxisView )
inlinevirtual

Reimplemented in MidiRegionView.

Definition at line 118 of file midi_view.h.

◆ add_note()

NoteBase* MidiView::add_note ( const std::shared_ptr< NoteType note,
bool  visible 
)

◆ add_patch_change()

void MidiView::add_patch_change ( Temporal::timecnt_t const &  ,
Evoral::PatchChange< Temporal::Beats > const &   
)

◆ add_select_next_note()

void MidiView::add_select_next_note ( )
inlineprotected

Definition at line 385 of file midi_view.h.

◆ add_select_previous_note()

void MidiView::add_select_previous_note ( )
inlineprotected

Definition at line 386 of file midi_view.h.

◆ add_split_notes()

void MidiView::add_split_notes ( )
protected

◆ add_to_selection()

void MidiView::add_to_selection ( NoteBase )
protected

◆ apply_note_diff()

void MidiView::apply_note_diff ( bool  as_subcommand = false,
bool  was_copy = false 
)

◆ apply_note_range()

void MidiView::apply_note_range ( uint8_t  lowest,
uint8_t  highest,
bool  force = false 
)

◆ begin_drag_edit()

virtual void MidiView::begin_drag_edit ( std::string const &  why)
virtual

Reimplemented in MidiRegionView.

◆ begin_resizing()

void MidiView::begin_resizing ( bool  at_front)

Begin resizing of some notes. Called by CanvasMidiNote when resizing starts.

Parameters
at_frontwhich end of the note (true == note on, false == note off)

◆ begin_write()

void MidiView::begin_write ( )

◆ button_press()

virtual bool MidiView::button_press ( GdkEventButton )
protectedvirtual

Reimplemented in MidiRegionView.

◆ button_release()

virtual bool MidiView::button_release ( GdkEventButton )
protectedvirtual

Reimplemented in MidiRegionView.

◆ canvas_group_event()

virtual bool MidiView::canvas_group_event ( GdkEvent ev)
virtual

Reimplemented in MidiRegionView.

◆ change_channel()

void MidiView::change_channel ( uint8_t  channel)

Change the channel of the selection.

Parameters
channel- the channel number of the new channel, zero-based

◆ change_note_channel()

void MidiView::change_note_channel ( NoteBase ,
int8_t  ,
bool  relative = false 
)
protected

◆ change_note_length()

void MidiView::change_note_length ( NoteBase ,
ARDOUR::MidiModel::TimeType   
)
protected

◆ change_note_lengths()

void MidiView::change_note_lengths ( bool  ,
bool  ,
Temporal::Beats  beats,
bool  start,
bool  end 
)

◆ change_note_note()

uint8_t MidiView::change_note_note ( NoteBase ev,
int8_t  note,
bool  relative = false 
)
protected

◆ change_note_time()

void MidiView::change_note_time ( NoteBase ev,
ARDOUR::MidiModel::TimeType  ,
bool  relative = false 
)
protected

◆ change_note_velocity()

void MidiView::change_note_velocity ( NoteBase ev,
int8_t  vel,
bool  relative = false 
)
protected

◆ change_patch_change() [1/2]

void MidiView::change_patch_change ( ARDOUR::MidiModel::PatchChangePtr  ,
Evoral::PatchChange< Temporal::Beats > const &   
)

◆ change_patch_change() [2/2]

void MidiView::change_patch_change ( PatchChange old_patch,
const MIDI::Name::PatchPrimaryKey new_patch 
)

Change old_patch to new_patch.

Parameters
old_patchthe canvas patch change which is to be altered
new_patchnew patch

◆ change_velocities()

void MidiView::change_velocities ( bool  up,
bool  fine,
bool  allow_smush,
bool  all_together 
)

◆ channel_edit()

void MidiView::channel_edit ( )

◆ channel_selector_scoped_note()

NoteBase* MidiView::channel_selector_scoped_note ( )
inline

Definition at line 315 of file midi_view.h.

◆ clear_events()

void MidiView::clear_events ( )
protected

◆ clear_ghost_events()

virtual void MidiView::clear_ghost_events ( )
inlineprotectedvirtual

Reimplemented in MidiRegionView, and MidiCueView.

Definition at line 445 of file midi_view.h.

◆ clear_note_selection()

void MidiView::clear_note_selection ( )

◆ clear_selection()

void MidiView::clear_selection ( )

An external request to clear the note selection, remove MRV from editor selection.

◆ clear_selection_internal()

void MidiView::clear_selection_internal ( )
protected

Clear the note selection of just this midi region

◆ clip_capture_update_sustained()

void MidiView::clip_capture_update_sustained ( Note ,
double &  ,
double &  ,
double &  ,
double &   
)
protected

◆ clip_data_recorded()

void MidiView::clip_data_recorded ( samplecnt_t  )

◆ color_handler()

void MidiView::color_handler ( )

◆ contents_height()

virtual double MidiView::contents_height ( ) const
inlineprotectedvirtual

Reimplemented in MidiRegionView.

Definition at line 606 of file midi_view.h.

◆ copy_selection()

NoteBase* MidiView::copy_selection ( NoteBase primary)

◆ create_ghost_note()

void MidiView::create_ghost_note ( double  ,
double  ,
uint32_t  state 
)
protected

◆ create_note_at()

void MidiView::create_note_at ( Temporal::timepos_t const &  t,
double  y,
Temporal::Beats  length,
uint32_t  state,
bool  shift_snap 
)

Add a note to the model, and the view, at a canvas (click) coordinate.

Parameters
ttime in samples relative to the position of the region
yvertical position in pixels
lengthduration of the note in beats
statethe keyboard modifier mask for the canvas event (click).
shift_snaptrue alters snap behavior to round down always (false if the gui has already done that).

◆ cut_copy_clear()

void MidiView::cut_copy_clear ( Editing::CutCopyOp  )

◆ data_recorded()

void MidiView::data_recorded ( std::weak_ptr< ARDOUR::MidiSource )
protected

◆ decrease_note_velocity()

void MidiView::decrease_note_velocity ( )
inlineprotected

Definition at line 397 of file midi_view.h.

◆ decrease_note_velocity_fine()

void MidiView::decrease_note_velocity_fine ( )
inlineprotected

Definition at line 398 of file midi_view.h.

◆ decrease_note_velocity_fine_smush()

void MidiView::decrease_note_velocity_fine_smush ( )
inlineprotected

Definition at line 401 of file midi_view.h.

◆ decrease_note_velocity_fine_smush_together()

void MidiView::decrease_note_velocity_fine_smush_together ( )
inlineprotected

Definition at line 404 of file midi_view.h.

◆ decrease_note_velocity_fine_together()

void MidiView::decrease_note_velocity_fine_together ( )
inlineprotected

Definition at line 402 of file midi_view.h.

◆ decrease_note_velocity_smush()

void MidiView::decrease_note_velocity_smush ( )
inlineprotected

Definition at line 399 of file midi_view.h.

◆ decrease_note_velocity_smush_together()

void MidiView::decrease_note_velocity_smush_together ( )
inlineprotected

Definition at line 403 of file midi_view.h.

◆ decrease_note_velocity_together()

void MidiView::decrease_note_velocity_together ( )
inlineprotected

Definition at line 400 of file midi_view.h.

◆ delete_note()

void MidiView::delete_note ( std::shared_ptr< NoteType )

◆ delete_patch_change()

void MidiView::delete_patch_change ( PatchChange )

◆ delete_selection()

void MidiView::delete_selection ( )

◆ delete_sysex()

void MidiView::delete_sysex ( SysEx )

◆ display_is_enabled()

virtual bool MidiView::display_is_enabled ( ) const
inlinevirtual

Reimplemented in MidiRegionView.

Definition at line 98 of file midi_view.h.

◆ display_model()

void MidiView::display_model ( std::shared_ptr< ARDOUR::MidiModel model)

◆ display_patch_changes()

void MidiView::display_patch_changes ( )

Displays all patch change events in the region as flags on the canvas.

◆ display_patch_changes_on_channel()

void MidiView::display_patch_changes_on_channel ( uint8_t  ,
bool   
)
protected

◆ display_sysexes()

void MidiView::display_sysexes ( )

Displays all system exclusive events in the region as flags on the canvas.

◆ drag_group()

virtual ArdourCanvas::Item* MidiView::drag_group ( ) const
pure virtual

Implemented in MidiRegionView, and MidiCueView.

◆ drop_down_keys()

void MidiView::drop_down_keys ( )
protected

◆ duplicate_selection()

void MidiView::duplicate_selection ( )

◆ earliest_in_selection()

Temporal::Beats MidiView::earliest_in_selection ( )

◆ edit_patch_change()

void MidiView::edit_patch_change ( PatchChange )

◆ editing_context()

EditingContext& MidiView::editing_context ( ) const
inline

Definition at line 341 of file midi_view.h.

◆ end_boundary_event()

bool MidiView::end_boundary_event ( GdkEvent )
protected

◆ end_drag_edit()

void MidiView::end_drag_edit ( )

◆ end_note_splitting()

void MidiView::end_note_splitting ( )
protected

◆ end_write()

void MidiView::end_write ( )

◆ enter_internal()

virtual void MidiView::enter_internal ( uint32_t  state)
protectedvirtual

Reimplemented in MidiRegionView.

◆ enter_notify()

virtual bool MidiView::enter_notify ( GdkEventCrossing )
protectedvirtual

Reimplemented in MidiRegionView.

◆ extend_active_notes() [1/2]

void MidiView::extend_active_notes ( )

◆ extend_active_notes() [2/2]

void MidiView::extend_active_notes ( Temporal::timecnt_t const &  )

◆ extend_note_selection()

void MidiView::extend_note_selection ( )
protected

◆ extend_selection()

void MidiView::extend_selection ( )

◆ extensible()

bool MidiView::extensible ( ) const
inlineprotected

Definition at line 641 of file midi_view.h.

◆ find_canvas_note() [1/2]

NoteBase* MidiView::find_canvas_note ( Evoral::event_id_t  id)
protected

◆ find_canvas_note() [2/2]

NoteBase* MidiView::find_canvas_note ( std::shared_ptr< NoteType )
protected

connection used to connect to model's ContentChanged signal

◆ find_canvas_patch_change()

std::shared_ptr<PatchChange> MidiView::find_canvas_patch_change ( ARDOUR::MidiModel::PatchChangePtr  p)
protected

◆ find_canvas_sys_ex()

std::shared_ptr<SysEx> MidiView::find_canvas_sys_ex ( ARDOUR::MidiModel::SysExPtr  s)
protected

◆ finish_resizing()

void MidiView::finish_resizing ( NoteBase primary,
bool  at_front,
double  delat_x,
bool  relative,
double  snap_delta,
bool  with_snap 
)

◆ get_channel_for_add()

uint8_t MidiView::get_channel_for_add ( ARDOUR::MidiModel::TimeType  time) const
protected

◆ get_channel_mode()

ARDOUR::ChannelMode MidiView::get_channel_mode ( ) const
protected

◆ get_draw_length_beats()

Temporal::Beats MidiView::get_draw_length_beats ( Temporal::timepos_t const &  pos) const
protected

◆ get_end_position_pixels()

double MidiView::get_end_position_pixels ( )

Get the region end position in pixels relative to session.

◆ get_events()

void MidiView::get_events ( Events e,
Evoral::Sequence< Temporal::Beats >::NoteOperator  op,
uint8_t  val,
int  chan_mask = 0 
)
protected

◆ get_fill_color()

virtual uint32_t MidiView::get_fill_color ( ) const
virtual

Reimplemented in MidiRegionView.

◆ get_grid_beats()

Temporal::Beats MidiView::get_grid_beats ( Temporal::timepos_t const &  pos) const
protected

Get grid type as beats, or default to 1 if not snapped to beats.

◆ get_modifier_name()

virtual std::string MidiView::get_modifier_name ( ) const
virtual

Reimplemented in MidiRegionView.

◆ get_note_name()

std::string MidiView::get_note_name ( std::shared_ptr< NoteType note,
uint8_t  note_value 
) const
protected

◆ get_patch_key_at()

void MidiView::get_patch_key_at ( Temporal::Beats  time,
uint8_t  channel,
MIDI::Name::PatchPrimaryKey key 
) const

Look up the given time and channel in the 'automation' and set keys accordingly.

Parameters
timethe time of the patch change event
channelthe MIDI channel of the event
keya reference to an instance of MIDI::Name::PatchPrimaryKey whose fields will will be set according to the result of the lookup

◆ get_position_pixels()

double MidiView::get_position_pixels ( )

Get the region position in pixels relative to session.

◆ get_selected_channels()

uint16_t MidiView::get_selected_channels ( ) const
protected

◆ get_velocity_for_add()

uint8_t MidiView::get_velocity_for_add ( ARDOUR::MidiModel::TimeType  time) const
protected

◆ ghost_add_note()

virtual void MidiView::ghost_add_note ( NoteBase )
inlineprotectedvirtual

Reimplemented in MidiRegionView, and MidiCueView.

Definition at line 449 of file midi_view.h.

◆ ghost_remove_note()

virtual void MidiView::ghost_remove_note ( NoteBase )
inlineprotectedvirtual

Reimplemented in MidiRegionView, and MidiCueView.

Definition at line 448 of file midi_view.h.

◆ ghost_sync_selection()

virtual void MidiView::ghost_sync_selection ( NoteBase )
inlineprotectedvirtual

Reimplemented in MidiRegionView, and MidiCueView.

Definition at line 450 of file midi_view.h.

◆ ghosts_model_changed()

virtual void MidiView::ghosts_model_changed ( )
inlineprotectedvirtual

Reimplemented in MidiRegionView, and MidiCueView.

Definition at line 446 of file midi_view.h.

◆ ghosts_view_changed()

virtual void MidiView::ghosts_view_changed ( )
inlineprotectedvirtual

Reimplemented in MidiRegionView, and MidiCueView.

Definition at line 447 of file midi_view.h.

◆ goto_next_note()

void MidiView::goto_next_note ( bool  add_to_selection)

◆ goto_previous_note()

void MidiView::goto_previous_note ( bool  add_to_selection)

◆ height()

virtual double MidiView::height ( ) const
protectedvirtual

Reimplemented in MidiRegionView.

◆ hide_step_edit_cursor()

void MidiView::hide_step_edit_cursor ( )

◆ hide_verbose_cursor()

void MidiView::hide_verbose_cursor ( )
protected

◆ increase_note_velocity()

void MidiView::increase_note_velocity ( )
inlineprotected

Definition at line 388 of file midi_view.h.

◆ increase_note_velocity_fine()

void MidiView::increase_note_velocity_fine ( )
inlineprotected

Definition at line 389 of file midi_view.h.

◆ increase_note_velocity_fine_smush()

void MidiView::increase_note_velocity_fine_smush ( )
inlineprotected

Definition at line 392 of file midi_view.h.

◆ increase_note_velocity_fine_smush_together()

void MidiView::increase_note_velocity_fine_smush_together ( )
inlineprotected

Definition at line 395 of file midi_view.h.

◆ increase_note_velocity_fine_together()

void MidiView::increase_note_velocity_fine_together ( )
inlineprotected

Definition at line 393 of file midi_view.h.

◆ increase_note_velocity_smush()

void MidiView::increase_note_velocity_smush ( )
inlineprotected

Definition at line 390 of file midi_view.h.

◆ increase_note_velocity_smush_together()

void MidiView::increase_note_velocity_smush_together ( )
inlineprotected

Definition at line 394 of file midi_view.h.

◆ increase_note_velocity_together()

void MidiView::increase_note_velocity_together ( )
inlineprotected

Definition at line 391 of file midi_view.h.

◆ init() [1/2]

void MidiView::init ( bool  wfd)

◆ init() [2/2]

void MidiView::init ( std::shared_ptr< ARDOUR::MidiTrack )
protected

◆ instrument_settings_changed()

void MidiView::instrument_settings_changed ( )
protected

◆ invert_note_selection()

void MidiView::invert_note_selection ( )
protected

◆ invert_selection()

void MidiView::invert_selection ( )

◆ join_notes()

void MidiView::join_notes ( )
protected

◆ join_notes_on_channel()

void MidiView::join_notes_on_channel ( int  channel)
protected

◆ key_press()

virtual bool MidiView::key_press ( GdkEventKey )
protectedvirtual

◆ key_release()

virtual bool MidiView::key_release ( GdkEventKey )
protectedvirtual

◆ leave_internal()

virtual void MidiView::leave_internal ( )
protectedvirtual

Reimplemented in MidiRegionView.

◆ leave_notify()

virtual bool MidiView::leave_notify ( GdkEventCrossing )
protectedvirtual

Reimplemented in MidiRegionView.

◆ maybe_select_by_position()

void MidiView::maybe_select_by_position ( GdkEventButton ev,
double  x,
double  y 
)
protected

◆ midi_channel_mode_changed()

void MidiView::midi_channel_mode_changed ( )
protected

◆ midi_context()

MidiViewBackground& MidiView::midi_context ( ) const
inline

Definition at line 342 of file midi_view.h.

◆ midi_region()

std::shared_ptr<ARDOUR::MidiRegion> MidiView::midi_region ( ) const
inline

Definition at line 340 of file midi_view.h.

◆ midi_track()

std::shared_ptr<ARDOUR::MidiTrack> MidiView::midi_track ( ) const
inline

Definition at line 339 of file midi_view.h.

◆ model()

std::shared_ptr<ARDOUR::MidiModel> MidiView::model ( ) const
inline

Definition at line 185 of file midi_view.h.

◆ model_changed()

void MidiView::model_changed ( )
protected

◆ motion()

virtual bool MidiView::motion ( GdkEventMotion )
protectedvirtual

Reimplemented in MidiRegionView.

◆ mouse_mode_changed()

virtual void MidiView::mouse_mode_changed ( )
protectedvirtual

Reimplemented in MidiRegionView.

◆ mouse_state()

MouseState MidiView::mouse_state ( ) const
inline

Definition at line 268 of file midi_view.h.

◆ move_copies()

void MidiView::move_copies ( Temporal::timecnt_t const &  dx_qn,
double  dy,
double  cumulative_dy 
)

◆ move_note_ends_earlier()

void MidiView::move_note_ends_earlier ( )
inlineprotected

Definition at line 381 of file midi_view.h.

◆ move_note_ends_earlier_fine()

void MidiView::move_note_ends_earlier_fine ( )
inlineprotected

Definition at line 380 of file midi_view.h.

◆ move_note_ends_later()

void MidiView::move_note_ends_later ( )
inlineprotected

Definition at line 377 of file midi_view.h.

◆ move_note_ends_later_fine()

void MidiView::move_note_ends_later_fine ( )
inlineprotected

Definition at line 376 of file midi_view.h.

◆ move_note_starts_earlier()

void MidiView::move_note_starts_earlier ( )
inlineprotected

Definition at line 375 of file midi_view.h.

◆ move_note_starts_earlier_fine()

void MidiView::move_note_starts_earlier_fine ( )
inlineprotected

Definition at line 374 of file midi_view.h.

◆ move_note_starts_later()

void MidiView::move_note_starts_later ( )
inlineprotected

Definition at line 379 of file midi_view.h.

◆ move_note_starts_later_fine()

void MidiView::move_note_starts_later_fine ( )
inlineprotected

Definition at line 378 of file midi_view.h.

◆ move_patch_change()

void MidiView::move_patch_change ( PatchChange ,
Temporal::Beats   
)

◆ move_selection()

void MidiView::move_selection ( Temporal::timecnt_t const &  dx,
double  dy,
double  cumulative_dy 
)

◆ move_step_edit_cursor()

void MidiView::move_step_edit_cursor ( Temporal::Beats  pos)

◆ note_canvas_event()

bool MidiView::note_canvas_event ( GdkEvent ev)
protected

◆ note_deleted()

void MidiView::note_deleted ( NoteBase )

◆ note_deselected()

void MidiView::note_deselected ( NoteBase ev)

◆ note_diff_add_change() [1/2]

void MidiView::note_diff_add_change ( NoteBase ev,
ARDOUR::MidiModel::NoteDiffCommand::Property  ,
Temporal::Beats  val 
)

◆ note_diff_add_change() [2/2]

void MidiView::note_diff_add_change ( NoteBase ev,
ARDOUR::MidiModel::NoteDiffCommand::Property  ,
uint8_t  val 
)

◆ note_diff_add_note()

void MidiView::note_diff_add_note ( const std::shared_ptr< NoteType note,
bool  selected,
bool  show_velocity = false 
)

◆ note_diff_remove_note()

void MidiView::note_diff_remove_note ( NoteBase ev)

◆ note_dropped()

void MidiView::note_dropped ( NoteBase ev,
Temporal::timecnt_t const &  d_qn,
int8_t  d_note,
bool  copy 
)

◆ note_entered()

void MidiView::note_entered ( NoteBase ev)

◆ note_height()

double MidiView::note_height ( ) const
inlineprotected

Definition at line 607 of file midi_view.h.

◆ note_in_region_range()

virtual bool MidiView::note_in_region_range ( const std::shared_ptr< NoteType note,
bool &  visible 
) const
virtual

Test if a note is within this region's range

Parameters
notethe note to test
visiblewill be set to true if the note is within the visible note range, false otherwise.
Returns
true iff the note is within the (time) extent of the region.

◆ note_in_region_time_range()

virtual bool MidiView::note_in_region_time_range ( const std::shared_ptr< NoteType note) const
virtual

◆ note_left()

void MidiView::note_left ( NoteBase ev)

◆ note_mouse_position()

void MidiView::note_mouse_position ( float  xfraction,
float  yfraction,
bool  can_set_cursor = true 
)

◆ note_selected()

void MidiView::note_selected ( NoteBase ev,
bool  add,
bool  extend = false 
)

◆ note_to_y()

double MidiView::note_to_y ( uint8_t  note) const
inlineprotected

Definition at line 609 of file midi_view.h.

◆ nudge_notes()

void MidiView::nudge_notes ( bool  forward,
bool  fine 
)

◆ nudge_notes_earlier()

void MidiView::nudge_notes_earlier ( )
inlineprotected

Definition at line 418 of file midi_view.h.

◆ nudge_notes_earlier_fine()

void MidiView::nudge_notes_earlier_fine ( )
inlineprotected

Definition at line 419 of file midi_view.h.

◆ nudge_notes_later()

void MidiView::nudge_notes_later ( )
inlineprotected

Definition at line 416 of file midi_view.h.

◆ nudge_notes_later_fine()

void MidiView::nudge_notes_later_fine ( )
inlineprotected

Definition at line 417 of file midi_view.h.

◆ paste()

bool MidiView::paste ( Temporal::timepos_t const &  pos,
const ::Selection selection,
PasteContext ctx 
)

◆ paste_internal()

void MidiView::paste_internal ( Temporal::timepos_t const &  pos,
unsigned  paste_count,
float  times,
const MidiCutBuffer  
)

◆ patch_change_to_patch_key()

MIDI::Name::PatchPrimaryKey MidiView::patch_change_to_patch_key ( ARDOUR::MidiModel::PatchChangePtr  )

Convert a given PatchChange into a PatchPrimaryKey

◆ patch_entered()

void MidiView::patch_entered ( PatchChange )

◆ patch_left()

void MidiView::patch_left ( PatchChange )

◆ play_midi_note()

void MidiView::play_midi_note ( std::shared_ptr< NoteType note)
protected

Play the NoteOn event of the given note immediately and schedule the playback of the corresponding NoteOff event.

◆ quantize_selected_notes()

void MidiView::quantize_selected_notes ( )
protected

◆ redisplay()

void MidiView::redisplay ( bool  view_only)
protected

◆ region_going_away()

void MidiView::region_going_away ( )
protected

◆ region_resized()

virtual void MidiView::region_resized ( const PBD::PropertyChange )
protectedvirtual

Reimplemented in MidiRegionView.

◆ region_update_sustained()

void MidiView::region_update_sustained ( Note ,
double &  ,
double &  ,
double &  ,
double &   
)
protected

◆ remove_canvas_patch_change()

void MidiView::remove_canvas_patch_change ( PatchChange pc)

◆ remove_from_selection()

void MidiView::remove_from_selection ( NoteBase )
protected

◆ remove_ghost_note()

void MidiView::remove_ghost_note ( )
protected

◆ reset_width_dependent_items()

virtual void MidiView::reset_width_dependent_items ( double  pixel_width)
protectedvirtual

Reimplemented in MidiRegionView.

◆ scroll()

virtual bool MidiView::scroll ( GdkEventScroll )
protectedvirtual

Reimplemented in MidiCueView, and MidiRegionView.

◆ select_all_notes()

void MidiView::select_all_notes ( )

◆ select_matching_notes()

void MidiView::select_matching_notes ( uint8_t  notenum,
uint16_t  channel_mask,
bool  add,
bool  extend 
)

◆ select_next_note()

void MidiView::select_next_note ( )
inlineprotected

Definition at line 383 of file midi_view.h.

◆ select_notes()

void MidiView::select_notes ( std::list< Evoral::event_id_t ,
bool  allow_audition 
)

◆ select_previous_note()

void MidiView::select_previous_note ( )
inlineprotected

Definition at line 384 of file midi_view.h.

◆ select_range()

void MidiView::select_range ( Temporal::timepos_t const &  start,
Temporal::timepos_t const &  end 
)

◆ select_self() [1/2]

void MidiView::select_self ( )
inline

Definition at line 348 of file midi_view.h.

◆ select_self() [2/2]

virtual void MidiView::select_self ( bool  add)
inlinevirtual

Reimplemented in MidiRegionView.

Definition at line 346 of file midi_view.h.

◆ select_self_uniquely()

virtual void MidiView::select_self_uniquely ( )
inlinevirtual

Reimplemented in MidiRegionView.

Definition at line 349 of file midi_view.h.

◆ selection()

Selection const& MidiView::selection ( ) const
inline

Definition at line 308 of file midi_view.h.

◆ selection_as_cut_buffer()

MidiCutBuffer* MidiView::selection_as_cut_buffer ( ) const
protected

◆ selection_as_notelist()

void MidiView::selection_as_notelist ( Notes selected,
bool  allow_all_if_none_selected = false 
)

◆ selection_size()

size_t MidiView::selection_size ( )
inline

Definition at line 211 of file midi_view.h.

◆ set_channel_selector_scoped_note()

void MidiView::set_channel_selector_scoped_note ( NoteBase note)
inline

Definition at line 314 of file midi_view.h.

◆ set_extensible()

void MidiView::set_extensible ( bool  yn)
inlineprotected

Definition at line 642 of file midi_view.h.

◆ set_flags()

void MidiView::set_flags ( XMLNode )
protected

◆ set_height()

virtual void MidiView::set_height ( double  )
virtual

Reimplemented in MidiRegionView, and MidiCueView.

◆ set_model()

virtual void MidiView::set_model ( std::shared_ptr< ARDOUR::MidiModel )
virtual

Reimplemented in MidiRegionView.

◆ set_note_range()

void MidiView::set_note_range ( uint8_t  low,
uint8_t  high 
)

◆ set_region()

virtual void MidiView::set_region ( std::shared_ptr< ARDOUR::MidiRegion )
virtual

◆ set_samples_per_pixel()

virtual void MidiView::set_samples_per_pixel ( double  )
inlinevirtual

Reimplemented in MidiCueView.

Definition at line 96 of file midi_view.h.

◆ set_step_edit_cursor_width()

void MidiView::set_step_edit_cursor_width ( Temporal::Beats  beats)

◆ set_track()

virtual void MidiView::set_track ( std::shared_ptr< ARDOUR::MidiTrack )
virtual

◆ set_velocities_for_notes()

bool MidiView::set_velocities_for_notes ( std::vector< NoteBase * > &  notes,
std::vector< int > &  velocities 
)

◆ set_velocity()

void MidiView::set_velocity ( NoteBase primary,
int  velocity 
)

◆ set_velocity_for_notes()

bool MidiView::set_velocity_for_notes ( std::vector< NoteBase * > &  notes,
int  velocity 
)

◆ set_visibility_note_range()

virtual void MidiView::set_visibility_note_range ( MidiViewBackground::VisibleNoteRange  ,
bool   
)
virtual

Reimplemented in MidiRegionView.

◆ show_end()

void MidiView::show_end ( bool  yn)

◆ show_list_editor()

void MidiView::show_list_editor ( )

◆ show_start()

void MidiView::show_start ( bool  yn)

◆ show_step_edit_cursor()

void MidiView::show_step_edit_cursor ( Temporal::Beats  pos)

◆ show_verbose_cursor() [1/2]

void MidiView::show_verbose_cursor ( std::shared_ptr< NoteType ) const
protected

◆ show_verbose_cursor() [2/2]

void MidiView::show_verbose_cursor ( std::string const &  ,
double  ,
double   
) const
protected

◆ show_verbose_cursor_for_new_note_value()

void MidiView::show_verbose_cursor_for_new_note_value ( std::shared_ptr< NoteType current_note,
uint8_t  new_note 
) const

◆ size_end_rect()

void MidiView::size_end_rect ( )
protected

◆ size_start_rect()

void MidiView::size_start_rect ( )
protected

◆ snap_changed()

void MidiView::snap_changed ( )
protected

◆ snap_pixel_to_time()

Temporal::timecnt_t MidiView::snap_pixel_to_time ( double  x,
bool  ensure_snap = false 
)

Snap a region relative pixel coordinate to time units.

Parameters
xa pixel coordinate relative to region start
ensure_snapignore SnapOff and magnetic snap. Required for inverting snap logic with modifier keys and snap delta calculation.
Returns
the snapped timecnt_t coordinate relative to region start

◆ snap_to_pixel()

double MidiView::snap_to_pixel ( double  x,
bool  ensure_snap = false 
)

Snap a region relative pixel coordinate to pixel units.

Parameters
xa pixel coordinate relative to region start
ensure_snapdo not use magnetic snap (required for snap delta calculation)
Returns
the snapped pixel coordinate relative to region start

◆ split_notes_grid()

void MidiView::split_notes_grid ( )
protected

◆ split_notes_less()

void MidiView::split_notes_less ( )
protected

◆ split_notes_more()

void MidiView::split_notes_more ( )
protected

◆ start_boundary_event()

bool MidiView::start_boundary_event ( GdkEvent )
protected

◆ start_note_diff_command()

void MidiView::start_note_diff_command ( std::string  name = "midi edit")

◆ start_note_splitting()

void MidiView::start_note_splitting ( )
protected

◆ start_playing_midi_chord()

void MidiView::start_playing_midi_chord ( std::vector< std::shared_ptr< NoteType > >  notes)
protected

◆ start_playing_midi_note()

void MidiView::start_playing_midi_note ( std::shared_ptr< NoteType note)
protected

◆ step_add_note()

void MidiView::step_add_note ( uint8_t  channel,
uint8_t  number,
uint8_t  velocity,
Temporal::Beats  pos,
Temporal::Beats  len 
)

◆ step_patch()

void MidiView::step_patch ( PatchChange patch,
bool  bank,
int  delta 
)

Change a patch to the next or previous bank/program.

Parameters
patchThe patch-change instance (canvas item)
bankIf true, step bank, otherwise, step program.
deltaAmount to adjust number.

◆ step_sustain()

void MidiView::step_sustain ( Temporal::Beats  beats)

◆ store_flags()

void MidiView::store_flags ( )
protected

◆ sync_ghost_selection()

void MidiView::sync_ghost_selection ( NoteBase )
protected

◆ sync_velocity_drag()

void MidiView::sync_velocity_drag ( double  factor)
protected

◆ sysex_entered()

void MidiView::sysex_entered ( SysEx p)

◆ sysex_left()

void MidiView::sysex_left ( SysEx p)

◆ toggle_matching_notes()

void MidiView::toggle_matching_notes ( uint8_t  notenum,
uint16_t  channel_mask 
)

◆ track_going_away()

void MidiView::track_going_away ( )
protected

◆ transpose()

void MidiView::transpose ( bool  up,
bool  fine,
bool  allow_smush 
)

◆ transpose_down_octave()

void MidiView::transpose_down_octave ( )
inlineprotected

Definition at line 411 of file midi_view.h.

◆ transpose_down_octave_smush()

void MidiView::transpose_down_octave_smush ( )
inlineprotected

Definition at line 412 of file midi_view.h.

◆ transpose_down_tone()

void MidiView::transpose_down_tone ( )
inlineprotected

Definition at line 413 of file midi_view.h.

◆ transpose_down_tone_smush()

void MidiView::transpose_down_tone_smush ( )
inlineprotected

Definition at line 414 of file midi_view.h.

◆ transpose_up_octave()

void MidiView::transpose_up_octave ( )
inlineprotected

Definition at line 406 of file midi_view.h.

◆ transpose_up_octave_smush()

void MidiView::transpose_up_octave_smush ( )
inlineprotected

Definition at line 407 of file midi_view.h.

◆ transpose_up_tone()

void MidiView::transpose_up_tone ( )
inlineprotected

Definition at line 408 of file midi_view.h.

◆ transpose_up_tone_smush()

void MidiView::transpose_up_tone_smush ( )
inlineprotected

Definition at line 409 of file midi_view.h.

◆ trim_front_ending()

void MidiView::trim_front_ending ( )

◆ trim_front_starting()

void MidiView::trim_front_starting ( )

◆ trim_note()

void MidiView::trim_note ( NoteBase ev,
ARDOUR::MidiModel::TimeType  start_delta,
ARDOUR::MidiModel::TimeType  end_delta 
)
protected

◆ unique_select()

void MidiView::unique_select ( NoteBase ev)

◆ unselect_self()

virtual void MidiView::unselect_self ( )
inlinevirtual

Reimplemented in MidiRegionView.

Definition at line 347 of file midi_view.h.

◆ update_drag_selection()

void MidiView::update_drag_selection ( Temporal::timepos_t const &  start,
Temporal::timepos_t const &  end,
double  y0,
double  y1,
bool  extend 
)
protected

◆ update_ghost_note()

void MidiView::update_ghost_note ( double  ,
double  ,
uint32_t  state 
)
protected

◆ update_hit()

virtual void MidiView::update_hit ( Hit )
protectedvirtual

Reimplemented in MidiCueView.

◆ update_note()

void MidiView::update_note ( NoteBase )
protected

◆ update_patch_changes()

void MidiView::update_patch_changes ( )
protected

◆ update_resizing()

void MidiView::update_resizing ( NoteBase primary,
bool  at_front,
double  delta_x,
bool  relative,
double  snap_delta,
bool  with_snap 
)

◆ update_sustained()

virtual void MidiView::update_sustained ( Note )
protectedvirtual

Reimplemented in MidiCueView.

◆ update_sysexes()

void MidiView::update_sysexes ( )
protected

◆ update_vertical_drag_selection()

void MidiView::update_vertical_drag_selection ( double  last_y,
double  y,
bool  extend 
)
protected

◆ velocity_edit()

void MidiView::velocity_edit ( )

◆ view_changed()

void MidiView::view_changed ( )
protected

◆ y_to_note()

uint8_t MidiView::y_to_note ( double  y) const
inlineprotected

Definition at line 610 of file midi_view.h.

Friends And Related Function Documentation

◆ EditingContext

friend class EditingContext
friend

Definition at line 368 of file midi_view.h.

◆ EditNoteDialog

friend class EditNoteDialog
friend

Definition at line 431 of file midi_view.h.

◆ Editor

friend class Editor
friend

Definition at line 369 of file midi_view.h.

◆ HitCreateDrag

friend class HitCreateDrag
friend

Definition at line 428 of file midi_view.h.

◆ MidiGhostRegion

friend class MidiGhostRegion
friend

Definition at line 429 of file midi_view.h.

◆ MidiRubberbandSelectDrag

friend class MidiRubberbandSelectDrag
friend

Definition at line 424 of file midi_view.h.

◆ MidiVerticalSelectDrag

friend class MidiVerticalSelectDrag
friend

Definition at line 425 of file midi_view.h.

◆ NoteCreateDrag

friend class NoteCreateDrag
friend

Definition at line 427 of file midi_view.h.

◆ NoteDrag

friend class NoteDrag
friend

Definition at line 426 of file midi_view.h.

◆ VelocityDisplay

friend class VelocityDisplay
friend

Definition at line 543 of file midi_view.h.

Member Data Documentation

◆ _active_notes

Note** MidiView::_active_notes
protected

Definition at line 499 of file midi_view.h.

◆ _channel_selection_scoped_note

NoteBase* MidiView::_channel_selection_scoped_note
protected

Definition at line 509 of file midi_view.h.

◆ _copy_drag_events

CopyDragEvents MidiView::_copy_drag_events
protected

Definition at line 496 of file midi_view.h.

◆ _editing_context

EditingContext& MidiView::_editing_context
protected

Definition at line 491 of file midi_view.h.

◆ _end_boundary_rect

ArdourCanvas::Rectangle* MidiView::_end_boundary_rect
protected

Definition at line 513 of file midi_view.h.

◆ _entered

bool MidiView::_entered
protected

Definition at line 590 of file midi_view.h.

◆ _entered_note

NoteBase* MidiView::_entered_note
protected

Definition at line 591 of file midi_view.h.

◆ _events

Events MidiView::_events
protected

Definition at line 495 of file midi_view.h.

◆ _extensible

bool MidiView::_extensible
protected

Definition at line 639 of file midi_view.h.

◆ _ghost_note

NoteBase* MidiView::_ghost_note
protected

Definition at line 503 of file midi_view.h.

◆ _last_display_zoom

samplecnt_t MidiView::_last_display_zoom
protected

Definition at line 586 of file midi_view.h.

◆ _last_event_x

double MidiView::_last_event_x
protected

Definition at line 588 of file midi_view.h.

◆ _last_event_y

double MidiView::_last_event_y
protected

Definition at line 589 of file midi_view.h.

◆ _last_ghost_x

double MidiView::_last_ghost_x
protected

Definition at line 504 of file midi_view.h.

◆ _last_ghost_y

double MidiView::_last_ghost_y
protected

Definition at line 505 of file midi_view.h.

◆ _list_editor

MidiListEditor* MidiView::_list_editor
protected

Definition at line 553 of file midi_view.h.

◆ _marked_for_selection

std::set< std::shared_ptr<NoteType> > MidiView::_marked_for_selection
protected

New notes (created in the current command) which should be selected when they appear after the command is applied.

Definition at line 523 of file midi_view.h.

◆ _marked_for_velocity

std::set< std::shared_ptr<NoteType> > MidiView::_marked_for_velocity
protected

New notes (created in the current command) which should have visible velocity when they appear after the command is applied.

Definition at line 530 of file midi_view.h.

◆ _midi_context

MidiViewBackground& MidiView::_midi_context
protected

Definition at line 492 of file midi_view.h.

◆ _midi_region

std::shared_ptr<ARDOUR::MidiRegion> MidiView::_midi_region
protected

Definition at line 494 of file midi_view.h.

◆ _midi_track

std::shared_ptr<ARDOUR::MidiTrack> MidiView::_midi_track
protected

Definition at line 490 of file midi_view.h.

◆ _model

std::shared_ptr<ARDOUR::MidiModel> MidiView::_model
protected

Definition at line 493 of file midi_view.h.

◆ _mouse_changed_selection

bool MidiView::_mouse_changed_selection
protected

Definition at line 594 of file midi_view.h.

◆ _mouse_state

MouseState MidiView::_mouse_state
protected

Definition at line 510 of file midi_view.h.

◆ _no_sound_notes

bool MidiView::_no_sound_notes
protected

Definition at line 554 of file midi_view.h.

◆ _note_diff_command

ARDOUR::MidiModel::NoteDiffCommand* MidiView::_note_diff_command
protected

Definition at line 502 of file midi_view.h.

◆ _note_group

ArdourCanvas::Container* MidiView::_note_group
protected

Definition at line 501 of file midi_view.h.

◆ _optimization_iterator

Events::iterator MidiView::_optimization_iterator
protected

Definition at line 538 of file midi_view.h.

◆ _patch_change_fill

Gtkmm2ext::Color MidiView::_patch_change_fill
protected

Definition at line 597 of file midi_view.h.

◆ _patch_change_outline

Gtkmm2ext::Color MidiView::_patch_change_outline
protected

Definition at line 596 of file midi_view.h.

◆ _patch_changes

PatchChanges MidiView::_patch_changes
protected

Definition at line 497 of file midi_view.h.

◆ _pending_note_selection

std::set<Evoral::event_id_t> MidiView::_pending_note_selection
protected

Notes that should be selected when the model is redisplayed.

Definition at line 526 of file midi_view.h.

◆ _press_cursor_ctx

std::shared_ptr<CursorContext> MidiView::_press_cursor_ctx
protected

Definition at line 599 of file midi_view.h.

◆ _pressed_button

int MidiView::_pressed_button
protected

Definition at line 511 of file midi_view.h.

◆ _resize_data

std::vector<NoteResizeData *> MidiView::_resize_data
protected

Definition at line 532 of file midi_view.h.

◆ _select_all_notes_after_add

bool MidiView::_select_all_notes_after_add
protected

Definition at line 592 of file midi_view.h.

◆ _selection

Selection MidiView::_selection
protected

Currently selected NoteBase objects

Definition at line 517 of file midi_view.h.

◆ _show_source

bool MidiView::_show_source
protected

Definition at line 514 of file midi_view.h.

◆ _start_boundary_rect

ArdourCanvas::Rectangle* MidiView::_start_boundary_rect
protected

Definition at line 512 of file midi_view.h.

◆ _step_edit_cursor

ArdourCanvas::Rectangle* MidiView::_step_edit_cursor
protected

Definition at line 506 of file midi_view.h.

◆ _step_edit_cursor_position

Temporal::Beats MidiView::_step_edit_cursor_position
protected

Definition at line 508 of file midi_view.h.

◆ _step_edit_cursor_width

Temporal::Beats MidiView::_step_edit_cursor_width
protected

Definition at line 507 of file midi_view.h.

◆ _sys_exes

SysExes MidiView::_sys_exes
protected

Definition at line 498 of file midi_view.h.

◆ active_note_end

Temporal::timecnt_t MidiView::active_note_end
protected

Definition at line 500 of file midi_view.h.

◆ connections_requiring_model

PBD::ScopedConnectionList MidiView::connections_requiring_model
protected

Definition at line 454 of file midi_view.h.

◆ note_splitting

bool MidiView::note_splitting
protected

Definition at line 638 of file midi_view.h.

◆ region_connections

PBD::ScopedConnectionList MidiView::region_connections
protected

Definition at line 456 of file midi_view.h.

◆ split_info

std::vector<SplitInfo> MidiView::split_info
protected

Definition at line 635 of file midi_view.h.

◆ split_tuple

uint32_t MidiView::split_tuple
protected

Definition at line 637 of file midi_view.h.

◆ track_going_away_connection

PBD::ScopedConnection MidiView::track_going_away_connection
protected

Definition at line 455 of file midi_view.h.


The documentation for this class was generated from the following file: