lilypond-user
[Top][All Lists]
Advanced

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

Re: Graphical rallentendo


From: Lukas-Fabian Moser
Subject: Re: Graphical rallentendo
Date: Wed, 2 Feb 2022 13:36:39 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0

Hi Jacques,

Is there a more natural way of obtaining this result than with a sequence of shorter and shorter skips?

The following seems to work here:

\version "2.23.5"

\relative c''' {
  \time 6/8
  <<
    {
      g8 ^\markup {\italic "rit." }  g4  g8
      g4  | % 16
      c8 [  bes8 (  g8 )
      e8 (  c8 )  bes8 _\laissezVibrer ]
    }
    {
      \once\override TextSpanner.style = #'trill % wave zigzag
      \once\override TextSpanner.minimum-length = #8
      \once\override TextSpanner.Y-offset = #-4
      \once\override TextSpanner.springs-and-rods = #ly:spanner::set-spacing-rods
      { <> \startTextSpan s2.*2 <> \stopTextSpan }
    }
  >>

}

If you want the stopTextSpan to happen before the next bar starts, feel free to replace *2 in s2.*2 by a fraction slightly less than 2, for example 127/64.

In general, I never liked the technique of attaching events that occur at the start of a timestep to spacer rests, and I already changed this in the documentation at some points I think: To  me,

s2\f s2\> s1\p

always reads as "before skipping 2, put a \f; then, before skipping another 2, start a diminuendo; then, before skipping a 1, put a \p" which feels like mental roller coaster. It seems much more natural to do

<>\f s2 <>\> s2 <>\p

allowing us to read in the natural order: put a \f, then skip 2, then start a diminuendo, etc.

And of course, with recent development versions, you can even do

<>\f \after 2 \> \after 1 \p s1*2

or something like that.

Lukas




reply via email to

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