]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/notation/repeats.itely
Run scripts/auxiliar/update-with-convert-ly.sh
[lilypond.git] / Documentation / notation / 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.  For details, see the Contributors'
7     Guide, node Updating translation committishes..
8 @end ignore
9
10 @c \version "2.16.0"
11
12 @node Repeats
13 @section Repeats
14
15 @lilypondfile[quote]{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
19 repeats:
20
21
22 @table @code
23 @item volta
24 The repeated music is not written out but enclosed between repeat bar
25 lines.  If the repeat is at the beginning of a piece, a repeat bar
26 line is only printed at the end of the repeat.  Alternative endings
27 (volte) are printed left to right with brackets.  This is the standard
28 notation for repeats with alternatives.
29
30 @item unfold
31 The repeated music is fully written out, as many times as
32 specified by @code{@var{repeatcount}}.  This is useful when
33 entering repetitious music.
34
35 @item percent
36 These are beat or measure repeats.  They look like single slashes or
37 percent signs.
38
39 @item tremolo
40 This is used to write tremolo beams.
41
42 @end table
43
44
45 @menu
46 * Long repeats::
47 * Short repeats::
48 @end menu
49
50 @node Long repeats
51 @subsection Long repeats
52
53 This section discusses how to input long (usually multi-measure)
54 repeats.  The repeats can take two forms: repeats enclosed between
55 repeat signs; or written-out repeats, used to input repetitious music.
56 Repeat signs can also be controlled manually.
57
58 @menu
59 * Normal repeats::
60 * Manual repeat marks::
61 * Written-out repeats::
62 @end menu
63
64 @cindex volta
65 @cindex prima volta
66 @cindex seconda volta
67 @cindex volta, prima
68 @cindex volta, seconda
69 @cindex repeat, normal
70 @cindex normal repeat
71 @cindex repeat with alternate endings
72 @cindex alternate endings
73 @funindex \repeat
74 @funindex \alternative
75 @funindex \partial
76
77 @node Normal repeats
78 @unnumberedsubsubsec Normal repeats
79
80 The syntax for a normal repeat is
81
82 @example
83 \repeat volta @var{repeatcount} @var{musicexpr}
84 @end example
85
86 @noindent
87 where @code{@var{musicexpr}} is a music expression.
88
89 A single repeat without an alternate ending:
90
91 @lilypond[verbatim,quote,relative=2]
92 \repeat volta 2 { c4 d e f }
93 c2 d
94 \repeat volta 2 { d4 e f g }
95 @end lilypond
96
97 Alternative endings can be produced using @code{\alternative}.  Each
98 group of alternatives must be themselves, enclosed in a set of braces.
99
100 @example
101 \repeat volta @var{repeatcount} @var{musicexpr}
102 \alternative @{
103   @{ @var{musicexpr} @}
104 @}
105 @end example
106
107 @noindent
108 where @code{@var{musicexpr}} is a music expression.
109
110 If there are more repeats than there are alternate endings, the earliest
111 repeats are given the first alternative.
112
113 A single repeat with one alternate ending:
114
115 @lilypond[verbatim,quote,relative=2]
116 \repeat volta 2 { c4 d e f | }
117 \alternative {
118   { c2 e | }
119   { f2 g | }
120 }
121 c1
122 @end lilypond
123
124 A single repeat with more than one alternate ending:
125
126 @lilypond[verbatim,quote,relative=2]
127 \repeat volta 4 { c4 d e f | }
128 \alternative {
129   { c2 e | }
130   { f2 g | }
131 }
132 c1
133 @end lilypond
134
135 Multiple repeats with more than one alternate ending:
136
137 @lilypond[verbatim,quote,relative=2]
138 \repeat volta 3 { c4 d e f | }
139 \alternative {
140   { c2 e | }
141   { f2 g | }
142   { a2 g | }
143 }
144 c1
145 @end lilypond
146
147 @warning{If there are two or more alternatives, nothing should appear
148 between the closing brace of one and the opening brace of the next
149 in an @code{@bs{}alternative} block, otherwise you will not get the
150 expected number of endings.}
151
152 @warning{If you include @code{@bs{}relative} inside a
153 @code{@bs{}repeat} without explicitly instantiating the
154 @code{Voice} context, extra (unwanted) staves will appear.  See
155 @rprogram{An extra staff appears}.}
156
157 @cindex repeat with upbeat
158 @cindex upbeat in a repeat
159 @cindex anacrucis in a repeat
160 @cindex repeat with anacrucis
161 @cindex repeat with pickup
162 @cindex pickup in a repeat
163 @funindex \partial
164
165 If a repeat starts in the middle of a measure and has no alternate
166 endings, normally the end of the repeat will also fall in the
167 middle of a measure, so that the two ends add up to one complete
168 measure.  In such cases, the repeat signs do not constitute true
169 bar lines.  Do not use @code{\partial} commands or bar checks
170 where these repeat signs are printed:
171
172 @lilypond[verbatim,quote,relative=1]
173 % no \partial here
174 c4 e g  % no bar check here
175 % no \partial here
176 \repeat volta 4 {
177   e4 |
178   c2 e |
179   % no \partial here
180   g4 g g  % no bar check here
181 }
182 % no \partial here
183 g4 |
184 a2 a |
185 g1 |
186 @end lilypond
187
188 Similarly, if a repeat begins with the initial partial measure of
189 a score and has no alternate endings, the same conditions apply as
190 in the above example, except that in this case the @code{\partial}
191 command is required at the beginning of the score:
192
193 @lilypond[verbatim,quote,relative=1]
194 \partial 4  % required
195 \repeat volta 4 {
196   e4 |
197   c2 e |
198   % no \partial here
199   g4 g g  % no bar check here
200 }
201 % no \partial here
202 g4 |
203 a2 a |
204 g1 |
205 @end lilypond
206
207 When alternate endings are added to a repeat that begins with an
208 incomplete measure, it becomes necessary to set the
209 @code{Timing.measureLength} context property manually, in the
210 following specific places:
211
212 @itemize
213 @item
214 at the start of any incomplete measures in the @code{\alternative}
215 block, which normally occur at the end of each alternative, except
216 (in most cases) the last.
217
218 @item
219 at the start of each alternative, except the first.
220 @end itemize
221
222 @lilypond[verbatim,quote,relative=1]
223 \partial 4
224 \repeat volta 2 { e4 | c2 e | }
225 \alternative {
226   {
227     f2 d |
228     \set Timing.measureLength = #(ly:make-moment 3 4)
229     g4 g g  % optional bar check is allowed here
230   }
231   {
232     \set Timing.measureLength = #(ly:make-moment 4 4)
233     a2 a |
234   }
235 }
236 g1 |
237 @end lilypond
238
239 The @code{measureLength} property is described in @ref{Time
240 administration}.
241
242 @funindex \inStaffSegno
243
244 The @code{\inStaffSegno} command can be used to place the segno
245 symbol in cooperation with the @code{\repeat volta} command.
246 Alternative bar line symbols can be set in a Score context by
247 overriding the properties @code{segnoType},
248 @code{startRepeatSegnoType}, @code{endRepeatSegnoType} or
249 @code{doubleRepeatSegnoType} as required.
250
251 @lilypond[verbatim,quote,relative=1]
252 e1
253 \repeat volta 2 {
254   \inStaffSegno
255   f2 g a b
256 }
257 c1_"D.S." \bar "|."
258 @end lilypond
259
260 @cindex repeats, with ties
261 @cindex alternative endings, with ties
262 @cindex ties, in repeats
263 @cindex ties, alternative endings
264 @funindex \repeatTie
265
266 Ties may be added to a second ending:
267
268 @lilypond[verbatim,quote,relative=2]
269 c1
270 \repeat volta 2 { c4 d e f~ }
271 \alternative {
272   { f2 d }
273   { f2\repeatTie f, }
274 }
275 @end lilypond
276
277 @snippets
278 @lilypondfile[verbatim,quote,texidoc,doctitle]
279 {shortening-volta-brackets.ly}
280
281 @lilypondfile[verbatim,quote,texidoc,doctitle]
282 {adding-volta-brackets-to-additional-staves.ly}
283
284 @lilypondfile[verbatim,quote,texidoc,doctitle]
285 {setting-the-double-repeat-default-for-volte.ly}
286
287 @cindex repeats, bar numbers letters
288 @cindex repeats, alternative bar numbers
289
290 @lilypondfile[verbatim,quote,texidoc,doctitle]
291 {alternative-bar-numbering.ly}
292
293 @seealso
294 Music Glossary:
295 @rglos{repeat},
296 @rglos{volta}.
297
298 Notation Reference:
299 @ref{Bar lines},
300 @ref{Modifying context plug-ins},
301 @ref{Time administration}.
302
303 Snippets:
304 @rlsr{Repeats}.
305
306 Internals Reference:
307 @rinternals{VoltaBracket},
308 @rinternals{RepeatedMusic},
309 @rinternals{VoltaRepeatedMusic},
310 @rinternals{UnfoldedRepeatedMusic}.
311
312 @knownissues
313 @cindex repeat, ambiguous
314 @cindex nested repeat
315 @cindex repeat, nested
316 @cindex repeat timing information
317 @cindex repeat and measure number
318 @cindex timing information and repeats
319 @cindex measure number and repeats
320 @cindex repeat and slur
321 @cindex slur and repeat
322
323 Slurs that span from a @code{\repeat} block into an
324 @code{\alternative} block will only work for the first alternate
325 ending.  Also, slurs cannot wrap around from the end of one
326 alternative back to the beginning of the repeat.
327
328 If a repeat that begins with an incomplete measure has an
329 @code{\alternative} block that contains modifications to the
330 @code{measureLength} property, using @code{\unfoldRepeats} will
331 result in wrongly-placed bar lines and bar check warnings.
332
333 A nested repeat like
334
335 @example
336 \repeat @dots{}
337 \repeat @dots{}
338 \alternative
339 @end example
340
341 @noindent
342 is ambiguous, since it is not clear to which @code{\repeat} the
343 @code{\alternative} belongs.  This ambiguity is resolved by always
344 having the @code{\alternative} belong to the inner @code{\repeat}.
345 For clarity, it is advisable to use braces in such situations.
346
347
348 @node Manual repeat marks
349 @unnumberedsubsubsec Manual repeat marks
350
351 @cindex manual repeat mark
352 @cindex repeat, manual
353 @cindex start repeat
354 @cindex repeat, start
355 @cindex end repeat
356 @cindex repeat, end
357 @cindex repeat number, changing
358 @cindex repeat volta, changing
359 @cindex volta bracket
360 @cindex bracket, volta
361 @funindex repeatCommands
362 @funindex start-repeat
363
364 @warning{These methods are only used for displaying unusual repeat
365 constructs, and may produce unexpected behavior.  In most cases,
366 repeats should be created using the standard @code{@bs{}repeat} command
367 or by printing the relevant bar lines.  For more information, see
368 @ref{Bar lines}.}
369
370 The property @code{repeatCommands} can be used to control the
371 layout of repeats.  Its value is a Scheme list of repeat commands.
372
373 @table @code
374 @item start-repeat
375 Print a @code{|:} bar line.
376
377 @lilypond[verbatim,quote,relative=2]
378 c1
379 \set Score.repeatCommands = #'(start-repeat)
380 d4 e f g
381 c1
382 @end lilypond
383
384 As per standard engraving practice, repeat signs are not printed
385 at the beginning of a piece.
386
387 @item end-repeat
388 Print a @code{:|} bar line:
389
390 @lilypond[verbatim,quote,relative=2]
391 c1
392 d4 e f g
393 \set Score.repeatCommands = #'(end-repeat)
394 c1
395 @end lilypond
396
397 @item (volta @var{number}) ... (volta #f)
398 Create a new volta with the specified number.  The volta bracket must
399 be explicitly terminated, or it will not be printed.
400
401 @lilypond[verbatim,quote,relative=2]
402 f4 g a b
403 \set Score.repeatCommands = #'((volta "2"))
404 g4 a g a
405 \set Score.repeatCommands = #'((volta #f))
406 c1
407 @end lilypond
408
409 @end table
410
411 Multiple repeat commands may occur at the same point:
412
413 @lilypond[verbatim,quote,relative=2]
414 f4 g a b
415 \set Score.repeatCommands = #'((volta "2, 5") end-repeat)
416 g4 a g a
417 c1
418 \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
419 b1
420 \set Score.repeatCommands = #'((volta #f))
421 @end lilypond
422
423 @cindex volta bracket with text
424 @cindex text in volta bracket
425
426 Text can be included with the volta bracket.  The text can be a
427 number or numbers or markup text, see @ref{Formatting text}.  The
428 simplest way to use markup text is to define the markup first,
429 then include the markup in a Scheme list.
430
431 @lilypond[verbatim,quote]
432 voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
433 \relative c'' {
434   c1
435   \set Score.repeatCommands =
436     #(list(list 'volta voltaAdLib) 'start-repeat)
437   c4 b d e
438   \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
439   f1
440   \set Score.repeatCommands = #'((volta #f))
441 }
442 @end lilypond
443
444
445 @snippets
446
447 @lilypondfile[verbatim,quote,texidoc,doctitle]
448 {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
449
450 @seealso
451 Notation Reference:
452 @ref{Bar lines},
453 @ref{Formatting text}.
454
455 Snippets:
456 @rlsr{Repeats}.
457
458 Internals Reference:
459 @rinternals{VoltaBracket},
460 @rinternals{RepeatedMusic},
461 @rinternals{VoltaRepeatedMusic}.
462
463
464 @node Written-out repeats
465 @unnumberedsubsubsec Written-out repeats
466
467 @cindex written-out repeats
468 @cindex repeats, written-out
469 @cindex repeats, unfold
470 @cindex repeats, alternative
471 @cindex unfold repeat
472 @cindex unfold repeat, alternate endings
473 @cindex alternate repeats
474 @cindex alternate endings, repeats
475 @funindex unfold
476
477 By using the @code{unfold} command, repeats can be used to simplify the
478 writing out of repetitious music.  The syntax is
479
480 @example
481 \repeat unfold @var{repeatcount} @var{musicexpr}
482 @end example
483
484 @noindent
485 where @code{@var{musicexpr}} is a music expression and
486 @code{@var{repeatcount}} is the number of times
487 @code{@var{musicexpr}} is repeated.
488
489 @lilypond[verbatim,quote,relative=2]
490 \repeat unfold 2 { c4 d e f }
491 c1
492 @end lilypond
493
494 In some cases, especially in a @code{\relative} context, the
495 @code{\repeat unfold} function is not the same as writing out the
496 music expression multiple times. E.g,
497
498 @example
499 \repeat unfold 2 @{ a'4 b c @}
500 @end example
501
502 is not equivalent to
503
504 @example
505 a'4 b c | a'4 b c
506 @end example
507
508 Unfold repeats can be made with alternate endings.
509
510 @lilypond[verbatim,quote,relative=2]
511 \repeat unfold 2 { c4 d e f }
512 \alternative {
513   { c2 g' }
514   { c,2 b }
515 }
516 c1
517 @end lilypond
518
519 If there are more repeats than there are alternate endings, the first
520 alternative is applied multiple times until the remaining alternatives
521 make up the total number of repeats.
522
523 @lilypond[verbatim,quote,relative=2]
524 \repeat unfold 4 { c4 d e f }
525 \alternative {
526   { c2 g' }
527   { c,2 b }
528   { e2 d }
529  }
530 c1
531 @end lilypond
532
533 If there are more alternate endings than repeats then only the first
534 alternatives are applied.  The remaining alternatives will be ignored
535 and not printed.
536
537 @lilypond[verbatim,quote,relative=2]
538 \repeat unfold 2 { c4 d e f }
539 \alternative {
540   { c2 g' }
541   { c,2 b }
542   { e2 d }
543 }
544 c1
545 @end lilypond
546
547 It is also possible to nest multiple @code{unfold} functions (with or
548 without alternate endings).
549
550 @lilypond[verbatim,quote,relative=2]
551 \repeat unfold 2 {
552   \repeat unfold 2 { c4 d e f }
553   \alternative {
554     { c2 g' }
555     { c,2 b }
556   }
557 }
558 c1
559 @end lilypond
560
561 Chord constructs can be repeated by the chord repetition symbol
562 @code{q}.  See @ref{Chord repetition}.
563
564 @warning{If you include @code{@bs{}relative} inside a @code{@bs{}repeat}
565 without explicitly instantiating the @code{Voice} context, extra
566 (unwanted) staves will appear.  See @rprogram{An extra staff appears}.}
567
568 @seealso
569 Notation Reference:
570 @ref{Chord repetition}.
571
572 Snippets:
573 @rlsr{Repeats}.
574
575 Internals Reference:
576 @rinternals{RepeatedMusic},
577 @rinternals{UnfoldedRepeatedMusic}.
578
579
580 @node Short repeats
581 @subsection Short repeats
582
583 This section discusses how to input short repeats.  Short repeats can
584 take two forms: slashes or percent signs to represent repeats of a
585 single note, a single measure or two measures, and tremolos otherwise.
586
587 @menu
588 * Percent repeats::
589 * Tremolo repeats::
590 @end menu
591
592 @node Percent repeats
593 @unnumberedsubsubsec Percent repeats
594
595 @cindex percent repeats
596 @cindex measure repeats
597 @cindex repeat, percent
598 @cindex repeat, measure
599 @cindex repeat, short
600 @funindex \repeat percent
601 @funindex percent
602
603 Repeated short patterns are printed once, and the repeated pattern
604 is replaced with a special sign.
605
606 The syntax is
607
608 @example
609 \repeat percent @var{number} @var{musicexpr}
610 @end example
611
612 @noindent
613 where @code{@var{musicexpr}} is a music expression.
614
615 Patterns that are shorter than one measure are replaced by slashes.
616
617 @lilypond[verbatim,quote,relative=2]
618 \repeat percent 4 { c128 d e f }
619 \repeat percent 4 { c64 d e f }
620 \repeat percent 5 { c32 d e f }
621 \repeat percent 4 { c16 d e f }
622 \repeat percent 4 { c8 d }
623 \repeat percent 4 { c4 }
624 \repeat percent 2 { c2 }
625 @end lilypond
626
627 Patterns of one or two measures are replaced by percent-like symbols.
628
629 @lilypond[verbatim,quote,relative=2]
630 \repeat percent 2 { c4 d e f }
631 \repeat percent 2 { c2 d }
632 \repeat percent 2 { c1 }
633 @end lilypond
634
635 @lilypond[verbatim,quote,relative=2]
636 \repeat percent 3 { c4 d e f | c2 g' }
637 @end lilypond
638
639 Patterns that are shorter than one measure but contain mixed durations
640 use a double-percent symbol.
641
642 @lilypond[verbatim,quote,relative=2]
643 \repeat percent 4 { c8. <d f>16 }
644 \repeat percent 2 { \times 2/3 { r8 c d } e4 }
645 @end lilypond
646
647 @snippets
648
649 @lilypondfile[verbatim,quote,texidoc,doctitle]
650 {percent-repeat-counter.ly}
651
652 @lilypondfile[verbatim,quote,texidoc,doctitle]
653 {percent-repeat-count-visibility.ly}
654
655 @lilypondfile[verbatim,quote,texidoc,doctitle]
656 {isolated-percent-repeats.ly}
657
658 @seealso
659 Music Glossary:
660 @rglos{percent repeat},
661 @rglos{simile}.
662
663 Snippets:
664 @rlsr{Repeats}.
665
666 Internals Reference:
667 @rinternals{RepeatSlash},
668 @rinternals{RepeatSlashEvent},
669 @rinternals{DoubleRepeatSlash},
670 @rinternals{PercentRepeat},
671 @rinternals{PercentRepeatCounter},
672 @rinternals{PercentRepeatedMusic},
673 @rinternals{Percent_repeat_engraver},
674 @rinternals{DoublePercentEvent},
675 @rinternals{DoublePercentRepeat},
676 @rinternals{DoublePercentRepeatCounter},
677 @rinternals{Double_percent_repeat_engraver},
678 @rinternals{Slash_repeat_engraver}.
679
680
681 @node Tremolo repeats
682 @unnumberedsubsubsec Tremolo repeats
683
684 @cindex tremolo beams
685 @cindex tremolo
686 @cindex repeat, tremolo
687 @funindex \repeat tremolo
688 @funindex tremolo
689
690 Tremolos can take two forms: alternation between two chords or two
691 notes, and rapid repetition of a single note or chord.  Tremolos
692 consisting of an alternation are indicated by adding beams between the
693 notes or chords being alternated, while tremolos consisting of the
694 rapid repetition of a single note are indicated by adding beams or
695 slashes to a single note.
696
697 To place tremolo marks between notes, use @code{\repeat} with
698 tremolo style:
699
700 @lilypond[quote,verbatim,relative=2]
701 \repeat tremolo 8 { c16 d }
702 \repeat tremolo 6 { c16 d }
703 \repeat tremolo 2 { c16 d }
704 @end lilypond
705
706 The @code{\repeat tremolo} syntax expects exactly two notes within
707 the braces, and the number of repetitions must correspond to a
708 note value that can be expressed with plain or dotted notes.  Thus,
709 @code{\repeat tremolo 7} is valid and produces a double dotted
710 note, but @code{\repeat tremolo 9} is not.
711
712 The duration of the tremolo equals the duration of the
713 braced expression multiplied by the number of repeats:
714 @code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
715 notated as two whole notes joined by tremolo beams.
716
717 There are two ways to put tremolo marks on a single note.  The
718 @code{\repeat tremolo} syntax is also used here, in which case
719 the note should not be surrounded by braces:
720
721 @lilypond[quote,verbatim,ragged-right]
722 \repeat tremolo 4 c'16
723 @end lilypond
724
725 @cindex tremolo marks
726 @funindex tremoloFlags
727 @funindex :
728
729 The same output can be obtained by adding @code{:@var{N}} after
730 the note, where @code{@var{N}} indicates the duration of the
731 subdivision (it must be at least 8).  If @code{@var{N}} is 8, one
732 beam is added to the note's stem.  If @code{@var{N}} is omitted,
733 the last value (stored in @code{tremoloFlags}) is used:
734
735 @lilypond[quote,verbatim,relative=2]
736 c2:8 c:32
737 c: c:
738 @end lilypond
739
740 @snippets
741
742 @lilypondfile[verbatim,quote,texidoc,doctitle]
743 {cross-staff-tremolos.ly}
744
745 @seealso
746 Snippets:
747 @rlsr{Repeats}.
748
749 @cindex tremolo, cross-staff
750 @cindex cross-staff tremolo