musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.36k stars 2.67k forks source link

Newzik properly generated MusicXML file missing first 4 measures. #25472

Open luto65 opened 2 weeks ago

luto65 commented 2 weeks ago

Issue type

Import/export issue

Description with steps to reproduce

I purchased a PDF of a partiture, however need to change some instrumentation due to the different availability of musicians in my orchestra. I then imported that partiture in Newzik and it generated a musicxml .

I verified the MusicXML by importing it into

Supporting files, videos and screenshots

score5-8.zip

What is the latest version of MuseScore Studio where this issue is present?

MuseScore Studio version (64-bit): 4.4.3-242971445, revision: github-musescore-musescore-eb6b367

Regression

I was unable to check

Operating system

OS: macOS 11.7, Arch.: x86_64, MuseScore Studio version (64-bit): 4.4.3-242971445, revision: github-musescore-musescore-eb6b367

Additional context

No response

Checklist

Jojo-Schmitz commented 2 weeks ago

Seems a regression vs. Mu3 (3.6.2, but also my 3.7 Evolution). That though shows an error on loading:

Fatal error: line 15516 column 15 There is one IDREF value with no corresponding ID: P2-I44.

4.0.2 has the same issue as 4.4.3 plus showing the above error. (AFAIK as of 4.4 the MusicXML schema validations isn't done anymore)

I believe though that Newzik is the culprit (and IIRC not for the first time), the MusicXML seems to be non-sensical, it has a measure repeat in the first 4 measures for all staves, but for all but the first 3 staves/instruments also notes in them:

    <part id="P4">
        <measure number="1">
            <attributes>
                <divisions>1</divisions>
                <key>
                    <fifths>-3</fifths>
                </key>
                <time>
                    <beats>4</beats>
                    <beat-type>4</beat-type>
                </time>
                <clef>
                    <sign>F</sign>
                    <line>4</line>
                </clef>
                <transpose>
                    <chromatic>0</chromatic>
                    <octave-change>-1</octave-change>
                </transpose>
                <measure-style>
                    <measure-repeat type="start">1</measure-repeat>
                </measure-style>
            </attributes>
            <note>
                <pitch>
                    <step>G</step>
                    <octave>3</octave>
                </pitch>
                <duration>4</duration>
                <instrument id="P4-I44"/>
                <voice>1</voice>
                <type>whole</type>
                <staff>1</staff>
                <notations>
                    <technical>
                        <fingering>8</fingering>
                    </technical>
                </notations>
            </note>
            <note>
                <chord/>
                <pitch>
                    <step>B</step>
                    <alter>-1</alter>
                    <octave>3</octave>
                </pitch>
                <duration>4</duration>
                <instrument id="P4-I44"/>
                <voice>1</voice>
                <type>whole</type>
                <staff>1</staff>
            </note>
        </measure>

Seems Mu3 ignores those measure repeats and interprets the measures as empty if no notes, while Mu4 does not but then ignores the notes.

To me that looks like a case of garbage in -> garbage out, and Mu3 only does the right thing because it doesn't import the measure repeats at all

The MusicXML exporting software identifies itself as "Maestria_v2.7.2". I guess https://newzik.com/en/maestria/

mercuree commented 2 weeks ago

the MusicXML seems to be non-sensical, it has a measure repeat in the first 4 measures for all staves, but for all but the first 3 staves/instruments also notes in them

But that's what the specs say, isn't it?

The element specifies a notation style for repetitions. The actual music being repeated needs to be repeated within each measure of the MusicXML file. This element specifies the notation that indicates the repeat. https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/measure-repeat/

Jojo-Schmitz commented 2 weeks ago

Hmm, not sure. Mu3 just doesn't know anything about (multi-)measure repeats IIRC, while Mu4 does, but messes up here in the MusicXML import. Not sure how MusicXML implements that, but I'd think you'd have measures with notes first, then a measure repeat that repeats the last measure(s)

Jojo-Schmitz commented 2 weeks ago

Seems #16216 is related