Ok, I realize this isn't really a MWE, but I needed a more real example of
some of the issues I ran into. So, here we go. You'll find some of my
favorite preferences for Lyrics in the extra global overrides. And, yes, I
realize they are part of the problem, but even without them, the problems
are still there. The main problematic measures are 5, 7, and 9/10.  My
tweaks are good bandaids, but not ideal, nor perfect, but they get the job
done.

Let me know what you think.

Best,
Abraham

%<----------------------------------

\version "2.23"
\language "english"

struct = {
  \numericTimeSignature
  \key bf \major
  \time 3/4
  s2.*5 \break
  s2.*5 \break
}

nb = \markup { \small \italic "n.b." }

melody = \relative {
  \clef treble
  \dynamicUp
  R2.*4 |
  d'8\mp ef f4. d8 |

  d4 \once \phrasingSlurDashed c2_\(^\nb |
  d8\) ef f4 bf, |
  c2. |
  d8\< ef f4. f8 |
  g8 a bf2\mf |
}

pianoRH = \relative {
  \clef treble
  d''8 ef f4 <f,c'>8 f' |
  << { g8 a bf2 } \\ { <bf, d>2. } >> |
  << { ef4 c8 d ef bf } \\ { g2 g4 } >> |
  << { d'4. ef8 c4 } \\ { <ef, gf>2. } >> |
  <c' f>4 <f, d'>2 |

  << { d'4 c } \\ { <ef, gf>2 } >>  ef'8 c' |
  <d, bf'>4 <bf f'>2 |
  <gf d'>4 c ef8 c' |
  <d, bf'>4 f c8 f, |
  << { d'2. } \\ { bf8 a g2 } >> |
}

pianoLH = \relative {
  \clef treble
  bf8 f' ~ f4 a, |
  g8 d' bf' a g d |
  \clef bass
  c,8 g' ef'2 |
  ef,8 bf' c2 |
  bf,8 f' bf4 d |

  ef,8 gf bf c ef4 |
  bf,8 f' d'4 f |
  ef,8 c' ef gf ~ gf4 |
  bf,,8 f' d'4 a |
  g8 d' bf a g d |
}

melodyWordsDefault = \lyricmode {
  Would I know my Sav -- ior Wrapped in swad -- dling bands,
  Ly -- ing in a man -- ger bed, Light of hea -- ven ’round His head?
}

melodyWordsTweaked = \lyricmode {
  \once \override LyricText.self-alignment-X = #0.3
  Would
    \once \override LyricText.self-alignment-X = #1
    I
    \once \override LyricText.self-alignment-X = #-0.3
    know my Sav -- ior
    \once \override LyricText.self-alignment-X = #0.3
    wrapped
    \once \override LyricText.self-alignment-X = #-2.5
    in
    \once \override LyricText.self-alignment-X = #-0.5
    swad --
    \once \override LyricText.self-alignment-X = #-0.5
    dling bands,
  Ly -- ing in
    \once \override LyricText.self-alignment-X = #-5
    a
    \once \override LyricText.self-alignment-X = #0.7
    man --
    \once \override LyricText.self-alignment-X = #-0.3
    ger
    \once \override LyricText.self-alignment-X = #-1
    bed,
}

#(set-global-staff-size 19)
\paper {
  ragged-last = ##f
  ragged-bottom = ##t
  ragged-right = ##f
  ragged-last-bottom = ##t
  tagline = ##f
}

\layout {
  \context {
    \Lyrics
    \override LyricText.font-size = #0
    \override LyricHyphen.font-size = #-0.5
    \override LyricHyphen.padding = #0.15
    \override LyricHyphen.length = #0.6  %#0.4
    \override LyricHyphen.minimum-length = #0.66
    \override LyricHyphen.minimum-distance = #1 %0.15
    \override LyricHyphen.thickness = 2.0
    \override LyricHyphen.dash-period = 8.0
    \override LyricExtender.minimum-length = #0
    \override LyricExtender.right-padding = #0.5
    \override LyricSpace.minimum-distance = #1
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #1
  }
}

\score {
  \header {
    piece = "Tricky lyrics BEFORE adjustments"
  }
  <<
    \new Staff <<
      \struct
      \new Voice = "melody" \melody
    >>
    \new Lyrics \lyricsto melody \melodyWordsDefault
    \new PianoStaff <<
      \new Staff = "pianoRH" <<
        \struct
        \pianoRH
      >>
      \new Staff = "pianoLH" <<
        \struct
        \pianoLH
      >>
    >>
  >>
  \layout {}
}

\score {
  \header {
    piece = "Tricky lyrics AFTER adjustments"
  }
  <<
    \new Staff <<
      \struct
      \new Voice = "melody" \melody
    >>
    \new Lyrics \lyricsto melody \melodyWordsTweaked
    \new PianoStaff <<
      \new Staff = "pianoRH" <<
        \struct
        \pianoRH
      >>
      \new Staff = "pianoLH" <<
        \struct
        \pianoLH
      >>
    >>
  >>
  \layout {}
}

%<----------------------------

On Tue, Nov 15, 2022 at 8:19 AM Abraham Lee <[email protected]>
wrote:

> This looks awesome, Jean! Thanks so much for this great start! And thanks
> to everyone else who has chimes in on this. We may get to a great solution
> yet!
>
> In my recent score, again, a single vocal staff with two piano staves
> below, I had instances where there were 2, 3, and 4-syllable clusters where
> I had to adjust almost all the syllables’ positions, sometimes on just one
> end, mostly on both ends, sometimes in the middle as well. I apologize that
> I haven’t had a chance to test your fix out yet (work is a bit too busy at
> the moment), but how well would you say it handles those kinds of groups?
>
> I’ll post some more specific examples later demonstrating the issues
> before my manual tweaks versus after (not that they’re perfect).
>
> Best,
> Abraham
>
> On Mon, Nov 14, 2022 at 11:40 AM Kieren MacMillan <
> [email protected]> wrote:
>
>> Hi Jean,
>>
>> > This just removes the lyric syllable's presence in horizontal
>> > spacing, then adjusts its placement if it collides with its
>> > right neighbor. It works in this case because there is nothing
>> > on the left that the lyric syllable in question could collide
>> > with. (It also does not handle collisions with other things
>> > than the next lyric syllable.)
>>
>> Well, between the two hacks you just hacked, a huge percentage of my
>> note-spacing tweaking effort has just been saved, so I thank you immensely!
>>
>> Can't wait to unleash these on my scores and get back you/list with some
>> real-world data. (I know one of the things I’ll run into almost immediately
>> is that I will need the *LAST* syllable to be shifted to the *RIGHT*, but
>> I’m going to take on that “upgrade” as a Scheme-ing challenge!)
>>
>> Gratefully,
>> Kieren.
>
>

Reply via email to