X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Frepeats.itely;h=d2d7c053e76486cc601b5ad9c839e06a0ad0dc98;hb=5c14a087ca6cbd665fd631452b7b1283ba0387c3;hp=4124ad0f077fcc70cd8865b3c263cf0c8e7be349;hpb=948bd1184bd3f3b44c0e9a5c34a72d99eb371012;p=lilypond.git diff --git a/Documentation/user/repeats.itely b/Documentation/user/repeats.itely index 4124ad0f07..d2d7c053e7 100644 --- a/Documentation/user/repeats.itely +++ b/Documentation/user/repeats.itely @@ -6,25 +6,25 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.38" +@c \version "2.11.61" @node Repeats @section Repeats -@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote] -{repeats-headword.ly} +@lilypondfile[quote]{repeats-headword.ly} Repetition is a central concept in music, and multiple notations -exist for repetitions. LilyPond supports the following kinds of repeats: +exist for repetitions. LilyPond supports the following kinds of +repeats: @table @code @item volta 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 -for repeats with alternatives. +line is only printed at the end of the repeat. Alternative endings +(volte) are printed left to right with brackets. This is the standard +notation for repeats with alternatives. @item unfold The repeated music is fully written out, as many times as @@ -65,10 +65,16 @@ Repeat signs can also be controlled manually. @cindex seconda volta @cindex volta, prima @cindex volta, seconda +@cindex repeat, normal +@cindex normal repeat +@cindex repeat with alternate endings +@cindex alternate endings @funindex \repeat +@funindex \alternative +@funindex \partial @node Normal repeats -@subsubsection Normal repeats +@unnumberedsubsubsec Normal repeats The syntax for a normal repeat is @@ -77,13 +83,14 @@ The syntax for a normal repeat is @end example 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. +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. Normal repeats without alternate endings: -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] +@lilypond[verbatim,quote,relative=2] \repeat volta 2 { c4 d e f } c2 d \repeat volta 2 { d4 e f g } @@ -91,85 +98,75 @@ c2 d Normal repeats with alternate endings: -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] -\repeat volta 2 { g4 f e d } - \alternative { - { cis2 g' } - { cis,2 b } - } -\repeat volta 3 { c4 d e f } - \alternative { - { d2 e } - { f2 g } - } +@lilypond[verbatim,quote,relative=2] +\repeat volta 4 { c4 d e f } +\alternative { + { d2 e } + { f2 g } +} c1 @end lilypond +@cindex repeat with upbeat +@cindex upbeat in a repeat +@cindex anacrucis in a repeat +@cindex repeat with anacrucis +@cindex repeat with pickup +@cindex pickup in a repeat +@funindex \partial + Repeats with upbeats can be entered in two ways: -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] -\new Staff { - \partial 4 - e | - \repeat volta 4 { c2 d | e2 f | } - \alternative { - { g4 g g e } - { a4 a a a | b2. } - } +@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. } } @end lilypond @noindent or -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] -\new Staff { - \partial 4 - \repeat volta 4 { e4 | c2 d | e2 f | } - \alternative { - { \partial 4*3 g4 g g } - { a4 a a a | b2. } - } +@lilypond[verbatim,quote,relative=2] +\partial 4 +\repeat volta 4 { e4 | c2 d | e2 f | } +\alternative { + { \partial 4*3 g4 g g } + { a4 a a a | b2. } } @end lilypond +@cindex repeats with ties +@cindex alternative endings with ties +@cindex ties in repeats +@cindex ties in alternative endings @funindex \repeatTie Ties may be added to a second ending: -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] +@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,} + { f2 d } + { f2\repeatTie f, } } @end lilypond @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. -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}. - -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] -c4 c c c -\bar "||:" \break -\repeat volta 2 { c4 d e f } -@end lilypond - - @seealso Music Glossary: @rglos{repeat}, @rglos{volta}. @@ -185,6 +182,14 @@ Internals Reference: @rinternals{VoltaBracket}, @knownissues @cindex repeat, ambiguous +@cindex nested repeat +@cindex repeat, nested +@cindex repeat timing information +@cindex repeat and measure number +@cindex timing information and repeats +@cindex measure number and repeats +@cindex repeat and slur +@cindex slur and repeat A nested repeat like @@ -208,100 +213,104 @@ example, by setting @code{Score.measurePosition} or entering @node Manual repeat marks -@subsubsection Manual repeat marks - +@unnumberedsubsubsec Manual repeat marks + +@cindex manual repeat mark +@cindex repeat, manual +@cindex start repeat +@cindex repeat, start +@cindex end repeat +@cindex repeat, end +@cindex repeat number, changing +@cindex repeat volta, changing +@cindex volta bracket +@cindex bracket, volta @funindex repeatCommands +@funindex start-repeat -In some cases, manual repeat marks can be created by simply -printing the relevant bar lines. For more information, see -@ref{Bar lines}. +@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 +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} -Print a @code{|:} bar line: +@table @code +@item start-repeat +Print a @code{|:} bar line. -@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +@lilypond[verbatim,quote,relative=2] c1 -\set Score.repeatCommands = #'( start-repeat ) +\set Score.repeatCommands = #'(start-repeat) d4 e f g c1 @end lilypond -In order to print a @code{|:} bar line at the beginning, a skip must -be used: - -@lilypond[quote,ragged-right,verbatim,fragment,relative=2] -% FIXME: I can't believe this is right. -s1*1/10 -\set Score.repeatCommands = #'( start-repeat ) -c1*1/10 -d4 e f g -c1 -@end lilypond +As per standard engraving practice, repeat signs are not printed +at the beginning of a piece. -@item @code{end-repeat} +@item end-repeat Print a @code{:|} bar line: -@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +@lilypond[verbatim,quote,relative=2] c1 d4 e f g -\set Score.repeatCommands = #'( end-repeat ) +\set Score.repeatCommands = #'(end-repeat) c1 @end lilypond -@item @code{(volta #f)} -Stop a running volta bracket. - -FIXME: example? +@item (volta @var{number}) ... (volta #f) +Create a new volta with the specified number. The volta bracket must +be explicitly terminated, or it will not be printed. -@item @code{(volta @var{text})} -Print a volta bracket saying @var{text}. - -FIXME: simple example? +@lilypond[verbatim,quote,relative=2] +f4 g a b +\set Score.repeatCommands = #'((volta "2")) +g4 a g a +\set Score.repeatCommands = #'((volta #f)) +c1 +@end lilypond @end table -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. When manually creating a volta bracket, the bracket must be -explicitly terminated or an error will be generated. - -Manual control of the volte, including a @code{|:} bar line at the -beginning and explicit volta numbers: +Multiple repeat commands may occur at the same point: @lilypond[verbatim,quote,relative=2] -% FIXME: I can't believe this is right. -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 ) +\set Score.repeatCommands = #'((volta "2, 5") end-repeat) g4 a g a -\set Score.repeatCommands = #'( ( volta #f ) ) c1 +\set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat) +b1 @end lilypond -Manual control of the volte, including markup text: +@cindex volta bracket with text +@cindex text in volta bracket + +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 -@lilypond[quote,ragged-right,verbatim,fragment,relative=2] -c1 -\set Score.repeatCommands = #'( start-repeat ) -d1 -d4 e f g -% FIXME: broken -%\set Score.repeatCommands = #(list (list 'volta voltaChorus ) ) -f4 g a b -\set Score.repeatCommands = #'( ( volta #f ) ( volta "4" ) end-repeat ) -g4 a g a -\set Score.repeatCommands = #'( ( volta #f ) ) -c1 -@end lilypond + +@snippets + +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{printing-a-repeat-sign-at-the-beginning-of-a-piece.ly} @seealso @@ -319,11 +328,18 @@ Internals Reference: @node Written-out repeats -@subsubsection Written-out repeats +@unnumberedsubsubsec Written-out repeats @cindex written-out repeats @cindex repetitious music @cindex repeats, written-out +@cindex repeat, unfold +@cindex unfold music +@cindex unfold repeat +@cindex unfold repeat with alternate endings +@cindex unfold music with alternate endings +@cindex alternate ending in written-out repeats +@funindex unfold By using the @code{unfold} command, repeats can be used to simplify the writing out of repetitious music. The syntax is @@ -332,21 +348,20 @@ the writing out of repetitious music. The syntax is \repeat unfold @var{repeatcount} @var{musicexpr} @end example -where @var{musicexpr} is a music expression. Unfold repeats can be -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: +where @var{musicexpr} is a music expression and @var{repeatcount} is +the number of times @var{musicexpr} is repeated. -@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +@lilypond[verbatim,quote,relative=2] c1 \repeat unfold 2 { c4 d e f } c1 @end lilypond -Unfold repeats with alternate endings: +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. -@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +@lilypond[verbatim,quote,relative=2] c1 \repeat unfold 2 { g4 f e d } \alternative { @@ -354,12 +369,6 @@ c1 { cis,2 b } } c1 -\repeat unfold 3 { d4 c b2 } - \alternative { - { c4 d e f } - { d4 c b a } - } -c1 @end lilypond @seealso @@ -382,10 +391,15 @@ represented by slashes or percent signs; and tremolos. @end menu @node Percent repeats -@subsubsection Percent repeats +@unnumberedsubsubsec Percent repeats @cindex percent repeats @cindex measure repeats +@cindex repeat, percent +@cindex repeat, measure +@cindex repeat, short +@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 @@ -398,34 +412,30 @@ one or two measures are replaced by percent-like signs. The syntax is where @var{musicexpr} is a music expression. -@lilypond[quote,verbatim,ragged-right] -\relative c' { - \repeat percent 4 { c4 } - \repeat percent 2 { b'4 a g f } - \repeat percent 2 { c2 es | f4 fis g c | } -} +@lilypond[verbatim,quote,relative=2] +\repeat percent 4 { c4 } +\repeat percent 2 { b4 a g f } +\repeat percent 2 { c2 es | f4 fis g c | } @end lilypond -Measure repeats of more than two repeats get a counter if you switch -on the @code{countPercentRepeats} property: +@snippets + +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{percent-repeat-counter.ly} -@lilypond[relative=2,fragment,quote,verbatim,ragged-right] -\relative c' { - \set countPercentRepeats = ##t - \repeat percent 4 { c1 } -} -@end lilypond +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{isolated-percent-repeats.ly} +@seealso -Isolated percents can also be printed. This is done by entering a -multi-measure rest with a different print function: +Music Glossary: @rglos{percent repeat}, @rglos{simile}. -@lilypond[fragment,verbatim,quote] -\override MultiMeasureRest #'stencil - = #ly:multi-measure-rest::percent -R1 -@end lilypond +Snippets: @rlsr{Repeats}. +Internals Reference: @rinternals{RepeatSlash}, +@rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat}, +@rinternals{DoublePercentRepeatCounter}, +@rinternals{PercentRepeatCounter}, @rinternals{PercentRepeatedMusic}. @knownissues @@ -439,38 +449,29 @@ 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}, -@rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat}, -@rinternals{DoublePercentRepeatCounter}, -@rinternals{PercentRepeatCounter}, @rinternals{PercentRepeatedMusic}. - @node Tremolo repeats -@subsubsection Tremolo repeats - -Tremolos can take two forms: alternation between two chords or two -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 slashes to a single note. +@unnumberedsubsubsec Tremolo repeats @cindex tremolo beams +@cindex tremolo +@cindex repeat, tremolo +@funindex \repeat tremolo +@funindex tremolo + +Tremolos can take two forms: alternation between two chords or two +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 +slashes to a single note. To place tremolo marks between notes, use @code{\repeat} with tremolo style: -@lilypond[quote,verbatim,ragged-right] -\relative c' { - \repeat tremolo 8 { c16 d } - \repeat tremolo 4 { c16 d } - \repeat tremolo 2 { c16 d } -} +@lilypond[quote,verbatim,relative=2] +\repeat tremolo 8 { c16 d } +\repeat tremolo 6 { c16 d } +\repeat tremolo 2 { c16 d } @end lilypond The @code{\repeat tremolo} syntax expects exactly two notes within @@ -494,6 +495,7 @@ the note should not be surrounded by braces: @cindex tremolo marks @funindex tremoloFlags +@funindex : The same output can be obtained by adding @q{@code{:}[@var{number}]} after the note. The number indicates @@ -502,19 +504,19 @@ the duration of the subdivision, and it must be at least 8. A the length is omitted, the last value (stored in @code{tremoloFlags}) is used -@lilypond[quote,ragged-right,verbatim,fragment] -c'2:8 c':32 | c': c': | +@lilypond[quote,verbatim,relative=2] +c2:8 c:32 +c: c: @end lilypond +@seealso -@knownissues - - -Tremolos entered with @q{@code{:}[@var{number}]} do not carry over -into the MIDI output. +Snippets: @rlsr{Repeats}. +@cindex tremolo, cross-staff +@cindex cross-staff tremolo -@seealso +@knownissues -Snippets: @rlsr{Repeats}. +Cross-staff tremolos do not work well.