]> git.donarmstrong.com Git - lilypond.git/blob - input/regression/merge-rests-engraver.ly
Create engravers for merging rests
[lilypond.git] / input / regression / merge-rests-engraver.ly
1 \version "2.19.60"
2
3 \header {
4   texidoc = "Test for merging rests in different voices."
5 }
6
7 \paper {
8   ragged-right = ##f
9 }
10
11 voiceA = \relative {
12   % no rest merges
13   c''4 r c c |
14
15   % does not combine differently written rests
16   c4 r r2 |
17
18   % all rests merged
19   r2^"Up" r4 r8 r16 r32 r64 r128 r |
20
21   % multi-measure rests are combined
22   R1^"Upper text" |
23
24   % compressed multi-measure rests are combined
25   R1*3 |
26
27   % combining between beams, slurs
28   c8[( r c]) r c16[( r c] r c[ r c]) r |
29
30   % combining in tuplets
31   \tuplet 3/2 { c8 r r } r4 \tuplet 3/2 { c4 r r } |
32
33   % accents on rest, dynamics still aligned
34   r4->\f\> r-. r r\! |
35
36   % Non-multimeasure whole rests merged at the correct vertical position
37   \time 8/4
38   r1 r1
39
40   % Ensure when suspending merging rests are in their usual positions
41   \time 4/4
42   \set Staff.suspendRestMerging = ##t
43   r4 r8
44   \set Staff.suspendRestMerging = ##f
45   r8 r2 |
46
47   % Don't merge pitched rests
48   c4\rest d\rest e\rest f\rest |
49 }
50
51 voiceB = \relative {
52   r2 c'4 r |
53   c4 r r r |
54   r2_"Down" r4 r8 r16 r32 r64 r128 r |
55   R1_"Lower text" |
56   R1*3 |
57   c8[( r c]) r c16[( r c] r c[ r c]) r |
58   \tuplet 3/2 { c8 r r } r4 \tuplet 3/2 { c4 r r } |
59   r4-> r-. r r |
60   r1 r1 |
61   r4 r8 r r2 |
62   r4 r r r |
63 }
64
65 voiceC = \relative {
66   s1*2 |
67   r2 r4 r8 r16 r32 r64 r128 r | % Combines rests from more than 2 voices
68 }
69
70 \score {
71   \new Staff \with {
72       \consists #Merge_rests_engraver
73   } <<
74     \compressFullBarRests
75     \new Voice { \voiceOne \voiceA }
76     \new Voice { \voiceTwo \voiceB }
77     \new Voice { \voiceThree \voiceC }
78   >>
79 }