musescore / musescore/MuseScore
Redrawing of Navigator for large scores causes more lag than in MS3
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
(Updated after https://github.com/musescore/MuseScore/pull/19639, which has improved the situation a lot when only the blue rectangle inside the Navigator has to be updated, but still very laggy when the whole Navigator needs to be redrawn)
Describe the bug
If the navigator is open on a score with many measures, parts, and/or notes, the frame rate drops significantly and scrolling across the score becomes difficult. If the score is large/complex enough, it can become unusably slow.
To Reproduce
Steps to reproduce the behavior:
- Create a new score using the Orchestral -> Symphony Orchestra template
- Click on Add->Measures->Append Measures
- Append 500 measures.
Scrolling around zoomed in is very smooth. If zoomed out such that the entire score fits in the workspace, scrolling becomes slow. - Click on View -> Navigator
When the Navigator has to be redrawn (for example, when its viewport changes), MS4 lags more than MS3.
Expected behavior
Smooth scrolling when not zoomed out on a large score with the navigator open.
Additional context
Also present in MuseScore 3.6.2. Can occur with significantly fewer measures if there are many notes/elements on the staff.
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
Reproduce the slowdown using the Orchestral - Symphony Orchestra template, append 500 measures, then open View > Navigator and change the viewport while zoomed out. Compare scrolling and Navigator redraw performance with the described MS3 behavior; done means smooth scrolling on large or complex scores when the Navigator is open.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100