Thanks Mats and Nicolas !!! That works perfect... thanx for the tip on \displayMusic... I will be using it more often ;-)
cheers, pietro On 8/11/06, Nicolas Sceaux <[EMAIL PROTECTED]> wrote:
Mats Bengtsson <[EMAIL PROTECTED]> writes: > Pietro Casella wrote: > >> Hi all, >> >> I'm trying to create something like this: >> >> blankbar = #(define-music-function (parser location x) (number?) >> #{ >> \repeat unfold $x {s1} >> #}) >> >> \blankbar #56 > I'm afraid you have hit a limitation in the use of #{...#}. My > recommendation > is to change to plan B, which is described in the section on "Building > complicated > functions" in the manual for version 2.9.x. Some more explanations: #{ \repeat unfold $x {s1} #} is equivalent to: x=#3 \repeat unfold \x {s1} which, if you try it, causes the syntax error you reported. So, as Mats said, you have to do otherwise, but that's not too difficult in that case. \displayMusic \repeat unfold 3 {s1} ==> (make-music 'UnfoldedRepeatedMusic 'elements '() 'repeat-count 3 'element (make-music 'SequentialMusic 'elements (list (make-music 'EventChord 'elements (list (make-music 'SkipEvent 'duration (ly:make-duration 0 0 1 1))))))) Search the "3" in the above expression: that's where you'll put the x argument of your music function. You can even change the: (make-music 'SequentialMusic 'elements (list (make-music 'EventChord 'elements (list (make-music 'SkipEvent 'duration (ly:make-duration 0 0 1 1)))))) part with #{ s1 #} (which is what it means) to make the expression shorter. blankbar = #(define-music-function (parser location x) (number?) (make-music 'UnfoldedRepeatedMusic 'elements '() 'repeat-count x 'element #{ s1 #})) \blankbar #56 simple! nicolas
-- Pietro Casella | + 351 91 60 60 339 _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user