diff --git a/libmscore/read114.cpp b/libmscore/read114.cpp
index e214715d866ee..c9a493fa1f219 100644
--- a/libmscore/read114.cpp
+++ b/libmscore/read114.cpp
@@ -1106,8 +1106,9 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e)
else if (tag == "Chord") {
Chord* chord = new Chord(m->score());
chord->setTrack(e.track());
- readChord(chord, e);
segment = m->getSegment(SegmentType::ChordRest, e.tick());
+ chord->setParent(segment);
+ readChord(chord, e);
if (chord->noteType() != NoteType::NORMAL) {
graceNotes.push_back(chord);
if (chord->tremolo() && chord->tremolo()->tremoloType() < TremoloType::R8) {
@@ -1196,8 +1197,9 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e)
rest->setDurationType(TDuration::DurationType::V_MEASURE);
rest->setDuration(m->timesig()/timeStretch);
rest->setTrack(e.track());
- readRest(rest, e);
segment = m->getSegment(SegmentType::ChordRest, e.tick());
+ rest->setParent(segment);
+ readRest(rest, e);
segment->add(rest);
if (!rest->duration().isValid()) // hack
diff --git a/libmscore/read206.cpp b/libmscore/read206.cpp
index b594bdb5671dd..a830a26a0ed01 100644
--- a/libmscore/read206.cpp
+++ b/libmscore/read206.cpp
@@ -1482,6 +1482,11 @@ Element* readArticulation(ChordRest* cr, XmlReader& e)
e.unknown();
}
}
+ // Special case for "no type" = ufermata, with missing subtype tag
+ if (!el) {
+ el = new Fermata(sym, cr->score());
+ setFermataPlacement(el, anchor, direction);
+ }
el->setTrack(cr->staffIdx() * VOICES);
return el;
}
@@ -1634,8 +1639,9 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e)
rest->setDurationType(TDuration::DurationType::V_MEASURE);
rest->setDuration(m->timesig()/timeStretch);
rest->setTrack(e.track());
- readRest(rest, e);
segment = m->getSegment(SegmentType::ChordRest, e.tick());
+ rest->setParent(segment);
+ readRest(rest, e);
segment->add(rest);
if (!rest->duration().isValid()) // hack
diff --git a/mtest/libmscore/compat114/articulations-ref.mscx b/mtest/libmscore/compat114/articulations-ref.mscx
index 0fb314c7f5210..6214d22e05b41 100644
--- a/mtest/libmscore/compat114/articulations-ref.mscx
+++ b/mtest/libmscore/compat114/articulations-ref.mscx
@@ -538,12 +538,26 @@
+
+ fermataAbove
+
- measure
- 4/4
+ quarter
+
+
+ quarter
+
+
+ quarter
+
+
+ quarter
+
+ fermataAbove
+
measure
4/4
diff --git a/mtest/libmscore/compat114/articulations.mscx b/mtest/libmscore/compat114/articulations.mscx
index 08d0a2f03c62d..ea21085d1549a 100644
--- a/mtest/libmscore/compat114/articulations.mscx
+++ b/mtest/libmscore/compat114/articulations.mscx
@@ -460,12 +460,25 @@
- measure
+ quarter
+
+
+
+
+ quarter
+
+
+ quarter
+
+
+ quarter
measure
+
+
diff --git a/mtest/libmscore/compat206/articulations-ref.mscx b/mtest/libmscore/compat206/articulations-ref.mscx
index acf7ea1d73411..362407510a08b 100644
--- a/mtest/libmscore/compat206/articulations-ref.mscx
+++ b/mtest/libmscore/compat206/articulations-ref.mscx
@@ -1829,6 +1829,32 @@
14
+
+
+
+ fermataAbove
+
+
+ quarter
+
+
+ fermataShortAbove
+
+
+ quarter
+
+
+ fermataLongAbove
+
+
+ quarter
+
+
+ fermataVeryLongAbove
+
+
+ quarter
+
diff --git a/mtest/libmscore/compat206/articulations.mscx b/mtest/libmscore/compat206/articulations.mscx
index 59915be8fa856..ea07dd3cb3c41 100644
--- a/mtest/libmscore/compat206/articulations.mscx
+++ b/mtest/libmscore/compat206/articulations.mscx
@@ -1834,6 +1834,32 @@
14
+
+
+
+ quarter
+
+ fermata
+
+
+
+ quarter
+
+ shortfermata
+
+
+
+ quarter
+
+ longfermata
+
+
+
+ quarter
+
+ verylongfermata
+
+
end
1