@node Repeats
@section Repeats
-Repetition is a central concept in music, and multiple notations exist
-for repetitions.
+@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
+{repeats-headword.ly}
+
+Repetition is a central concept in music, and multiple notations
+exist for repetitions.
@menu
* Writing repeats::
* Normal repeats::
* Repeat syntax::
* Manual repeat commands::
-* Repeats and MIDI::
@end menu
@node Normal repeats
\alternative { {f2 d} {f\repeatTie f,} }
@end lilypond
-It is possible to shorten volta brackets
-by setting @code{voltaSpannerDuration}. In the next example, the
-bracket only lasts one measure, which is a duration of 3/4.
+It is possible to shorten volta brackets 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''{
}
@end lilypond
-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
@example
@dots{} \bar "||:" \break
@seealso
-Program reference: @internalsref{VoltaBracket},
+Snippets: @lsrdir{repeats}
+
+Internals Reference: @internalsref{VoltaBracket},
@internalsref{RepeatedMusic},
@internalsref{VoltaRepeatedMusic}, and
@internalsref{UnfoldedRepeatedMusic}.
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.
@cindex repeats
-LilyPond has one syntactic construct for specifying different types of
-repeats. The syntax is
+LilyPond has one syntactic construct for specifying different
+types of repeats. The syntax is
@example
\repeat @var{variant} @var{repeatcount} @var{repeatbody}
@noindent
where each @var{alternative} is a music expression. If you do not
-give enough alternatives for all of the repeats, the first alternative
-is assumed to be played more than once.
+give enough alternatives for all of the repeats, the first
+alternative is assumed to be played more than once.
The following types of repetition are supported
@item volta
Repeats are not written out, but alternative endings (volte) are
-printed, left to right with brackets. This is the standard notation
-for repeats with alternatives. These are not played in MIDI output by
-default.
+printed, left to right with brackets. This is the standard
+notation for repeats with alternatives. These are not played in
+MIDI output by default.
@item tremolo
-Make tremolo beams. These are not played in MIDI output by default.
+Make tremolo beams. These are not played in MIDI output by
+default.
@item percent
-Make beat or measure repeats. These look like percent signs. These
-are not played in MIDI output by default. Percent repeats must be
-declared within a @code{Voice} context.
+Make beat or measure repeats. These look like percent signs.
+These are not played in MIDI output by default. Percent repeats
+must be declared within a @code{Voice} context.
@end table
@funindex repeatCommands
-The property @code{repeatCommands} can be used to control the layout of
-repeats. Its value is a Scheme list of repeat commands.
+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.
@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{Text markup}. Do
+not forget to change the font, as the default number font does not
+contain alphabetic characters;
@item @code{(volta #f)}
Stop a running volta bracket.
@seealso
-Program reference: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic}, and
-@internalsref{UnfoldedRepeatedMusic}.
+Snippets: @lsrdir{repeats}
-@node Repeats and MIDI
-@unnumberedsubsubsec Repeats and MIDI
-
-@cindex expanding repeats
-@funindex \unfoldRepeats
-
-With a little bit of tweaking, all types of repeats can be present
-in the MIDI output. This is achieved by applying the
-@code{\unfoldRepeats} music function. This function changes all
-repeats to unfold repeats.
-
-@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
-\unfoldRepeats {
- \repeat tremolo 8 {c'32 e' }
- \repeat percent 2 { c''8 d'' }
- \repeat volta 2 {c'4 d' e' f'}
- \alternative {
- { g' a' a' g' }
- {f' e' d' c' }
- }
-}
-\bar "|."
-@end lilypond
-
-When creating a score file using @code{\unfoldRepeats} for MIDI,
-it is necessary to make two @code{\score} blocks: one for MIDI (with
-unfolded repeats) and one for notation (with volta, tremolo, and
-percent repeats). For example,
-
-@example
-\score @{
- @var{..music..}
- \layout @{ .. @}
-@}
-\score @{
- \unfoldRepeats @var{..music..}
- \midi @{ .. @}
-@}
-@end example
+Internals Reference: @internalsref{VoltaBracket},
+@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
+and @internalsref{UnfoldedRepeatedMusic}.
@node Other repeats
@cindex tremolo beams
-To place tremolo marks between notes, use @code{\repeat} with tremolo
-style
+To place tremolo marks between notes, use @code{\repeat} with
+tremolo style
+
@lilypond[quote,verbatim,ragged-right]
\new Voice \relative c' {
\repeat tremolo 8 { c16 d16 }
Tremolo marks can also be put on a single note. In this case, the
note should not be surrounded by braces.
+
@lilypond[quote,verbatim,ragged-right]
\repeat tremolo 4 c'16
@end lilypond
-Similar output is obtained using the tremolo subdivision, described in
-@ref{Tremolo subdivisions}.
+Similar output is obtained using the tremolo subdivision,
+described in @ref{Tremolo subdivisions}.
@seealso
-In this manual: @ref{Tremolo subdivisions}, @ref{Repeats}.
+Notation Reference: @ref{Tremolo subdivisions}, @ref{Repeats}.
-Program reference: @internalsref{Beam}, @internalsref{StemTremolo}.
+Snippets: @lsrdir{repeats}
+
+Internals Reference: @internalsref{Beam},
+@internalsref{StemTremolo}.
@node Tremolo subdivisions
@funindex tremoloFlags
Tremolo marks can be printed on a single note 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{length} value of 8 gives one line across the note stem. If the
-length is omitted, the last value (stored in @code{tremoloFlags}) is
-used
+@q{@code{:}[@var{number}]} after the note. The number indicates
+the duration of the subdivision, and it must be at least 8. A
+@var{length} value of 8 gives one line across the note stem. If
+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': |
@refbugs
-Tremolos entered in this way do not carry over into the MIDI output.
+Tremolos entered in this way do not carry over into the MIDI
+output.
@seealso
-In this manual: @ref{Tremolo repeats}.
+Notation Reference: @ref{Tremolo repeats}.
+
+Snippets: @lsrdir{repeats}
Elsewhere: @internalsref{StemTremolo}.
@cindex percent repeats
@cindex measure repeats
-In the @code{percent} style, a note pattern can be repeated. It is
-printed once, and then 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.
+In the @code{percent} style, a note pattern can be repeated. It
+is printed once, and then 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' {
}
@end lilypond
-Measure repeats of more than 2 measures get a counter, if you switch
-on the @code{countPercentRepeats} property,
+Measure repeats of more than 2 measures get a counter, if you
+switch on the @code{countPercentRepeats} property,
@lilypond[relative=2,fragment,quote,verbatim,ragged-right]
\new Voice {
-Isolated percents can also be printed. This is done by putting a
+Isolated percents can also be printed. This is done by putting a
multi-measure rest with a different print function,
@lilypond[fragment,verbatim,quote]
@seealso
-Program reference: @internalsref{RepeatSlash},
+Snippets: @lsrdir{repeats}
+
+Internals Reference: @internalsref{RepeatSlash},
@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
@internalsref{DoublePercentRepeatCounter},
@internalsref{PercentRepeatCounter},