musescore / musescore/MuseScore

Adjust spacing around chains of hyphens in lyrics

Open
#24,801 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.