]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/repeats.itely
Issue 1503 - Recognise Lydian chords
[lilypond.git] / Documentation / notation / repeats.itely
index 3491d200b525abbbd4072fdda812823fa910b2d5..7af38d2d296531e314ad02bdf51a1dd95e5fc584 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.14.0"
 
 @node Repeats
 @section Repeats
 
 @node Repeats
 @section Repeats
@@ -29,7 +29,7 @@ notation for repeats with alternatives.
 
 @item unfold
 The repeated music is fully written out, as many times as
 
 @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
 entering repetitious music.
 
 @item percent
@@ -84,13 +84,9 @@ The syntax for a normal repeat is
 @end example
 
 @noindent
 @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 }
 
 @lilypond[verbatim,quote,relative=2]
 \repeat volta 2 { c4 d e f }
@@ -98,17 +94,61 @@ c2 d
 \repeat volta 2 { d4 e f g }
 @end lilypond
 
 \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 | }
+\alternative {
+  { c2 e | }
+  { f2 g | }
+}
+c1
+@end lilypond
+
+Multiple repeats with more than one alternate ending:
 
 @lilypond[verbatim,quote,relative=2]
 
 @lilypond[verbatim,quote,relative=2]
-\repeat volta 4 { c4 d e f }
+\repeat volta 3 { c4 d e f | }
 \alternative {
 \alternative {
-  { d2 e }
-  { f2 g }
+  { c2 e | }
+  { f2 g | }
+  { a2 g | }
 }
 c1
 @end lilypond
 
 }
 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
 @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
@@ -122,7 +162,6 @@ c1
 @cindex pickup in a repeat
 @funindex \partial
 
 @cindex pickup in a repeat
 @funindex \partial
 
-
 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
 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
@@ -219,12 +258,14 @@ c1
 
 @snippets
 
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {shortening-volta-brackets.ly}
 
 {shortening-volta-brackets.ly}
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {adding-volta-brackets-to-additional-staves.ly}
 
 {adding-volta-brackets-to-additional-staves.ly}
 
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{setting-the-double-repeat-default-for-volte.ly}
 
 @seealso
 Music Glossary:
 
 @seealso
 Music Glossary:
@@ -301,7 +342,7 @@ For clarity, it is advisable to use braces in such situations.
 
 @warning{These methods are only used for displaying unusual repeat
 constructs, and may produce unexpected behavior.  In most cases,
 
 @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}.}
 
 or by printing the relevant bar lines.  For more information, see
 @ref{Bar lines}.}
 
@@ -381,7 +422,7 @@ voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
 
 @snippets
 
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
 
 
 {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
 
 
@@ -421,29 +462,84 @@ the writing out of repetitious music.  The syntax is
 @end example
 
 @noindent
 @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]
 
 @lilypond[verbatim,quote,relative=2]
+\repeat unfold 2 { c4 d e f }
 c1
 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 }
 \repeat unfold 2 { c4 d e f }
+\alternative {
+  { c2 g' }
+  { c,2 b }
+}
 c1
 @end lilypond
 
 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 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]
 
 @lilypond[verbatim,quote,relative=2]
+\repeat unfold 4 { c4 d e f }
+\alternative {
+  { c2 g' }
+  { c,2 b }
+  { e2 d }
+ }
 c1
 c1
-\repeat unfold 2 { g4 f e d }
+@end lilypond
+
+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
+@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 {
   \alternative {
-    { cis2 g' }
-    { cis,2 b }
+    { c2 g' }
+    { c,2 b }
   }
   }
+}
 c1
 @end lilypond
 
 c1
 @end lilypond
 
+
 @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
 @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
@@ -463,8 +559,8 @@ Internals Reference:
 @subsection Short repeats
 
 This section discusses how to input short repeats.  Short repeats can
 @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::
 
 @menu
 * Percent repeats::
@@ -482,36 +578,61 @@ represented by slashes or percent signs; and tremolos.
 @funindex \repeat percent
 @funindex percent
 
 @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
 
 @example
-@code{\repeat percent @var{number} @var{musicexpr}}
+\repeat percent @var{number} @var{musicexpr}
 @end example
 
 @noindent
 @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]
 
 @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 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. <d f>16 }
+\repeat percent 2 { \times 2/3 { r8 c d } e4 }
 @end lilypond
 
 @snippets
 
 @end lilypond
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {percent-repeat-counter.ly}
 
 {percent-repeat-counter.ly}
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {percent-repeat-count-visibility.ly}
 
 {percent-repeat-count-visibility.ly}
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {isolated-percent-repeats.ly}
 
 {isolated-percent-repeats.ly}
 
-
 @seealso
 Music Glossary:
 @rglos{percent repeat},
 @seealso
 Music Glossary:
 @rglos{percent repeat},
@@ -522,23 +643,17 @@ Snippets:
 
 Internals Reference:
 @rinternals{RepeatSlash},
 
 Internals Reference:
 @rinternals{RepeatSlash},
+@rinternals{RepeatSlashEvent},
+@rinternals{DoubleRepeatSlash},
 @rinternals{PercentRepeat},
 @rinternals{PercentRepeat},
+@rinternals{PercentRepeatCounter},
+@rinternals{PercentRepeatedMusic},
+@rinternals{Percent_repeat_engraver},
+@rinternals{DoublePercentEvent},
 @rinternals{DoublePercentRepeat},
 @rinternals{DoublePercentRepeatCounter},
 @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
 
 
 @node Tremolo repeats
@@ -551,7 +666,7 @@ durations, are supported.
 @funindex tremolo
 
 Tremolos can take two forms: alternation between two chords or two
 @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
 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
@@ -589,12 +704,11 @@ the note should not be surrounded by braces:
 @funindex tremoloFlags
 @funindex :
 
 @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
 
 @lilypond[quote,verbatim,relative=2]
 c2:8 c:32
@@ -603,7 +717,7 @@ c: c:
 
 @snippets
 
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
 {cross-staff-tremolos.ly}
 
 
 {cross-staff-tremolos.ly}