lilypond-user
[Top][All Lists]
Advanced

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

Problems defining markup function to draw lines.


From: Mike Stickles
Subject: Problems defining markup function to draw lines.
Date: Fri, 21 Dec 2018 23:15:03 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3

Our choir has developed some "in-house" markings which I'm trying to replicate in LilyPond. One is the use of a double slash to visually indicate the last section of a piece when the musical pattern changes for that last part.

I can replicate that by using a markup like the following:

a2^\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \path #0.3 #'((moveto 5 -2) (lineto 7 2) (moveto 6 -2) (lineto 8 2)) }

However, when the note I'm using is above the staff, I need to move the Y-coordinates down, and sometimes there's a need to shift the slashes closer to or further away from the note. So I'm trying to set up a markup function to handle this, so I can just annotate the note as:

a2^\markup \double-slash #5 #-2

But I can't seem to get the syntax correct. If I leave the arguments as dummy args, this works:

#(define-markup-command (double-box layout props xoff yoff) (number? number?)
  (interpret-markup layout props
    #{
        \markup {
            \with-dimensions #'(0 . 0) #'(0 . 0)
            \path #0.3 #'((moveto 5 -2) (lineto 7 2) (moveto 6 -2) (lineto 8 2))
        }
    #}
))

But when I try to implement the numbers, I get errors no matter what I do. This (while it doesn't work) shows what I'm trying to get to:

#(define-markup-command (double-box layout props xoff yoff) (number? number?)
  (interpret-markup layout props
    #{
        \markup {
            \with-dimensions #'(0 . 0) #'(0 . 0)
            \path #0.3 #'(
(moveto xoff yoff) (lineto (+ xoff 2) (+ yoff 4)) (moveto (+ xoff 1) yoff) (lineto (+ xoff 3) (+ yoff 4)))
        }
    #}
))


Any ideas on what I'm doing wrong?


- Mike

reply via email to

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