X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fcenter-text-below-hairpin-dynamics.ly;h=40810e6a19be23526a16ef04096f9dc4177a076a;hb=7291ef21ff869752b58d839bc4514a5d2c41db51;hp=67e197227006f1dd368930a9ea1b8545ab881f3c;hpb=5bb39c99a009d065d767b17bf32ef4494c9da147;p=lilypond.git diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 67e1972270..40810e6a19 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -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 }