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