X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Frepeats.itely;h=0b1580c36a9259853117df831c22265920cf5197;hb=edf17353d89f4f6bd831466262402bb9151a26ca;hp=2383d524da63363204ad5c169de84aeab8a74d97;hpb=42fa086b810d16b8ee0b7e9477273ccd26687e19;p=lilypond.git diff --git a/Documentation/user/repeats.itely b/Documentation/user/repeats.itely index 2383d524da..0b1580c36a 100644 --- a/Documentation/user/repeats.itely +++ b/Documentation/user/repeats.itely @@ -6,7 +6,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.38" +@c \version "2.11.51" @node Repeats @section Repeats @@ -23,7 +23,7 @@ exist for repetitions. LilyPond supports the following kinds of repeats: The repeated music is not written out but enclosed between repeat bar lines. If the repeat is at the beginning of a piece, a repeat bar line is only printed at the end. Alternative endings (volte) are -printed, left to right with brackets. This is the standard notation +printed left to right with brackets. This is the standard notation for repeats with alternatives. @item unfold @@ -32,43 +32,14 @@ specified by @var{repeatcount}. This is useful when entering repetitious music. @item percent -These are beat or measure repeats. They look like percent signs. -Percent repeats must be declared within a @code{Voice} context. +These are beat or measure repeats. They look like single slashes or +percent signs. @item tremolo This is used to write tremolo beams. @end table -@ignore -LilyPond has one syntactic construct for specifying different -types of repeats. The syntax is - -@example -\repeat @var{variant} @var{repeatcount} @var{musicexpr} -@end example - -where @var{musicexpr} is a music expression. - - -Alternative endings are entered with -@funindex \alternative -@example -\alternative @{ - @var{alternative1} - @var{alternative2} - @var{alternative3} - @dots{} -@} -@end example - -@noindent -after a @code{\repeat volta} or @code{unfold} block, where each -@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 - @menu * Long repeats:: @@ -105,8 +76,10 @@ The syntax for a normal repeat is \repeat volta @var{repeatcount} @var{musicexpr} @end example -where @var{musicexpr} is a music expression. Alternate endings can -be produced using @code{\alternative}. +where @var{musicexpr} is a music expression. Alternate endings can be +produced using @code{\alternative}. If there are more repeats than +there are alternate endings, the earliest repeats are given the first +alternative. Normal repeats without alternate endings: @@ -124,11 +97,16 @@ Normal repeats with alternate endings: { cis2 g' } { cis,2 b } } +\repeat volta 3 { c4 d e f } + \alternative { + { d2 e } + { f2 g } + } c1 @end lilypond -Repeats with upbeats: +Repeats with upbeats can be entered in two ways: @lilypond[quote,ragged-right,fragment,verbatim,relative=2] \new Staff { @@ -172,15 +150,17 @@ c1 @snippets -@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] {shortening-volta-brackets.ly} -@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] {adding-volta-brackets-to-additional-staves.ly} @c Is there a way to have a final bar ("|.") at the end of the @c previous line? Doesn't seem to be. +@c It could be done by overriding +@c the BreakAlignment property. Want a separate example? 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}. @@ -225,7 +205,7 @@ 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. +@code{\partial}. Similarly, slurs are also not repeated. @@ -234,50 +214,153 @@ example, by setting @code{Score.measurePosition} or entering @funindex repeatCommands -@c FIXME: Markup does not work in the "text" field -@c And how does one change the font? -@c On the whole, this section needs better documentation (why the -@c double parentheses around the volta expressions?) +@warning{These methods are only used for displaying unusual repeat +constructs. In most cases, repeats should be created using the +standard @code{\\repeat} command or by printing the relevant bar +lines. For more information, see @ref{Bar lines}.} The property @code{repeatCommands} can be used to control the layout of repeats. Its value is a Scheme list of repeat commands. -@table @asis -@item @code{start-repeat} +@table @code +@item start-repeat Print a @code{|:} bar line. -@item @code{end-repeat} -Print a @code{:|} bar line. +@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +c1 +\set Score.repeatCommands = #'( start-repeat ) +d4 e f g +c1 +@end lilypond + +As per standard engraving practice, repeat signs are not printed +at the beginning of a piece. + +@item end-repeat +Print a @code{:|} bar line: + +@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +c1 +d4 e f g +\set Score.repeatCommands = #'( end-repeat ) +c1 +@end lilypond + +@item (volta @var{number}) +Create a new volta with the specified number: -@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{Formatting text}. Do not -forget to change the font, as the default number font does not contain -alphabetic characters; +@lilypond[verbatim,quote,relative=2] +f4 g a b +\set Score.repeatCommands = #'( ( volta "2" ) ) +g4 a g a +c1 +@end lilypond +@item (volta #f) +Stops a running volta bracket: + +@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +c1 +\set Score.repeatCommands = #'( ( volta "2" ) ) +f4 g a b +\set Score.repeatCommands = #'( ( volta #f ) ) +a4 g f e +c1 +@end lilypond -@item @code{(volta #f)} -Stop a running volta bracket. @end table +Multiple repeat commands may occur at the same point: + +@lilypond[verbatim,quote,relative=2] +f4 g a b +\set Score.repeatCommands = #'( ( volta "2, 5" ) end-repeat ) +g4 a g a +c1 +\set Score.repeatCommands = #'( ( volta #f ) ( volta "95" ) end-repeat ) +b1 +@end lilypond + +Text can be included with the volta bracket. The text can be a +number or numbers or markup text, see @ref{Formatting text}. The +simplest way to use markup text is to define the markup first, +then include the the markup in a Scheme list. + +@lilypond[verbatim,quote] +voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } } +\relative c'' { + c1 + \set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat) + c4 b d e + \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat) + f1 + \set Score.repeatCommands = #'((volta #f)) +} +@end lilypond + + +@snippets + +@c FIXME: send these to Neil or Valentin to be added as snippets, +@c delete them. +Manual control of the volte, including a @code{|:} bar line at the +beginning and explicit volta numbers: + +@c FIXME: I can't believe this is right. +@c TODO: I think it is. I plan +@c to delete this example, since it's +@c already been given at L238. rp +@lilypond[verbatim,quote,relative=2] +s1*1/10 +\set Score.repeatCommands = #'( start-repeat ) +c1*9/10 +d4 e f g +\set Score.repeatCommands = #'( ( volta "1, 2, 5" ) ) +f4 g a b +\set Score.repeatCommands = #'( ( volta #f ) ( volta "95" ) end-repeat ) +g4 a g a +\set Score.repeatCommands = #'( ( volta #f ) ) +c1 +@end lilypond + +In order to print a @code{|:} bar line at the beginning of a piece, +the @code{BreakAlignment} property must be overridden: + @lilypond[quote,ragged-right,verbatim,fragment,relative=2] -c4 -\set Score.repeatCommands = #'((volta "93") end-repeat) -c4 b -\set Score.repeatCommands = #'((volta #f)) -d4 e +\once \override Score.BreakAlignment #'break-align-orders = +#(make-vector 3 '( +instrument-name +left-edge +ambitus +span-bar +breathing-sign +clef +key-signature +time-signature +staff-bar +custos +span-bar +)) +\bar "|:" +c1 +d1 +d4 e f g @end lilypond -@c FIXME: improve visibility of bar lines link? @seealso -Notation Reference: @ref{Bar lines}, @ref{Formatting text}. +Notation Reference: +@ref{Bar lines}, +@ref{Formatting text}. -Snippets: @rlsr{Repeats}. +Snippets: +@rlsr{Repeats}. -Internals Reference: @rinternals{VoltaBracket}, -@rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic}. +Internals Reference: +@rinternals{VoltaBracket}, +@rinternals{RepeatedMusic}, +@rinternals{VoltaRepeatedMusic}. @node Written-out repeats @@ -295,8 +378,10 @@ the writing out of repetitious music. The syntax is @end example where @var{musicexpr} is a music expression. Unfold repeats can be -made with or without alternate endings. Unfold repeats without -alternate endings: +made with or without alternate endings. If there are more repeats +than there are alternate endings, the first alternative ending is +applied to the earliest endings. Unfold repeats without alternate +endings: @lilypond[quote,ragged-right,verbatim,fragment,relative=2] c1 @@ -314,6 +399,12 @@ c1 { cis,2 b } } c1 +\repeat unfold 3 { d4 c b2 } + \alternative { + { c4 d e f } + { d4 c b a } + } +c1 @end lilypond @seealso @@ -344,8 +435,7 @@ represented by slashes or percent signs; and tremolos. 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. Percent -repeats must be declared within a @code{Voice} context. The syntax is +one or two measures are replaced by percent-like signs. The syntax is @example @code{\repeat percent @var{number} @var{musicexpr}} @@ -382,8 +472,22 @@ R1 @end lilypond +@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. + + @seealso +Music Glossary: @rglos{percent repeat}, @rglos{simile}. + Snippets: @rlsr{Repeats}. Internals Reference: @rinternals{RepeatSlash}, @@ -457,12 +561,5 @@ into the MIDI output. @seealso -Notation Reference: @ref{Tremolo repeats}. - -Internals Reference: @rinternals{Beam}, @rinternals{StemTremolo}. - Snippets: @rlsr{Repeats}. -Elsewhere: @rinternals{StemTremolo}. - -