Import Finale's .musx file format#31594
Open
XiaoMigros wants to merge 561 commits intomusescore:masterfrom
Open
Import Finale's .musx file format#31594XiaoMigros wants to merge 561 commits intomusescore:masterfrom
XiaoMigros wants to merge 561 commits intomusescore:masterfrom
Conversation
Contributor
|
In the interest of full disclosure, there may be some need for an opinion from the MuseScore legal team on this. The xml inside a |
ef6cc8c to
6df411f
Compare
Prepare for partial ties
Saves calls to tick2measure
…graphics and NotationMetadata.xml to Document.
6d5c6b8 to
2b00ad6
Compare
2b00ad6 to
dfd9ef8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Made in collaboration with @rpatters1 over the best part of this year.
.musx file importer
This PR allows MuseScore to read Finale's .musx file format, used by Finale from version 2014 until its demise. As MuseScore hopes to win over users leaving Finale, this importer offers a way out without sacrificing existing score libraries. While MuseScore's MusicXML import from Finale has improved substantially over time, many visual inaccuracies are caused by the lossy export from Finale itself. This importer therefore has a focus on visual accuracy (over "good MuseScore behaviour" or playback).
Prefences for level of detail
Nonetheless, under Preferences there are various levels of detail provided for the user to choose from:
How to handle element positioning:
Conversion from Finale-native fonts to SMuFL symbols
Prior to v27, Finale did not incorporate the SMuFL standard and used a diverse assortment of fonts to cover musical symbols. Many MuseScore users may not have Finale and its fonts installed on their device, which is why the importer detects and converts most of Finale's symbol fonts to SMuFL equivalents. This is enabled by default. For powerusers who may wish to keep their original fonts (or be using SMuFL optional or MakeMusic-only glyphs), this can be disabled.
More options could be provided; with the new reset options in the format tab we haven't yet deemed them necessary.
Code quirks
The importer differs from other importers in that it layouts the score mid-import, several times. These calls are needed to compute the correct positions of various elements. Integration with the layouting code is kept minimal - only a small handful of methods are called from it - so any changes made to the engraving module shouldn't have much effect.
Two new dependencies are linked using
FetchContent- fixed release versions can be created before merging this PR.Features
The importer detects and imports the following:
Unit tests have also been provided.
Part scores and slur handle positions are currently not imported, but may be added at a later date.