X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=scm%2Flily-library.scm;h=e3a59a64391a6a24c46eec53e1c09ab6c2ffeebd;hb=1a711ba0dfcfce8bf552f13cbec8957a7c14f37b;hp=1e8fe97e477809c669338cb9072e8594a31adb16;hpb=c2ccda3e91d408453744bd03882c6b0584a9561a;p=lilypond.git diff --git a/scm/lily-library.scm b/scm/lily-library.scm index 1e8fe97e47..e3a59a6439 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -49,46 +49,28 @@ (define-public (moment-min a b) (if (ly:moment output hooks. -;; parser stuff. -(define-public (print-music-as-book parser music) - (let* ((head (ly:parser-lookup parser '$defaultheader)) - (book (ly:make-book (ly:parser-lookup parser '$defaultpaper) - head (scorify-music music parser)))) - (print-book-with-defaults parser book))) - -(define-public (print-score-as-book parser score) - (let* ((head (ly:parser-lookup parser '$defaultheader)) - (book (ly:make-book (ly:parser-lookup parser '$defaultpaper) - head score))) - (print-book-with-defaults parser book))) - -(define-public (print-score parser score) - (let* ((head (ly:parser-lookup parser '$defaultheader)) - (book (ly:make-book (ly:parser-lookup parser '$defaultpaper) - head score))) - (ly:parser-print-score parser book))) (define-public (collect-scores-for-book parser score) (ly:parser-define! parser 'toplevel-scores (cons score (ly:parser-lookup parser 'toplevel-scores)))) +(define-public (collect-music-for-book parser music) + ;; discard music if its 'void property is true. + (let ((void-music (ly:music-property music 'void))) + (if (or (null? void-music) (not void-music)) + (collect-scores-for-book parser (scorify-music music parser))))) + (define-public (scorify-music music parser) + "Preprocess MUSIC." (for-each (lambda (func) (set! music (func music parser))) @@ -96,36 +78,15 @@ (ly:make-score music)) -(define-public (collect-music-for-book parser music) - ;; discard music if its 'void property is true. - (let ((void-music (ly:music-property music 'void))) - (if (or (null? void-music) (not void-music)) - (collect-scores-for-book parser (scorify-music music parser))))) - - -(define-public (print-book-with-defaults parser book) +(define (print-book-with parser book process-procedure) (let* ((paper (ly:parser-lookup parser '$defaultpaper)) (layout (ly:parser-lookup parser '$defaultlayout)) - (count (ly:parser-lookup parser 'output-count)) - (base (ly:parser-output-name parser))) - - (if (not (integer? count)) - (set! count 0)) - - (if (> count 0) - (set! base (format #f "~a-~a" base count))) - - (ly:parser-define! parser 'output-count (1+ count)) - (ly:book-process book paper layout base) - )) -(define-public (print-score-with-defaults parser score) - (let* - ((paper (ly:parser-lookup parser '$defaultpaper)) (count (ly:parser-lookup parser 'output-count)) (base (ly:parser-output-name parser))) + ;; must be careful: output-count is under user control. (if (not (integer? count)) (set! count 0)) @@ -133,36 +94,14 @@ (set! base (format #f "~a-~a" base count))) (ly:parser-define! parser 'output-count (1+ count)) + (process-procedure book paper layout base) + )) - (if (not (ly:score-error? score)) - (let* - ((header (ly:score-header score)) - (output-defs (ly:score-output-defs score)) - (layout-defs (filter (lambda (d) (eq? #t (ly:output-def-lookup d 'is-layout))) - output-defs)) - (midi-defs (filter (lambda (d) (eq? #t (ly:output-def-lookup d 'is-midi))) - output-defs)) - (music (ly:score-music score)) - (layout-def (if (null? layout-defs) - (ly:parser-lookup parser '$defaultlayout) - (car layout-defs)))) - - (if (not (module? header)) - (set! header (ly:parser-lookup parser '$defaultheader))) - - (ly:render-music-as-systems - music layout-def paper header base) - - (if (pair? midi-defs) - (ly:performance-write (ly:format-output (ly:run-translator music (car midi-defs))) - (format #f "~a.midi" base) - )) - - )))) - - - +(define-public (print-book-with-defaults parser book) + (print-book-with parser book ly:book-process)) +(define-public (print-book-with-defaults-as-systems parser book) + (print-book-with parser book ly:book-process-to-systems)) ;;;;;;;;;;;;;;;; ;; alist @@ -647,14 +586,16 @@ possibly turned off." (define-public (version-not-seen-message input-file-name) (ly:message - (string-append - input-file-name ": 0: " (_ "warning: ") - (format #f - (_ "no \\version statement found, please add~afor future compatibility") - (format #f "\n\n\\version ~s\n\n" (lilypond-version)))))) + "~a:0: ~a: ~a" + input-file-name + (_ "warning: ") + (format #f + (_ "no \\version statement found, please add~afor future compatibility") + (format #f "\n\n\\version ~s\n\n" (lilypond-version))))) (define-public (old-relative-not-used-message input-file-name) (ly:message - (string-append - input-file-name ": 0: " (_ "warning: ") - (_ "old relative compatibility not used")))) + "~a:0: ~a: ~a" + input-file-name + (_ "warning: ") + (_ "old relative compatibility not used")))