diff --git a/src/engraving/dom/tuplet.cpp b/src/engraving/dom/tuplet.cpp index 24c1310bd84a..ed865ee7842d 100644 --- a/src/engraving/dom/tuplet.cpp +++ b/src/engraving/dom/tuplet.cpp @@ -194,7 +194,9 @@ bool Tuplet::calcHasBracket(const DurationElement* cr1, const DurationElement* c } bool tupletStartsBeam = beamStart->elements().front() == c1; bool tupletEndsBeam = beamEnd->elements().back() == c2; - if (tupletStartsBeam && tupletEndsBeam) { + bool headSide = isUp() != (c1->up() || c2->up()); + bool isCross = c1->vStaffIdx() != c2->vStaffIdx(); + if (tupletStartsBeam && tupletEndsBeam && (!headSide || isCross)) { return false; } @@ -240,7 +242,7 @@ bool Tuplet::calcHasBracket(const DurationElement* cr1, const DurationElement* c endChordDefinesTuplet = endChordDefinesTuplet || nextEndChord->beams() < beamCount; } - if (startChordDefinesTuplet && endChordDefinesTuplet) { + if (startChordDefinesTuplet && endChordDefinesTuplet && (!headSide || isCross)) { return false; } diff --git a/vtest/scores/tuplets-8.mscz b/vtest/scores/tuplets-8.mscz new file mode 100644 index 000000000000..062b383695a4 Binary files /dev/null and b/vtest/scores/tuplets-8.mscz differ