musescore / musescore/MuseScore
Separate shortcuts for nudging elements and moving notes up/down
Nobody has claimed this yet.
- 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.
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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