PG Music Home
Posted By: Gordon Scott MusicXML anomalies - 04/03/24 10:28 AM
Following the SongMasterPro thread, there are issues with importing and exporting MusicXML to an from various programs. I have to say thet that doesn't surprise me at all, because MusicXML is pretty convoluted (IMHO) due at least in part to trying to merge both music markup and the convolutions of MIDI into one structure.

The question & thoughts...

Out of curiosity, has anyone tried something like the xml tidy program on this and does it help?
If not, I may explore and see if it does.

I tried it quickly once, but the MusicXML I tried points for the DTD to www.musicxml.org (404), whilst I think it should now point to w3.org, so then I just left it.

I frequently use tidy to sanitise HTML and some XML, but have yet to try it in earnest on MusicXML. It may just report lots of non-compliances frown

Edit: The "Hello, World" example on W3 points to musicxml.org, so maybe it's still just broken.

Edit 2: Apparently it doesn't have to resolve, "it's just a string". Tidy presently doesn't recognise it. That said, the schema for MusicXML 3.1 "contains an invalid "<xs:import" URI that needed patching in 2020, and MusicXML 4.0 needs exactly the same patch today. crazy The Musescore file a parsed with xmllint validates correctly.
Posted By: AudioTrack Re: MusicXML anomalies - 04/03/24 12:21 PM
Good points and well articulated, Gordon. Thanks.

I don't know if the full Music XML schema has been published in one consolidated location, so all of the declarations, attributes and tags etc could be 'learned' by parsing it through an application.

I agree that trying to develop a markup language capable of combining so many different music disciplines into one system, is probably challenging.

I'm presuming that 'tidy' and 'xmllint' are Linux items. They sure sound like they are.

Bottom line is that of course it's important that the Music XML support in BIAB works correctly.
Posted By: Gordon Scott Re: MusicXML anomalies - 04/03/24 01:41 PM
Originally Posted by AudioTrack
I'm presuming that 'tidy' and 'xmllint' are Linux items. They sure sound like they are.
That hadn't occurred to me. Tidy is W3C and originally checked/tidied only HTML. It's available on pretty much every platform.
xmllint is derived from the concept of the lint program originally used to verify C programs, but later derivatives now used to verify many different languages.

As I use them, they are both command-line programs, so maybe will not have been known to put GUI users. xmllint may be a unix/linux tool, though there are Windows versions around. I know not how well they work. In principle they're both pretty much text-processing only, though xmllint may want to open schema files from the Internet.

IIRC there's a GUI Lint, but I find the command line version quicker to use than I imagine a GUI would be. There's an option for it in VisualStudio.

In principle the schema is publicly accessible and should be on musicxml.org or w3.org. It can be downloaded from the latter and should(!) be accessible from either or both, but presently may not be. I suspect most parsers and builders have local copies for performance and robustness. It's supposed to be accessible at the URI in the DOCTYPE statement, but that's musicxml.org/dtds/partwise.dtd and it's not there. partwise.dtd is also now deprecated. (See how messy this all is?).
Posted By: AudioTrack Re: MusicXML anomalies - 04/03/24 02:02 PM
Quote
(See how messy this all is?).

Yep crazy
Posted By: Matt Finley Re: MusicXML anomalies - 04/03/24 03:30 PM
Yep confused

Gordon, thanks for all your work on this. I do intend to get into it with some depth using the programs I have. I was very disappointed there wasn't seamless reading of the complete chord info from Song Master Pro.
Posted By: mrgeeze Re: MusicXML anomalies - 04/03/24 04:52 PM
From W3C

https://www.w3.org/2021/06/musicxml40/tutorial/chord-symbols-and-diagrams/


Relevant portion attached

Attached picture Screenshot 2024-04-03 at 9.49.08 AM.png
Posted By: Gordon Scott Re: MusicXML anomalies - 04/03/24 05:24 PM
One would like to think that's definitive, but that's exactly the same tutorial with the "Hello, World" example referring to the broken musicxml.org for the deprecated musicxml.dtd. Sigh.

Originally Posted by Matt Finley
I was very disappointed there wasn't seamless reading of the complete chord info from Song Master Pro.
Yes it's a shame. It's very easy to generate faulty XML, though, and it's very easy to parse some XML successfully and other XML wrongly.

I haven't done much work yet; I seem to have spent much of my time trying to find out precisely how/where one should access the schema. frown What tools do you use, please?

I was following the SongMasterPro thread because I was thinking to get it, even though it seems to go rather excessive when identifying chords in jazz. I guess I should just do it.
Posted By: Matt Finley Re: MusicXML anomalies - 04/03/24 11:35 PM
I use several programs. I'll give more detail when I have more time, but I just now ran a quick test. I exported a big band score to Music XML from Presonus Notion 6, my notation program. BIAB imported only the root and, where present, the root and the slash root. No major, minor, 7, etc nor upper extensions.

Musescore 4 imported the same file and gave me all the correct chords. There was one annoying error: if there were two chords per measure, Musescore showed them both in the first beat, one above the other. But I could at least see the right chords and fix them into the correct place.

So, just from this dead simple 30-second test, I know there is at least one serious problem importing Music XML into BIAB.

By the way, I said this in some thread on the subject, but I've found Musescore to be the most helpful in reading Music XML. Some programs just crash if there is an error in the code. Musescore acts like a compiler; and it will give you an error message where one is detected.
Posted By: shlind Re: MusicXML anomalies - 04/04/24 06:56 AM
I had to experiment with the BIAB load special settings: ”BB song bar offset” and ”Number of bars in XML to skip” in order for the chords to align correctly in BIAB. It seems to depend on if there is a non complete bar at the beginning of the song. The setting that worked for me was ”BB song bar offset=2”, ”Number of bars in XML to skip=1” and the first bar was only 1 beat (in the original song from SongMaster Pro via MuseScore). The file that I tested had chords spread over various beats 1,2,3,4 and they seemed to align correctly. It will miss the first bar with only one beat.

---EDIT
It seems to work fine with the default settings as well ie ”BB song bar offset=2”, ”Number of bars in XML to skip=0”. Only thing is that the 3 first beats will get an C chord since my song only begin with one beat in the first bar.
Posted By: Matt Finley Re: MusicXML anomalies - 04/04/24 09:42 AM
But did BIAB import anything about the chords beside the letter of the root of the chord?
Posted By: shlind Re: MusicXML anomalies - 04/04/24 09:49 AM
Yes all chord extensions m, sus, 7, etc.
But this was after I imported the SongMaster Pro MusicXML file into MuseScore and within there I copied it over again to a new empty score in MuseScore and from there I exported it as a new MusicXML which I then loaded into BIAB it worked fine. But I had to copy over the imported score into a new score and from there export a new MusicXML (see posting in SongMaster Pro thread).

https://www.pgmusic.com/forums/ubbthreads.php?ubb=showflat&Number=779013#Post779013

EDIT---
I have added screen shots from SongMaster Pro, MuseScore and BIAB in the SongMaster Pro thread.
Posted By: etcjoe Re: MusicXML anomalies - 04/04/24 12:33 PM
Originally Posted by shlind
Yes all chord extensions m, sus, 7, etc.
But this was after I imported the SongMaster Pro MusicXML file into MuseScore and within there I copied it over again to a new empty score in MuseScore and from there I exported it as a new MusicXML which I then loaded into BIAB it worked fine. But I had to copy over the imported score into a new score and from there export a new MusicXML (see posting in SongMaster Pro thread).

https://www.pgmusic.com/forums/ubbthreads.php?ubb=showflat&Number=779013#Post779013

EDIT---
I have added screen shots from SongMaster Pro, MuseScore and BIAB in the SongMaster Pro thread.

a simple 12 step process!! LOL.
Posted By: shlind Re: MusicXML anomalies - 04/04/24 01:01 PM
Yes it is heavy! I got it to 5 steps (ie 3 extra steps compared from importing it directly into BIAB).
Export from SongMaster Pro, Import to MuseScore, Copy score to new score within MuseScore, Export from MuseScore, Import into BIAB (it might be faster to type the chords in manually). The screen shots were only to show that it works loading an MusicXML into BIAB if the file is in a specific format
(But it might be useful when trying to analyze what is going wrong when importing to BIAB, it is quite easy to compare the two XML files and see what differs from the one that is working compared to the one that is not working).
© PG Music Forums