lilypond-user
[Top][All Lists]
Advanced

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

Re: \bookparts and scaling


From: Flaming Hakama by Elaine
Subject: Re: \bookparts and scaling
Date: Thu, 28 Jun 2018 12:15:30 -0700


On Thu, Jun 28, 2018 at 11:32 AM Karlin High <address@hidden> wrote:
On 6/27/2018 4:57 PM, address@hidden wrote:
> It could help if we knew what #(set-global-staff-size) does exactly.
> It's not in the manual or at least I couldn't find it.

I've watched people on the list refer to the source code when manuals
failed them. I'm not as skilled as those people, but here goes. This is
only an attempt to locate the code, with little expectations of
understanding it. I don't know Scheme very well at all.

In my LilyDev VM, I run the command...

git grep set-global-staff-size

...and it finds lots of instances where the command is being used in
documentation and such, instead of where it's defined. But this file
looks promising for the definition:

$LILYPOND_GIT/scm/paper.scm
106 (define-safe-public (set-global-staff-size sz)
107 "Set the default staff size, where SZ is thought to be in PT."

The code following those lines seems to refer to this one:

69 (define-public (layout-set-absolute-staff-size-in-module module staff-height)

That one does not seem to have any comments with explanations for it.

[CAUTION: Now entering cargo-cult mode]

Based on how that layout-set-absolute-staff-size-in-module seems set up,
it does look like adding this to each \bookpart \score block will
change their staff sizes individually.

    \layout {
      #(layout-set-absolute-staff-size-in-module
        (current-module) (* 10 (eval 'pt (current-module))))
    }

The value 10 could be set to other values as desired. To show how it's
working, I modified the example posted by Torsten Hämmerle at
<http://lists.gnu.org/archive/html/lilypond-user/2018-06/msg00572.html>
and attached the source code and resulting pdf.

Again, this is total cargo-cult code, awaiting corrections or
contra-advice from LilyPond experts. And I'm sure there's a way to
properly format this code at the beginning of the LY file to pass a
value to it and avoid having to re-enter the whole thing each time.
--
Karlin High
Missouri, USA


The staff sizing commands are described in the docs:
http://lilypond.org/doc/v2.19/Documentation/notation/setting-the-staff-size

Which says:  To set the staff size globally for all scores in a file (or in a \book block, to be precise), use set-global-staff-size

From what I recall on list discussion, you can't re-set this once it has been set (and expect things to work.)  Which is to say, it is a global setting, so it is not a per-staff/per-staffgroup/per-score/etc, but once and done.

I was unfamiliar with the next one, which might do the trick:

To set the staff size for a single score within a book, use layout-set-staff-size inside that score’s \layout block:
\score {
  …
  \layout {
    #(layout-set-staff-size 14)
  }
}

And then there's the magnify-staff approach I mentioned, which is described as being used to set the staff size for a single staff within a system.


HTH,

Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
address@hidden
Producer ~ Composer ~ Instrumentalist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 

reply via email to

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