]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/to-xml.scm
Run `make grand-replace'.
[lilypond.git] / scm / to-xml.scm
index 7d0a400cc1c72f0e1a1518055221cc611a71e79d..e65f48f0cb59cf2814607c51ae3525ba66528aad 100644 (file)
@@ -2,11 +2,14 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c)  2003--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 2003--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
+(define-module (scm to-xml))
+
 (use-modules (ice-9 regex)
             (srfi srfi-1)
+            (lily)
             (oop goops))
 
 "
@@ -24,8 +27,8 @@ is then separated.
 
    <score>
      <music></music>
-     <paperoutput>
-     </paperoutput>
+     <layoutoutput>
+     </layoutoutput>
    </score>
 "
 
@@ -47,20 +50,19 @@ is then separated.
     (pitch . pitch)
     (duration . duration)
     (octave . octave)
-    (step . step)
-    ))
+    (step . step)))
 
 (define (musicxml-node->string node)
   (let ((xml-name (assoc-get (node-name node) node-names #f)))
-  (string-append
-   (if xml-name (open-tag xml-name '() '()) "")
-   (if (equal? (node-value node) "")
-       (string-append
-       (if xml-name "\n" "")
-       (apply string-append (map musicxml-node->string (node-children node))))
-       (node-value node))
-   (if xml-name (close-tag xml-name) "")
-   (if xml-name "\n" ""))))
+    (string-append
+     (if xml-name (open-tag xml-name '() '()) "")
+     (if (equal? (node-value node) "")
+        (string-append
+         (if xml-name "\n" "")
+         (apply string-append (map musicxml-node->string (node-children node))))
+        (node-value node))
+     (if xml-name (close-tag xml-name) "")
+     (if xml-name "\n" ""))))
 
 (define (xml-node->string node)
   (string-append
@@ -87,31 +89,18 @@ is then separated.
                   (numer . ,(car (ly:duration-factor d)))
                   (denom . ,(cdr (ly:duration-factor d))))))
 
-(define (musicxml-pitch->xml-node p)
-  (make <xml-node>
-    #:name 'pitch
-    #:children
-    (list
-     (make <xml-node>
-       #:name 'step
-       #:value (list-ref  '("C" "D" "E" "F" "G" "A" "B")
-                         (ly:pitch-notename p)))
-     (make <xml-node>
-       #:name 'octave
-       #:value (number->string (ly:pitch-octave p))))))
-
 (define (pitch->xml-node p)
   (make <xml-node>
     #:name 'pitch
     #:attributes `((octave . ,(ly:pitch-octave p))
                   (notename . ,(ly:pitch-notename p))
                   (alteration . ,(ly:pitch-alteration p)))))
-                              
+
 (define (music->xml-node music)
   (let* ((name (ly:music-property music 'name))
         (e (ly:music-property music 'element))
         (es (ly:music-property music 'elements))
-        (mprops (ly:mutable-music-properties music))
+        (mprops (ly:music-mutable-properties music))
         (d (ly:music-property music 'duration))
         (p (ly:music-property music 'pitch))
         (ignore-props '(origin elements duration pitch element)))
@@ -136,8 +125,8 @@ is then separated.
 ]>
 
 "))
-  
+
+
 ;; as computed from input/trip.ly, by
 ;; http://www.pault.com/pault/dtdgenerator/
 
@@ -188,7 +177,7 @@ is then separated.
 (define (assert x)
   (if x
       #t
-      (error "assertion failed")))
+      (ly:error (_ "assertion failed: ~S") x)))
 
 (define (re-sub re to string)
   (regexp-substitute/global #f re string 'pre to 'post))
@@ -211,20 +200,16 @@ is then separated.
     (not (memq (car x) exceptions)))
   
   (define (dump-attr sym-val)
-    (let*
-       (
-       (sym (car sym-val))
-       (val (cdr sym-val))
-       )
+    (let* ((sym (car sym-val))
+          (val (cdr sym-val)))
       
-    (string-append
-     "\n   "
-    (symbol->string sym)
-    "=\""
-    (let ((s (call-with-output-string (lambda (port) (display val port)))))
-      (re-sub-alist s xml-entities-alist))
-    "\""
-    )))
+      (string-append
+       "\n   "
+       (symbol->string sym)
+       "=\""
+       (let ((s (call-with-output-string (lambda (port) (display val port)))))
+        (re-sub-alist s xml-entities-alist))
+       "\"")))
 
   (string-append
    "<" (symbol->string tag)
@@ -252,7 +237,6 @@ is then separated.
   ;;
   ;;  (display (dtd-header) port)
 
-  (define pitch->xml-node musicxml-pitch->xml-node)
   (define duration->xml-node musicxml-duration->xml-node)
   
   (display (open-tag 'music '((type . score)) '()) port)