musescore / musescore/MuseScore
Bracket and system barline lengths
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.
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.)
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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