musescore / musescore/MuseScore

Separate shortcuts for nudging elements and moving notes up/down

Open
#32,758 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs design approval UX/interaction
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Problem

The 'Move pitch/selection up' and 'Move pitch/selection down' shortcuts do two different things for two different element types:

  • Nudge non-note elements up/down by 0.1sp
  • Move notes up/down by one chromatic step

Currently, if a user wants the up/down arrow keys to do something else (like 'Move pitch [up/down] diatonically'), changing the shortcut makes it impossible to nudge non-note elements around with the arrow keys.

Task
Create distinct shortcuts

Create user-assignable shortcuts for moving non-note elements:

  • Small nudge up
  • Small nudge down
  • Small nudge left
  • Small nudge right
  • Big nudge up
  • Big nudge down
  • Big nudge left
  • Big nudge right

Note: Small nudge shortcuts are just their corresponding arrow keys. Big nudge shortcuts are Ctrl / Cmd + their corresponding arrow keys. According to the handbook, a small nudge moves by 0.1 sp and a big nudge moves by 1 sp (task to make these customizable here: https://github.com/musescore/MuseScore/issues/32759).

Rename the existing 'Move pitch/selection [up/down]' shortcuts to the following:

  • Move pitch up chromatically
  • Move pitch down chromatically

Simplify other shortcut names that relate to moving things, and fold their functionality into the new nudge shortcuts.

Image
Add conflict logic

Normally we don't allow the same shortcut to be used for multiple actions, but it makes sense to allow arrow keys to be assignable for both nudging selected non-note elements by either small or big AND either moving notes up/down chromatically OR diatonically.

For example, these actions could have the same shortcuts:

  • 'Move notes up chromatically' and 'Small nudge up'
  • 'Move notes down diatonically' and 'Big nudge down'

But these actions cannot:

  • 'Move notes up chromatically' and 'Move notes up diatonically'
  • 'Small nudge up' and 'Big nudge up'
  • 'Small nudge up' and 'Small nudge left'

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the existing shortcut definitions for the Move pitch/selection actions and the logic that detects shortcut conflicts. Implement the eight assignable nudge actions, rename and simplify the related movement actions, and verify that the allowed arrow-key combinations work while the listed conflicting combinations remain rejected.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.