musescore / musescore/MuseScore

MuseScore 4.5 legacy default style is missing from Qt resources

Open
#34,512 2 comments 0 reactions 2 assignees View on GitHub

@mathesoncalum is already working on this.

Since Aug 11, 2026.

needs review
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Issue type

Opening/saving issue / build resource packaging bug

Description

MuseScore defines and uses a Qt resource path for the MuseScore 4.5 legacy default style (named v450 and versioned 4.50 in these resources), but the corresponding file is not registered in src/engraving/engraving.qrc.

As a result, opening or converting a MuseScore 4.5 score can repeatedly report:

DefaultStyle::doLoadStyle | failed load style:
:/engraving/styles/legacy-style-defaults-v450.mss

In the reproduced console conversion, the converter exits with code 1.

Expected behavior: the existing MuseScore 4.5 (v450) legacy default style is packaged at the path used by DefaultStyle, and a MuseScore 4.5 score can be opened and saved as 5.00 without this resource error.

Source evidence

Tested against current main:

src/engraving/style/defaultstyle.cpp defines:

static const String LEGACY_MSS_V450_PATH(
    u":/engraving/styles/legacy-style-defaults-v450.mss"
);

DefaultStyle::resolveStyleDefaults(450) passes that path to loadedStyle().

The corresponding file exists:

src/engraving/data/styles/legacy-style-defaults-v450.mss

However, src/engraving/engraving.qrc registers the v1, v2, v3, and v302 legacy default styles, but not v450. The file therefore exists in the source tree but is not packaged at the resource path used by DefaultStyle.

Steps to reproduce
  1. Configure and build the MuseScore console application with the VTEST configuration at the revisions above.
  2. Use the existing repository fixture src/engraving/tests/timesig_data/timeSig-11.mscz, which contains a MuseScore 4.5 score (4.50 file-format version) and excerpts.
  3. Extract the MSCX and use the console converter to open and save it as MuseScore 5.00.
  4. Observe repeated failures to load :/engraving/styles/legacy-style-defaults-v450.mss; the reproduced conversion exits with code 1.
Minimal fix verification

Adding only the following entry to src/engraving/engraving.qrc fixes the reproduced conversion:

<file alias="engraving/styles/legacy-style-defaults-v450.mss">data/styles/legacy-style-defaults-v450.mss</file>

After reconfiguring and rebuilding the same checkout, the same input converts successfully and writes the 5.00 MSCX. No change to defaultstyle.cpp, the style file, or the input fixture is required.

Existing project context

The omission was already identified in an unresolved review thread on the merged PR that introduced the v450 legacy style:

The comment correctly notes that the file is not packaged because it was not added to engraving.qrc, and asks whether the file is needed. The reproduction above confirms that the existing MuseScore 4.5 (v450) loading path does use it.

The same failed-load message also appears incidentally in Issue #30870, but that issue tracks duplicate percussion note entry and contains no fix or acceptance criteria for the resource problem.

Why existing tests may not expose it

Although timeSig-11.mscz is present in timesig_data, it is not referenced by a test in timesig_tests.cpp. Its presence in the test-data directory therefore does not make CI open it.

The VTEST configuration also disables unit tests (configuration, engraving-test disablement).

A focused engraving/DefaultStyle regression test that proves the MuseScore 4.5 (v450) style can be loaded from its Qt resource path would directly cover the missing registration.

Regression

No known working revision after the v450 legacy style and its load branch were introduced in commit 837fbd0b183ecd0ce743ba6c575adf39d9f93507.

Operating system and build environment

Linux, Qt 6.8, GCC 12, VTEST console configuration.

Checklist
  • Reproduced on current main.
  • Searched the Issue and PR trackers for the exact resource name, path, and error.
  • Used an existing repository fixture as the reproduction input.
  • Verified the minimal QRC-only fix with the same build and input.
  • Linked the earlier unresolved review that identified the packaging omission.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.