]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/midi.scm
Add '-dcrop' option to ps and svg backends
[lilypond.git] / scm / midi.scm
index 4c7d6b303529aec9e974b88738d3b140545fe657..3564a709b398456fe9e3bb8a388a5a5a2eb73418 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 2000--2014 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 2000--2015 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
 ;;;; it under the terms of the GNU General Public License as published by
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 
+;;; Adapted from the handle-metadata function in framework-ps.scm
+(define (performance-name-from-header header)
+  (define (metadata-lookup-output overridevar fallbackvar)
+    (let* ((overrideval (ly:modules-lookup (list header) overridevar))
+           (fallbackval (ly:modules-lookup (list header) fallbackvar))
+           (val (if overrideval overrideval fallbackval)))
+      (if val (ly:encode-string-for-pdf (markup->string val)) "")))
+  (if (null? header)
+      ""
+      (metadata-lookup-output 'midititle 'title)))
+
 (define-public (write-performances-midis performances basename . rest)
   (let ((midi-ext (ly:get-option 'midi-extension)))
     (let
       ((perfs performances)
        (count (if (null? rest) 0 (car rest))))
       (if (pair? perfs)
-          (begin
+          (let ((perf (car perfs)))
             (ly:performance-write
-             (car perfs)
+             perf
              (if (> count 0)
                  (format #f "~a-~a.~a" basename count midi-ext)
-                 (format #f "~a.~a" basename midi-ext)))
+                 (format #f "~a.~a" basename midi-ext))
+             (performance-name-from-header (ly:performance-header perf)))
             (loop (cdr perfs) (1+ count)))))))