(define-public default-script-alist '())
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; parser <-> output hooks.
+
;; parser stuff.
(define-public (print-music-as-book parser music)
(let* ((head (ly:parser-lookup parser '$defaultheader))
parser 'toplevel-scores
(cons score (ly:parser-lookup parser 'toplevel-scores))))
-
(define-public (scorify-music music parser)
(for-each (lambda (func)
(define-public (print-score-with-defaults parser score)
(let*
((paper (ly:parser-lookup parser '$defaultpaper))
- (layout (ly:parser-lookup parser '$defaultlayout))
- (header (ly:parser-lookup parser '$defaultheader))
(count (ly:parser-lookup parser 'output-count))
(base (ly:parser-output-name parser)))
(set! base (format #f "~a-~a" base count)))
(ly:parser-define! parser 'output-count (1+ count))
- (ly:score-process score header 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)
+ (car layout-defs)
+ (ly:parser-lookup parser '$defaultlayout))))
+
+ (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)
+ ))
+
+ ))))
+
+
+
;;;;;;;;;;;;;;;;