musescore / musescore/MuseScore

Cursor keys fail to set playback start point after toggling loop playback

Open
#23,296 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

P2 regression MS3 UX/interaction
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Issue type

UX/Interaction bug (incorrect behaviour)

Bug description

Normally, any change to the current selection will set the start point for the next playback. But, after toggling loop playback on and off, changing selection using the cursor keys fails to set a start point - it keeps continuing where it left off.

Steps to reproduce
  1. Open or create a score
  2. Select the first note of the second measure
  3. Press Space to start playback
  4. After playing a measure or so, press Space again to pause
  5. Press Left followed by Right, to re-select the originally-selected note
  6. Press Space again to start playback

Result: As expected, playback starts from the selected note. You can repeat those last two steps as often as you like, it works every time.

Now, with playback paused, toggle loop playback on and then off again. Then try to repeat the last two steps.

Result: Even though you are successfully reselecting the orginally-selected note, playback will not start from that location - it will continue from where you last paused. And no other keyboard navigation commands (eg, Ctrl+Right, Alt+Right, Alt+Down, Ctrl+Home) will function to set the start point, either. It is now "stuck" in this mode - you cannot (that I can see) get back to a place where cursor keys work to select the start point anymore. Except by closing and reopening the score

Workaround 1: clicking a note will still set the start point, but it won't make subsequent cursor key presses work.

Workaround 2: while no navigation commands will work to set the start point, the commands to create range selections will. So, Shift+Right followed by Shift+Left will produce the desired end result (allowing playback to restart at the originally-selected location). Well, almost - now it will play only the selected instrument. So you'd also need to hit Esc to play all staves.

Screenshots/Screen recordings

Screen recording 2024-06-18 6.33.01 PM.webm

MuseScore Version

OS: Debian GNU/Linux 12 (bookworm), Arch.: x86_64, MuseScore Studio version (64-bit): 4.3.2-241630832, revision: github-musescore-musescore-22b46f2

Regression

Yes, this used to work in MuseScore 3.x and now is broken

Operating system

Debian 12

Additional context

Broken in 4.2.1 as well, not sure if it ever worked in any other MU4 release but it definitely did in MU3.

I would note that implementing a "start playback from selection" command would eliminate the need for the specific hack used in the example: navigating right then left to re-select a note and force playback to start there again. So that's certainly something to consider too. But the current behavior would still be a bug, and a significant one from an accessibility standpoint, since it means it is all but impossible to discover how to select a playback start point by keyboard after having used loop playback.

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 reproducing the issue with the listed playback, loop-toggle, and cursor-key steps in MuseScore 4. Compare cursor navigation with clicking a note and range-selection commands after loop playback is toggled off. Done means keyboard selection reliably resets the playback start point again without requiring the score to be reopened.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.