musescore / musescore/MuseScore

Bracket and system barline lengths

Open
#27,928 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

I would like brackets and system barlines (aka left barlines) by default to behave as described by Elaine Gould on p. 516 of Behind Bars.

Image

Specifically, notice the bottom alignment of the system barline, the system bracket, and the square bracket at the bottom. They align precisely with the bottom (only) staff line, irrespective of the barline length.

More generally, I would propose that

  • all brackets and braces align with the top staffline of the top staff in the bracket and the bottom staffline of the bottom staff in the bracket/brace, except
  • when doing so would make the bracket or brace shorter than a minimum height supplied in Styles.
  • the minimum height would normally only be applicable when the bracket or brace applied to a single staff, but it might also be applicable when it brackets two 1-line staves that are closely spaced.
  • each bracket type could potentially have its own minimum height.

In addition to brackets and braces:

  • system barlines (left barlines) by default should align with the top line of the top staff and the bottom line of the bottom staff on the system, irrespective of the Barline From and Barline To settings.
  • it would be nice if there were an option automatically to suppress barline extensions on systems where a 1-line staff is at the bottom or top of a group of staves with connected barlines. For my part, this is the lowest priority item in this feature request.
Problem to be solved

Here is the closest I know how to reproduce an example like Gould's in MuseScore. (I'm not that proficient so I might have missed something.)

Image
  • The default positioning of the brackets is just wrong in this example. Almost what I would call a bug. If there is a way to edit the bracket length per-system, I didn't find it. It isn't even based on the barline length and appears to be hard-coded at 2 spaces beyond the staffline (as if every staff had 5 lines).
  • There does not appear to be a document-wide setting for the left barline, so I would have to modify it system by system to align with the staffline.
Prior art

Finale is only slightly better than MuseScore in this regard. It draws brackets and braces by default from the top barline tip of the top staff to the bottom barline tip of the bottom staff. At least it is not hard-coded to assume 5 lines.

Finale also draws the left barlines to match the barline lengths of the top and bottom staves in the system. In my view this is an improvement over what MuseScore does by default, but it isn't the Gould way either. I prefer the Gould way.

Additional context

No response

Checklist
  • This request follows the guidelines for reporting issues
  • I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests

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.

Research direction

No source files, tests, or entry points are named. Start by locating the implementation and style settings for brackets, braces, and system barlines, then compare their current geometry with the requested staff-line alignment. Done means the default behavior follows the stated Gould alignment rules, minimum-height handling is defined, and the behavior is covered by suitable tests or visual checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
design, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.