]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly
Imported Upstream version 2.19.45
[lilypond.git] / Documentation / snippets / generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly
index cc30a8b2bf262ebb4853e3aa620e6eecf15403fa..b710ea507da6631be11320f5cb325860a4dad067 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.11"
+\version "2.19.22"
 
 \header {
   lsrtags = "automatic-notation, really-cool, scheme-language"
@@ -13,8 +13,7 @@
 A lilypond score internally is just a Scheme expression, generated by
 the lilypond parser. Using scheme, one can also automatically generate
 a score without an input file. If you have the music expression in
-scheme, a score can be generated by simply calling (scorify-music music
-parser) on your music. This will generate a score object, for which you
+scheme, a score can be generated by simply calling (scorify-music music) on your music. This will generate a score object, for which you
 can then set a custom layout block with (let* ((layout
 (ly:output-def-clone $defaultlayout)))
    ; modify the layout here, then assign it:
@@ -23,8 +22,8 @@ can then set a custom layout block with (let* ((layout
 
 
 Finally, all you have to do it to pass this score to lilypond for
-typesetting. This snippet defines functions @code{(add-score parser
-score)}, @code{(add-text parser text)} and @code{(add-music parser
+typesetting. This snippet defines functions @code{(add-score
+score)}, @code{(add-text text)} and @code{(add-music
 music)} to pass a complete score, some markup or some music to lilypond
 for typesetting.
 
@@ -38,35 +37,35 @@ modified to inser all collected scores so far to the book.
 "
   doctitle = "Generating whole scores (also book parts) in scheme without using the parser"
 } % begin verbatim
+%%
 
-#(define-public (add-score parser score)
-   (ly:parser-define! parser 'toplevel-scores
-                      (cons score (ly:parser-lookup parser 'toplevel-scores))))
+#(define-public (add-score score)
+   (ly:parser-define! 'toplevel-scores
+                      (cons score (ly:parser-lookup 'toplevel-scores))))
 
-#(define-public (add-text parser text)
-  (add-score parser (list text)))
+#(define-public (add-text text)
+  (add-score (list text)))
 
-#(define-public (add-music parser music)
+#(define-public (add-music music)
   (collect-music-aux (lambda (score)
-                      (add-score parser score))
-                     parser
+                      (add-score score))
                     music))
 
-#(define-public (toplevel-book-handler parser book)
+#(define-public (toplevel-book-handler book)
    (map (lambda (score)
           (ly:book-add-score! book score))
-        (reverse! (ly:parser-lookup parser 'toplevel-scores)))
-   (ly:parser-define! parser 'toplevel-scores (list))
-   (print-book-with-defaults parser book))
+        (reverse! (ly:parser-lookup 'toplevel-scores)))
+   (ly:parser-define! 'toplevel-scores (list))
+   (print-book-with-defaults book))
 
 #(define-public (book-score-handler book score)
-   (add-score parser score))
+   (add-score score))
 
 #(define-public (book-text-handler book text)
-   (add-text parser text))
+   (add-text text))
 
-#(define-public (book-music-handler parser book music)
-   (add-music parser music))
+#(define-public (book-music-handler book music)
+   (add-music music))
 
 %%%
 
@@ -80,7 +79,7 @@ modified to inser all collected scores so far to the book.
                           'elements (list (make-music 'NoteEvent
                                             'duration (ly:make-duration 2 0 1/1)
                                             'pitch (ly:make-pitch 0 pitch 0)))))
-                 (score (scorify-music music parser))
+                 (score (scorify-music music))
                  (layout (ly:output-def-clone $defaultlayout))
                  (note-name (case pitch
                               ((0) "do")
@@ -93,13 +92,13 @@ modified to inser all collected scores so far to the book.
                               (else "huh")))
                  (title (markup #:large #:line ("Score with a" note-name))))
             (ly:score-add-output-def! score layout)
-            (add-text parser title)
-            (add-score parser score))
+            (add-text title)
+            (add-score score))
             (set! pitch (modulo (1+ pitch) 7)))))
 
 oneNoteScore =
-#(define-music-function (parser location) ()
-   (add-one-note-score parser)
+#(define-music-function () ()
+   (add-one-note-score (*parser*))
    (make-music 'Music 'void #t))
 
 %%%