lilypond-user
[Top][All Lists]
Advanced

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

Tempo Alignment Questions


From: Jay Anderson
Subject: Tempo Alignment Questions
Date: Sat, 13 Jan 2018 21:34:22 -0700

I'm unable to find them at the moment, but I've seen threads discussing general overrides for tempo marks to make them work better (e.g. avoid stacking, better horizontal alignment with other objects). What are the current recommend overrides that you use to get better tempo behavior? The suggestion from Gould is:
- Align with the time signature
- If no time signature then align with the first notation element (that's not the starting clef or key signature)

Here are some things I'm looking to solve:

(1) Align with repeat sign at the beginning of a system. I haven't found the right overrides to make that work.

=====
\version "2.19.80"
\score {
  \new Staff \transpose c c' {
    c1 | \break

    %RehearsalMarks align where the tempo should in this case
    \override Score.RehearsalMark.self-alignment-X = #LEFT
    \mark "RehearsalMark"

    %Not sure how to make MetronomeMarks align. Here's what I've tried:
    \override Score.MetronomeMark.break-align-symbols = #'(staff-bar)
    \override Score.MetronomeMark.non-break-align-symbols = #'()
    \tempo "MetronomeMark"

    \repeat volta 2 { c1 |}
  }
}
=====

(2) Align with accidentals. The default lilypond behavior is to align with the notehead. Like the above I haven't found the right overrides to make this work.

=====
\score {
  \new Staff \transpose c c' {
    cis1 |
    %Not sure how to make MetronomeMarks align. Here's what I've tried:
    \override Score.MetronomeMark.non-break-align-symbols = #'(accidental-interface)
    \tempo "Accidental Alignment"

    cis1 |
  }
}
=====

(3) Alignment with multimeasure rests. I haven't found any definitive source for how these should behave. It isn't addressed directly in Gould though there are some examples on page 565 where they appear to be just to the left of the bar line. Lilypond does this mostly, but it leaves more horizontal space between the bar line and the start of the tempo than I'd like.

\override Score.MetronomeMark.non-break-align-symbols = #'(paper-column-interface multi-measure-rest-interface)

The above is very close except after a break the tempo indication left aligns with the left edge of the system instead of right after the clef. I'm not sure how to fix that.

=====
\score {
  \new Staff \transpose c c' {
    \compressFullBarRests
    \markLengthOn
    \override Score.MetronomeMark.non-break-align-symbols = #'(paper-column-interface multi-measure-rest-interface)
    \tempo "Somewhat long tempo"
    R1*20 |
    % Align to bar line
    \tempo "Another long tempo"
    c1 | \noBreak
    R1*20 |
    %Misaligned after break
    \tempo "Yet another long tempo"
    R1*20 |
    \tempo "Final long tempo"
    R1*20 |
    \markLengthOff
  }
}
=====

In conjunction with the above, to nudge it slight to the left of the bar line with multi measure rests the override below seems to work well and I like it better than directly aligning with the bar.

=====
#(define (is-bar-aligned grob)
  (and (grob::has-interface grob 'break-aligned-interface)
    (eqv? 'staff-bar (ly:grob-property grob 'break-align-symbol))))

#(define (callback mm)
  (let ((parent (ly:grob-parent mm X)))
    (if (is-bar-aligned parent)
      '(1 . 0)
      '(0 . 0))))

...

\override Score.MetronomeMark.extra-offset = #callback
=====

(4) Alignment after rehearsal marks. My preference here would be to have the rehearsal mark followed by tempo mark instead of stacking. Most of the time this isn't a big problem. However when music gets a bit compressed they stack (even using \markLengthOn). Also if I manage to make the above (3) work for alignment with multimeasure rests this will also occur. This would be worth thinking about after the above.

Any suggestions for the above would be welcome. Thanks.

-----Jay

reply via email to

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