]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/repeats.itely
Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
[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 between 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 notation
27 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 These are beat or measure repeats.  They look like single slashes or
36 percent signs.
37
38 @item tremolo
39 This is used to write tremolo beams.
40
41 @end table
42
43
44 @menu
45 * Long repeats::                
46 * Short repeats::               
47 @end menu
48
49 @node Long repeats
50 @subsection Long repeats
51
52 This section discusses how to input long (usually multi-measure)
53 repeats.  The repeats can take two forms: repeats enclosed between
54 repeat signs; or written out repeats, used to input repetitious music.
55 Repeat signs can also be controlled manually.
56
57 @menu
58 * Normal repeats::              
59 * Manual repeat marks::         
60 * Written-out repeats::  
61 @end menu
62
63 @cindex volta
64 @cindex prima volta
65 @cindex seconda volta
66 @cindex volta, prima
67 @cindex volta, seconda
68 @funindex \repeat
69
70 @node Normal repeats
71 @subsubsection Normal repeats
72
73 The syntax for a normal repeat is
74
75 @example
76 \repeat volta @var{repeatcount} @var{musicexpr}
77 @end example
78
79 where @var{musicexpr} is a music expression.  Alternate endings can be
80 produced using @code{\alternative}.  If there are more repeats than
81 there are alternate endings, the earliest repeats are given the first
82 alternative.
83
84 Normal repeats without alternate endings:
85
86 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
87 \repeat volta 2 { c4 d e f }
88 c2 d
89 \repeat volta 2 { d4 e f g }
90 @end lilypond
91
92 Normal repeats with alternate endings:
93
94 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
95 \repeat volta 2 { g4 f e d }
96   \alternative {
97     { cis2 g' }
98     { cis,2 b }
99   }
100 \repeat volta 3 { c4 d e f }
101   \alternative {
102     { d2 e }
103     { f2 g }
104   }
105 c1
106 @end lilypond
107
108
109 Repeats with upbeats can be entered in two ways:
110
111 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
112 \new Staff {
113   \partial 4
114   e |
115   \repeat volta 4 { c2 d | e2 f | }
116   \alternative {
117     { g4 g g e }
118     { a4 a a a | b2. }
119   }
120 }
121 @end lilypond
122
123 @noindent
124 or
125
126 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
127 \new Staff {
128   \partial 4 
129   \repeat volta 4 { e4 | c2 d | e2 f | }
130   \alternative {
131     { \partial 4*3 g4 g g }
132     { a4 a a a | b2. }
133   }
134 }
135 @end lilypond
136
137
138 @funindex \repeatTie
139
140 Ties may be added to a second ending:
141
142 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
143 c1
144 \repeat volta 2 {c4 d e f ~ }
145 \alternative {
146   {f2 d}
147   {f2\repeatTie f,}
148 }
149 @end lilypond
150
151 @snippets
152
153 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
154 {shortening-volta-brackets.ly}
155
156 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
157 {adding-volta-brackets-to-additional-staves.ly}
158
159
160 @c Is there a way to have a final bar ("|.") at the end of the
161 @c previous line? Doesn't seem to be.
162 If you want to start a repeat at the beginning of a line and have a
163 double bar at the end of the previous line, use @code{\bar}. For more
164 information, see @ref{Bar lines}.
165
166 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
167 c4 c c c
168 \bar "||:" \break 
169 \repeat volta 2 { c4 d e f }   
170 @end lilypond
171
172
173 @seealso
174
175 Music Glossary: @rglos{repeat}, @rglos{volta}.
176
177 Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}.
178
179 Snippets: @rlsr{Repeats}.
180
181 Internals Reference: @rinternals{VoltaBracket},
182 @rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic},
183 @rinternals{UnfoldedRepeatedMusic}.
184
185 @knownissues
186
187 @cindex repeat, ambiguous
188
189 A nested repeat like
190
191 @example
192 \repeat @dots{}
193 \repeat @dots{}
194 \alternative
195 @end example
196
197 @noindent
198 is ambiguous, since it is is not clear to which @code{\repeat} the
199 @code{\alternative} belongs.  This ambiguity is resolved by always
200 having the @code{\alternative} belong to the inner @code{\repeat}.
201 For clarity, it is advisable to use braces in such situations.
202
203 Timing information is not remembered at the start of an alternative,
204 so after a repeat timing information must be reset by hand; for
205 example, by setting @code{Score.measurePosition} or entering
206 @code{\partial}.  Similarly, slurs are also not repeated.
207
208
209
210 @node Manual repeat marks
211 @subsubsection Manual repeat marks
212
213 @funindex repeatCommands
214
215 @c FIXME: Markup does not work in the "text" field
216 @c And how does one change the font?
217 @c On the whole, this section needs better documentation (why the
218 @c double parentheses around the volta expressions?)
219
220 The property @code{repeatCommands} can be used to control the
221 layout of repeats.  Its value is a Scheme list of repeat commands.
222
223 @table @asis
224 @item @code{start-repeat}
225 Print a @code{|:} bar line.
226
227 @item @code{end-repeat}
228 Print a @code{:|} bar line.
229
230 @item @code{(volta @var{text})}
231 Print a volta bracket saying @var{text}.
232
233 @item @code{(volta #f)}
234 Stop a running volta bracket.
235 @end table
236
237 Printing a @code{|:} bar line:
238
239 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
240 c1
241 \set Score.repeatCommands = #'( start-repeat )
242 d4 e f g
243 c1
244 @end lilypond
245
246 Printing a @code{:|} bar line:
247
248 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
249 c1
250 d4 e f g
251 \set Score.repeatCommands = #'( end-repeat )
252 c1
253 @end lilypond
254
255 Printing a volta bracket saying @var{text}.  The text can be specified
256 as a text string or as a markup text, see @ref{Formatting text}.  Do
257 not forget to change the font, as the default number font does not
258 contain alphabetic characters.
259
260
261 @lilypond[verbatim,quote,relative=2]
262 c1
263 d4 e f g
264 \override Staff.VoltaBracket #'font-name = #"sans"
265 \set Score.repeatCommands = #'( ( volta "1. Repeat to CHORUS" ) )
266 f4 g a b
267 \set Score.repeatCommands = #'( ( volta #f ) \text ( volta "2., 3. To VERSE" ) end-repeat )
268 g4 a g a
269 c1
270 @end lilypond
271
272 Note: unless explicitly stopped as in the next example, the volta
273 bracket will continue indefinitely.
274
275 Stopping a running volta bracket:
276
277 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
278 c1
279 d4 e f g
280 \set Score.repeatCommands = #'( ( volta #f ) ( volta  "2" ) end-repeat )
281 g4 a g a
282 f4 e f
283 \set Score.repeatCommands = #'( ( volta #f ) )
284 d4
285 c1
286 @end lilypond 
287
288 @c FIXME: improve visibility of bar lines link?
289
290 @seealso
291
292 Notation Reference: @ref{Bar lines}, @ref{Formatting text}.
293
294 Snippets: @rlsr{Repeats}.
295
296 Internals Reference: @rinternals{VoltaBracket},
297 @rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic}.
298
299
300 @node Written-out repeats
301 @subsubsection Written-out repeats
302
303 @cindex written-out repeats
304 @cindex repetitious music
305 @cindex repeats, written-out
306
307 By using the @code{unfold} command, repeats can be used to simplify
308 the writing out of repetitious music.  The syntax is
309
310 @example
311 \repeat unfold @var{repeatcount} @var{musicexpr}
312 @end example
313
314 where @var{musicexpr} is a music expression.  Unfold repeats can be
315 made with or without alternate endings.  If there are more repeats
316 than there are alternate endings, the first alternative ending is
317 applied to the earliest endings.  Unfold repeats without alternate
318 endings:
319
320 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
321 c1
322 \repeat unfold 2 { c4 d e f }
323 c1
324 @end lilypond
325
326 Unfold repeats with alternate endings:
327
328 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
329 c1
330 \repeat unfold 2 { g4 f e d }
331   \alternative {
332     { cis2 g' }
333     { cis,2 b }
334   }
335 c1
336 \repeat unfold 3 { d4 c b2 }
337   \alternative {
338     { c4 d e f }
339     { d4 c b a }
340   }
341 c1
342 @end lilypond
343
344 @seealso
345
346 Snippets: @rlsr{Repeats}.
347
348 Internals Reference: @rinternals{RepeatedMusic},
349 @rinternals{UnfoldedRepeatedMusic}.
350
351 @node Short repeats
352 @subsection Short repeats
353
354 This section discusses how to input short repeats.  Short repeats can
355 take two basic forms: repeats of a single note to two measures,
356 represented by slashes or percent signs; and tremolos.
357
358 @menu
359 * Percent repeats::             
360 * Tremolo repeats::             
361 @end menu
362
363 @node Percent repeats
364 @subsubsection Percent repeats
365
366 @cindex percent repeats
367 @cindex measure repeats
368
369 Repeated short patterns of notes are supported.  The music is printed
370 once, and the pattern is replaced with a special sign.  Patterns that
371 are shorter than one measure are replaced by slashes, and patterns of
372 one or two measures are replaced by percent-like signs.  The syntax is
373
374 @example
375 @code{\repeat percent @var{number} @var{musicexpr}}
376 @end example
377
378 where @var{musicexpr} is a music expression. 
379
380 @lilypond[quote,verbatim,ragged-right]
381 \relative c' {
382   \repeat percent 4 { c4 }
383   \repeat percent 2 { b'4 a g f }
384   \repeat percent 2 { c2 es | f4 fis g c | }
385 }
386 @end lilypond
387
388 Measure repeats of more than two repeats get a counter if you switch
389 on the @code{countPercentRepeats} property:
390
391 @lilypond[relative=2,fragment,quote,verbatim,ragged-right]
392 \relative c' {
393   \set countPercentRepeats = ##t
394   \repeat percent 4 { c1 }
395 }
396 @end lilypond
397
398
399 Isolated percents can also be printed.  This is done by entering a
400 multi-measure rest with a different print function:
401
402 @lilypond[fragment,verbatim,quote]
403 \override MultiMeasureRest #'stencil
404   = #ly:multi-measure-rest::percent
405 R1
406 @end lilypond
407
408
409 @knownissues
410
411 Only three kinds of percent repeats are supported: a single slash
412 representing a single beat (regardless of the duration of the repeated
413 notes); a single slash with dots representing one full measure; and
414 two slashes with dots crossing a bar line representing two full
415 measures.  Neither multiple slashes representing single beat repeats
416 consisting of sixteenth or shorter notes, nor two slashes with dots
417 representing single beat repeats consisting of notes of varying
418 durations, are supported.
419
420
421 @seealso
422
423 Music Glossary: @rglos{percent repeat}, @rglos{simile}.
424
425 Snippets: @rlsr{Repeats}.
426
427 Internals Reference: @rinternals{RepeatSlash},
428 @rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat},
429 @rinternals{DoublePercentRepeatCounter},
430 @rinternals{PercentRepeatCounter}, @rinternals{PercentRepeatedMusic}.
431
432 @node Tremolo repeats
433 @subsubsection Tremolo repeats
434
435 Tremolos can take two forms: alternation between two chords or two
436 notes, and rapid repetition of a single
437 note or chord. Tremolos consisting of an alternation are indicated by
438 adding beams between the notes or chords being alternated, while
439 tremolos consisting of the rapid repetition of a single note are
440 indicated by adding beams or slashes to a single note.
441
442 @cindex tremolo beams
443
444 To place tremolo marks between notes, use @code{\repeat} with
445 tremolo style:
446
447 @lilypond[quote,verbatim,ragged-right]
448 \relative c' {
449   \repeat tremolo 8 { c16 d }
450   \repeat tremolo 4 { c16 d }
451   \repeat tremolo 2 { c16 d }
452 }
453 @end lilypond
454
455 The @code{\repeat tremolo} syntax expects exactly two notes within
456 the braces, and the number of repetitions must correspond to a
457 note value that can be expressed with plain or dotted notes.  Thus,
458 @code{\repeat tremolo 7} is valid and produces a double dotted
459 note, but @code{\repeat tremolo 9} is not.
460
461 The duration of the tremolo equals the duration of the
462 braced expression multiplied by the number of repeats:
463 @code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
464 notated as two whole notes joined by tremolo beams. 
465
466 There are two ways to put tremolo marks on a single note.  The
467 @code{\repeat tremolo} syntax is also used here, in which case
468 the note should not be surrounded by braces:
469
470 @lilypond[quote,verbatim,ragged-right]
471 \repeat tremolo 4 c'16
472 @end lilypond
473
474 @cindex tremolo marks
475 @funindex tremoloFlags
476
477 The same output can be obtained by adding
478 @q{@code{:}[@var{number}]} after the note.  The number indicates
479 the duration of the subdivision, and it must be at least 8.  A
480 @var{number} value of 8 gives one line across the note stem.  If
481 the length is omitted, the last value (stored in
482 @code{tremoloFlags}) is used
483
484 @lilypond[quote,ragged-right,verbatim,fragment]
485 c'2:8 c':32 | c': c': |
486 @end lilypond
487
488
489 @knownissues
490
491
492 Tremolos entered with @q{@code{:}[@var{number}]} do not carry over
493 into the MIDI output.
494
495
496 @seealso
497
498 Snippets: @rlsr{Repeats}.
499