Skip to content

Progression Bars for full layout, rendering midi, saving, and autosaving#210

Merged
worldwideweary merged 6 commits into
3.x-worldwidewearyfrom
3.x-www-0130-ProgressBarsForLayoutAndSave
Jun 25, 2026
Merged

Progression Bars for full layout, rendering midi, saving, and autosaving#210
worldwideweary merged 6 commits into
3.x-worldwidewearyfrom
3.x-www-0130-ProgressBarsForLayoutAndSave

Conversation

@worldwideweary

@worldwideweary worldwideweary commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Resolves: #205

Not only can the user enable/disable pre-rendering MIDI on loading of score, but though enabled, the user can "pre-cancel" during the rendering via a progress bar window, or see approximately duration time with the progress percentage bar. This can get crazy for really large scores:

This is with a 200 page multi-piano scores file:

Loading:
layout

And then Rendering MIDI:
renderMidi

It's no question as to why MuseScore doesn't normally pre-render scores on load in MuseScore. Takes way too long - it's the same thing that happens when exporting to a MIDI file. Instead, it's done piecewise during playback of the sequencer in chunks depending on the sequencer's location. I was under the false impression that a quick playing of the score updated all the gateTimes and offsets. But no, it's again based on chunks. You can verify this by going to the Piano Roll Editor on a large score, play+stop and see the updates but then go forward and look at the events.

Also, doing a full score layout will show a progress bar (happens on score load but also when style changes take place etc)

Also, doing a save to file operation and an auto-save. It's not really the "saving" that takes a long time but the layout that occurs in the process from what I can tell. These can be enabled to show or not. Usually I'd want them off, but the fact is that on large scores there can be temporary "doing nothings" that can be concerning, and it's nice to see that it's due to a progressing auto-save of a 300 page score or something rather than just feeling glitchy. The point being that it's controllable:

advanced preferences:

application/show/progressBar/layout
application/show/progressBar/save
application/show/progressBar/autosave

Could be useful also if I come across a bug that triggers a full score layout when it shouldn't. Getting visual feedback...
I was even thinking about showing any layout progress with begin/end ticks on the dialog, but that'd definitely be more of a "debugging" attribute. Hell, maybe I should do that and make it based on whether the debug toggle is on or off. OK. Partial layout progress bar is contingent upon skylines showing, which can be selected on/off easily with the Debug Option on the Alternative Options toolbar.

These occurred after removing an extraneous score update via
68303b6 ("Efficiency (WATCH): Seems score update is not required during readScore since openScore performs full layout afterwards", 2026-06-23)
@worldwideweary
worldwideweary force-pushed the 3.x-www-0130-ProgressBarsForLayoutAndSave branch from 10dfd05 to d4d2d11 Compare June 24, 2026 23:48
Advanced preferences exist to enable/disable the showing of these progress bars (enabled by default)
Progress Bar for Render MIDI was mainly for large scores on load. User can cancel early for that.
Progress Bar for partial layout can show with tick-span also if Debug Tools command is enabled via Alternative Options/shortcut
@worldwideweary
worldwideweary force-pushed the 3.x-www-0130-ProgressBarsForLayoutAndSave branch from d4d2d11 to ee0ed53 Compare June 24, 2026 23:56
…forcing this without checking necessarily, as it seems miniscule."

This reverts commit 7137a35.
@worldwideweary
worldwideweary merged commit 3decb0c into 3.x-worldwideweary Jun 25, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Score Efficiency (Loading/Saving)

1 participant