]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/repeats.itely
fea9b93c961e95c74413c8158afd5a77155ffe99
[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 where @var{repeatbody} is a music expression.  Unfold repeats can be
284 made with or without alternate endings.  Unfold repeats without
285 alternate endings:
286
287 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
288 c1
289 \repeat unfold 2 { c4 d e f }
290 c1
291 @end lilypond
292
293 Unfold repeats with alternate endings:
294
295 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
296 c1
297 \repeat unfold 2 { g f e d }
298   \alternative {
299     { cis2 g' }
300     { cis,2 b }
301   }
302 c1
303 @end lilypond
304
305 @seealso
306
307 Snippets: @lsrdir{Repeats,Repeats}.
308
309 Internals Reference: @internalsref{RepeatedMusic},
310 @internalsref{UnfoldedRepeatedMusic}.
311
312 @node Short repeats
313 @subsection Short repeats
314
315 @menu
316 * Percent repeats::             
317 * Tremolo repeats::             
318 @end menu
319
320 @node Percent repeats
321 @subsubsection Percent repeats
322
323 @cindex percent repeats
324 @cindex measure repeats
325
326 Repeated short patterns of notes are also supported.  The music is
327 printed once, and the pattern is replaced with a special sign.
328 Patterns of one and two measures are replaced by percent-like signs,
329 patterns that are shorter than onee measure are replaced by slashes.
330 Percent repeats must be declared within a @code{Voice} context.  The
331 syntax is
332
333 @example
334 @code{\repeat percent @var{number} @var{repeatbody}}
335 @end example
336
337 where @var{repeatbody} is a music expression. 
338
339 @lilypond[quote,verbatim,ragged-right]
340 \new Voice \relative c' {
341   \repeat percent 4 { c4 }
342   \repeat percent 2 { c2 es2 f4 fis4 g4 c4 }
343 }
344 @end lilypond
345
346 Measure repeats of more than two measures get a counter if you
347 switch on the @code{countPercentRepeats} property:
348
349 @lilypond[relative=2,fragment,quote,verbatim,ragged-right]
350 \new Voice {
351   \set countPercentRepeats = ##t
352   \repeat percent 4 { c1 }
353 }
354 @end lilypond
355
356
357 Isolated percents can also be printed.  This is done by entering a
358 multi-measure rest with a different print function:
359
360 @lilypond[fragment,verbatim,quote]
361 \override MultiMeasureRest #'stencil
362   = #ly:multi-measure-rest::percent
363 R1
364 @end lilypond
365
366
367 @seealso
368
369 Snippets: @lsrdir{Repeats,Repeats}
370
371 Internals Reference: @internalsref{RepeatSlash},
372 @internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
373 @internalsref{DoublePercentRepeatCounter},
374 @internalsref{PercentRepeatCounter},
375 @internalsref{PercentRepeatedMusic}.
376
377 @node Tremolo repeats
378 @subsubsection Tremolo repeats
379
380 @cindex tremolo beams
381
382 To place tremolo marks between notes, use @code{\repeat} with
383 tremolo style:
384
385 @lilypond[quote,verbatim,ragged-right]
386 \new Voice \relative c' {
387   \repeat tremolo 8 { c16 d16 }
388   \repeat tremolo 4 { c16 d16 }
389   \repeat tremolo 2 { c16 d16 }
390 }
391 @end lilypond
392
393 The @code{\repeat tremolo} syntax expects exactly two notes within
394 the braces, and the number of repetitions must correspond to a
395 note value that can be expressed with plain or dotted notes.  Thus,
396 @code{\repeat tremolo 7} is valid and produces a double dotted
397 note, but @code{\repeat tremolo 9} is not.
398
399 The duration of the tremolo equals the duration of the
400 braced expression multiplied by the number of repeats:
401 @code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
402 notated as two whole notes joined by tremolo beams. 
403
404 There are two ways to put tremolo marks on a single note.  The
405 @code{\repeat tremolo} syntax is also used here, in which case
406 the note should not be surrounded by braces:
407
408 @lilypond[quote,verbatim,ragged-right]
409 \repeat tremolo 4 c'16
410 @end lilypond
411
412 @cindex tremolo marks
413 @funindex tremoloFlags
414
415 The same output can be obtained by adding
416 @q{@code{:}[@var{number}]} after the note.  The number indicates
417 the duration of the subdivision, and it must be at least 8.  A
418 @var{number} value of 8 gives one line across the note stem.  If
419 the length is omitted, the last value (stored in
420 @code{tremoloFlags}) is used
421
422 @lilypond[quote,ragged-right,verbatim,fragment]
423 c'2:8 c':32 | c': c': |
424 @end lilypond
425
426
427 @knownissues
428
429
430 Tremolos entered with @q{@code{:}[@var{number}]} do not carry over
431 into the MIDI output.
432
433
434 @seealso
435
436 Notation Reference: @ref{Tremolo repeats}.
437
438 Internals Reference: @internalsref{Beam},
439 @internalsref{StemTremolo}.
440
441 Snippets: @lsrdir{Repeats,Repeats}
442
443 Elsewhere: @internalsref{StemTremolo}.
444
445
446
447
448