diff --git a/importexport/musicxml/importmxmlpass2.cpp b/importexport/musicxml/importmxmlpass2.cpp index 058f03d58b2a9..efe541b220a45 100644 --- a/importexport/musicxml/importmxmlpass2.cpp +++ b/importexport/musicxml/importmxmlpass2.cpp @@ -7829,7 +7829,7 @@ static void addTie(const Notation& notation, Score* score, Note* note, const int qInfo() << "endMeasure: " << endChord->measure(); qInfo() << "startChord->tick() + startChord->ticks(): " << (startChord->tick() + startChord->ticks()).toString(); qInfo() << "endChord->tick(): " << endChord->tick().toString(); - if (startMeasure == endChord->measure() || startChord->tick() + startChord->ticks() == endChord->tick()) { + if (startMeasure == endChord->measure() || startChord->tick() + startChord->actualTicks() == endChord->tick()) { // only connect if they're in the same bar, or there are no notes/rests in the same voice between them qInfo() << "Connect"; currTie->setEndNote(note); diff --git a/mtest/musicxml/io/testTupletTie.xml b/mtest/musicxml/io/testTupletTie.xml new file mode 100644 index 0000000000000..33585b630d3c9 --- /dev/null +++ b/mtest/musicxml/io/testTupletTie.xml @@ -0,0 +1,118 @@ + + + + + + MuseScore 3.6.2 + 2024-09-01 + + + + + + + + + + brace + + + Piano + Pno. + + Piano + + + + 1 + 1 + 78.7402 + 0 + + + + + + + 3 + + 0 + + + + G + 2 + + + + + 6 + 1 + half + + + + D + 1 + 4 + + 4 + 1 + half + sharp + + 3 + 2 + quarter + + up + + + + + + + D + 1 + 4 + + 2 + + 1 + quarter + + 3 + 2 + quarter + + up + + + + + + + + + + D + 1 + 4 + + 12 + + 1 + whole + + + + + + light-heavy + + + + diff --git a/mtest/musicxml/io/testTupletTie_ref.mscx b/mtest/musicxml/io/testTupletTie_ref.mscx new file mode 100644 index 0000000000000..35b51dc46ed6f --- /dev/null +++ b/mtest/musicxml/io/testTupletTie_ref.mscx @@ -0,0 +1,171 @@ + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + stdNormal + + 3 + + Piano + + Piano + Pno. + Piano + 21 + 108 + 21 + 108 + keyboard.piano + F + + 100 + 95 + + + 100 + 33 + + + 100 + 50 + + + 100 + 67 + + + 100 + 100 + + + 120 + 67 + + + 150 + 100 + + + 150 + 50 + + + 120 + 50 + + + 120 + 100 + + + + + + + + + + 10 + + + + + G + G + + + 4 + 4 + + + half + + + 2 + 3 + quarter + + + 3 + + + + half + up + + + accidentalSharp + + 63 + 23 + + + + quarter + up + + + + + + + 1 + -5/6 + + + + 63 + 23 + + + + + + + + + whole + + + + + -1 + 5/6 + + + + 63 + 23 + + + + end + + + + + + diff --git a/mtest/musicxml/io/tst_mxml_io.cpp b/mtest/musicxml/io/tst_mxml_io.cpp index 0d2f3f242290b..714e6d5229a5f 100644 --- a/mtest/musicxml/io/tst_mxml_io.cpp +++ b/mtest/musicxml/io/tst_mxml_io.cpp @@ -327,6 +327,7 @@ private slots: void tuplets8() { mxmlMscxExportTestRef("testTuplets8"); } void tuplets9() { mxmlIoTest("testTuplets9"); } void tuplets10() { mxmlIoTest("testTuplets10"); } + void tupletTie() { mxmlImportTestRef("testTupletTie"); } void twoNoteTremoloTuplet() { mxmlIoTest("testTwoNoteTremoloTuplet"); } void uninitializedDivisions() { mxmlIoTestRef("testUninitializedDivisions"); } void unnecessaryBarlines() { mxmlImportTestRef("testUnnecessaryBarlines"); }