X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fcenter-text-below-hairpin-dynamics.ly;h=2403958853e027b55bdbbaa4afa46f9a9abe854a;hb=23108a9515e7f76b44fac0b323afb169d708bfa1;hp=6dd44c7e04216753f7c54f8679355c500db84094;hpb=d7c0f4263534307616c82d9b2ce6fdef9472456f;p=lilypond.git diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 6dd44c7e04..2403958853 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -1,24 +1,20 @@ -%% Do not edit this file; it is automatically +%% DO NOT EDIT this file manually; it is automatically %% generated from LSR http://lsr.dsi.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.13.20" +\version "2.17.11" \header { - lsrtags = "expressive-marks, text" - -%% Translation of GIT committish: 0b55335aeca1de539bf1125b717e0c21bb6fa31b - texidoces = " -Este ejemplo proporciona una función para tipografiar un regulador con -texto por debajo, como @qq{molto} o @qq{poco}. El ejemplo ilustra -también cómo modificar la manera en que se imprime normalmente un -objeto, utilizando código de Scheme. - -" - doctitlees = "Centrar texto debajo de un regulador" + lsrtags = "expressive-marks, really-cool, scheme-language, text" texidoc = " This example provides a function to typeset a hairpin (de)crescendo with some additional text below it, such as @qq{molto} or @qq{poco}. +The added text will change the direction according to the direction of +the hairpin. The Hairpin is aligned to DynamicText. + The example also illustrates how to modify the way an object is normally printed, using some Scheme code. @@ -29,17 +25,46 @@ normally printed, using some Scheme code. hairpinWithCenteredText = #(define-music-function (parser location text) (markup?) #{ - \override Voice.Hairpin #'stencil = #(lambda (grob) - (ly:stencil-aligned-to - (ly:stencil-combine-at-edge - (ly:stencil-aligned-to (ly:hairpin::print grob) X CENTER) - Y DOWN - (ly:stencil-aligned-to (grob-interpret-markup grob $text) X CENTER)) - X LEFT)) + \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))) + + (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 } -hairpinMore = \hairpinWithCenteredText \markup { \larger moltissimo } +hairpinMolto = +\hairpinWithCenteredText \markup { \italic molto } + +hairpinMore = +\hairpinWithCenteredText \markup { \larger moltissimo } \layout { ragged-right = ##f } @@ -47,5 +72,10 @@ hairpinMore = \hairpinWithCenteredText \markup { \larger moltissimo } \hairpinMolto c2\< c\f \hairpinMore - c2\< c\f + c2\ppppp\< c\f + \break + \hairpinMolto + c2^\< c\f + \hairpinMore + c2\ppppp\< c\f }