]> git.donarmstrong.com Git - lilypond.git/blob - input/mutopia/J.S.Bach/baerenreiter-sarabande.ly
* lily/rest.cc (polyphonic_offset_callback): new function. Do
[lilypond.git] / input / mutopia / J.S.Bach / baerenreiter-sarabande.ly
1 \version "2.1.22"
2
3 % #(ly:set-point-and-click 'line-column)
4
5 forcedLastBreak = \notes { \break }
6
7 %% We want this to perfectly match the Baerenreiter spacing.
8 %% If we're not using 6 systems, there's definately a problem.
9 #(define (assert-system-count smob n)
10   (let ((systems (length (ly:get-broken-into
11                           (ly:get-original
12                            (ly:get-system smob))))))
13     (if (not (equal? n systems))
14         (error
15         ;;(warn
16         (string-append "Got " (number->string systems)
17                              " systems (expecting " (number->string n))))))
18             
19
20 \header {
21   title = "Solo Cello Suite II"
22   piece ="Sarabande"
23   composer = "J.S. Bach"
24   editor = "August Wenzinger"
25   source= "B\\\"arenreiter Urtext"
26
27   texidoc = "The B\\\"arenreiter edition of the Cello Suites is the
28 most beautifully typeset piece of music in our collection of music (we
29 both own one. It is also lovely on French Horn). This piece does not
30 include articulation, but it does follows the same beaming and
31 linebreaking as the printed edition. This is done in order to
32 benchmark the quality of the LilyPond output.
33
34 As of lilypond 1.5.42, the spacing and beam quanting is almost
35 identical.
36
37 There are two tweaks in this file: a line-break was forced before
38 measure 25, we get back the linebreaking of Baerenreiter.  The stem
39 direction is forced in measure 24. The last beam of that measure is up
40 in Baerenreiter because of context. We don't detect that yet.
41
42 Note that the Barenreiter edition contains a few engraving
43 mistakes. The second line begins with measure 6 (but prints 5). The |:
44 half way in measure 13 has been forgotten.
45  "
46 }
47
48
49 sarabandeA =  \context Voice \notes \relative c {
50   \override Staff.NoteCollision  #'merge-differently-dotted = ##t
51
52   
53   << { d8. e16 e4.\trill d16 e } \\
54     { d4 a2 } >>
55   <d, a' f'>4.  e'8[ d c] |
56   bes[ g'] f[ e16(f] g[ a bes d,)] |
57   cis4.\trill b8[ a g] |
58
59   %% check spacing without accs: 
60   %%    c4.\trill bes8[ a g] |
61   
62   << { d'8. e16 e4.\trill d16 e |
63       f4. d8[ e f] }
64     \\
65     { <a, f>4 a2 <a d,>4.  } >> |
66
67   %%7
68   g'8 bes16(a) c(bes) a(g) d'8 f, |
69   <<  e4.\trill
70     \\ <c, g'>4 >>
71   d'8[ c bes]
72
73   %%9
74   << { f'8 g16(a) a4. g16(f)  |
75       g8 a16(bes) bes4. c16(d) }
76     \\
77     { a,4 <bes d >4. r8 bes4 <g f'>2  }
78   >> |
79
80   %% 11
81   e'8[ f] c,[ g'] f'[ e] |
82   f4 f,2 |
83   << {  a'4 a4.\trill bes8 
84        c bes16 a } \\
85     { f8[ es] es4. r8 d4 } >>
86
87   fis8.\trill es16 d8 c |
88   bes[ g']
89   a,[ fis']
90   es'[ d] |
91   
92   %%16
93   < bes d, g, >4.\trill a8[ g f!] |
94   e bes a f' g a |
95   d, as g es' f g |
96   cis,[ bes'] a[ g16 f] e!8[ f16 d] |
97   cis8 e16 a a,8. g'16 f8(e) |
98   
99   %%21
100   << { d e16(f) f4. e16(d) |
101       e8 f16(g) g4. a16(bes) |
102       a8 cis16 d d,8 e16 f32 g f8\trill e16(d) } \\
103     { bes4 g2 |
104       g4 <bes cis,>4. s8 |
105       <d a f>8 r r g, a4 } >>
106   |
107   \stemUp
108   d4 d,16 a'( b cis d e f g) |
109   \stemBoth
110   \forcedLastBreak
111   %%25
112   << { a16(b c b) c4. b16(a) |
113       b cis d cis d4. e16(f) | }
114     \\
115     { f,4 fis4. s8 |
116       <d g,>4 gis4.   } >>
117   \voiceOne
118   d'16(cis  d) f,
119   a,8[ e']
120   \oneVoice
121   d'[ cis] |
122   %%  d4 d,,2 |
123   d4
124   \override NoteHead
125     #'after-line-breaking-callback
126  = #(lambda (smob) (assert-system-count smob 6))
127   d,,2 |
128 }
129
130
131 sarabandeCelloGlobal = \notes{
132   \time 3/4
133   \key f \major
134   \clef bass
135   \repeat "volta" 2 {
136     s2.*12
137   } \repeat "volta" 2 {
138     s2.*16
139   }
140 }
141
142 sarabandeCelloScripts = \notes{
143 }
144
145 sarabandeCelloStaff = \context Staff <<
146   \sarabandeA
147   \sarabandeCelloGlobal
148   \sarabandeCelloScripts
149 >>
150
151 % size perversions
152 smallerPaper = \paper {
153     \translator { \StaffContext
154                   fontSize = #-1
155                   StaffSymbol \override  #'staff-space = #0.8
156                   }
157     \translator { \ScoreContext
158                    SpacingSpanner \override #'spacing-increment = #0.96
159                 }
160         
161     indent = 5.6 \mm
162     linewidth = 146.8 \mm
163 }
164
165 baerPaper = \paper {
166     indent = 7. \mm
167     linewidth =183.5 \mm
168     interscoreline=4.0\mm
169     \translator {
170              \ScoreContext
171 %            System \override #'print-function = #box-grob-stencil
172     }
173 }
174
175
176 \score{
177   \sarabandeCelloStaff
178   \paper{
179     \baerPaper
180   }
181   \midi{ \tempo 4 = 40 }
182   \header{
183     opus= "" 
184     piece ="Sarabande" }
185 }
186
187 %%% Local variables:
188 %%% LilyPond-indent-level:2
189 %%% End:
190