]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/center-text-below-hairpin-dynamics.ly
Imported Upstream version 2.19.45
[lilypond.git] / Documentation / snippets / center-text-below-hairpin-dynamics.ly
index 67e197227006f1dd368930a9ea1b8545ab881f3c..40810e6a19be23526a16ef04096f9dc4177a076a 100644 (file)
@@ -1,10 +1,10 @@
 %% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
+%% generated from LSR http://lsr.di.unimi.it
 %% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.17.6"
+\version "2.19.22"
 
 \header {
   lsrtags = "expressive-marks, really-cool, scheme-language, text"
@@ -23,42 +23,43 @@ normally printed, using some Scheme code.
 } % begin verbatim
 
 hairpinWithCenteredText =
-#(define-music-function (parser location text) (markup?)
-#{
-  \once \override Voice.Hairpin.after-line-breaking =
-    #(lambda (grob)
-      (let* ((stencil (ly:hairpin::print grob))
-             (par-y (ly:grob-parent grob Y))
-             (dir (ly:grob-property par-y 'direction))
-             (new-stencil (ly:stencil-aligned-to
-               (ly:stencil-combine-at-edge
-                 (ly:stencil-aligned-to stencil X CENTER)
-                 Y dir
-                 (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER))
-               X LEFT))
-             (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space))
-             (staff-line-thickness
-               (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
-             (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name)))
-             (par-x (ly:grob-parent grob X))
-             (dyn-text (eq? (grob-name par-x) 'DynamicText ))
-             (dyn-text-stencil-x-length
-               (if dyn-text
-                 (interval-length
-                   (ly:stencil-extent (ly:grob-property par-x 'stencil) X))
-                 0))
-             (x-shift
-               (if dyn-text
-                 (-
-                   (+ staff-space dyn-text-stencil-x-length)
-                   (* 0.5 staff-line-thickness)) 0)))
+#(define-music-function (text) (markup?)
+  #{
+    \once \override Voice.Hairpin.after-line-breaking =
+      #(lambda (grob)
+        (let* ((stencil (ly:hairpin::print grob))
+               (par-y (ly:grob-parent grob Y))
+               (dir (ly:grob-property par-y 'direction))
+               (new-stencil (ly:stencil-aligned-to
+                 (ly:stencil-combine-at-edge
+                   (ly:stencil-aligned-to stencil X CENTER)
+                   Y dir
+                   (ly:stencil-aligned-to
+                     (grob-interpret-markup grob text) X CENTER))
+                 X LEFT))
+               (staff-space (ly:output-def-lookup
+                 (ly:grob-layout grob) 'staff-space))
+               (staff-line-thickness
+                 (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
+               (par-x (ly:grob-parent grob X))
+               (dyn-text (grob::has-interface par-x 'dynamic-text-interface))
+               (dyn-text-stencil-x-length
+                 (if dyn-text
+                   (interval-length
+                     (ly:stencil-extent (ly:grob-property par-x 'stencil) X))
+                   0))
+               (x-shift
+                 (if dyn-text
+                   (-
+                     (+ staff-space dyn-text-stencil-x-length)
+                     (* 0.5 staff-line-thickness)) 0)))
 
-      (ly:grob-set-property! grob 'Y-offset 0)
-      (ly:grob-set-property! grob 'stencil
-         (ly:stencil-translate-axis
-          new-stencil
-          x-shift X))))
-#})
+        (ly:grob-set-property! grob 'Y-offset 0)
+        (ly:grob-set-property! grob 'stencil
+           (ly:stencil-translate-axis
+            new-stencil
+            x-shift X))))
+  #})
 
 hairpinMolto =
 \hairpinWithCenteredText \markup { \italic molto }