Am 31. Dezember 2006, 15:23 Uhr (+1100) schrieb Brett Duncan:
> 
> But when I put
> 
>    \compFor #16
> 
> into my .ly file, the following error occurs:
> 
> syntax error, unexpected NUMBER_IDENTIFIER, expecting DIGIT or UNSIGNED
>            \repeat "unfold"
>                                         \lilyvartmpb { r4 }
> 
> 
> Can someone point out to me where I'm going wrong?

I don't know the exact reason but somehow the expansion into a scheme
construct doesn't work for variables in the \repeat "unfold" construct
(the parser expects a number but obviously doesn't resolve the $beats
before seeing it).

You can get it done this way: Look at the expansion of your function
with \displayMusic after replacing the variable with a real number (to
avoid the error) and then use the output of lilypond for defining your
music-function:

compFor = #(define-music-function (parser location beats) (number?)
       #{                                                          
           \override Rest #'stencil =
#ly:percent-repeat-item-interface::beat-slash
           \override Rest #'thickness = #'0.48
           \override Rest #'slope = #'1.7

           \repeat "unfold" 16 { r4 }

           \revert Rest #'stencil
       #})                       

\displayMusic
\compFor #16

----------------------------------- 

In the output of lilypond, you replace the "16" with the variable name
"beats" and copy that into the definition of your music function. It's
not really convenient and there's probably another way to get it done,
but at least it works.

-----------------------------------
The result is like this (and that works as expected):

\version "2.11.2"

compFor = #(define-music-function (parser location beats) (number?)
            (make-music
             'SequentialMusic
             'elements
             (list (make-music
                    'ContextSpeccedMusic
                    'context-type
                    'Bottom
                    'element
                    (make-music
                     'OverrideProperty
                     'pop-first
                     #t
                     'grob-property-path
                     (list (quote stencil))
                     'grob-value
                     ly:percent-repeat-item-interface::beat-slash
                     'symbol
                     'Rest))
              (make-music
               'ContextSpeccedMusic
               'context-type
               'Bottom
               'element
               (make-music
                'OverrideProperty
                'pop-first
                #t
                'grob-property-path
                (list (quote thickness))
                'grob-value
                0.48
                'symbol
                'Rest))
              (make-music
               'ContextSpeccedMusic
               'context-type
               'Bottom
               'element
               (make-music
                'OverrideProperty
                'pop-first
                #t
                'grob-property-path
                (list (quote slope))
                'grob-value
                1.7
                'symbol
                'Rest))
              (make-music
               'UnfoldedRepeatedMusic
               'elements
               '()
               'repeat-count
               beats
               'element
               (make-music
                'SequentialMusic
                'elements
                (list (make-music
                       'EventChord
                       'elements
                       (list (make-music
                              'RestEvent
                              'duration
                              (ly:make-duration 2 0 1 1)))))))
              (make-music
               'ContextSpeccedMusic
               'context-type
               'Bottom
               'element
               (make-music
                'RevertProperty
                'grob-property-path
                (list (quote stencil))
                'symbol
                'Rest)))))


   \compFor #16


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

Reply via email to