Importing 2.x scores with dotted tuplets into 3.x reports score as being corrupt and looses notes

• Dec 9, 2018 - 13:54
Reported version
3.0
Priority
P0 - Critical
Type
Functional
Frequency
Few
Severity
S2 - Critical
Reproducibility
Always
Status
active
Regression
Yes
Workaround
No
Project

Came up in https://musescore.org/en/node/279724, sample score there


Comments

FWIW I could not reproduce from scratch; could be the particular file attached to that thread really does corruption that simply wasn't detected by 2.3.2. Further investigation required.

Title importing 2.x scores with 9-lets into 3.0 reports score as being corrupt importing 2.x scores with dotted tuplets into 3.0 reports score as being corrupt

The problem is with the dotted tuplets (see #279099: Dotted tuplet has incorrect duration after save/reload). That problem has been fixed for scores that have been saved with the current revision of MuseScore 3, but there will still be a problem when importing older scores.

But there is no reason for these to be 9:8 tuplets of dotted sixteenths. Mozart certainly did not write it that way.
9-lets.png
triplets.png

In reply to by ericfontainejazz

I remember one issue (most probably not solved with lower priority) which mentions similar problem. The actual problem there was the inconsistent of the mscx file itself. Tuplets were defined incorrectly in the file structure. MuseScore 2.3.2 somehow processes incorrect structure, but MuseScore 3 does not.

Well, the score is corrupt, so MuseScore is reporting the truth. The tuplets were saved with an incorrect baseLen, and so they have an incorrect duration upon load. Then Measure::checkMeasure() skips over the tuplet's reported duration and adds rests that it thinks are missing from the measure. The measure is completely wrong, anyway. It should look like this:
tuplets.png

So basically it sounds to me (and someone correct me if wrong) that MuseScore 2 is what is wrong by producing and allowing an incorrect measure, while MuseScore 3 is right (both in detecting the corruption and in not allowing such a measure to be created). In that case I would vote to close this issue. If someone has such an incorrect score, they will unfortunately have to redo those measures after importing into MuseScore 3.

Title importing 2.x scores with dotted tuplets into 3.0 reports score as being corrupt Importing 2.x scores with dotted tuplets into 3.x reports score as being corrupt and looses notes

In the attached simpified score (derived from the example furter up, created in 2.3.2), the tuplet is defined as:

        <Tuplet id="1">
          <normalNotes>8</normalNotes>
          <actualNotes>9</actualNotes>
          <baseNote>16th</baseNote>
          <Number>
            <style>Tuplet</style>
            <text>9</text>
            </Number>
          </Tuplet>
 

The 9 chords as

        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>64</pitch>
            <tpc>18</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>67</pitch>
            <tpc>15</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>64</pitch>
            <tpc>18</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>59</pitch>
            <tpc>19</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>64</pitch>
            <tpc>18</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>59</pitch>
            <tpc>19</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>55</pitch>
            <tpc>15</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>59</pitch>
            <tpc>19</tpc>
            </Note>
          </Chord>
        <Chord>
          <Tuplet>1</Tuplet>
          <dots>1</dots>
          <durationType>16th</durationType>
          <Note>
            <pitch>55</pitch>
            <tpc>15</tpc>
            </Note>
          </Chord>

I can't detect anything illegal or unusual there.

Edit: baseNote 16th seems wrong?
3.x has it as:

          <Tuplet>
            <normalNotes>8</normalNotes>
            <actualNotes>9</actualNotes>
            <baseNote>16th</baseNote>
            <baseDots>1</baseDots>
            <Number>
              <style>Tuplet</style>
              <text>9</text>
              </Number>
            </Tuplet>
 

That baseDots is the difference. Adding this into the 2.x file doesn't help though. No wonder: this had been added to 3.0 Beta via the fix for #279099: Dotted tuplet has incorrect duration after save/reload

Attachment Size
one-bar-dotted-tuplets-2pt3pt2.mscx 6.24 KB