---------- Forwarded message ----------
From: Mats Bengtsson <[EMAIL PROTECTED]>
Date: 15 déc. 2006 15:31
Subject: Re: How to use ^markup in a scheme function?
To: Frédéric Chiasson <[EMAIL PROTECTED]>


I'm certainly not any expert in Scheme coding for LilyPond. Please
always keep the discussion on the mailing list, for the
benefit of yourself since you get access to the collected
expertise on the list and for the benefit of others who experience
similar problems.

  /Mats


Quoting Frédéric Chiasson <[EMAIL PROTECTED]>:

Thanks, at last I understood how to do it?

One problem left, I copied the code displayed for "\once \override
TextScript #'extra-offset = #$xy" to put it in the code of the Slash
function. The code is compiled without errors, but there is no offset
produced. Why? Do I use the right prefixes for xy?

Also it is possible to use both LilyPond and Scheme code like this?
(define-music-function (variables)
#{
   LilyPond code
#}
(Scheme code))

Thanks for all the help,

Fred

P.S. The code for the function :

Slash = #(define-music-function (parser location xy note)
           (pair? ly:music?)
           "Return a note with a slash at offset (x . y)"
           (make-music 'ContextSpeccedMusic 'context-type 'Bottom 'element
                 (make-music 'OverrideProperty 'pop-first #t
               'grob-property-path (list (quote extra-offset))
               'grob-value
'xy
           'once #t 'symbol 'TextScript))
           (let ((new-note (ly:music-deep-copy note)))
               (set! (ly:music-property new-note 'elements)
                     (cons (make-music 'TextScriptEvent
                             'direction 1 'text
                                   (markup #:line
                                   (#:musicglyph "flags.ugrace")))
                             (ly:music-property new-note 'elements)))
               new-note))



\version "2.11.1"

\relative {
\Slash #'(1.2 . -3.2) c4
}


2006/12/15, Mats Bengtsson <[EMAIL PROTECTED]>:

The reason is exactly the same as the reason that you cannot do
mynote = c
\score{{\mynote ^"text" }}
See the section on "Adding articulation to notes (example)" for more
information on how to solve the problem.

   /Mats

Frédéric Chiasson wrote:
> Hi,
>
> I tried to program a function to put a slash at a given offset on a
> note, but the line with the ^\markup doesn't work.
>
> Here is the code :
>
> Slash = #(define-music-function (parser location xy note)
>             (pair? ly:music?)
>             #{
>                 \once \override TextScript #'extra-offset = #$xy
>                 $note ^\markup{\musicglyph #"flags.ugrace"}
>             #})
>
>
> \version " 2.11.1"
>
> \relative {
>  \Slash #'(1.1 . -3.2) c4
> }
>
>
> Here are the errors :
>
> <string>:3:45: ERREUR : syntax error, unexpected '^'
>                 \lilyvartmpd
>                                              ^\markup{\musicglyph #"
> flags.ugrace"}
> <string>:3:54: ERREUR : cha^ine d''echappement inconnue (Unknown
> escape string): << \musicglyph >>
>                 \lilyvartmpd ^\markup{
>                                                       \musicglyph #"
> flags.ugrace"}
>
> Thanks,
>
> Frédéric
>
>
------------------------------------------------------------------------
>
> _______________________________________________
> lilypond-user mailing list
> lilypond-user@gnu.org
> http://lists.gnu.org/mailman/listinfo/lilypond-user
>

--
=============================================
        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Sweden
        Phone: (+46) 8 790 8463
        Fax:   (+46) 8 790 7260
        Email: [EMAIL PROTECTED]
        WWW: http://www.s3.kth.se/~mabe
=============================================



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

Reply via email to