]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/repeats.itely
Merge branch 'master' of git://git.sv.gnu.org/lilypond.git into td-lily
[lilypond.git] / Documentation / user / repeats.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  See TRANSLATION for details.
7 @end ignore
8
9 @c \version "2.11.38"
10
11 @node Repeats
12 @section Repeats
13
14 @lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
15 {repeats-headword.ly}
16
17 Repetition is a central concept in music, and multiple notations
18 exist for repetitions. LilyPond supports the following kinds of repeats:
19
20
21 @table @code
22 @item volta
23 The repeated music is not written out but enclosed in repeat bar
24 lines.  If the repeat is at the beginning of a piece, a repeat bar
25 line is only printed at the end. Alternative endings (volte) are
26 printed, left to right with brackets.  This is the standard
27 notation for repeats with alternatives.
28
29 @item unfold
30 The repeated music is fully written out, as many times as
31 specified by @var{repeatcount}.  This is useful when
32 entering repetitious music. 
33
34 @item percent
35 Write beat or measure repeats.  These look like percent signs.
36 Percent repeats must be declared within a @code{Voice} context.
37
38 @item tremolo
39 Write tremolo beams.
40
41 @end table
42
43 @ignore
44 LilyPond has one syntactic construct for specifying different
45 types of repeats.  The syntax is
46
47 @example
48 \repeat @var{variant} @var{repeatcount} @var{repeatbody}
49 @end example
50
51 where @var{repeatbody} is a music expression.
52
53
54 Alternative endings are entered with 
55 @funindex \alternative
56 @example
57 \alternative @{
58   @var{alternative1}
59   @var{alternative2}
60   @var{alternative3}
61   @dots{}
62 @}
63 @end example
64
65 @noindent
66 after a @code{\repeat volta} or @code{unfold} block, where each
67 @var{alternative} is a music expression.  If you give fewer
68 alternatives than @var{repeatcount}, the first alternative is assumed
69 to be played more than once.
70 @end ignore
71
72
73 @menu
74 * Writing long repeats::        
75 * Short repeats::               
76 @end menu
77
78 @node Writing long repeats
79 @subsection Writing long repeats
80
81 @menu
82 * Normal repeats::              
83 * Manual repeat marks::         
84 * Written-out repeats::         
85 @end menu
86
87 @cindex volta
88 @cindex prima volta
89 @cindex seconda volta
90 @cindex volta, prima
91 @cindex volta, seconda
92 @funindex \repeat
93
94 @node Normal repeats
95 @subsubsection Normal repeats
96
97 The syntax for a normal repeat is
98
99 @example
100 \repeat volta @var{repeatcount} @var{repeatbody}
101 @end example
102
103 where @var{repeatbody} is a music expression.  Alternate endings can
104 be produced using @code{\alternative}.
105
106 Normal repeats without alternate endings:
107
108 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
109 \repeat volta 2 { c4 d e f }
110 c2 d
111 \repeat volta 2 { d4 e f g }
112 @end lilypond
113
114 Normal repeats with alternate endings:
115
116 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
117 \repeat volta 2 { g f e d }
118   \alternative {
119     { cis2 g' }
120     { cis,2 b }
121   }
122 c1
123 @end lilypond
124
125
126 Repeats with upbeats:
127
128 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
129 \new Staff {
130   \partial 4
131   e |
132   \repeat volta 4 { c2 d2 | e2 f2 | }
133   \alternative { { g4 g g e } { a a a a | b2. } }
134 }
135 @end lilypond
136
137 @noindent
138 or
139
140 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
141 \new Staff {
142   \partial 4 
143   \repeat volta 4 { e | c2 d2 | e2 f2 | }
144   \alternative { { \partial 4*3 g4 g g } { a a a a | b2. } }
145 }
146 @end lilypond
147
148
149 @funindex \repeatTie
150
151 Ties may be added to a second ending:
152
153 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
154 c1
155 \repeat volta 2 {c4 d e f ~ }
156 \alternative { {f2 d} {f\repeatTie f,} }
157 @end lilypond
158
159 @snippets
160
161 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
162 {shortening-volta-brackets.ly}
163
164 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
165 {adding-volta-brackets-to-additional-staves.ly}
166
167
168 @c Is there a way to have a final bar ("|.") at the end of the
169 @c previous line? Doesn't seem to be.
170 If you want to start a repeat at the beginning of a line and have a
171 double bar at the end of the previous line, use @code{\bar}. For more
172 information, see @ref{Bar lines}.
173
174 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
175 c4 c c c
176 \bar "||:" \break 
177 \repeat volta 2 { c4 d e f }   
178 @end lilypond
179
180
181 @seealso
182
183 Music Glossary: @rglos{repeat}, @rglos{volta}.
184
185 Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}.
186
187 Snippets: @lsrdir{Repeats,Repeats}.
188
189 Internals Reference: @internalsref{VoltaBracket},
190 @internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
191 @internalsref{UnfoldedRepeatedMusic}.
192
193 @knownissues
194
195 @cindex repeat, ambiguous
196
197 A nested repeat like
198
199 @example
200 \repeat @dots{}
201 \repeat @dots{}
202 \alternative
203 @end example
204
205 @noindent
206 is ambiguous, since it is is not clear to which @code{\repeat} the
207 @code{\alternative} belongs.  This ambiguity is resolved by always
208 having the @code{\alternative} belong to the inner @code{\repeat}.
209 For clarity, it is advisable to use braces in such situations.
210
211 Timing information is not remembered at the start of an alternative,
212 so after a repeat timing information must be reset by hand; for
213 example, by setting @code{Score.measurePosition} or entering
214 @code{\partial}.  Similarly, slurs or ties are also not repeated.
215
216
217
218 @node Manual repeat marks
219 @subsubsection Manual repeat marks
220
221 @funindex repeatCommands
222
223 @c FIXME: Markup does not work in the "text" field
224 @c And how does one change the font?
225 @c On the whole, this section needs better documentation (why the
226 @c double parentheses around the volta expressions?)
227
228 The property @code{repeatCommands} can be used to control the
229 layout of repeats.  Its value is a Scheme list of repeat commands.
230
231 @table @asis
232 @item @code{start-repeat}
233 Print a @code{|:} bar line.
234
235 @item @code{end-repeat}
236 Print a @code{:|} bar line.
237
238 @item @code{(volta @var{text})}
239 Print a volta bracket saying @var{text}.  The text can be specified as
240 a text string or as a markup text, see @ref{Formatting text}.  Do not
241 forget to change the font, as the default number font does not contain
242 alphabetic characters;
243
244
245 @item @code{(volta #f)}
246 Stop a running volta bracket.
247 @end table
248
249 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
250 c4
251   \set Score.repeatCommands = #'((volta "93") end-repeat)
252 c4 c4
253   \set Score.repeatCommands = #'((volta #f))
254 c4 c4
255 @end lilypond
256
257 @c FIXME: improve visibility of bar lines link?
258
259 @seealso
260
261 Notation Reference: @ref{Bar lines}, @ref{Formatting text}.
262
263 Snippets: @lsrdir{Repeats,Repeats}
264
265 Internals Reference: @internalsref{VoltaBracket},
266 @internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic}.
267
268
269 @node Written-out repeats
270 @subsubsection Written-out repeats
271
272 @cindex written-out repeats
273 @cindex repetitious music
274 @cindex repeats, written-out
275
276 By using the @code{unfold} command, repeats can be used to simplify
277 the writing out of repetitious music. The syntax is
278
279 @example
280 \repeat unfold @var{repeatcount} @var{repeatbody}
281 @end example
282
283 Unfold repeats can be made with or without alternate endings. Unfold
284 repeats without alternate endings:
285
286 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
287 c1
288 \repeat unfold 2 { c4 d e f }
289 c1
290 @end lilypond
291
292 Unfold repeats with alternate endings:
293
294 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
295 c1
296 \repeat unfold 2 { g f e d }
297   \alternative {
298     { cis2 g' }
299     { cis,2 b }
300   }
301 c1
302 @end lilypond
303
304 @seealso
305
306 Snippets: @lsrdir{Repeats,Repeats}.
307
308 Internals Reference: @internalsref{RepeatedMusic},
309 @internalsref{UnfoldedRepeatedMusic}.
310
311 @node Short repeats
312 @subsection Short repeats
313
314 @menu
315 * Percent repeats::             
316 * Tremolo repeats::             
317 @end menu
318
319 @node Percent repeats
320 @subsubsection Percent repeats
321
322 @cindex percent repeats
323 @cindex measure repeats
324
325 A note pattern can be repeated with the @code{\repeat percent
326 @var{number}} syntax.  The music is printed once, and the pattern
327 is replaced with a special sign.  Patterns of one and two measures
328 are replaced by percent-like signs, patterns that divide the
329 measure length are replaced by slashes.  Percent repeats must be
330 declared within a @code{Voice} context.
331
332 @lilypond[quote,verbatim,ragged-right]
333 \new Voice \relative c' {
334   \repeat percent 4 { c4 }
335   \repeat percent 2 { c2 es2 f4 fis4 g4 c4 }
336 }
337 @end lilypond
338
339 Measure repeats of more than two measures get a counter if you
340 switch on the @code{countPercentRepeats} property:
341
342 @lilypond[relative=2,fragment,quote,verbatim,ragged-right]
343 \new Voice {
344   \set countPercentRepeats = ##t
345   \repeat percent 4 { c1 }
346 }
347 @end lilypond
348
349
350 Isolated percents can also be printed.  This is done by entering a
351 multi-measure rest with a different print function:
352
353 @lilypond[fragment,verbatim,quote]
354 \override MultiMeasureRest #'stencil
355   = #ly:multi-measure-rest::percent
356 R1
357 @end lilypond
358
359
360 @seealso
361
362 Snippets: @lsrdir{Repeats,Repeats}
363
364 Internals Reference: @internalsref{RepeatSlash},
365 @internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
366 @internalsref{DoublePercentRepeatCounter},
367 @internalsref{PercentRepeatCounter},
368 @internalsref{PercentRepeatedMusic}.
369
370 @node Tremolo repeats
371 @subsubsection Tremolo repeats
372
373 @cindex tremolo beams
374
375 To place tremolo marks between notes, use @code{\repeat} with
376 tremolo style:
377
378 @lilypond[quote,verbatim,ragged-right]
379 \new Voice \relative c' {
380   \repeat tremolo 8 { c16 d16 }
381   \repeat tremolo 4 { c16 d16 }
382   \repeat tremolo 2 { c16 d16 }
383 }
384 @end lilypond
385
386 The @code{\repeat tremolo} syntax expects exactly two notes within
387 the braces, and the number of repetitions must correspond to a
388 note value that can be expressed with plain or dotted notes.  Thus,
389 @code{\repeat tremolo 7} is valid and produces a double dotted
390 note, but @code{\repeat tremolo 9} is not.
391
392 The duration of the tremolo equals the duration of the
393 braced expression multiplied by the number of repeats:
394 @code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
395 notated as two whole notes joined by tremolo beams. 
396
397 There are two ways to put tremolo marks on a single note.  The
398 @code{\repeat tremolo} syntax can be used even here, in which case
399 the note should not be surrounded by braces:
400
401 @lilypond[quote,verbatim,ragged-right]
402 \repeat tremolo 4 c'16
403 @end lilypond
404
405 @cindex tremolo marks
406 @funindex tremoloFlags
407
408 The same output can be obtained by adding
409 @q{@code{:}[@var{number}]} after the note.  The number indicates
410 the duration of the subdivision, and it must be at least 8.  A
411 @var{number} value of 8 gives one line across the note stem.  If
412 the length is omitted, the last value (stored in
413 @code{tremoloFlags}) is used
414
415 @lilypond[quote,ragged-right,verbatim,fragment]
416 c'2:8 c':32 | c': c': |
417 @end lilypond
418
419
420 @knownissues
421
422
423 Tremolos entered with @q{@code{:}[@var{number}]} do not carry over
424 into the MIDI output.
425
426
427 @seealso
428
429 Notation Reference: @ref{Tremolo repeats}.
430
431 Internals Reference: @internalsref{Beam},
432 @internalsref{StemTremolo}.
433
434 Snippets: @lsrdir{Repeats,Repeats}
435
436 Elsewhere: @internalsref{StemTremolo}.
437
438
439
440
441