3 forcedLastBreak = { \break }
5 %% We want this to perfectly match the Baerenreiter spacing.
6 %% If we're not using 6 systems, there's definately a problem.
7 #(define (assert-system-count smob n)
8 (let ((systems (length (ly:spanner-broken-into
10 (ly:grob-system smob))))))
11 (if (not (equal? n systems))
14 (string-append "Got " (number->string systems)
15 " systems (expecting " (number->string n))))))
19 title = "Solo Cello Suite II"
21 composer = "Johann Sebastian Bach (1685-1750)"
22 editor = "August Wenzinger"
23 source= "B\\\"arenreiter Urtext"
25 texidoc = "The B\\\"arenreiter edition of the Cello Suites is the
26 most beautifully typeset piece of music in our collection of music (we
27 both own one. It is also lovely on French Horn). This piece does not
28 include articulation, but it does follows the same beaming and
29 linebreaking as the printed edition. This is done in order to
30 benchmark the quality of the LilyPond output.
32 As of lilypond 1.5.42, the spacing and beam quanting is almost
35 There are two tweaks in this file: a line-break was forced before
36 measure 25, we get back the linebreaking of Baerenreiter. The stem
37 direction is forced in measure 24. The last beam of that measure is up
38 in Baerenreiter because of context. We don't detect that yet.
40 Note that the Barenreiter edition contains a few engraving
41 mistakes. The second line begins with measure 6 (but prints 5). The |:
42 half way in measure 13 has been forgotten.
47 sarabandeA = \context Voice \relative c {
48 \override Staff.NoteCollision #'merge-differently-dotted = ##t
51 << { d8. e16 e4.\trill d16 e } \\
53 <d, a' f'>4. e'8[ d c] |
55 e16(f] g[ a bes d,)] |
56 cis4.\trill b8[ a g] |
58 %% check spacing without accs:
59 %% c4.\trill bes8[ a g] |
61 << { d'8. e16 e4.\trill d16 e |
64 { <a, f>4 a2 <a d,>4. } >> |
67 g'8 bes16(a) c(bes) a(g) d'8 f, |
73 << { f'8 g16(a) a4. g16(f) |
74 g8 a16(bes) bes4. c16(d) }
76 { a,4 <bes d >4. r8 bes4 <g f'>2 }
80 e'8[ f] c,[ g'] f'[ e] |
82 << { a'4 a4.\trill bes8
84 { f8[ es] es4. r8 d4 } >>
86 fis8.\trill es16 d8 c |
92 < bes d, g, >4.\trill a8[ g f!] |
95 cis,[ bes'] a[ g16 f] e!8[ f16 d] |
96 cis8 e16 a a,8. g'16 f8(e) |
99 << { d e16(f) f4. e16(d) |
100 e8 f16(g) g4. a16(bes) |
101 a8 cis16 d d,8 e16 f32 g f8\trill e16(d) } \\
104 <d a f>8 r r g, a4 } >>
107 d4 d,16 a'( b cis d e f g) |
111 << { a16(b c b) c4. b16(a) |
112 b cis d cis d4. e16(f) | }
124 #'after-line-breaking-callback
125 = #(lambda (smob) (assert-system-count smob 6))
130 sarabandeCelloGlobal = {
136 } \repeat "volta" 2 {
141 sarabandeCelloScripts = {
144 sarabandeCelloStaff = \context Staff <<
146 \sarabandeCelloGlobal
147 \sarabandeCelloScripts
151 smallerPaper = \layout {
154 \override StaffSymbol #'staff-space = #0.8
157 \override SpacingSpanner #'spacing-increment = #0.96
161 linewidth = 146.8 \mm
168 betweensystemspace = 25\mm
169 betweensystempadding = 0\mm
176 \midi{ \tempo 4 = 40 }
183 %%% LilyPond-indent-level:2