Am Samstag, 23. Februar 2008 schrieb Han-Wen Nienhuys: > 2008/2/21, Reinhold Kainhofer <[EMAIL PROTECTED]>: > > > \makeScore "Test" { c'4 d' e' f' g'1 } > > > > Dang, that looked so promising! > > It worked fine in all my tests, until I started switching my orchestral > > score to my own createscore function... The problem is that cue notes do > > not appear in the score!!! > > See scm/lily-library.scm , function scorify-music. You need to run > toplevel-music-functions over the music first. > > Without this, << \\ >> also doesn't work.
Thanks a lot! Simply replacing ly:make-score by scorify-music does the trick (although due to the need of the parser variable this cannot be used inside a define'd function returning the score, but only inside a void music function, which also schedulles the score to the typeset... But then, in my case, this is just fine, I'm generating the scores only on the fly whenever I really want to print them out). > > Apparently your makeScore function is not exactly the same as > > \score { > > Correct. If you want to know what lily is up to, best is to look at > lily/parser.yy, where you can see the scorify-music call in the > score_body rule. Thanks for the hint. Now, my next problem is that if my createscore function is called within a \book block, I'd need to use book-score-handler instead of toplevel-score-handler. Is there an easy way to detect wheter we are inside a book block? From parser.yy I see that lilypond does not explicitly check this, but uses the implicit context information from the parser instead... The other issue I'm running into now is: How can I call a music-function from within another music-function? I haven't found any example for this in the docs or the LSR... As an example, here I define a music function that does nothing and another one that just calls the first one: identity = #(define-music-function (parser location music) (ly:music?) music) otheridentity = #(define-music-function (parser location music) (ly:music?) (identity parser location music)) \otheridentity {c'1} However, I always get an error message: music_function_calls_another.ly:4:76: In expression (identity parser location ...): music_function_calls_another.ly:4:76: Wrong type to apply: #<Music function #<procedure #f (parser location music)>> Thanks, Reinhold -- ------------------------------------------------------------------ Reinhold Kainhofer, Vienna University of Technology, Austria email: [EMAIL PROTECTED], http://reinhold.kainhofer.com/ * Financial and Actuarial Mathematics, TU Wien, http://www.fam.tuwien.ac.at/ * K Desktop Environment, http://www.kde.org, KOrganizer maintainer * Chorvereinigung "Jung-Wien", http://www.jung-wien.at/ _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user