]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/notation/repeats.itely
67317a670cc301ec4847a6b5782b3259bcb5a9b2
[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{Modifying ties and slurs},
302 @ref{Time administration}.
303
304 Snippets:
305 @rlsr{Repeats}.
306
307 Internals Reference:
308 @rinternals{VoltaBracket},
309 @rinternals{RepeatedMusic},
310 @rinternals{VoltaRepeatedMusic},
311 @rinternals{UnfoldedRepeatedMusic}.
312
313 @knownissues
314 @cindex repeat, ambiguous
315 @cindex nested repeat
316 @cindex repeat, nested
317 @cindex repeat timing information
318 @cindex repeat and measure number
319 @cindex timing information and repeats
320 @cindex measure number and repeats
321 @cindex repeat and slur
322 @cindex slur and repeat
323
324 Slurs that span from a @code{\repeat} block into an
325 @code{\alternative} block will only work for the first alternative
326 ending.  The visual appearance of a continuing slur in other
327 alternative blocks may be simulated with @code{\repeatTie} if the
328 slur extends into only one note in the alternative block, although
329 this method does not work in @code{TabStaff}.  Other methods which
330 may be tailored to indicate continuing slurs over several notes in
331 alternative blocks, and which also work in @code{TabStaff} contexts,
332 are shown in @ref{Modifying ties and slurs}.
333
334 Also, slurs cannot wrap around from the end of one
335 alternative back to the beginning of the repeat.
336
337 If a repeat that begins with an incomplete measure has an
338 @code{\alternative} block that contains modifications to the
339 @code{measureLength} property, using @code{\unfoldRepeats} will
340 result in wrongly-placed bar lines and bar check warnings.
341
342 A nested repeat like
343
344 @example
345 \repeat @dots{}
346 \repeat @dots{}
347 \alternative
348 @end example
349
350 @noindent
351 is ambiguous, since it is not clear to which @code{\repeat} the
352 @code{\alternative} belongs.  This ambiguity is resolved by always
353 having the @code{\alternative} belong to the inner @code{\repeat}.
354 For clarity, it is advisable to use braces in such situations.
355
356
357 @node Manual repeat marks
358 @unnumberedsubsubsec Manual repeat marks
359
360 @cindex manual repeat mark
361 @cindex repeat, manual
362 @cindex start repeat
363 @cindex repeat, start
364 @cindex end repeat
365 @cindex repeat, end
366 @cindex repeat number, changing
367 @cindex repeat volta, changing
368 @cindex volta bracket
369 @cindex bracket, volta
370 @funindex repeatCommands
371 @funindex start-repeat
372
373 @warning{These methods are only used for displaying unusual repeat
374 constructs, and may produce unexpected behavior.  In most cases,
375 repeats should be created using the standard @code{@bs{}repeat} command
376 or by printing the relevant bar lines.  For more information, see
377 @ref{Bar lines}.}
378
379 The property @code{repeatCommands} can be used to control the
380 layout of repeats.  Its value is a Scheme list of repeat commands.
381
382 @table @code
383 @item start-repeat
384 Print a @code{|:} bar line.
385
386 @lilypond[verbatim,quote,relative=2]
387 c1
388 \set Score.repeatCommands = #'(start-repeat)
389 d4 e f g
390 c1
391 @end lilypond
392
393 As per standard engraving practice, repeat signs are not printed
394 at the beginning of a piece.
395
396 @item end-repeat
397 Print a @code{:|} bar line:
398
399 @lilypond[verbatim,quote,relative=2]
400 c1
401 d4 e f g
402 \set Score.repeatCommands = #'(end-repeat)
403 c1
404 @end lilypond
405
406 @item (volta @var{number}) ... (volta #f)
407 Create a new volta with the specified number.  The volta bracket must
408 be explicitly terminated, or it will not be printed.
409
410 @lilypond[verbatim,quote,relative=2]
411 f4 g a b
412 \set Score.repeatCommands = #'((volta "2"))
413 g4 a g a
414 \set Score.repeatCommands = #'((volta #f))
415 c1
416 @end lilypond
417
418 @end table
419
420 Multiple repeat commands may occur at the same point:
421
422 @lilypond[verbatim,quote,relative=2]
423 f4 g a b
424 \set Score.repeatCommands = #'((volta "2, 5") end-repeat)
425 g4 a g a
426 c1
427 \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
428 b1
429 \set Score.repeatCommands = #'((volta #f))
430 @end lilypond
431
432 @cindex volta bracket with text
433 @cindex text in volta bracket
434
435 Text can be included with the volta bracket.  The text can be a
436 number or numbers or markup text, see @ref{Formatting text}.  The
437 simplest way to use markup text is to define the markup first,
438 then include the markup in a Scheme list.
439
440 @lilypond[verbatim,quote]
441 voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
442 \relative c'' {
443   c1
444   \set Score.repeatCommands =
445     #(list(list 'volta voltaAdLib) 'start-repeat)
446   c4 b d e
447   \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
448   f1
449   \set Score.repeatCommands = #'((volta #f))
450 }
451 @end lilypond
452
453
454 @snippets
455
456 @lilypondfile[verbatim,quote,texidoc,doctitle]
457 {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
458
459 @seealso
460 Notation Reference:
461 @ref{Bar lines},
462 @ref{Formatting text}.
463
464 Snippets:
465 @rlsr{Repeats}.
466
467 Internals Reference:
468 @rinternals{VoltaBracket},
469 @rinternals{RepeatedMusic},
470 @rinternals{VoltaRepeatedMusic}.
471
472
473 @node Written-out repeats
474 @unnumberedsubsubsec Written-out repeats
475
476 @cindex written-out repeats
477 @cindex repeats, written-out
478 @cindex repeats, unfold
479 @cindex repeats, alternative
480 @cindex unfold repeat
481 @cindex unfold repeat, alternate endings
482 @cindex alternate repeats
483 @cindex alternate endings, repeats
484 @funindex unfold
485
486 By using the @code{unfold} command, repeats can be used to simplify the
487 writing out of repetitious music.  The syntax is
488
489 @example
490 \repeat unfold @var{repeatcount} @var{musicexpr}
491 @end example
492
493 @noindent
494 where @code{@var{musicexpr}} is a music expression and
495 @code{@var{repeatcount}} is the number of times
496 @code{@var{musicexpr}} is repeated.
497
498 @lilypond[verbatim,quote,relative=2]
499 \repeat unfold 2 { c4 d e f }
500 c1
501 @end lilypond
502
503 In some cases, especially in a @code{\relative} context, the
504 @code{\repeat unfold} function is not the same as writing out the
505 music expression multiple times. E.g,
506
507 @example
508 \repeat unfold 2 @{ a'4 b c @}
509 @end example
510
511 is not equivalent to
512
513 @example
514 a'4 b c | a'4 b c
515 @end example
516
517 Unfold repeats can be made with alternate endings.
518
519 @lilypond[verbatim,quote,relative=2]
520 \repeat unfold 2 { c4 d e f }
521 \alternative {
522   { c2 g' }
523   { c,2 b }
524 }
525 c1
526 @end lilypond
527
528 If there are more repeats than there are alternate endings, the first
529 alternative is applied multiple times until the remaining alternatives
530 make up the total number of repeats.
531
532 @lilypond[verbatim,quote,relative=2]
533 \repeat unfold 4 { c4 d e f }
534 \alternative {
535   { c2 g' }
536   { c,2 b }
537   { e2 d }
538  }
539 c1
540 @end lilypond
541
542 If there are more alternate endings than repeats then only the first
543 alternatives are applied.  The remaining alternatives will be ignored
544 and not printed.
545
546 @lilypond[verbatim,quote,relative=2]
547 \repeat unfold 2 { c4 d e f }
548 \alternative {
549   { c2 g' }
550   { c,2 b }
551   { e2 d }
552 }
553 c1
554 @end lilypond
555
556 It is also possible to nest multiple @code{unfold} functions (with or
557 without alternate endings).
558
559 @lilypond[verbatim,quote,relative=2]
560 \repeat unfold 2 {
561   \repeat unfold 2 { c4 d e f }
562   \alternative {
563     { c2 g' }
564     { c,2 b }
565   }
566 }
567 c1
568 @end lilypond
569
570 Chord constructs can be repeated by the chord repetition symbol
571 @code{q}.  See @ref{Chord repetition}.
572
573 @warning{If you include @code{@bs{}relative} inside a @code{@bs{}repeat}
574 without explicitly instantiating the @code{Voice} context, extra
575 (unwanted) staves will appear.  See @rprogram{An extra staff appears}.}
576
577 @seealso
578 Notation Reference:
579 @ref{Chord repetition}.
580
581 Snippets:
582 @rlsr{Repeats}.
583
584 Internals Reference:
585 @rinternals{RepeatedMusic},
586 @rinternals{UnfoldedRepeatedMusic}.
587
588
589 @node Short repeats
590 @subsection Short repeats
591
592 This section discusses how to input short repeats.  Short repeats can
593 take two forms: slashes or percent signs to represent repeats of a
594 single note, a single measure or two measures, and tremolos otherwise.
595
596 @menu
597 * Percent repeats::
598 * Tremolo repeats::
599 @end menu
600
601 @node Percent repeats
602 @unnumberedsubsubsec Percent repeats
603
604 @cindex percent repeats
605 @cindex measure repeats
606 @cindex repeat, percent
607 @cindex repeat, measure
608 @cindex repeat, short
609 @funindex \repeat percent
610 @funindex percent
611
612 Repeated short patterns are printed once, and the repeated pattern
613 is replaced with a special sign.
614
615 The syntax is
616
617 @example
618 \repeat percent @var{number} @var{musicexpr}
619 @end example
620
621 @noindent
622 where @code{@var{musicexpr}} is a music expression.
623
624 Patterns that are shorter than one measure are replaced by slashes.
625
626 @lilypond[verbatim,quote,relative=2]
627 \repeat percent 4 { c128 d e f }
628 \repeat percent 4 { c64 d e f }
629 \repeat percent 5 { c32 d e f }
630 \repeat percent 4 { c16 d e f }
631 \repeat percent 4 { c8 d }
632 \repeat percent 4 { c4 }
633 \repeat percent 2 { c2 }
634 @end lilypond
635
636 Patterns of one or two measures are replaced by percent-like symbols.
637
638 @lilypond[verbatim,quote,relative=2]
639 \repeat percent 2 { c4 d e f }
640 \repeat percent 2 { c2 d }
641 \repeat percent 2 { c1 }
642 @end lilypond
643
644 @lilypond[verbatim,quote,relative=2]
645 \repeat percent 3 { c4 d e f | c2 g' }
646 @end lilypond
647
648 Patterns that are shorter than one measure but contain mixed durations
649 use a double-percent symbol.
650
651 @lilypond[verbatim,quote,relative=2]
652 \repeat percent 4 { c8. <d f>16 }
653 \repeat percent 2 { \times 2/3 { r8 c d } e4 }
654 @end lilypond
655
656 @snippets
657
658 @lilypondfile[verbatim,quote,texidoc,doctitle]
659 {percent-repeat-counter.ly}
660
661 @lilypondfile[verbatim,quote,texidoc,doctitle]
662 {percent-repeat-count-visibility.ly}
663
664 @lilypondfile[verbatim,quote,texidoc,doctitle]
665 {isolated-percent-repeats.ly}
666
667 @seealso
668 Music Glossary:
669 @rglos{percent repeat},
670 @rglos{simile}.
671
672 Snippets:
673 @rlsr{Repeats}.
674
675 Internals Reference:
676 @rinternals{RepeatSlash},
677 @rinternals{RepeatSlashEvent},
678 @rinternals{DoubleRepeatSlash},
679 @rinternals{PercentRepeat},
680 @rinternals{PercentRepeatCounter},
681 @rinternals{PercentRepeatedMusic},
682 @rinternals{Percent_repeat_engraver},
683 @rinternals{DoublePercentEvent},
684 @rinternals{DoublePercentRepeat},
685 @rinternals{DoublePercentRepeatCounter},
686 @rinternals{Double_percent_repeat_engraver},
687 @rinternals{Slash_repeat_engraver}.
688
689
690 @node Tremolo repeats
691 @unnumberedsubsubsec Tremolo repeats
692
693 @cindex tremolo beams
694 @cindex tremolo
695 @cindex repeat, tremolo
696 @funindex \repeat tremolo
697 @funindex tremolo
698
699 Tremolos can take two forms: alternation between two chords or two
700 notes, and rapid repetition of a single note or chord.  Tremolos
701 consisting of an alternation are indicated by adding beams between the
702 notes or chords being alternated, while tremolos consisting of the
703 rapid repetition of a single note are indicated by adding beams or
704 slashes to a single note.
705
706 To place tremolo marks between notes, use @code{\repeat} with
707 tremolo style:
708
709 @lilypond[quote,verbatim,relative=2]
710 \repeat tremolo 8 { c16 d }
711 \repeat tremolo 6 { c16 d }
712 \repeat tremolo 2 { c16 d }
713 @end lilypond
714
715 The @code{\repeat tremolo} syntax expects exactly two notes within
716 the braces, and the number of repetitions must correspond to a
717 note value that can be expressed with plain or dotted notes.  Thus,
718 @code{\repeat tremolo 7} is valid and produces a double dotted
719 note, but @code{\repeat tremolo 9} is not.
720
721 The duration of the tremolo equals the duration of the
722 braced expression multiplied by the number of repeats:
723 @code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
724 notated as two whole notes joined by tremolo beams.
725
726 There are two ways to put tremolo marks on a single note.  The
727 @code{\repeat tremolo} syntax is also used here, in which case
728 the note should not be surrounded by braces:
729
730 @lilypond[quote,verbatim,ragged-right]
731 \repeat tremolo 4 c'16
732 @end lilypond
733
734 @cindex tremolo marks
735 @funindex tremoloFlags
736 @funindex :
737
738 The same output can be obtained by adding @code{:@var{N}} after
739 the note, where @code{@var{N}} indicates the duration of the
740 subdivision (it must be at least 8).  If @code{@var{N}} is 8, one
741 beam is added to the note's stem.  If @code{@var{N}} is omitted,
742 the last value (stored in @code{tremoloFlags}) is used:
743
744 @lilypond[quote,verbatim,relative=2]
745 c2:8 c:32
746 c: c:
747 @end lilypond
748
749 @snippets
750
751 @lilypondfile[verbatim,quote,texidoc,doctitle]
752 {cross-staff-tremolos.ly}
753
754 @seealso
755 Snippets:
756 @rlsr{Repeats}.
757
758 @cindex tremolo, cross-staff
759 @cindex cross-staff tremolo