|
From: | Mats Bengtsson |
Subject: | Re: docs about Rest vertical position |
Date: | Sat, 3 Sep 2022 12:44:58 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 |
A little more context:“To explicitly specify a rest’s vertical position, write a note followed by \rest.” While this is a useful thing to know about, I don't personally believe it's a best practice: it mixes content with presentation, it doesn't play well with \transpose, etc.Consider, for example, the following two snippets: \transpose c f \voices 1,2 << { \tweak Y-offset 1 r8 b e' d' } \\ { g16^1 f^2 g a }\transpose c f \voices 1,2 << { c''8\rest b e' d' } \\ { g16^1 f^2 g a }
What I miss in the discussion here is the user interface aspect
and the ease of use. At least for a less experienced LilyPond
user, the c''8\rest has a very intuitive meaning of "a rest placed
where you would place the c''", whereas \tweak as a general
concept requires much more higher level of LilyPond competence and
even if you do pattern matching, you have to figure out what the
argument 1 means, what the unit is and if positive or negative
values are up or down.
If I'm not completely mistaken, the original reason to introduce
the \rest syntax was to avoid having to use
\override Rest.staff-position = #3 r8
which was the standard solution recommended at that time (this was
long before \tweak and \once was invented), and which required
figuring out what numeric value of staff position corresponded to
the desired vertical position (which conceptually is more
demanding than specifying a pitch).
As has already been discussed, there are both pros and cons of
letting the rest vertical position follow a possible transposition
and there may be situations where tweaking staff-position may be
better suited than Y-offset (which is relative to the position
that LilyPond thinks is the best, depending on Voice settings and
possible collision avoidance).
So, I'm not entirely positive to the proposal.
/Mats
[Prev in Thread] | Current Thread | [Next in Thread] |