lilypond-user
[Top][All Lists]
Advanced

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

Re: Reduce width of single measure


From: Thomas Morley
Subject: Re: Reduce width of single measure
Date: Thu, 19 Jan 2012 22:48:01 +0100

Hi Frank,

2012/1/17 Frank Steinmetzger <address@hidden>:
> Hello gurus
>
> I already wrote a whole paragraph to describe my problem, but an image is far
> simpler.  Please see the attached screenshot to get an idea of my problem.  
> The
> "ness" syllables are not aligned to one another, because alto and bass are
> aligned to a single note, whereas soprano and tenor have a Second interval,
> which causes the stem to shift horizontally.
>
> Is there an automatic way to resolve this, i.e. that all "ness" syllables are
> properly aligned again?  The only solution I can think of is to use \set
> associatedVoice, so that (in this example) soprano and tenor use the bass'
> notes as rhythm base.
>
> I'm (still) using 2.12.3 here. Thanks in advance for your insight.

you could try:

%\version "2.14.2"
\version "2.12.3"

#(define (lyr-x-offset grob)
(let* ((sys (ly:grob-system grob))
       (note-heads (ly:grob-parent grob X))     
       (note-column (ly:grob-parent note-heads X))
       (note-column-length (interval-length (ly:grob-extent note-column sys X)))
       (note-heads-length (interval-length (ly:grob-extent note-heads sys X))))
(ly:grob-translate-axis!
  grob
  (if (> note-column-length (* note-heads-length 1.5))
    note-heads-length
    0)
  X)))

\paper { ragged-right = ##f }

global = { \key bes\minor \time 4/4 }

one = \new Voice = "one" \relative c'' {
        <c des>4 <c des>2 <c des>4
}

two = \new Voice = "two" \relative c' {
        f4 f2 aes4
}

three = \new Voice = "three" \relative c'' {
        <des ees>4 <des ees>2 <des ees>4
}

four = \new Voice = "four" \relative c' {
        \clef "bass"
        bes4 bes2 bes4
}

text = \lyricmode {
        \override LyricText #'after-line-breaking = #lyr-x-offset
        wet -- ness to
}

\new StaffGroup <<
\new Staff { \global \one }
\new Lyrics \lyricsto "one" \text
\new Staff { \global \two }
\new Lyrics \lyricsto "two" \text
\new Staff { \global \three }
\new Lyrics \lyricsto "three" \text
\new Staff { \global \four }
\new Lyrics \lyricsto "four" \text
>>

But it is tested with the short example only.

HTH,
  Harm



reply via email to

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