]> git.donarmstrong.com Git - lilypond.git/commitdiff
Woodwind diagrams -- change syntax
authorCarl Sorensen <c_sorensen@byu.edu>
Sat, 14 Aug 2010 12:53:31 +0000 (06:53 -0600)
committerCarl Sorensen <c_sorensen@byu.edu>
Sat, 21 Aug 2010 08:54:03 +0000 (02:54 -0600)
Add graphical to list of grob properties

Add graphical to instrument-specific-markup interface

Move size, thickness, graphic to props.

Update regression files, add convert-ly rule

input/regression/woodwind-diagrams-empty.ly
input/regression/woodwind-diagrams-key-lists.ly
python/convertrules.py
scm/define-grob-interfaces.scm
scm/define-grob-properties.scm
scm/display-woodwind-diagrams.scm

index b534b634fa98a6a733c0ed0face9ee6f162335ee..a58009adbb58367bb62804936e8bd335e0b1b2ef 100644 (file)
@@ -9,7 +9,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'piccolo
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -17,7 +17,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'flute
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -25,7 +25,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'oboe
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -33,7 +33,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'clarinet
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -41,7 +41,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'bass-clarinet
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -49,7 +49,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'saxophone
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -57,7 +57,7 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'bassoon
-      #'(1.0 0.1 #t ())
+      #'()
   }
 }
 
@@ -65,6 +65,6 @@ in woodwind-diagrams.scm."
   c1^\markup {
     \woodwind-diagram
       #'contrabassoon
-      #'(1.0 0.1 #t ())
+      #'()
   }
-}
\ No newline at end of file
+}
index d5bfd54950074f4fa468fc0a3a9875a878e58571..1105010e62bbcfe61c1171c526609310e2af2230 100644 (file)
@@ -15,4 +15,4 @@ woodwind-diagrams.scm"
 #(print-keys-verbose 'saxophone)
 #(print-keys-verbose 'baritone-saxophone)
 #(print-keys-verbose 'bassoon)
-#(print-keys-verbose 'contrabassoon)
\ No newline at end of file
+#(print-keys-verbose 'contrabassoon)
index 05bdbd813772268afb2703255e62b1c5d80db536..1e2ce6752da442265c520562cd1d19a1cb7d5a66 100644 (file)
@@ -3044,6 +3044,14 @@ def conv(str):
         stderr_write(UPDATE_MANUALLY)
     return str
 
+@rule ((2, 13, 31),
+    _ ("Woodwind diagrams: Move size, thickness, and graphic from argument list to properties."))
+def conv(str):
+    if re.search(r'woodwind-diagram', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("woodwind-diagrams.  Move size, thickness, and graphic to properties.  Argument should be just the key list.\n"))
+        stderr_write(UPDATE_MANUALLY)
+    return str
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,
index 2949afcfbc3b30bd9742019be0f8bc328bd9648b..22316b5886f760532ba7bba88ad8aa8e25c2aea3 100644 (file)
@@ -90,7 +90,7 @@ note)."
 (ly:add-interface
  'instrument-specific-markup-interface
  "Instrument-specific markup (like fret boards or harp pedal diagrams)."
- '(fret-diagram-details harp-pedal-details size thickness))
+ '(fret-diagram-details graphical harp-pedal-details size thickness))
 
 (ly:add-interface
  'key-cancellation-interface
index 8fc2db4904f791edf26fcd769a60de5f1c277dbb..59b50a8b9eae3166df976dc9d489dd02eb50a164 100644 (file)
@@ -411,6 +411,7 @@ typeset.  Valid choices depend on the function that is reading this
 property.")
      (glyph-name ,string? "The glyph name within the font.")
      (glyph-name-alist ,list? "An alist of key-string pairs.")
+     (graphical ,boolean? "Display in graphical (vs. text) form.")
      (grow-direction ,ly:dir? "Crescendo or decrescendo?")
 
 
index 51e239235ebd1ab2db1bdfd46b9d66e7e0252aed..3468e863e9839259f6125deb111535b20d64d68f 100644 (file)
   (key-list-loop key-list)))
 
 (define-markup-command
-  (woodwind-diagram layout props instrument input-list)
+  (woodwind-diagram layout props instrument user-draw-commands)
   (symbol? list?)
   #:category instrument-specific-markup ; markup category
+  #:properties ((size 1)
+                (thickness 0.1)
+                (graphical #t))
   "Make a woodwind-instrument diagram.  For example, say
 
 @example
-\\markup \\woodwind-diagram #'oboe #'(1.4 0.1 #t ((lh . (d ees)) (cc . (five3qT1q)) (rh . (gis))))
+\\markup \\woodwind-diagram #'oboe #'((lh . (d ees)) (cc . (five3qT1q)) (rh . (gis)))
 @end example
 
 @noindent
@@ -1944,44 +1947,43 @@ Lastly, substituting an empty list for the pressed-key alist will result in
 a diagram with all of the keys drawn but none filled. ie...
 
 @example
-\\markup \\woodwind-diagram #'oboe #'(1.4 0.1 #t ())
+\\markup \\woodwind-diagram #'oboe #'()
 @end example"
-  (let*  ((radius (car input-list))
-    (thick (cadr input-list))
-    (display-graphic (caddr input-list))
-    (xy-stretch `(1.0 . 2.5))
-    (chosen-instrument (assoc-get instrument woodwind-data-alist))
-    (chosen-instrument
-      (if (not chosen-instrument)
-          (ly:error "~a is not a valid woodwind instrument."
-                    instrument)
-          chosen-instrument))
-    (stencil-info
-      (assoc-get
-        (if display-graphic 'graphical-commands 'text-commands)
-        chosen-instrument))
-    (user-draw-commands (cadddr input-list))
-    (pressed-info
-      (if (null? user-draw-commands)
-        (uniform-draw-instructions (assoc-get 'keys chosen-instrument))
-        (translate-draw-instructions
-          (append '((hd . ())) user-draw-commands)
-          (assoc-get 'keys chosen-instrument))))
-    (draw-info
-      (function-chain
-        pressed-info
-        (assoc-get 'draw-instructions stencil-info)))
-    (extra-offset-info
-      (function-chain
-        pressed-info
-        (assoc-get 'extra-offset-instructions stencil-info))))
-   (assemble-stencils
-     (assoc-get 'stencil-alist stencil-info)
-     (assoc-get 'keys chosen-instrument)
-     draw-info
-     extra-offset-info
-     radius
-     thick
-     xy-stretch
-     layout
-     props)))
\ No newline at end of file
+  (let*  ((radius size)
+          (thick (* size thickness))
+          (display-graphic graphical)
+          (xy-stretch `(1.0 . 2.5))
+          (chosen-instrument (assoc-get instrument woodwind-data-alist))
+          (chosen-instrument
+            (if (not chosen-instrument)
+                (ly:error "~a is not a valid woodwind instrument."
+                          instrument)
+                chosen-instrument))
+          (stencil-info
+            (assoc-get
+              (if display-graphic 'graphical-commands 'text-commands)
+              chosen-instrument))
+          (pressed-info
+            (if (null? user-draw-commands)
+                (uniform-draw-instructions (assoc-get 'keys chosen-instrument))
+                (translate-draw-instructions
+                  (append '((hd . ())) user-draw-commands)
+                  (assoc-get 'keys chosen-instrument))))
+          (draw-info
+            (function-chain
+              pressed-info
+              (assoc-get 'draw-instructions stencil-info)))
+          (extra-offset-info
+            (function-chain
+              pressed-info
+              (assoc-get 'extra-offset-instructions stencil-info))))
+    (assemble-stencils
+      (assoc-get 'stencil-alist stencil-info)
+      (assoc-get 'keys chosen-instrument)
+      draw-info
+      extra-offset-info
+      radius
+      thick
+      xy-stretch
+      layout
+      props)))