musescore / musescore/MuseScore

Historical TAB duration grids: blocked edits and missing connectors

Open
#34,839 0 comments 0 reactions 1 assignee View on GitHub

@miiizen is already working on this.

Since Sep 8, 2026.

needs review regression MS3 UX/interaction
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Issue type

UX/Interaction bug (incorrect behaviour)

Description with steps to reproduce

Historical TAB duration grids cannot be created correctly. On the tested official baseline, half/quarter beam-mode edits are rejected; grid connectors are also missing for values whose edits are accepted.

  1. Open historical-tab-grid-input.mscx from the score ZIP. It uses Italian duration symbols with Always symbol repetition: two quarter notes followed by four eighth notes.
  2. Open Palettes > Beam properties (add the palette if necessary).
  3. Apply Break beam left to notes 1 and 3.
  4. Apply Join beams to note 2 and notes 4–6.

Actual: quarter-note edits are ignored on the official baseline; accepted grid edits produce vertical stems without connecting lines. The original edit-only PR removes the first restriction but still leaves bare stems.

Expected: the two quarter notes form a two-line grid and the four eighth notes form a separate three-line grid, preserving their different durations. Undo/redo, Reset beams and save/reopen should preserve the appropriate notation.

The original half-note-to-quarter-note example and its bare-stem expected result were incorrect. This report now uses equal-duration groups, following the 2019 report addressed by #5304.

Supporting files, videos and screenshots

Before: previous edit-only PR revision, showing the remaining missing connectors:

https://github.com/user-attachments/assets/90f70138-f1a0-4afa-a332-a31573c48c58

After: revised PR #34840, with readable duration grids:

https://github.com/user-attachments/assets/bf38bd55-93c9-41f4-981a-6b3e5644b6a4

Both recordings use identical input and actions at 300% zoom, including undo/redo of the final Join beams operation. They are native desktop recordings operated through Xvfb/xdotool.

Download the input, native saved result and regression score. These replace the earlier mixed-duration recordings and files.

In which versions of MuseScore Studio is this issue present?

Development main at ce7067126406142e51eb7772b11fac239a1dc873, built from source. Framework submodule: ee2c97edf5fff6ae46289851ec8e2968a5deb045. The before recording uses the original edit-only PR revision so both groups can be edited and the layout failure is visible.

Regression

The release-version boundary has not been established. A related connector regression was fixed in #5304 in the older layout architecture.

Operating system

Ubuntu 24.04.2 LTS; native APP Debug build, Qt 6.10.2 / GCC 14.

Additional context

PR #34840 now fixes both the edit guard and late connector layout. It retains individual duration signs for combinations the simple grid cannot express, rather than losing their rhythmic information.

All 21 enabled native Beam tests pass with the revised patch (4 pre-existing tests disabled). The same suite has 4 failing historical TAB cases and 17 passing tests against the original edit-only production code. Checks cover editing, geometry, undo/redo/reset, save/reopen, group boundaries and font/staff magnification.

Related: #2235 introduced grids through beam modes; #22013 and #30467 explain the hook guards, whose inner-beam and ordinary-notation protections are retained.

This report and contribution were prepared with AI assistance.

Checklist
  • This report follows the guidelines for reporting bugs and issues.
  • I searched the issue tracker for similar issues; related prior work is listed above.
  • All requested files and information are supplied through the evidence links above.
  • I attempted to identify the root problem concisely and used an existing small reproducible score.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.