From f89f28ddf80b7c059c6e359fd5b20f28e79274be Mon Sep 17 00:00:00 2001 From: Michele Spagnolo Date: Mon, 20 Oct 2025 15:43:57 +0200 Subject: [PATCH 1/2] Fix cue note from Trill lines ignored in horizontal spacing --- src/engraving/dom/chord.cpp | 3 +++ src/engraving/dom/segment.cpp | 32 ++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/engraving/dom/chord.cpp b/src/engraving/dom/chord.cpp index 76e43cddf7d0c..9b75f86c0fcf8 100644 --- a/src/engraving/dom/chord.cpp +++ b/src/engraving/dom/chord.cpp @@ -2722,6 +2722,9 @@ Ornament* Chord::findOrnament(bool forPlayback) const } } if (forPlayback) { + // TODO: cleanup. + // We shouldn't do this kind of special cases, and the DOM shouldn't know anything about playback. + // This should be in a different function that returns the ornament from the Trill ending on this chord. [MS] for (Spanner* spanner : m_endingSpanners) { if (spanner->isTrill()) { return toTrill(spanner)->ornament(); diff --git a/src/engraving/dom/segment.cpp b/src/engraving/dom/segment.cpp index 43fe5c859e8a6..9515fcd2b5c44 100644 --- a/src/engraving/dom/segment.cpp +++ b/src/engraving/dom/segment.cpp @@ -2736,21 +2736,25 @@ void Segment::addArticulationsToShape(const Chord* chord, Shape& shape) }; for (Articulation* art : chord->articulations()) { - if (art->isOrnament()) { - Chord* cueNoteChord = toOrnament(art)->cueNoteChord(); - if (cueNoteChord && cueNoteChord->upNote()->visible()) { - shape.add(cueNoteChord->shape().translate(cueNoteChord->pos() + cueNoteChord->staffOffset())); - } - } else if (art->addToSkyline()) { - shape.add(art->shape().translated(art->pos() + chord->pos())); - if (art->isTapping()) { - if (TappingHalfSlur* halfSlur = toTapping(art)->halfSlurAbove()) { - addTappingHalfSlurToShape(halfSlur); - } - if (TappingHalfSlur* halfSlur = toTapping(art)->halfSlurBelow()) { - addTappingHalfSlurToShape(halfSlur); - } + if (art->isOrnament() || !art->addToSkyline()) { + continue; + } + shape.add(art->shape().translated(art->pos() + chord->pos())); + if (art->isTapping()) { + if (TappingHalfSlur* halfSlur = toTapping(art)->halfSlurAbove()) { + addTappingHalfSlurToShape(halfSlur); } + if (TappingHalfSlur* halfSlur = toTapping(art)->halfSlurBelow()) { + addTappingHalfSlurToShape(halfSlur); + } + } + } + + Ornament* ornament = chord->findOrnament(); + if (ornament) { + Chord* cueNoteChord = ornament->cueNoteChord(); + if (cueNoteChord && cueNoteChord->upNote()->addToSkyline()) { + shape.add(cueNoteChord->shape().translate(cueNoteChord->pos() + cueNoteChord->staffOffset())); } } } From b70e7e3dc72b24cc25056820974d43b80bc946c6 Mon Sep 17 00:00:00 2001 From: Michele Spagnolo Date: Mon, 20 Oct 2025 15:58:40 +0200 Subject: [PATCH 2/2] vtest --- vtest/scores/ornament-11.mscz | Bin 0 -> 22163 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 vtest/scores/ornament-11.mscz diff --git a/vtest/scores/ornament-11.mscz b/vtest/scores/ornament-11.mscz new file mode 100644 index 0000000000000000000000000000000000000000..56f1da75f10695707893545cedbb7ef9319d5093 GIT binary patch literal 22163 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 literal 0 HcmV?d00001