[Top][All Lists]

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

Re: Merge_rests_engraver: fix vertical rest positions (issue 334740043 b

From: dak
Subject: Re: Merge_rests_engraver: fix vertical rest positions (issue 334740043 by address@hidden)
Date: Fri, 06 Oct 2017 02:39:11 -0700

On 2017/10/06 08:42:55, Malte Meyn wrote:
On 2017/10/06 08:19:46, dak wrote:
> Stupid question: is there no way to (re-)use the default callbacks
which know
> about all those little details?  Set `direction` to neutral and call
them for
> advice?

I’m not sure what you mean: Don’t do anything to Y-offset or
staff-position but
set direction to CENTER?

I mean exactly what I say: set direction to CENTER (if this would
otherwise cause problems, temporarily) and call the original callback in
order to determine staff-position.

As it stands, it would seem like there is a tedious reprogramming of the
staff-position callback that is as hard to get right as the original
was, so why not use the original?

This seems to work for MMRs but for Rests it gives
warnings of the type
         warning: cannot resolve rest collision: rest direction not set

Suiciding one of the rests likely would not go well with articulations
placed on it (though those still need some sort of merging with the
other?) but would seem like the easiest way out.

Of course it would be nice if you wouldn’t have to \override
staff-position for
both Rests and MMRs in the engraver because this prohibits a manual
\override by
the user. But there’s this little inconsistency:

The staff-position callback (if any) may already have been replaced by a
cached value: when I talk about the "original callback" I was rather
suggesting calling the respective function directly rather than through
the grob.

Setting "direction" to 0 would just be an expedient to creating a copy
of the grob with direction set to 0 in order to be able to use that
callback function.  It doesn't seem like this should be causing a
problem, but if it does, one can still reset direction afterwards again.

reply via email to

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