private void UpdateInputToMoveAndStretchNotes(EKeyboardModifier modifier) { Vector2 arrowKeyDirection = InputUtils.GetArrowKeyDirection(); if (arrowKeyDirection == Vector2.zero) { return; } List <Note> selectedNotes = selectionController.GetSelectedNotes(); if (selectedNotes.IsNullOrEmpty()) { return; } if (modifier == EKeyboardModifier.None) { return; } List <Note> followingNotes = GetFollowingNotesOrEmptyListIfDeactivated(selectedNotes); // Move with Shift if (modifier == EKeyboardModifier.Shift && arrowKeyDirection.x != 0) { moveNotesAction.MoveNotesHorizontalAndNotify((int)arrowKeyDirection.x, selectedNotes, followingNotes); } if (modifier == EKeyboardModifier.Shift && arrowKeyDirection.y != 0) { moveNotesAction.MoveNotesVerticalAndNotify((int)arrowKeyDirection.y, selectedNotes, followingNotes); } // Move notes one octave up / down via Ctrl+Shift if (modifier == EKeyboardModifier.CtrlShift) { moveNotesAction.MoveNotesVerticalAndNotify((int)arrowKeyDirection.y * 12, selectedNotes, followingNotes); } // Extend right side with Alt if (modifier == EKeyboardModifier.Alt) { extendNotesAction.ExtendNotesRightAndNotify((int)arrowKeyDirection.x, selectedNotes, followingNotes); } // Extend left side with Ctrl if (modifier == EKeyboardModifier.Ctrl) { extendNotesAction.ExtendNotesLeftAndNotify((int)arrowKeyDirection.x, selectedNotes); } }