lilypond-user
[Top][All Lists]
Advanced

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

Scoping problem in define-music-function


From: Marc Hohl
Subject: Scoping problem in define-music-function
Date: Mon, 27 Sep 2010 10:28:53 +0200
User-agent: Thunderbird 2.0.0.24 (X11/20100317)

Hello list,

thanks to Reinhold Kainhofer and Wilbert Berendsen I managed to get a callback with an
additional argument.

Now I want to write a music function like this:

myFunction = #(define-music-function parser location fret music) (string? ly:music?)
 (let (( ... some expressions ... ))

 #{
    \override TabNoteHead #'stencil = #(my-special-callback fret)
 #}
 (..some more scheme stuff working on music...)
 #{
    \revert TabNoteHead #'stencil
 #}
))

but lilypond complains with

<string>:2:46: Fehler: GUILE signalisierte einen Fehler für den hier beginnenden Ausdruck
   \override TabNoteHead #(quote stencil) = #
                                             (my-special-callback fret)
Unbound variable: fret

So fret is not known within #{ ... #}.

Is there a way to define the function in an appropriate way? It doesn't matter if the given variable fret is an argument to the music function or calculated within the let-block.

Thanks in advance

Marc




reply via email to

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