Open apacha opened 1 year ago
Hi @apacha ! How's it going?
Thanks for flagging this up. As you note, this repo is built in ms3 (and earlier) and tested for that. It sounds like that's working as expected.
I'm not surprised to find that there's issues with ms4. We're not taking on an ms4 update until that's stable. Same goes for the quartets (for which the GitHub mirror is coming v soon -- watch this space!).
Tagging @shoogle for input, but I suspect he'll agree that bug-fixing ms4 will take a while and is best coordinated over there.
All the same, I'll leave this issue open, renamed as a future TODO ms4 upgrade.
Thanks again. See you at MEC in Paderborn?
Hi @MarkGotham, I'm great, thanks! Congratulations to your professorship in Dortmund. Alright, then I'll keep using MS3 for those failed conversions. I was hoping that an upgrade to MS4 would fix some of those nasty issues with visibility of objects like this: https://musescore.org/en/node/327607 and indeed it seems like that issue is solved, so I'll keep converting them with MS3 (see https://github.com/apacha/Lieder/blob/feat/musicxml_conversion/data/single_file_conversion.py).
Not sure yet whether I'll make it to Paderborn, but I'm afraid that it currently will rather not happen :-(
issues with visibility of objects like this: https://musescore.org/en/node/327607
Oh yeah that's a nasty one. So for the scores where ms4 works, would you say that's a net improvement? If so it's perhaps worth considering a "try ms4; except use ms3", even now?
As far as I've tested, absolutely. And yes, that's exactly what I'm doing now: https://github.com/apacha/Lieder/blob/feat/musicxml_conversion/data/single_file_conversion.py#L14-L23 The result is quite dramatic: Old version
New version
@apacha, thanks for reporting and including the Python script! Please could you report the crash at https://github.com/musescore/MuseScore/issues and attach the example score there? Thanks!
Hmm. Better ... but:
As MuseScore 4 is out now for some time it would be nice to star updating/upgrading the corpus, too. Maybe create a new branch for this, that may be merged back into main, when everything is finished?
Thanks @rettinghaus.
MS4 has indeed been out for some time, but have the above issues been resolved?
There are various considerations wrt usability here, especially as conversion among MS versions is one directional. There's no reversion to previous version, so one view would be that we move to MS4 when pretty much everyone has. From what I heard, that's definitely not the case yet.
That doesn't speak against @rettinghaus 's proposal of a branch.
Tagging @shoogle for views.
I think most of the issues have been resolved. Furthermore, the transition is one directional but Git isn't, and using versioning we can keep a MS3 version stable here.
I agree with @rettinghaus. If we tag the latest version before the upgrade with something like musescore-3
and put a note into the README it would also be clear that the files have been migrated to the latest version of MuseScore. I've seen similar things in other repos. Alternatively, you could keep an entire musescore-3
branch, if you want to continue support both versions.
True, and we don't anticipate major changes to the songs that would require duplicate work.
So perhaps an MS3 release now (or back-dated to a commit near the time of the MEC paper), then all MS3>MS4 with a manual clean-up as necessary.
That also brings us an important step closer to integration with MEI (via MS>4.2).
@shoogle: OK?
@apacha do you want to PR your script?
How does this sound?
musescore-4
branch.main
with latest MS3 files.musescore-4
branch.MS4 conversion: The problem...
for each problem found.musescore-3
tag on main
.main
.musescore-4
branch.Before we do the final conversion (step 3+), I think we should wait a month or so for the MuseScore (Studio) 4.4 release, plus another month for any patches. But we can do steps 1 and 2 before then.
I'm open to creating more branches in the future. For example, a no-hidden-elements
branch that mirrors main
but with invisible tempo markings removed. However, I think this should wait until after the MS4 conversion.
MS4 uses uncompressed folders rather than individual files.
Using scores/Beach,_Amy/4_Songs,_Op.51/3_Juni
as an example:
lc6245973
(so lc6245973.mscx
becomes lc6245973/lc6245973.mscx
).Are we happy with this layout?
Another option would be lc6245973.mscx
becomes lc6245973/score.mscx
, but I think it's best to keep the number in the file name so it's easily visible when these scores are opened in MS4.
MS uses zip compressed files (mscz
), other files in the folder are not really relevant. (score_style.mss
keeps all style settings.) So we could just keep the mscx
file and stick with the old structure.
other files in the folder are not really relevant
Maybe not for musicology, but the scores won't look right without score_style.mss
(it contains the page size, staff spacing, text styles, and various other settings), and if anything has been changed in the Mixer (instrument sound, volume, reverb, pan, etc.) then they won't sound right without audiosettings.json
. So we'll need those two files at least in addition to the MSCX.
I guess we can put them in the current score folder rather than a new subdirectory, so the path to the MSCX won't change.
@shoogle Then why not keep the compressed mscz
files?
In the repository? The MSCZ compression...
git clone
, git checkout
etc. would probably become slower over time.grep -Flr '<programVersion>2' scores/
find scores/ -type f -iname '*.mscz' | xargs -I% sh -c "unzip -p % | grep -q '<programVersion>2' && echo %"
* Admittedly the checked-out files are much, much smaller if you use MSCZ, but you can get the best of both worlds if you use MSCX and enable transparent filesystem compression for the scores
directory or the volume it's stored on.
scores
> Properties > Advanced > Compress..., or use IridiumIO/CompactGUI.afsctool
yourself because the Homebrew version appears to lack support for APFS.Thanks for this.
It seems to me that your positions (@shoogle and @rettinghaus) are compatible in the "best of all possible worlds" that Peter points to (... with a nod to Candide ;) ...).
main
, dev. version.mscz
files. This is the substance of @rettinghaus's request as I understand it – a proper release, and preferably with mscz
files..mscx
on main and then provide a couple of release options including (at a minimum) the mscz.Beyond that, we could consider other release options.
I think it would be great also to have the MEI file exported from the corresponding MS4 version. But of course, I am biased on this.
I've tried to run the MusescoreXML (mscx) to MusicXML (musicxml) conversion from this repo with MuseScore 4 and for a small percentage of the pieces, MuseScore 4 crashes with the following rather cryptic exception:
Given the nature of the batch-processing of the conversion script, which stops when the first conversion fails, I wasn't able to identify which pieces cause the issues, so I rewrote the script to this:
which skips pieces that have already been converted and runs the conversion per file (be aware that this kind of blocks your computer because of opening and closing of musescore for each file).
The list of affected files is as follows:
MuseScore 4 reliably crashes with these files, I'm attaching one here as an example: 09_Der_Spinnerin_Nachtlied.zip
Those files were able to be opened with MuseScore 3, so it might be a bug in MuseScore 4. When opening with MuseScore 3, and saving the files again, it seems to correctly migrate the files and allows to open those files (at least the piece by Schubert was working like this).
Environment: