lilypond-user
[Top][All Lists]
Advanced

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

Re: Concatenating LilyPond scores with different staff sizes.


From: Abraham Lee
Subject: Re: Concatenating LilyPond scores with different staff sizes.
Date: Wed, 9 Feb 2022 09:42:05 -0700

Hey, Richard!

On Wed, Feb 9, 2022 at 9:13 AM Richard Shann <richard@rshann.plus.com> wrote:
On Wed, 2022-02-09 at 13:00 +0000, Valentin Petzel wrote:
> Hello Richard,
>
> I do not like to say such things, but read the docs:
> http://lilypond.org/doc/v2.23/Documentation/notation/setting-the-staff-size
>
> set-global-staff-size is by definition used to set the staffsize
> globally. For affecting one specific score you want to use layout-
> set-staff-size.

I perhaps should have given details of my experimentations with this.
It seems that the terminology here is confusing - the set-global-staff-
size is *not* equivalent to layout-set-staff-size on each score block
as the following shows:

\version "2.22.0"
%#(set-global-staff-size 44)
\score {
  \layout {
      #(layout-set-staff-size 44)
    }
  {e f g a}}

Commenting and un-commenting the set-global-staff-size shows that they
are different, and indeed I'm not quite sure what the use-case is for
the layout-set-staff-size, it distorts the placement of clefs/time
signatures.
I was hoping there might be a set of settings which could be used to do
what set-global-staff-size does on each score block...

Richard

>
> Cheers,
> Valentin
>
> 09.02.2022 13:04:16 Richard Shann <richard@rshann.plus.com>:
>
> > To create a single PDF of a full score and parts it is convenient
> > in
> > Denemo to simply concatenate the LilyPond; something like this:
> >
> > \version "2.22.0"
> > #(set-global-staff-size 20)
> > \markup "First"
> > { c d e}
> > #(set-global-staff-size 10)
> > \markup "Second"
> > {e f g}
> >
> > This runs into the problem that the full score is often needed at a
> > smaller font size and in the above code the last set-global-staff-
> > size
> > is, naturally, the one used for both \score{}s.
> >
> > I realize it may be a long shot, and a bit esoteric, but is there
> > any
> > way something like that could be achieved? (I'm not seeking
> > radically
> > different approaches here as this won't be hand-written).
> >
> > Richard Shann

 In my own experimentation, there's no convenient way to get what you want in the same output file. The last call to set-global-staff-size affects the current \book. You can then re-call the command if you explicitly callout another \book after that, but that generates a separate output file for each \book block. I'm not sure why this doesn't work within the same \book. 

Here's an example that shows what I mean:

#(set-global-staff-size 26)
\book {
  \markup "First"
  \score { \relative { c d e } }
}

#(set-global-staff-size 14)
\book {
  \markup "Second"
  \score { \relative { e f g } }
}

Sorry this isn't exactly what you want, but maybe this will spawn some development to make multiple calls to set-global-staff-size work within the same \book.

Best,
Abraham

reply via email to

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