lilypond-user
[Top][All Lists]
Advanced

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

Re: Dynamics offset suddenly changes


From: Aaron Hill
Subject: Re: Dynamics offset suddenly changes
Date: Mon, 25 Mar 2019 14:15:27 -0700
User-agent: Roundcube Webmail/1.3.8

On 2019-03-25 2:42 am, Andrew Bernard wrote:
Anybody?

I have tried experimenting with large values of \override
DynamicLineSpanner.staff-padding to no avail. I am stumped. Is it a bug?

While it may not be ideal, to me this is not a bug. DynamicLineSpanners behave differently when not started or terminated on the same note as a corresponding DynamicText. Because otherwise, the two dynamic items have no knowledge of each other and ultimately have to fend for themselves amongst the rest of the "outside-staff" items.

Even within a \Dynamics context it is not so much that items are aligned to each other but rather to a common reference point that just so happens to make it *look* like they know about each other.

Consider the following:

%%%%
\version "2.19.82"
\paper { indent = 0 line-width = 5\in ragged-right = ##f }
\layout { \omit Staff.TimeSignature }

test = {
  %% Overlay reference lines.
  \once \override Hairpin.stencil =
    #(grob-transformer 'stencil (lambda (grob orig)
      (grob-interpret-markup grob #{
        \markup \with-dimensions-from \stencil $orig \overlay {
          \with-color #(rgb-color 0.4 0.7 1.0)
          \path #0.2 #'((moveto -2 0) (lineto 66 0))
          \with-color #(rgb-color 1.0 0.4 0.7)
          \path #0.2 #'((moveto 0 0) (lineto 0 7) (moveto -2 7)
            (lineto 2 7) (moveto -1 5.5) (lineto 0 7) (lineto 1 5.5))
          \stencil $orig } #})))
  | g4\p\< g'2.\!
  | g4\p g4\< g'2\!
  | g4\p g'4\< g'2\!
  | g'2.\< g4\!\f
  | g'2\< g4\! g4\f
  | g'2\< g'4\! g4\f \break
}
{
  \test
  \override DynamicLineSpanner.minimum-space = #7
  \override DynamicLineSpanner.padding = #0
  \override DynamicLineSpanner.staff-padding = #0
  \test
}
%%%%

The first system demonstrates the default vertical alignment. Note that the only time the hairpins and dynamics line up "properly" is when they start and stop together.

The second system shows that by adjusting some variables you can essentially request all of the dynamic items to be a certain distance away from the staff. Note that this is simply a request, and that other "outside-staff" items can shift the final positioning.

At the end of the day, if you absolutely need perfect alignment, the \Dynamics context really is the way to go. Consider this usage:

%%%%
\version "2.19.82"
test = {
  | g4\p\< g'2.\! | g4\p g4\< g'2\! | g4\p g'4\< g'2\!
  | g'2.\< g4\!\f | g'2\< g4\! g4\f | g'2\< g'4\! g4\f
}
<<
  \new Staff \with { \omit Hairpin \omit DynamicText } \test
  \new Dynamics \test

%%%%

This is a cheap way to avoid duplicating effort on the \Dynamics context.

-- Aaron Hill

Attachment: dyn-offset.cropped.png
Description: PNG image


reply via email to

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