1\version "2.21.0" 2 3\header { 4 texidoc = "Test for merging rests in different voices." 5} 6 7\paper { 8 ragged-right = ##f 9} 10 11voiceA = \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 % multi-measure rests longer than semi-breve 28 % are merged at the correct vertical position 29 \time 4/2 30 R\breve 31 32 % combining between beams, slurs 33 \time 4/4 34 c8[( r c]) r c16[( r c] r c[ r c]) r | 35 36 % combining in tuplets 37 \tuplet 3/2 { c8 r r } r4 \tuplet 3/2 { c4 r r } | 38 39 % accents on rest, dynamics still aligned 40 r4->\f\> r-. r r\! | 41 42 % Non-multimeasure whole rests merged at the correct vertical position 43 \time 8/4 44 r1 r1 45 46 % Ensure when suspending merging rests are in their usual positions 47 \time 4/4 48 \set Staff.suspendRestMerging = ##t 49 r4 r8 50 \set Staff.suspendRestMerging = ##f 51 r8 r2 | 52 53 % Don't merge pitched rests 54 c4\rest d\rest e\rest f\rest | 55 56 % Merged dotted rests get only one dot, don't kill dots if merging rests is 57 % suspended 58 r4. r8 59 \set Staff.suspendRestMerging = ##t 60 r4. r8 | 61 \set Staff.suspendRestMerging = ##f 62 r4 r4 r4 r4 63} 64 65voiceB = \relative { 66 r2 c'4 r | 67 c4 r r r | 68 r2_"Down" r4 r8 r16 r32 r64 r128 r | 69 R1_"Lower text" | 70 R1*3 | 71 R\breve | 72 c8[( r c]) r c16[( r c] r c[ r c]) r | 73 \tuplet 3/2 { c8 r r } r4 \tuplet 3/2 { c4 r r } | 74 r4-> r-. r r | 75 r1 r1 | 76 r4 r8 r r2 | 77 r4 r r r | 78 r4. r8 r4. r8 | 79 r4. r8 r4. r8 | 80} 81 82voiceC = \relative { 83 s1*2 | 84 r2 r4 r8 r16 r32 r64 r128 r | % Combines rests from more than 2 voices 85 s1*13 86 r4. r8 r4. r8 | 87 r4. r8 r4. r8 | 88} 89 90\score { 91 \new Staff \with { 92 \consists "Merge_rests_engraver" 93 } << 94 \compressEmptyMeasures 95 \new Voice { \voiceOne \voiceA } 96 \new Voice { \voiceTwo \voiceB } 97 \new Voice { \voiceThree \voiceC } 98 >> 99} 100