One tool per action

Pencil tool

  • LMB-click on canvas: add note (grid-size lenght or separate default)
  • LMB-drag on canvas: draw note (could be limited to dra inside a row and otherwise switch to selection rectangle)
  • LMB-click on note: select note (makes directly adding overlapping equal notes impossible. should be acceptable as that’s hardly ever needed and can still be acomplished by moving notes.) [delete would be nice for consistency with drum editing, where notes are usualy toggled, but won’t be expected and seem drastic]
  • LMB-drag on note: move note
  • Ctrl: switch to Select tool
  • Shift: switch to Resize tool
  • Alt/Meta: switch to Velocity tool

Hit tool, for percussion, like Pencil tool, except

  • LMB-drag: add/toggle hits in a row

Brush tool for adding notes in a row?

Select tool (should perhaps only appear via Ctrl, not be a selectable tool, as it can be expected to be used not several times in a row, but rather once inbetween other operations)

  • LMB-click: toggle selection state of closest note
  • LMB-drag: rectangular selection
  • Shift-LMB-drag: add rectangular selection
  • Alt/Meta-LMB-drag: substract from selection

Delete tool

  • LMB-click: delete note
  • LMB-drag: delete all in span
  • Ctrl: switch to Select
  • Shift: switch to Resize tool
  • Alt/Meta: switch to Velocity tool

Move Tool

  • LMB-click: move closest note there
  • LMB-drag: move closest whole note
  • Ctrl: switch to Select tool
  • Shift: switch to Resize tool
  • Alt/Meta: switch to Velocity tool

Resize Tool (Note_on/off move)

  • LMB-click: move closest Note_On/Off there
  • LMB-drag: move closest Note_On/Off
  • Ctrl: switch to Select
  • Shift: switch to Pencil tool
  • Alt/Meta: switch to Velocity tool

Quantize tool?

Velocity tool (overload Gain tool?)

  • LMB-click: set closest velocity
  • LMB-drag: adjust closest velocity
  • Ctrl: switch to Select
  • Shift: switch to Resize tool
  • Alt/Meta: switch to Velocity tool

Independent of current tool:

  • Ctrl-RMB-click: edit click: note dialog?
  • Shift-RMB-click: delete