[Top][All Lists]

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

Re: Getting width of markup in a music function

From: Nathan Reed
Subject: Re: Getting width of markup in a music function
Date: Fri, 21 May 2010 21:37:27 -0700

On Mon, May 17, 2010 at 3:58 PM, Neil Puttock <address@hidden> wrote:
Try this instead:

\override MultiMeasureRestText #'springs-and-rods =

> Using a multi-measure rest
> also seems to make the fermata appear off-center to the left of the rest, in
> many cases.

This shouldn't happen if you're using a MultiMeasureTextEvent to
create the fermata.  You just need to add both the text and fermata as
'articulations instead of 'elements.

Thanks; with these suggestions I was able to get the MultiMeasureTextEvent to work right (viz. displaying the text, with the text taking its full width and the fermata centered over the rest).  It seems to help in some instances, but in others the issue of the rehearsal mark getting pushed up still occurs.

So we're all on the same page, my code currently looks like:

narration =
#(define-music-function (parser location rest text1 text2)
                        (ly:music? string? string?)
    (let (
                    'direction 1
                    'tweaks    (list
                                '(baseline-skip . 2))                ; Fix line spacing for text
                    'text    (markup
                                #:column (
                                    #:teeny #:center-align text1
                                    #:teeny #:center-align text2
                                    #:normalsize #:center-align #:musicglyph "scripts.ufermata" ))))
            (result (ly:music-deep-copy rest)))
        (set! (ly:music-property result 'articulations)
            (cons text-event (ly:music-property rest 'articulations)))
            \once\override MultiMeasureRestText #'springs-and-rods = #ly:multi-measure-rest::set-text-rods
        #} ))

and I'm now calling it with R1 for 'rest' instead of r1.

Nathan Reed

reply via email to

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