musescore / musescore/MuseScore
Adjust spacing around chains of hyphens in lyrics
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
Add style settings to the Lyrics text > Hyphen area to control either the maximum space between a lyric syllable and hyphen, or the ratio between the space at the ends of the chain of hyphens and the space between hyphens (possibly now my preferred solution after writing the Prior Art and Additional Context below...).
Problem to be solved
In #24621 it was discovered that the code assumes that when syllables are further apart than the Max. hyphen gap, the first hyphen occurs after half the Max. hyphen gap. In code updates for 4.4, it was assumed that the full Max. hyphen gap should be used, leading to changes in score rendering.
Prior art
ly - - ric!
<L1> <S1> <H1> <S2> <H2> <S3> <L2>
varies fixed varies
H = hyphen
L = lyric
S = space
Both Sibelius and Dorico use a fixed space between multiple hyphens (S2 above), and vary the space between the lyric syllables and the hyphens to make them fit (S1 and S3). Dorico also has style settings for minimum space next to the lyric that are poorly named, but appear to be for when there's either a chain or a single hyphen. Sibelius seems to just have a tickbox to "allow extra space for hyphens" in its Note Spacing Rule.
Additional context
ly - - ric!
<L1> <S1> <H1> <S2> <H2> <S3> <L2>
varies varies varies
H = hyphen
L = lyric
S = space
MuseScore seems to vary all three spaces together. In 4.0 to 4.3, S1 and S3 are half the calculated value for S2, and in 4.4.0 to 4.4.2, they're all the same. In 4.4.3 they will revert to the previous behaviour.
If implementing a ratio setting, 4.0 to 4.3 would be emulated by having this at 50%, and 4.4.0 to 4.4.2 by having it at 100%. Values over 100% would be possible too.
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 file or test is named. Start by reading this issue and related issue #24621, then locate the lyric hyphen-spacing implementation and its rendering tests. Done requires an agreed setting design and consistent spacing behavior for chains of hyphens, including coverage for the relevant 4.4 behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100