]> git.donarmstrong.com Git - lilypond.git/blob - input/new/broken-crescendo-hairpin.ly
Merge branch 'master' of /home/lilycvs/git/lily/
[lilypond.git] / input / new / broken-crescendo-hairpin.ly
1 \version "2.11.38"
2
3 \header {
4   doctitle = "Broken crescendo hairpin"
5   lsrtags = "expressive-marks"
6   texidoc = "
7 In order to make parts of a crescendo hairpin invisible, the following
8 method is used: A white rectangle is drawn on top of the respective
9 part of the crescendo hairpin, making it invisible. The rectangle is
10 defined as postscript code within a text markup.
11
12 To fine-tune the position and size of the markup, the number
13 preceding @code{setgray} in the postscript definition can be set to a
14 value <1 making it grey. The two numbers before @code{scale} in the
15 postscript code are responsible for the width and height of the
16 rectangle, the two numbers before @code{translate} change the x- and
17 y-origin of the rectangle. 
18
19 Make sure to put the hairpin in a lower layer than the text markup to
20 actually draw the rectangle above the hairpin. 
21 " }
22
23 \score {
24   \relative c' {
25     << {
26       \dynamicUp
27       \override DynamicLineSpanner #'staff-padding = #4
28       r2 r16 c'8.\pp r4
29     } \\ {
30       \override DynamicLineSpanner #'layer = #0
31       des,2\mf\< ~
32       \override TextScript #'layer = #2
33       des16_\markup {
34         \postscript #"1.9 -8 translate 5 4 scale 1 setgray 0 0 moveto 0 1
35         lineto 1 1 lineto 1 0 lineto 0 0 lineto fill"
36       }
37       r8. des4 ~ des16->\sff
38     } >>
39   }
40   \layout { ragged-right = ##t }
41 }