"Neil Puttock" <n.putt...@gmail.com> wrote in message news:7ca3d5a31003091419j783edee8u605d288b86d61...@mail.gmail.com...
On 7 March 2010 22:21, Jay Anderson <horndud...@gmail.com> wrote:
> On Fri, Mar 5, 2010 at 10:31 PM, Jay Anderson <horndud...@gmail.com> > wrote:
>> \version "2.13.15"
>> \new RhythmicStaff
>> {
>> %\override Staff.MultiMeasureRest #'extra-offset = #'(0 . -1)
>> R1
>> }
>
> Of course this doesn't quite work because all multi measure rests are
> moved and not just single whole measure rests.
>
> I've been messing with this:
>
> \override Staff.MultiMeasureRest #'extra-offset =
> #(lambda (grob)
> '(0 . -1))
>
> I only want to return '(0 . -1) if the multi measure rest length is
> the same as the length of a full bar. To get at the measure length I
> need to do something like (ly:context-property context 'measureLength
> #f). How can I get at the context from a callback function like the
> one above? or is there a better way to move all full measure rests
> down?

Try

\override RhythmicStaff.MultiMeasureRest #'staff-position = #0.01

There's a nasty hack in ly:multi-measure-rest::print which changes the
position of single full-bar rests if staff-position = #0 to ensure the
default position is effectively staff-position = #2; setting it very
slightly off tricks the code so it doesn't perform the shift.

> It's interesting to me that in this example the whole rest in the last
> measure works correctly:

That's because it uses a different print function (ly:rest::print).

Regards,
Neil

Documented here: http://lsr.dsi.unimi.it/LSR/Item?id=591

--
Phil Holmes
Bug Squad



_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to