2008/2/13, Reinhold Kainhofer <[EMAIL PROTECTED]>: > Hi all, > > In the large vocal and orchestral piece that I'm currently typesetting, I have > lots of score and staff definitions, which look exactly the same, except for > the variable names. Thus it would make tremendous sense to not hard-code > them, but generate them on the fly by some scheme function. Unfortunately, > all my attempts so far have failed... > > > In particular, what is the scheme equivalent, producing the same as the > following lilypond code? > > IChorObIScore = \score { > << \IChorObIStaff >> > \header { piece = \IChorPieceName } > } > > I simply want a scheme function "generate-intrument-score piece instr", which > I would then call as > \generate-instrument-score #"IChor" #"ObI" > > Tha scheme function would then use > (string->symbol (string-concat piece instr #"Staff")) > to generate \IChorObIStaff and (eval (string->symbol....)) to insert the > definition of \IChorObIStaff. So, basically, all I need is how to generate > the \score { <<...>> } in scheme.
You have to use the scheme bindings. There is a ly:make-score function. 2.11.40 adds a ly:score-add-output-def function that will allow you define a piece of music > generate-score = #(define-music-function (parser location piece instr) > (string string) > #{ > \score { IIRC #{ can only contains music expressions. > << #(eval (string->symbol (string-append piece instr #"Staff"))) >> Inside scheme the # before a string is not necessary. -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user