lilypond-user
[Top][All Lists]
Advanced

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

Re: Fixed Vertical Spacing


From: Trevor Bača
Subject: Re: Fixed Vertical Spacing
Date: Tue, 20 Feb 2007 10:10:18 -0600

On 2/20/07, Robert Memering <address@hidden> wrote:
Am Montag, 19. Februar 2007 22:33 schrieb Trevor Bača:
> On 2/19/07, Robert Memering <address@hidden> wrote:
> > Hi all,
> >
> > is there a way to set the vertical distance
> > between staves of a system to a fixed value,
> > regardless of what happens (esp. Lyrics present/absent)?
> >
> > I think this could be done by setting the
> > vertical extent of the Lyrics to zero,
> > but as far as I understand this is not possible.
>
> Hi Robert,
>
> The trick is the line-break-system-details property of the
> NonMusicalPaperColumn grob. I've just put together a section of the
> docs for this, but it's going to take another week or two for Graham
> and I to correct all the typos and rebuild the docs.
>
> In the meantime, here's an advance copy of the new section in the
> docs, which I think will be 11.3.3 "Explicit vertical staff and system
> positions" once the new docs build.
>
> When you get to the alignment-offsets parameter, make sure to consider
> your lyrics as a "staff", as far as that setting goes.
>

--snip!--

Trevor,

thank you very much for the explanations. I already tried
fiddling around with the line-break-system-details,
and I am very happy that this level of control is finally
possible, but I think it is not the right thing for this
project in particular, because:

- My Score has 40 voices (Tallis, Spem in alium),
  so I have to specify the position of each of the 40
  Staves plus the Lyrics "Staves".

- My score has approx. 25 linebreaks (pagebreaks, actually,
  there are no real linebreaks), so this means I have to
  specify the positions of the Staves for every page:
  about 1000 times for the whole score.

What I need is some setting that says:
"This Staff (or Lyrics Line) is XYZ high. Always. Period."

Any suggestions for a solution or workaround?

Hi Robert,

If you could define the alignment-offsets pair in
line-break-system-details one time (instead of 25 times) would that
work?

That would mean typing forty (or eighty?) numerical values by hand ...
but only once.

If that's a valid possibility, then you can override the
NonMusicalPaperColumn grob globally for the entire Score. Score-global
overrides live in one of two possible place -- either in the \with
block to the Score or else in a \context block for the Score (which,
in turn, lives in a \layout block). So, for example:

%%% BEGIN SCORE-GLOBAL %%%

\version "2.11.18"

\new Score \with {
  \override NonMusicalPaperColumn
  #'line-break-system-details = #'((alignment-offsets . (0 40 80)))
} <<
  \new Staff {
     \repeat unfold 4 { c'4 c'4 c'4 c'4 c'4 c'4 c'4 c'4 \pageBreak }
  }
  \new Staff {
     \repeat unfold 4 { c'4 c'4 c'4 c'4 c'4 c'4 c'4 c'4 \pageBreak }
  }
  \new Staff {
     \repeat unfold 4 { c'4 c'4 c'4 c'4 c'4 c'4 c'4 c'4 \pageBreak }
  }


%%% END %%%


Notice that each staff is at exactly the same vertical position on the
page, on each and every page. The will be true for lyrics. And you
only have to assign a value to alignment-offsets the one time.

If it's still a pain to type in 80 numeric values, perhaps just a call
to python's built-in range() function with the third, optional
argument for increment size?

range(0, 320, 4)
[0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68,
72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128,
132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184,
188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240,
244, 248, 252, 256, 260, 264, 268, 272, 276, 280, 284, 288, 292, 296,
300, 304, 308, 312, 316]

OTOH, if the vertical positions of the staves and lyrics changes from
page to page, this isn't the right strategy and looking at
VerticalAxisGroup is a good way to go.

Hope maybe this will help some.


--
Trevor Bača
address@hidden

reply via email to

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