X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Frepeats.itely;h=911ceb53931cc9d8ecdb7bf1337f4c2fd23a6a61;hb=5479ee9877d8e418aefd1010bd786fd3315dccbd;hp=a812380fbde608d1c151867e386546327cf33d1b;hpb=ce46306bbb45e7dddd5fc4af98a6996b33df2b6d;p=lilypond.git diff --git a/Documentation/user/repeats.itely b/Documentation/user/repeats.itely index a812380fbd..911ceb5393 100644 --- a/Documentation/user/repeats.itely +++ b/Documentation/user/repeats.itely @@ -6,6 +6,8 @@ version that you are working on. See TRANSLATION for details. @end ignore +@c \version "2.11.38" + @node Repeats @section Repeats @@ -13,47 +15,8 @@ {repeats-headword.ly} Repetition is a central concept in music, and multiple notations -exist for repetitions. - -@menu -* Writing repeats:: -* Other repeats:: -@end menu +exist for repetitions. LilyPond supports the following kinds of repeats: -@node Writing repeats -@subsection Writing repeats - -This section discusses how to write repeats, including repeated -sections of music enclosed within repeat bars, alternate repeat -endings, tremolos, and beat or measure repeats. - -@menu -* Repeat syntax:: -* Normal repeats:: -* Manual repeat commands:: -@end menu - - -@node Repeat syntax -@subsubsection Repeat syntax - -@cindex repeats -@cindex repeat syntax -@cindex syntax, repeat - -LilyPond has one syntactic construct for specifying different -types of repeats. The syntax is - -@example -\repeat @var{variant} @var{repeatcount} @var{repeatbody} -@end example - -where @var{repeabody} is a music expression. - -The following types of repetition are supported - -@cindex repeat volta -@cindex volta @table @code @item volta @@ -63,29 +26,30 @@ line is only printed at the end. Alternative endings (volte) are printed, left to right with brackets. This is the standard notation for repeats with alternatives. -@cindex repetitious music - @item unfold The repeated music is fully written out, as many times as specified by @var{repeatcount}. This is useful when entering repetitious music. -@cindex tremolo -@cindex tremolo beams -@cindex beams, tremolo +@item percent +Write beat or measure repeats. These look like percent signs. +Percent repeats must be declared within a @code{Voice} context. @item tremolo -Make tremolo beams. +Write tremolo beams. -@cindex beat repeat -@cindex measure repeat -@cindex percent sign, for repeat +@end table -@item percent -Make beat or measure repeats. These look like percent signs. -Percent repeats must be declared within a @code{Voice} context. +@ignore +LilyPond has one syntactic construct for specifying different +types of repeats. The syntax is + +@example +\repeat @var{variant} @var{repeatcount} @var{repeatbody} +@end example + +where @var{repeatbody} is a music expression. -@end table Alternative endings are entered with @funindex \alternative @@ -100,13 +64,25 @@ Alternative endings are entered with @noindent after a @code{\repeat volta} or @code{unfold} block, where each -@var{alternative} is a music expression. If you give -less alternatives than @var{repeatcount}, the first alternative -is assumed to be played more than once. +@var{alternative} is a music expression. If you give fewer +alternatives than @var{repeatcount}, the first alternative is assumed +to be played more than once. +@end ignore -@node Normal repeats -@subsubsection Normal repeats +@menu +* Writing long repeats:: +* Short repeats:: +@end menu + +@node Writing long repeats +@subsection Writing long repeats + +@menu +* Normal repeats:: +* Manual repeat marks:: +* Written-out repeats:: +@end menu @cindex volta @cindex prima volta @@ -115,10 +91,29 @@ is assumed to be played more than once. @cindex volta, seconda @funindex \repeat -Normal repeats, with or without alternate repeats: +@node Normal repeats +@subsubsection Normal repeats + +The syntax for a normal repeat is + +@example +\repeat volta @var{repeatcount} @var{repeatbody} +@end example + +where @var{repeatbody} is a music expression. Alternate endings can +be produced using @code{\alternative}. + +Normal repeats without alternate endings: @lilypond[quote,ragged-right,fragment,verbatim,relative=2] \repeat volta 2 { c4 d e f } +c2 d +\repeat volta 2 { d4 e f g } +@end lilypond + +Normal repeats with alternate endings: + +@lilypond[quote,ragged-right,fragment,verbatim,relative=2] \repeat volta 2 { g f e d } \alternative { { cis2 g' } @@ -126,11 +121,14 @@ Normal repeats, with or without alternate repeats: } c1 @end lilypond + + Repeats with upbeats: @lilypond[quote,ragged-right,fragment,verbatim,relative=2] \new Staff { - \partial 4 e | + \partial 4 + e | \repeat volta 4 { c2 d2 | e2 f2 | } \alternative { { g4 g g e } { a a a a | b2. } } } @@ -158,63 +156,42 @@ c1 \alternative { {f2 d} {f\repeatTie f,} } @end lilypond -By default, the volta brackets will be drawn over all of the -alternative music, but it is possible to shorten them by -setting @code{voltaSpannerDuration}. In the next example, the -bracket only lasts one measure, which is a duration of 3/4. - -@lilypond[verbatim,ragged-right,quote] -\relative c''{ - \time 3/4 - c c c - \set Score.voltaSpannerDuration = #(ly:make-moment 3 4) - \repeat volta 5 { d d d } - \alternative { { e e e f f f } - { g g g } } -} -@end lilypond +@snippets + +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +{shortening-volta-brackets.ly} + +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +{adding-volta-brackets-to-additional-staves.ly} -The @code{Volta_engraver} by default resides in the Score context, -and brackets for the repeat are thus normally only printed over -the topmost staff. This can be adjusted by adding -@code{Volta_engraver} to the Staff context where you want the -brackets to appear; see @ref{Modifying context plug-ins} and -@c @lsr{repeats,volta@/-multi@/-staff@/.ly}. - -@lilypond[verbatim,ragged-right,quote] -\score { << - \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } - \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } - \new Staff \with { \consists Volta_engraver } { c'2 g' e' a' } - \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } - >> } -@end lilypond @c Is there a way to have a final bar ("|.") at the end of the @c previous line? Doesn't seem to be. -If you want to start a repeat at the beginning of a line and have -a double bar at the end of the previous line, use +If you want to start a repeat at the beginning of a line and have a +double bar at the end of the previous line, use @code{\bar}. For more +information, see @ref{Bar lines}. -@example -@dots{} \bar "||:" \break -\repeat volta 2 @{ @dots{} -@end example +@lilypond[quote,ragged-right,fragment,verbatim,relative=2] +c4 c c c +\bar "||:" \break +\repeat volta 2 { c4 d e f } +@end lilypond -see @ref{Bar lines} for more information. @seealso -Snippets: @lsrdir{Repeats,Repeats} +Music Glossary: @rglos{repeat}, @rglos{volta}. -Internals Reference: @internalsref{VoltaBracket}, -@internalsref{RepeatedMusic}, -@internalsref{VoltaRepeatedMusic}, and -@internalsref{UnfoldedRepeatedMusic}. +Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}. -@c Examples: +Snippets: +@lsrdir{Repeats,Repeats} +Internals Reference: @internalsref{VoltaBracket}, +@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic}, +@internalsref{UnfoldedRepeatedMusic}. -@refbugs +@knownissues @cindex repeat, ambiguous @@ -232,16 +209,15 @@ is ambiguous, since it is is not clear to which @code{\repeat} the 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 or ties are also not -repeated. +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 or ties are also not repeated. -@node Manual repeat commands -@subsubsection Manual repeat commands +@node Manual repeat marks +@subsubsection Manual repeat marks @funindex repeatCommands @@ -261,10 +237,10 @@ Print a @code{|:} bar line. Print a @code{:|} bar line. @item @code{(volta @var{text})} -Print a volta bracket saying @var{text}. The text can be -specified as a text string or as a markup text, see @ref{Text -markup}. Do not forget to change the font, as the default number -font does not contain alphabetic characters; +Print a volta bracket saying @var{text}. The text can be specified as +a text string or as a markup text, see @ref{Formatting text}. Do not +forget to change the font, as the default number font does not contain +alphabetic characters; @item @code{(volta #f)} @@ -273,9 +249,9 @@ Stop a running volta bracket. @lilypond[quote,ragged-right,verbatim,fragment,relative=2] c4 - \set Score.repeatCommands = #'((volta "93") end-repeat) +\set Score.repeatCommands = #'((volta "93") end-repeat) c4 c4 - \set Score.repeatCommands = #'((volta #f)) +\set Score.repeatCommands = #'((volta #f)) c4 c4 @end lilypond @@ -283,23 +259,125 @@ c4 c4 @seealso -Notation Reference: @ref{Bar lines}. +Notation Reference: @ref{Bar lines}, @ref{Formatting text}. -Snippets: @lsrdir{Repeats,Repeats} +Snippets: +@lsrdir{Repeats,Repeats} Internals Reference: @internalsref{VoltaBracket}, -@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic}, -and @internalsref{UnfoldedRepeatedMusic}. +@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic}. + + +@node Written-out repeats +@subsubsection Written-out repeats + +@cindex written-out repeats +@cindex repetitious music +@cindex repeats, written-out + +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{repeatbody} +@end example +where @var{repeatbody} is a music expression. Unfold repeats can be +made with or without alternate endings. Unfold repeats without +alternate endings: -@node Other repeats -@subsection Other repeats +@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +c1 +\repeat unfold 2 { c4 d e f } +c1 +@end lilypond + +Unfold repeats with alternate endings: + +@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +c1 +\repeat unfold 2 { g f e d } + \alternative { + { cis2 g' } + { cis,2 b } + } +c1 +@end lilypond + +@seealso + +Snippets: +@lsrdir{Repeats,Repeats} + +Internals Reference: @internalsref{RepeatedMusic}, +@internalsref{UnfoldedRepeatedMusic}. + +@node Short repeats +@subsection Short repeats @menu +* Percent repeats:: * Tremolo repeats:: -* Measure repeats:: @end menu +@node Percent repeats +@subsubsection Percent repeats + +@cindex percent repeats +@cindex measure repeats + +Repeated short patterns of notes are also supported. The music is +printed once, and the pattern is replaced with a special sign. +Patterns of one and two measures are replaced by percent-like signs, +patterns that are shorter than onee measure are replaced by slashes. +Percent repeats must be declared within a @code{Voice} context. The +syntax is + +@example +@code{\repeat percent @var{number} @var{repeatbody}} +@end example + +where @var{repeatbody} is a music expression. + +@lilypond[quote,verbatim,ragged-right] +\new Voice \relative c' { + \repeat percent 4 { c4 } + \repeat percent 2 { c2 es2 f4 fis4 g4 c4 } +} +@end lilypond + +Measure repeats of more than two measures get a counter if you +switch on the @code{countPercentRepeats} property: + +@lilypond[relative=2,fragment,quote,verbatim,ragged-right] +\new Voice { + \set countPercentRepeats = ##t + \repeat percent 4 { c1 } +} +@end lilypond + + +Isolated percents can also be printed. This is done by entering a +multi-measure rest with a different print function: + +@lilypond[fragment,verbatim,quote] +\override MultiMeasureRest #'stencil + = #ly:multi-measure-rest::percent +R1 +@end lilypond + + +@seealso + +Snippets: +@lsrdir{Repeats,Repeats} + +Internals Reference: @internalsref{RepeatSlash}, +@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat}, +@internalsref{DoublePercentRepeatCounter}, +@internalsref{PercentRepeatCounter}, +@internalsref{PercentRepeatedMusic}. + @node Tremolo repeats @subsubsection Tremolo repeats @@ -328,7 +406,7 @@ braced expression multiplied by the number of repeats: notated as two whole notes joined by tremolo beams. There are two ways to put tremolo marks on a single note. The -@code{\repeat tremolo} syntax can be used even here, in which case +@code{\repeat tremolo} syntax is also used here, in which case the note should not be surrounded by braces: @lilypond[quote,verbatim,ragged-right] @@ -350,7 +428,7 @@ c'2:8 c':32 | c': c': | @end lilypond -@refbugs +@knownissues Tremolos entered with @q{@code{:}[@var{number}]} do not carry over @@ -364,64 +442,12 @@ Notation Reference: @ref{Tremolo repeats}. Internals Reference: @internalsref{Beam}, @internalsref{StemTremolo}. -Snippets: @lsrdir{Repeats,Repeats} +Snippets: +@lsrdir{Repeats,Repeats} Elsewhere: @internalsref{StemTremolo}. -@node Measure repeats -@subsubsection Measure repeats - -@cindex percent repeats -@cindex measure repeats - -A note pattern can be repeated with the @code{\repeat percent -@var{number}} syntax. The music is printed once, and the pattern -is replaced with a special sign. Patterns of one and two measures -are replaced by percent-like signs, patterns that divide the -measure length are replaced by slashes. Percent repeats must be -declared within a @code{Voice} context. - -@lilypond[quote,verbatim,ragged-right] -\new Voice \relative c' { - \repeat percent 4 { c4 } - \repeat percent 2 { c2 es2 f4 fis4 g4 c4 } -} -@end lilypond - -Measure repeats of more than two measures get a counter if you -switch on the @code{countPercentRepeats} property: - -@lilypond[relative=2,fragment,quote,verbatim,ragged-right] -\new Voice { - \set countPercentRepeats = ##t - \repeat percent 4 { c1 } -} -@end lilypond - - -Isolated percents can also be printed. This is done by entering a -multi-measure rest with a different print function: - -@lilypond[fragment,verbatim,quote] -\override MultiMeasureRest #'stencil - = #ly:multi-measure-rest::percent -R1 -@end lilypond - - - - -@seealso - -Snippets: @lsrdir{Repeats,Repeats} - -Internals Reference: @internalsref{RepeatSlash}, -@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat}, -@internalsref{DoublePercentRepeatCounter}, -@internalsref{PercentRepeatCounter}, -@internalsref{PercentRepeatedMusic}. -