lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Flexible lyric alignment


From: Jean Abou Samra
Subject: Re: Flexible lyric alignment
Date: Mon, 14 Nov 2022 19:28:19 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1

The bit with LyricHyphen was not working, this will be better:

\version "2.23.81"

#(ly:set-option 'compile-scheme-code)

\layout {
  \context {
    \Lyrics
    \consists
      #(lambda (context)
         (let ((previous #f))
           (make-engraver
            (acknowledgers
             ((lyric-syllable-interface engraver grob source-engraver)
              (when previous
                (set! (ly:grob-object previous 'right-syllable)
                      grob))
              (set! previous grob))))))
  }
  \override Score.PaperColumn.show-horizontal-skylines = ##t
}

autoMove = \once {
  \override LyricSpace.springs-and-rods = ##f
  \override LyricHyphen.springs-and-rods = ##f
  \override LyricText.extra-spacing-height = #'(+inf.0 . -inf.0)
  \override LyricText.after-line-breaking =
    #(lambda (grob)
       (let ((right (ly:grob-object grob 'right-syllable #f)))
         (when right
           (ly:grob-property right 'after-line-breaking)
           (let* ((refp (ly:grob-system grob))
                  (end (interval-end (ly:grob-extent grob refp X)))
                  (right-begin (interval-start (ly:grob-extent right refp X)))
                  (default-space (- right-begin end))
                  ;; Same as LyricSpace.minimum-distance default, should be
                  ;; read there ...
                  (padding 0.45))
             (when (< default-space padding)
               (ly:grob-translate-axis! grob
                                        (- default-space padding)
                                        X))))))
}


\paper {
  top-margin = 0.5\in
  left-margin = 0.5\in
  line-width = 6\in
  ragged-right = ##f
}

spacecase_notes = { R1 a'4 c'8 f' bes'4 a' g'8 8 \tuplet 3/2 { g'8 8 fis' } g'2 } spacecase_lyrics = \lyricmode { \autoMove Scraunched is the long -- est sin -- gle syl -- la -- ble word! }

\score {
  <<
    \new Staff \new Voice = "melody" \spacecase_notes
    \new Lyrics \lyricsto "melody" \spacecase_lyrics
  >>
}

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]