lilypond-user
[Top][All Lists]
Advanced

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

Re: Span barlines on different sized staves


From: Thomas Morley
Subject: Re: Span barlines on different sized staves
Date: Mon, 21 Sep 2020 21:21:44 +0200

Am Mo., 21. Sept. 2020 um 15:55 Uhr schrieb Leo Correia de Verdier
<leo.correia.de.verdier@gmail.com>:
>
> I have the following situation:
>
> \version "2.20.0"
> \new StaffGroup
> << \new Staff \with { \magnifyStaff #2/3 }
>    {c''1 \bar "|."}
>    \new Staff
>    {c'1 \bar "|.”} >>
>
> Where the bars on the different sized staves have different thicknesses 
> according to their staff size. How would be the best way to get them all to 
> the thickness of bar on the larger staff and aligned?
>
> Thanks a lot!
> /Leo

\magnifyStaff changes BarLine-properties of its Staff, but not Score-wide.

Thus, I never use it. Instead I always work with staffSize from
http://lsr.di.unimi.it/LSR/Item?id=862

staffSize = #(define-music-function (new-size) (number?)
  #{
    \set fontSize = #new-size
    \override StaffSymbol.staff-space = #(magstep new-size)
    \override StaffSymbol.thickness = #(magstep new-size)
  #})

\new StaffGroup
<< \new Staff \with { \staffSize #-4 }
   { c''1 \bar "|." }
   \new Staff
   { c'1 \bar "|." } >>


Alternatively you could try:

magnifyStaff =
#(define-music-function (mag) (positive?)
   (_i "Change the size of the staff, adjusting notation size and
horizontal spacing automatically, using @var{mag} as a size factor.")

   ;; these props are NOT allowed to shrink below default size
   (define unshrinkable-props
     '((StaffSymbol thickness)))

   ;; these props ARE allowed to shrink below default size
   (define shrinkable-props
     (let* ((baseline-skip-props
              (find-named-props 'baseline-skip all-grob-descriptions))
            (word-space-props
              (find-named-props 'word-space all-grob-descriptions))
            (space-alist-props
              (find-named-props 'space-alist all-grob-descriptions)))
       (append
         baseline-skip-props
         word-space-props
         space-alist-props
         '(
           ;; override at the 'Score level
           (SpacingSpanner spacing-increment)

           (StaffSymbol staff-space)
           ;(BarLine kern)
           ;(BarLine segno-kern)
           ;(BarLine hair-thickness)
           ;(BarLine thick-thickness)
           (Stem beamlet-default-length)
           (Stem double-stem-separation)
           ))))

   #{
     \stopStaff

     %% revert settings from last time
     %% (but only if \magnifyStaff has already been used
     %% and the staff magnification is changing)
     #(revert-fontSize 'magnifyStaff mag)
     #(revert-props    'magnifyStaff mag (append unshrinkable-props
                                                 shrinkable-props))

     %% scale settings
     %% (but only if staff magnification is changing
     %% and does not equal 1)
     #(scale-fontSize 'magnifyStaff mag)
     #(scale-props    'magnifyStaff mag #f unshrinkable-props)
     #(scale-props    'magnifyStaff mag #t shrinkable-props)

     %% this might cause problems until Issue 3990 is fixed
     \newSpacingSection

     \startStaff
     \set Staff.magnifyStaffValue = #mag
   #})

where I commented affecting BarLines.

Cheers,
  Harm



reply via email to

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