lilypond-user
[Top][All Lists]
Advanced

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

Re: Time signatures above score, aligning short instrument names


From: Jean Abou Samra
Subject: Re: Time signatures above score, aligning short instrument names
Date: Tue, 8 Nov 2022 20:59:23 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1

Le 08/11/2022 à 14:13, Nate Whetsell a écrit :
I’ve noticed two issues with this. First, the above-score time signatures are usually centered over bar lines, but not when a measure is preceded by a clef change. In this case, time signatures seem to be placed before the new clef rather than centered over the following bar line. Second, when a new time signature occurs at the end of a page, it seems to be centered on the right margin. In the case of compound meters, this can cause the time signature to extend off the page. I’ve tried setting break-align-orders (https://lilypond.org/doc/v2.23/Documentation/internals/break_002dalignment_002dinterface) and space-alist to fix this (https://lilypond.org/doc/v2.23/Documentation/internals/timesignature), but nothing seems to have an effect.



For this one, try:



\version "2.23.80"

time-signatures = {
  \time 2/4
  s2 | \noBreak
  \time 3/4
  s2. | \noBreak
  \time 4/4
  s1 |
  \break
  \pageBreak
  \compoundMeter #'((1 1 3 4))
  s1*5/4 |
}

\layout {
  \numericTimeSignature
  \context {
    \Staff
    \override InstrumentName.self-alignment-X = #RIGHT
  }
  \context {
    \Score
    \consists
      #(lambda (context)
         (let ((time-sigs '())
               (break-alignment #f))
           (make-engraver
             (acknowledgers
              ((time-signature-interface engraver grob source-engraver)
               (when (not (ly:grob-property grob 'break-align-symbol #f))
                 (set! time-sigs (cons grob time-sigs))))
              ((break-alignment-interface engraver grob source-engraver)
               (set! break-alignment grob)))
             ((stop-translation-timestep engraver)
              (when break-alignment
                (for-each
                 (lambda (sig)
                   (ly:grob-set-parent! sig X break-alignment))
                 time-sigs))
              (set! time-sigs '())
              (set! break-alignment #f)))))
    \override TimeSignature.break-align-anchor =
      #ly:break-aligned-interface::calc-extent-aligned-anchor
    \override TimeSignature.break-align-anchor-alignment = #CENTER
  }
}

\paper {
  short-indent = 0.5\in
  left-margin = 0.5\in
}

\score {
  <<
    \new Dynamics \with {
      \consists Time_signature_engraver
      \override TimeSignature.break-align-symbol = ##f
      \override TimeSignature.font-size = #5
      \override TimeSignature.self-alignment-X = #CENTER
      \override TimeSignature.X-offset =
        #self-alignment-interface::self-aligned-on-breakable
      \override TimeSignature.break-align-symbols =
        #'(staff-bar time-signature)
    } {
      \time-signatures
    }

    \new Staff \with {
      instrumentName = "Instruments"
      shortInstrumentName = \markup {
        \override #'(baseline-skip . 2.5)
        \fill-line
        {
          \lower #1.25 "Ins."
          \right-column { "1" "2" }
        }
      }
    } \relative {
      \clef "bass"
      c16 d e f g a b c |
      \clef "treble"
      c16 d e f g a b c d e f g |
      c,,16 d e f g a b c d e f g a b c d |
      c,,16 d e f g a b c d e f g a b c d e f g a |
    }
  >>
}



Best,
Jean

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

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