X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fnotation%2Frepeats.itely;h=fb7cdf663b406f78dfa5b3674eb5849b94208e08;hb=26a079ca2393d053315ef8dbef626c897dc9645a;hp=9ffea946cb701b0a2a59fc68ab16b5207b2b92bb;hpb=d627f5aa2707c875d63d95685951402a49cbfa80;p=lilypond.git diff --git a/Documentation/notation/repeats.itely b/Documentation/notation/repeats.itely index 9ffea946cb..fb7cdf663b 100644 --- a/Documentation/notation/repeats.itely +++ b/Documentation/notation/repeats.itely @@ -3,10 +3,11 @@ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH When revising a translation, copy the HEAD committish of the - version that you are working on. See TRANSLATION for details. + version that you are working on. For details, see the Contributors' + Guide, node Updating translation committishes.. @end ignore -@c \version "2.12.0" +@c \version "2.16.0" @node Repeats @section Repeats @@ -28,7 +29,7 @@ notation for repeats with alternatives. @item unfold The repeated music is fully written out, as many times as -specified by @var{repeatcount}. This is useful when +specified by @code{@var{repeatcount}}. This is useful when entering repetitious music. @item percent @@ -51,7 +52,7 @@ This is used to write tremolo beams. This section discusses how to input long (usually multi-measure) repeats. The repeats can take two forms: repeats enclosed between -repeat signs; or written out repeats, used to input repetitious music. +repeat signs; or written-out repeats, used to input repetitious music. Repeat signs can also be controlled manually. @menu @@ -83,13 +84,9 @@ The syntax for a normal repeat is @end example @noindent -where @var{musicexpr} is a music expression. Alternate endings can be -produced using @code{\alternative}. In order to delimit the alternate -endings, the group of alternatives must be enclosed in a set of -braces. If there are more repeats than there are alternate endings, -the earliest repeats are given the first alternative. +where @code{@var{musicexpr}} is a music expression. -Normal repeats without alternate endings: +A single repeat without an alternate ending: @lilypond[verbatim,quote,relative=2] \repeat volta 2 { c4 d e f } @@ -97,20 +94,65 @@ c2 d \repeat volta 2 { d4 e f g } @end lilypond -Normal repeats with alternate endings: +Alternative endings can be produced using @code{\alternative}. Each +group of alternatives must be themselves, enclosed in a set of braces. + +@example +\repeat volta @var{repeatcount} @var{musicexpr} +\alternative @{ + @{ @var{musicexpr} @} +@} +@end example + +@noindent +where @code{@var{musicexpr}} is a music expression. + +If there are more repeats than there are alternate endings, the earliest +repeats are given the first alternative. + +A single repeat with one alternate ending: + +@lilypond[verbatim,quote,relative=2] +\repeat volta 2 { c4 d e f | } +\alternative { + { c2 e | } + { f2 g | } +} +c1 +@end lilypond + +A single repeat with more than one alternate ending: @lilypond[verbatim,quote,relative=2] -\repeat volta 4 { c4 d e f } +\repeat volta 4 { c4 d e f | } \alternative { - { d2 e } - { f2 g } + { c2 e | } + { f2 g | } } c1 @end lilypond -@warning{Do not include @code{@bs{}relative} inside a -@code{@bs{}repeat}. It will cause unwanted staves to appear. -See @rlearning{An extra staff appears}.} +Multiple repeats with more than one alternate ending: + +@lilypond[verbatim,quote,relative=2] +\repeat volta 3 { c4 d e f | } +\alternative { + { c2 e | } + { f2 g | } + { a2 g | } +} +c1 +@end lilypond + +@warning{If there are two or more alternatives, nothing should appear +between the closing brace of one and the opening brace of the next +in an @code{@bs{}alternative} block, otherwise you will not get the +expected number of endings.} + +@warning{If you include @code{@bs{}relative} inside a +@code{@bs{}repeat} without explicitly instantiating the +@code{Voice} context, extra (unwanted) staves will appear. See +@rprogram{An extra staff appears}.} @cindex repeat with upbeat @cindex upbeat in a repeat @@ -120,42 +162,112 @@ See @rlearning{An extra staff appears}.} @cindex pickup in a repeat @funindex \partial -Repeats with upbeats can be entered in two ways: +If a repeat starts in the middle of a measure and has no alternate +endings, normally the end of the repeat will also fall in the +middle of a measure, so that the two ends add up to one complete +measure. In such cases, the repeat signs do not constitute true +bar lines. Do not use @code{\partial} commands or bar checks +where these repeat signs are printed: + +@lilypond[verbatim,quote,relative=1] +% no \partial here +c4 e g % no bar check here +% no \partial here +\repeat volta 4 { + e4 | + c2 e | + % no \partial here + g4 g g % no bar check here +} +% no \partial here +g4 | +a2 a | +g1 | +@end lilypond -@lilypond[verbatim,quote,relative=2] -\partial 4 -e | -\repeat volta 4 { c2 d | e2 f | } -\alternative { - { g4 g g e } - { a4 a a a | b2. } +Similarly, if a repeat begins with the initial partial measure of +a score and has no alternate endings, the same conditions apply as +in the above example, except that in this case the @code{\partial} +command is required at the beginning of the score: + +@lilypond[verbatim,quote,relative=1] +\partial 4 % required +\repeat volta 4 { + e4 | + c2 e | + % no \partial here + g4 g g % no bar check here } +% no \partial here +g4 | +a2 a | +g1 | @end lilypond -@noindent -or +When alternate endings are added to a repeat that begins with an +incomplete measure, it becomes necessary to set the +@code{Timing.measureLength} context property manually, in the +following specific places: -@lilypond[verbatim,quote,relative=2] +@itemize +@item +at the start of any incomplete measures in the @code{\alternative} +block, which normally occur at the end of each alternative, except +(in most cases) the last. + +@item +at the start of each alternative, except the first. +@end itemize + +@lilypond[verbatim,quote,relative=1] \partial 4 -\repeat volta 4 { e4 | c2 d | e2 f | } +\repeat volta 2 { e4 | c2 e | } \alternative { - { \partial 4*3 g4 g g } - { a4 a a a | b2. } + { + f2 d | + \set Timing.measureLength = #(ly:make-moment 3 4) + g4 g g % optional bar check is allowed here + } + { + \set Timing.measureLength = #(ly:make-moment 4 4) + a2 a | + } } +g1 | @end lilypond +The @code{measureLength} property is described in @ref{Time +administration}. -@cindex repeats with ties -@cindex alternative endings with ties -@cindex ties in repeats -@cindex ties in alternative endings +@funindex \inStaffSegno + +The @code{\inStaffSegno} command can be used to place the segno +symbol in cooperation with the @code{\repeat volta} command. +Alternative bar line symbols can be set in a Score context by +overriding the properties @code{segnoType}, +@code{startRepeatSegnoType}, @code{endRepeatSegnoType} or +@code{doubleRepeatSegnoType} as required. + +@lilypond[verbatim,quote,relative=1] +e1 +\repeat volta 2 { + \inStaffSegno + f2 g a b +} +c1_"D.S." \bar "|." +@end lilypond + +@cindex repeats, with ties +@cindex alternative endings, with ties +@cindex ties, in repeats +@cindex ties, alternative endings @funindex \repeatTie Ties may be added to a second ending: @lilypond[verbatim,quote,relative=2] c1 -\repeat volta 2 { c4 d e f ~ } +\repeat volta 2 { c4 d e f~ } \alternative { { f2 d } { f2\repeatTie f, } @@ -163,28 +275,41 @@ c1 @end lilypond @snippets - -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {shortening-volta-brackets.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {adding-volta-brackets-to-additional-staves.ly} +@lilypondfile[verbatim,quote,texidoc,doctitle] +{setting-the-double-repeat-default-for-volte.ly} + +@cindex repeats, bar numbers letters +@cindex repeats, alternative bar numbers + +@lilypondfile[verbatim,quote,texidoc,doctitle] +{alternative-bar-numbering.ly} @seealso -Music Glossary: @rglos{repeat}, @rglos{volta}. +Music Glossary: +@rglos{repeat}, +@rglos{volta}. -Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}. +Notation Reference: +@ref{Bar lines}, +@ref{Modifying context plug-ins}, +@ref{Time administration}. -Snippets: @rlsr{Repeats}. +Snippets: +@rlsr{Repeats}. -Internals Reference: @rinternals{VoltaBracket}, -@rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic}, +Internals Reference: +@rinternals{VoltaBracket}, +@rinternals{RepeatedMusic}, +@rinternals{VoltaRepeatedMusic}, @rinternals{UnfoldedRepeatedMusic}. - @knownissues - @cindex repeat, ambiguous @cindex nested repeat @cindex repeat, nested @@ -195,6 +320,16 @@ Internals Reference: @rinternals{VoltaBracket}, @cindex repeat and slur @cindex slur and repeat +Slurs that span from a @code{\repeat} block into an +@code{\alternative} block will only work for the first alternate +ending. Also, slurs cannot wrap around from the end of one +alternative back to the beginning of the repeat. + +If a repeat that begins with an incomplete measure has an +@code{\alternative} block that contains modifications to the +@code{measureLength} property, using @code{\unfoldRepeats} will +result in wrongly-placed bar lines and bar check warnings. + A nested repeat like @example @@ -204,17 +339,11 @@ A nested repeat like @end example @noindent -is ambiguous, since it is is not clear to which @code{\repeat} the +is ambiguous, since it is not clear to which @code{\repeat} the @code{\alternative} belongs. This ambiguity is resolved by always having the @code{\alternative} belong to the inner @code{\repeat}. For clarity, it is advisable to use braces in such situations. -Timing information is not remembered at the start of an alternative, -so after a repeat timing information must be reset by hand; for -example, by setting @code{Score.measurePosition} or entering -@code{\partial}. Similarly, slurs are also not repeated. - - @node Manual repeat marks @unnumberedsubsubsec Manual repeat marks @@ -234,7 +363,7 @@ example, by setting @code{Score.measurePosition} or entering @warning{These methods are only used for displaying unusual repeat constructs, and may produce unexpected behavior. In most cases, -repeats should be created using the standard @code{\\repeat} command +repeats should be created using the standard @code{@bs{}repeat} command or by printing the relevant bar lines. For more information, see @ref{Bar lines}.} @@ -303,7 +432,8 @@ then include the markup in a Scheme list. voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } } \relative c'' { c1 - \set Score.repeatCommands = #(list(list 'volta voltaAdLib) 'start-repeat) + \set Score.repeatCommands = + #(list(list 'volta voltaAdLib) 'start-repeat) c4 b d e \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat) f1 @@ -314,10 +444,9 @@ voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } } @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly} - @seealso Notation Reference: @ref{Bar lines}, @@ -336,52 +465,115 @@ Internals Reference: @unnumberedsubsubsec Written-out repeats @cindex written-out repeats -@cindex repetitious music @cindex repeats, written-out -@cindex repeat, unfold -@cindex unfold music +@cindex repeats, unfold +@cindex repeats, alternative @cindex unfold repeat -@cindex unfold repeat with alternate endings -@cindex unfold music with alternate endings -@cindex alternate ending in written-out repeats +@cindex unfold repeat, alternate endings +@cindex alternate repeats +@cindex alternate endings, repeats @funindex unfold -By using the @code{unfold} command, repeats can be used to simplify -the writing out of repetitious music. The syntax is +By using the @code{unfold} command, repeats can be used to simplify the +writing out of repetitious music. The syntax is @example \repeat unfold @var{repeatcount} @var{musicexpr} @end example @noindent -where @var{musicexpr} is a music expression and @var{repeatcount} is -the number of times @var{musicexpr} is repeated. +where @code{@var{musicexpr}} is a music expression and +@code{@var{repeatcount}} is the number of times +@code{@var{musicexpr}} is repeated. @lilypond[verbatim,quote,relative=2] +\repeat unfold 2 { c4 d e f } c1 +@end lilypond + +In some cases, especially in a @code{\relative} context, the +@code{\repeat unfold} function is not the same as writing out the +music expression multiple times. E.g, + +@example +\repeat unfold 2 @{ a'4 b c @} +@end example + +is not equivalent to + +@example +a'4 b c | a'4 b c +@end example + +Unfold repeats can be made with alternate endings. + +@lilypond[verbatim,quote,relative=2] \repeat unfold 2 { c4 d e f } +\alternative { + { c2 g' } + { c,2 b } +} +c1 +@end lilypond + +If there are more repeats than there are alternate endings, the first +alternative is applied multiple times until the remaining alternatives +make up the total number of repeats. + +@lilypond[verbatim,quote,relative=2] +\repeat unfold 4 { c4 d e f } +\alternative { + { c2 g' } + { c,2 b } + { e2 d } + } c1 @end lilypond -Unfold repeats can be made with alternate endings. If there are -more repeats than there are alternate endings, the first -alternative ending is applied to the earliest endings. +If there are more alternate endings than repeats then only the first +alternatives are applied. The remaining alternatives will be ignored +and not printed. @lilypond[verbatim,quote,relative=2] +\repeat unfold 2 { c4 d e f } +\alternative { + { c2 g' } + { c,2 b } + { e2 d } +} c1 -\repeat unfold 2 { g4 f e d } +@end lilypond + +It is also possible to nest multiple @code{unfold} functions (with or +without alternate endings). + +@lilypond[verbatim,quote,relative=2] +\repeat unfold 2 { + \repeat unfold 2 { c4 d e f } \alternative { - { cis2 g' } - { cis,2 b } + { c2 g' } + { c,2 b } } +} c1 @end lilypond +Chord constructs can be repeated by the chord repetition symbol +@code{q}. See @ref{Chord repetition}. + +@warning{If you include @code{@bs{}relative} inside a @code{@bs{}repeat} +without explicitly instantiating the @code{Voice} context, extra +(unwanted) staves will appear. See @rprogram{An extra staff appears}.} @seealso -Snippets: @rlsr{Repeats}. +Notation Reference: +@ref{Chord repetition}. + +Snippets: +@rlsr{Repeats}. -Internals Reference: @rinternals{RepeatedMusic}, +Internals Reference: +@rinternals{RepeatedMusic}, @rinternals{UnfoldedRepeatedMusic}. @@ -389,8 +581,8 @@ Internals Reference: @rinternals{RepeatedMusic}, @subsection Short repeats This section discusses how to input short repeats. Short repeats can -take two basic forms: repeats of a single note to two measures, -represented by slashes or percent signs; and tremolos. +take two forms: slashes or percent signs to represent repeats of a +single note, a single measure or two measures, and tremolos otherwise. @menu * Percent repeats:: @@ -408,57 +600,82 @@ represented by slashes or percent signs; and tremolos. @funindex \repeat percent @funindex percent -Repeated short patterns of notes are supported. The music is printed -once, and the pattern is replaced with a special sign. Patterns that -are shorter than one measure are replaced by slashes, and patterns of -one or two measures are replaced by percent-like signs. The syntax is +Repeated short patterns are printed once, and the repeated pattern +is replaced with a special sign. + +The syntax is @example -@code{\repeat percent @var{number} @var{musicexpr}} +\repeat percent @var{number} @var{musicexpr} @end example @noindent -where @var{musicexpr} is a music expression. +where @code{@var{musicexpr}} is a music expression. + +Patterns that are shorter than one measure are replaced by slashes. @lilypond[verbatim,quote,relative=2] +\repeat percent 4 { c128 d e f } +\repeat percent 4 { c64 d e f } +\repeat percent 5 { c32 d e f } +\repeat percent 4 { c16 d e f } +\repeat percent 4 { c8 d } \repeat percent 4 { c4 } -\repeat percent 2 { b4 a g f } -\repeat percent 2 { c2 es | f4 fis g c | } +\repeat percent 2 { c2 } +@end lilypond + +Patterns of one or two measures are replaced by percent-like symbols. + +@lilypond[verbatim,quote,relative=2] +\repeat percent 2 { c4 d e f } +\repeat percent 2 { c2 d } +\repeat percent 2 { c1 } +@end lilypond + +@lilypond[verbatim,quote,relative=2] +\repeat percent 3 { c4 d e f | c2 g' } +@end lilypond + +Patterns that are shorter than one measure but contain mixed durations +use a double-percent symbol. + +@lilypond[verbatim,quote,relative=2] +\repeat percent 4 { c8. 16 } +\repeat percent 2 { \times 2/3 { r8 c d } e4 } @end lilypond @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {percent-repeat-counter.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {percent-repeat-count-visibility.ly} -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {isolated-percent-repeats.ly} - @seealso -Music Glossary: @rglos{percent repeat}, @rglos{simile}. +Music Glossary: +@rglos{percent repeat}, +@rglos{simile}. -Snippets: @rlsr{Repeats}. +Snippets: +@rlsr{Repeats}. -Internals Reference: @rinternals{RepeatSlash}, -@rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat}, +Internals Reference: +@rinternals{RepeatSlash}, +@rinternals{RepeatSlashEvent}, +@rinternals{DoubleRepeatSlash}, +@rinternals{PercentRepeat}, +@rinternals{PercentRepeatCounter}, +@rinternals{PercentRepeatedMusic}, +@rinternals{Percent_repeat_engraver}, +@rinternals{DoublePercentEvent}, +@rinternals{DoublePercentRepeat}, @rinternals{DoublePercentRepeatCounter}, -@rinternals{PercentRepeatCounter}, @rinternals{PercentRepeatedMusic}. - - -@knownissues - -Only three kinds of percent repeats are supported: a single slash -representing a single beat (regardless of the duration of the repeated -notes); a single slash with dots representing one full measure; and -two slashes with dots crossing a bar line representing two full -measures. Neither multiple slashes representing single beat repeats -consisting of sixteenth or shorter notes, nor two slashes with dots -representing single beat repeats consisting of notes of varying -durations, are supported. +@rinternals{Double_percent_repeat_engraver}, +@rinternals{Slash_repeat_engraver}. @node Tremolo repeats @@ -471,7 +688,7 @@ durations, are supported. @funindex tremolo Tremolos can take two forms: alternation between two chords or two -notes, and rapid repetition of a single note or chord. Tremolos +notes, and rapid repetition of a single note or chord. Tremolos consisting of an alternation are indicated by adding beams between the notes or chords being alternated, while tremolos consisting of the rapid repetition of a single note are indicated by adding beams or @@ -509,12 +726,11 @@ the note should not be surrounded by braces: @funindex tremoloFlags @funindex : -The same output can be obtained by adding -@q{@code{:}[@var{number}]} after the note. The number indicates -the duration of the subdivision, and it must be at least 8. A -@var{number} value of 8 gives one line across the note stem. If -the length is omitted, the last value (stored in -@code{tremoloFlags}) is used: +The same output can be obtained by adding @code{:@var{N}} after +the note, where @code{@var{N}} indicates the duration of the +subdivision (it must be at least 8). If @code{@var{N}} is 8, one +beam is added to the note's stem. If @code{@var{N}} is omitted, +the last value (stored in @code{tremoloFlags}) is used: @lilypond[quote,verbatim,relative=2] c2:8 c:32 @@ -523,17 +739,12 @@ c: c: @snippets -@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +@lilypondfile[verbatim,quote,texidoc,doctitle] {cross-staff-tremolos.ly} - @seealso -Snippets: @rlsr{Repeats}. +Snippets: +@rlsr{Repeats}. @cindex tremolo, cross-staff @cindex cross-staff tremolo - -@knownissues - -Cross-staff tremolos do not work well. -