lilypond-devel
[Top][All Lists]
Advanced

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

Re: Did VerticalAxisGroup default-staff-staff-spacing stop respecting pa


From: Trevor Bača
Subject: Re: Did VerticalAxisGroup default-staff-staff-spacing stop respecting padding in 2.17.10?
Date: Fri, 8 Feb 2013 09:12:00 -0500




On Fri, Feb 8, 2013 at 2:45 AM, Keith OHara <address@hidden> wrote:
On Thu, 07 Feb 2013 20:56:06 -0800, Trevor Bača <address@hidden> wrote:

On Thu, Feb 7, 2013 at 2:02 PM, Keith OHara <address@hidden> wrote:

Trevor Bača <trevorbaca <at> gmail.com> writes:

> Did VerticalAxisGroup's default-staff-staff-spacing property stop
> respecting the 'padding' attribute between 2.17.9 and 2.17.10?
>
> I ask because I use a custom time signature context in my scores.

No, padding still works.  The latest LilyPond misunderstood what you
want with the zero-dimension TimeSignature.


Good point. I set zero-extent time signatures so that the notes in the
score will be positioned exactly where they are supposed to begin when
proportional notation is turned on. (You can see this in the small PNGs
sent along with the original post.) With nonzero-extent time signatures we
wind up with notes being pushed slightly to the right of where they should
begin in order to accommodate the X-extent of time signatures that come
between notes.

Other than that there's no particular allure to the zero-extent time
signatures: they're just the mechanism I was best able to use to achieve
the precision of horizontal layout. Quite happy to solve the problem a
different way if some newer mechanism is recommended.


Probably you should adjust your solution, because Mike's next patch completely removes lines of music that have only zero-size extents.

If I comment out the following four overrides, the output looks correct to me.

% \override TimeSignature #'X-extent = #'(0 . 0)
% \override TimeSignature #'Y-extent = #'(0 . 0)
% \override TimeSignature #'self-alignment-X = #center
% \override VerticalAxisGroup #'staff-staff-spacing =
%     #'((basic-distance . 8) (minimum-distance . 8) (padding . 6) (stretchability . 0))

Notice that basic-distance, etc., take hyphens where you had underscores (and there are no error messages for typos when setting these low-level options).

If it is important for the bar line to be close to the following note, maybe something like
   \override TimeSignature #'X-extent = #'(0 . 0.1)


Hi Keith,

These are very helpful, indeed. Thank you so much for taking a look at the collection of settings. Taking these as a starting point I find that these adjustments ...

\override TimeSignature #'X-extent = #'(0 . 0.1)   % <=== following your trick of a small dummy distance
% \override TimeSignature #'Y-extent = #'(0 . 0)
% \override TimeSignature #'self-alignment-X = #center

... recoup the original layout.

So this is good.

I also find that ...

\override VerticalAxisGroup #'staff-staff-spacing =
     #'((basic-distance . 0) (minimum-distance . 10) (padding . 6) (stretchability . 0))

... works again with the new settings so that I'm once again able to vertically position the time signature context exactly where I want it.

Also, when you write that "that basic-distance, etc., take hyphens where you had underscores (and there are no error messages for typos when setting these low-level options)" I feel like I may be losing my mind because it looks on my end like the underscore-formatted versions of the options work just fine (under both 2.17.9 and 2.17.11). Could this in fact be the case? But are the hyphen-formatted versions to be preferred? Perhaps as part of the increasing regularization of the syntax that's taking place globally?

Reflecting a bit, it seems like \override TimeSignature #'X-extent = #'(0 . 0.1) is ever so slightly a bit of a hack because we're using distance as a type of boolean flag. I'm quite happy with whatever set of solutions emerge and I don't mean to create extra work for anyone (certainly not Mike as he continues to improve spacing; I love spacing improvements). Maybe an explicit flag like \override TimeSignature #'no-X-extent = ##t might be the clearest way to model what we're actually doing here: just ask the user to signal her or his intentions directly to the spacing engine.

Thanks again.

Trevor.





--
Trevor Bača
address@hidden

reply via email to

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