@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@c \version "2.11.38"
@node Rhythms
@section Rhythms
-This section discusses rhythms, durations, and bars.
+@lilypondfile[quote]{rhythms-headword.ly}
+
+This section discusses rhythms, rests, durations, beaming and bars.
@menu
* Writing rhythms::
@menu
* Durations::
-* Augmentation dots::
* Tuplets::
* Scaling durations::
+* Ties::
@end menu
@node Durations
-@unnumberedsubsubsec Durations
+@subsubsection Durations
+
+@cindex durations, of notes
+@cindex note durations
-@cindex duration
@funindex \longa
@funindex \breve
@funindex \maxima
-In Note, Chord, and Lyrics mode, durations are designated by
-numbers and dots: durations are entered as their reciprocal
-values. For example, a quarter note is entered using a @code{4}
-(since it is a 1/4 note), while a half note is entered using a
-@code{2} (since it is a 1/2 note). For notes longer than a whole
-you must use the @code{\longa} and @code{\breve} commands
-
-@example
-c'\breve
-c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64
-r\longa r\breve
-r1 r2 r4 r8 r16 r32 r64 r64
-@end example
+Durations are designated by numbers and dots.
+Durations are entered as their reciprocal values. For example, a
+quarter note is entered using a @code{4} (since it is a 1/4 note),
+and a half note is entered using a @code{2} (since it is a 1/2
+note). For notes longer than a whole you must use the
+@code{\longa} (a double breve) and @code{\breve} commands.
+Durations as short as 64th notes may be specified. Shorter values
+are possible, but only as beamed notes.
+
+@c Two 64th notes are needed to obtain beams
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\time 8/1
+c\longa c\breve c1 c2
+c4 c8 c16 c32 c64 c64
+@end lilypond
-@lilypond[quote]
-\score {
-\relative c'' {
- a\breve*1/2 \autoBeamOff
- a1 a2 a4 a8 a16 a32 a64 a64
- \bar "empty"
- \break
- r\longa*1/4 r\breve *1/2
- r1 r2 r4 r8 r16 r32 r64 r64
- }
- \layout {
- ragged-right = ##t
- indent=0\mm
- \context {
- \Score
- \remove "Bar_number_engraver"
- }
- \context {
- \Staff
- \remove "Clef_engraver"
- \override StaffSymbol #'transparent = ##t
- \override TimeSignature #'transparent = ##t
- \override BarLine #'transparent = ##t
- \consists "Pitch_squash_engraver"
- }
- }
-}
+@noindent
+Here are the same durations with automatic beaming turned off.
+
+@c not strictly "writing rhythms"; more of a "displaying" thing,
+@c but it's ok here. -gp
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\time 8/1
+\autoBeamOff
+c\longa c\breve c1 c2
+c4 c8 c16 c32 c64 c64
@end lilypond
-If the duration is omitted then it is set to the previously
+A note with the duration of a quadruple breve may be entered with
+@code{\maxima}, but this is supported only within ancient music
+notation. For details, see @ref{Ancient notation}.
+
+If the duration is omitted, it is set to the previously
entered duration. The default for the first note is a quarter
note.
-@lilypond[quote,ragged-right,verbatim,fragment]
-{ a a a2 a a4 a a1 a }
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+a a a2 a a4 a a1 a
@end lilypond
-
-@node Augmentation dots
-@unnumberedsubsubsec Augmentation dots
+@cindex notes, dotted
+@cindex dotted notes
@funindex .
-To obtain dotted note lengths, simply add a dot (@samp{.}) to the
-number. Double-dotted notes are produced in a similar way.
+To obtain dotted note lengths, place a dot (@code{.}) after the
+duration. Double-dotted notes are specified by appending two
+dots, and so on.
-@lilypond[quote,ragged-right,fragment,verbatim]
-a'4 b' c''4. b'8 a'4. b'4.. c''8.
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+a4 b c4. b8 a4. b4.. c8.
@end lilypond
-@refcommands
+Some durations cannot be represented with just binary durations
+and dots; they can be represented only by tying two or more
+notes together. For details, see @ref{Ties}.
-Dots are normally moved up to avoid staff lines, except in
-polyphonic situations. The following commands may be used to
-force a particular direction manually
+For ways of specifying durations for the syllables of lyrics and
+ways of aligning lyrics to notes, see @ref{Vocal music}.
+
+Optionally, notes can be spaced strictly proportionately to their
+duration. For details of this and other settings which control
+proportional notation, see @ref{Proportional notation}.
@funindex \dotsUp
-@code{\dotsUp},
@funindex \dotsDown
-@code{\dotsDown},
@funindex \dotsNeutral
+
+Dots are normally moved up to avoid staff lines, except in
+polyphonic situations. Predefined commands are available to
+force a particular direction manually, for details
+see @ref{Controlling direction and placement}.
+
+@predefined
+
+@code{\autoBeamOff},
+@code{\dotsUp},
+@code{\dotsDown},
@code{\dotsNeutral}.
+
@seealso
-Program reference: @internalsref{Dots}, and
-@internalsref{DotColumn}.
+Music Glossary:
+@rglos{breve},
+@rglos{longa},
+@rglos{note value},
+@rglos{Duration names notes and rests}.
+
+Notation Reference:
+@ref{Automatic beams},
+@ref{Ties},
+@ref{Writing rhythms},
+@ref{Writing rests},
+@ref{Vocal music},
+@ref{Ancient notation},
+@ref{Proportional notation}.
+
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference:
+@rinternals{Dots},
+@rinternals{DotColumn}.
+
+
+@knownissues
+
+@c Deliberately duplicated in Durations and Rests. -gp
+There is no fundamental limit to rest durations (both in terms of
+longest and shortest), but the number of glyphs is limited:
+rests from 128th to maxima (8 x whole) may be printed.
@node Tuplets
-@unnumberedsubsubsec Tuplets
+@subsubsection Tuplets
@cindex tuplets
@cindex triplets
@funindex \times
-Tuplets are made out of a music expression by multiplying all
-durations with a fraction
+Tuplets are made from a music expression by multiplying all the
+durations with a fraction:
@example
-\times @var{fraction} @var{musicexpr}
+\times @var{fraction} @{ @var{music} @}
@end example
@noindent
-The duration of @var{musicexpr} will be multiplied by the
-fraction. The fraction's denominator will be printed over the
-notes, optionally with a bracket. The most common tuplet is the
-triplet in which 3 notes have the length of 2, so the notes are
-2/3 of their written length
+The duration of @var{music} will be multiplied by the
+fraction. The fraction's denominator will be printed over or
+under the notes, optionally with a bracket. The most common
+tuplet is the triplet in which 3 notes have the duration of 2, so
+the notes are 2/3 of their written length.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+a2 \times 2/3 { b4 b b }
+c4 c \times 2/3 { b4 a g }
-@lilypond[quote,ragged-right,fragment,verbatim]
-g'4 \times 2/3 {c'4 c' c'} d'4 d'4
@end lilypond
-Tuplets may be nested, for example,
+@funindex \tupletUp
+@funindex \tupletDown
+@funindex \tupletNeutral
-@lilypond[fragment,ragged-right,verbatim,relative=2]
-\override TupletNumber #'text = #tuplet-number::calc-fraction-text
-\times 4/6 {
- a4 a
- \times 3/5 { a a a a a }
-}
+The automatic placement of the tuplet bracket above or below the
+notes may be overridden manually with predefined commands, for
+details see @ref{Controlling direction and placement}.
+
+Tuplets may be nested:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\autoBeamOff
+c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4 |
@end lilypond
-@refcommands
+Modifying nested tuplets which begin at the same musical moment
+must be done with @code{\tweak}.
+
+To modify the duration of notes without printing a tuplet bracket,
+see @ref{Scaling durations}.
+
+@predefined
-@funindex \tupletUp
@code{\tupletUp},
-@funindex \tupletDown
@code{\tupletDown},
-@funindex \tupletNeutral
@code{\tupletNeutral}.
-@commonprop
+@snippets
-@funindex tupletNumberFormatFunction
@cindex tuplet formatting
+@cindex triplet formatting
+
+@funindex tupletNumberFormatFunction
+@funindex tupletSpannerDuration
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{entering-several-tuplets-using-only-one--times-command.ly}
+
+@funindex TupletNumber
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{changing-the-tuplet-number.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{permitting-line-breaks-within-beamed-tuplets.ly}
+
+@seealso
+
+Music Glossary:
+@rglos{triplet},
+@rglos{tuplet},
+@rglos{polymetric}.
+
+Learning Manual: @rlearning{Tweaking methods}.
+
+Notation Reference:
+@ref{Time administration},
+@ref{Scaling durations},
+@ref{Objects connected to the input},
+@ref{Polymetric notation}.
+
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference:
+@rinternals{TupletBracket},
+@rinternals{TupletNumber},
+@rinternals{TimeScaledMusic}.
+
+@knownissues
+@cindex grace notes within tuplet brackets
+When the very first note on a staff is a grace note followed by a
+tuplet the grace note must be placed before the @code{\times}
+command to avoid errors. Anywhere else, grace notes may be
+placed within tuplet brackets.
-The property @code{tupletSpannerDuration} specifies how long each
-bracket should last. With this, you can make lots of tuplets
-while typing @code{\times} only once, thus saving lots of typing.
-In the next example, there are two triplets shown, while
-@code{\times} was only used once
+
+@node Scaling durations
+@subsubsection Scaling durations
+
+@cindex scaling durations
+@cindex durations, scaling
+
+TODO Change \compressMusic to \scaleDurations when implemented.
+
+You can alter the duration of single notes, rests or chords by a
+fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
+@code{M} is 1) to the duration.
+This will not affect the appearance of the notes or rests
+produced, but the altered duration will be used in calculating the
+position within the measure and setting the duration in the MIDI
+output. Multiplying factors may be combined such as @code{*L*M/N}.
+
+In the following example, the first three notes take up exactly
+two beats, but no triplet bracket is printed.
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+\time 2/4
+% Alter durations to triplets
+a4*2/3 gis4*2/3 a4*2/3
+% Normal durations
+a4 a4
+% Double the duration of chord
+<a d>4*2
+% Duration of quarter, appears like sixteenth
+b16*4 c4
+@end lilypond
+
+The duration of skip or spacing notes may also be modified by
+a multiplier. This is useful for skipping many measures, e.g.,
+@code{s1*23}.
+
+@cindex compressing music
+@funindex \compressMusic
+
+Longer stretches of music may be compressed by a fraction in
+the same way, as if every note, chord or rest had the fraction
+as a multiplier. The general syntax of the command to do this
+is:
+
+@example
+\compressMusic #'(@emph{num} . @emph{den}) @{ @emph{music} @}
+@end example
+
+@noindent
+This will leave the appearance of @emph{music} unchanged but
+the internal duration of the notes will be multiplied by the
+fraction @emph{num}/@emph{den}. The spaces around the dot
+are required. Here is an example showing how music can be
+compressed and expanded:
@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\set tupletSpannerDuration = #(ly:make-moment 1 4)
-\times 2/3 { c8 c c c c c }
+\time 2/4
+% Normal durations
+<c a>4 c8 a
+% Scale music by *2/3
+\compressMusic #'(2 . 3) {
+ <c a f>4. c8 a f
+}
+% Scale music by *2
+\compressMusic #'(2 . 1) {
+ <c' a>4 c8 b
+}
@end lilypond
@noindent
-For more information about @code{make-moment}, see
-@ref{Time administration}.
+One application of this command is in polymetric
+notation, see @ref{Polymetric notation}.
-The format of the number is determined by the property @code{text}
-in @code{TupletNumber}. The default prints only the denominator,
-but if it is set to the function
-@code{tuplet-number::calc-fraction-text}, @var{num}:@var{den} will
-be printed instead.
-To avoid printing tuplet numbers, use
+@seealso
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\times 2/3 { c8 c c } \times 2/3 { c8 c c }
-\override TupletNumber #'transparent = ##t
-\times 2/3 { c8 c c } \times 2/3 { c8 c c }
+Notation Reference:
+@ref{Tuplets},
+@ref{Skips},
+@ref{Polymetric notation}.
+
+Snippets:
+@rlsr{Rhythms}.
+
+
+@node Ties
+@subsubsection Ties
+
+@cindex tie
+@funindex ~
+
+A tie connects two adjacent note heads of the same pitch. The tie
+in effect extends the duration of a note.
+
+@warning{Ties should not be confused with @emph{slurs}, which
+indicate articulation, or @emph{phrasing slurs}, which indicate
+musical phrasing. A tie is just a way of extending a note
+duration, similar to the augmentation dot.}
+
+A tie is entered using the tilde symbol @code{~}
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+e' ~ e'
@end lilypond
-Use the @code{\tweak} function to override nested tuplets
-beginning at the same music moment. In this example,
-@code{\tweak} specifies fraction text for the outer
-@code{TupletNumber} and denominator text for the
-@code{TupletNumber} of the first of the three inner tuplets.
-@lilypond[quote,ragged-right,verbatim]
-\new Staff {
- \tweak #'text #tuplet-number::calc-fraction-text
- \times 4/3 {
- \tweak #'text #tuplet-number::calc-denominator-text
- \times 2/3 { c'8[ c'8 c'8] }
- \times 2/3 { c'8[ c'8 c'8] }
- \times 2/3 { c'8[ c'8 c'8] }
- }
+@noindent
+Ties are used either when the note crosses a bar line, or when
+dots cannot be used to denote the rhythm. Ties should also be
+used when note values cross larger subdivisions of the measure:
+
+@lilypond[fragment,quote,ragged-right]
+\relative c' {
+ r8 c8 ~ c2 r4 |
+ r8^"not" c2 ~ c8 r4
}
@end lilypond
-Here @code{\tweak} and @code{\override} work together to specify
-@code{TupletBracket} direction. The first @code{\tweak} positions
-the @code{TupletBracket} of the outer tuplet above the staff. The
-second @code{\tweak} positions the @code{TupletBracket} of the
-first of the three inner tuplets below the staff. Note that this
-pair of @code{\tweak} functions affects only the outer tuplet and
-the first of the three inner tuplets because only those two
-tuplets begin at the same music moment. We use @code{\override}
-in the usual way to position the @code{TupletBrackets} of the
-second and third of the inner tuplets below the staff.
+If you need to tie many notes across bar lines, it may be
+easier to use automatic note splitting, see @ref{Automatic note
+splitting}. This mechanism automatically splits long notes, and
+ties them across bar lines.
-@lilypond[quote,ragged-right,verbatim]
-\new Staff {
- \tweak #'text #tuplet-number::calc-fraction-text
- \tweak #'direction #up
- \times 4/3 {
- \tweak #'direction #down
- \times 2/3 { c'8[ c'8 c'8] }
- \override TupletBracket #'direction = #down
- \times 2/3 { c'8[ c'8 c'8] }
- \times 2/3 { c'8[ c'8 c'8] }
- }
-}
+@cindex ties and chords
+@cindex chords and ties
+
+When a tie is applied to a chord, all note heads whose pitches
+match are connected. When no note heads match, no ties will be
+created. Chords may be partially tied by placing the tie inside
+the chord.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+<c e g> ~ <c e g>
+<c~ e g~ b> <c e g b>
@end lilypond
-Tuplet brackets can be made to run to prefatory matter or the next
-note
+@funindex \repeatTie
+@cindex repeating ties
+@cindex ties, repeating
+@cindex volta brackets and ties
+@cindex ties and volta brackets
+
+When a second alternative of a repeat starts with a tied note, you
+have to specify the repeated tie as follows:
+
+@lilypond[fragment,quote,ragged-right,relative=2,verbatim]
+\repeat volta 2 { c g <c e>2 ~ }
+\alternative {
+ % First alternative: following note is tied normally
+ { <c e>2. r4 }
+ % Second alternative: following note has a repeated tie
+ { <c e>2\repeatTie d4 c } }
+@end lilypond
-@lilypond[ragged-right]
-\new RhythmicStaff {
- \set tupletFullLength = ##t
- \time 4/4
- \times 4/5 {
- c4 c1
- }
- \set tupletFullLengthNote = ##t
- \time 2/4
- \times 2/3 {
- c4 c c
- }
- \time 3/4
- c4
-}
+@cindex laissez vibrer
+@cindex ties, laissez vibrer
+@funindex \laissezVibrer
+
+@notation{L.v.} ties (@notation{laissez vibrer}) indicate that
+notes must not be damped at the end. It is used in notation for
+piano, harp and other string and percussion instruments. They can
+be entered as follows:
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
+<c f g>\laissezVibrer
@end lilypond
+@cindex ties, placement
+@funindex \tieUp
+@funindex \tieDown
+@funindex \tieNeutral
-@seealso
+The vertical placement of ties may be controlled, see
+Predefined commands, or for details, see
+@ref{Controlling direction and placement}.
-Program reference: @internalsref{TupletBracket},
-@internalsref{TupletNumber}, and @internalsref{TimeScaledMusic}.
+@cindex ties, appearance
+@funindex \tieDotted
+@funindex \tieDashed
+@funindex \tieSolid
+Solid, dotted or dashed ties may be specified, see Predefined
+commands.
-@node Scaling durations
-@unnumberedsubsubsec Scaling durations
+@predefined
-You can alter the length of duration by a fraction @var{N/M}
-appending @samp{*@var{N/M}} (or @samp{*@var{N}} if @var{M=1}).
-This will not affect the appearance of the notes or rests
-produced. These may be combined such as @samp{*M*N}.
+@code{\tieUp},
+@code{\tieDown},
+@code{\tieNeutral},
+@code{\tieDotted},
+@code{\tieDashed},
+@code{\tieSolid}.
-In the following example, the first three notes take up exactly
-two beats, but no triplet bracket is printed.
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\time 2/4
-a4*2/3 gis4*2/3 a4*2/3
-a4 a4 a4*2
-b16*4 c4
-@end lilypond
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{using-ties-with-arpeggios.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{engraving-ties-manually.ly}
@seealso
-This manual: @ref{Tuplets}.
+Music Glossary:
+@rglos{tie},
+@rglos{laissez vibrer}.
+
+Notation Reference: @ref{Automatic note splitting}.
+
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference:
+@rinternals{LaissezVibrerTie},
+@rinternals{LaissezVibrerTieColumn},
+@rinternals{TieColumn},
+@rinternals{Tie}.
+
+
+@knownissues
+
+Switching staves when a tie is active will not produce a slanted
+tie.
+
+Changing clefs or octavations during a tie is not really
+well-defined. In these cases, a slur may be preferable.
+
+
+
@node Writing rests
@menu
* Rests::
* Skips::
-* Multi measure rests::
+* Full measure rests::
@end menu
@node Rests
-@unnumberedsubsubsec Rests
-@cindex Rests
+@subsubsection Rests
+@cindex rest
+@cindex maxima
+@cindex longa
+@cindex breve
@funindex \rest
@funindex r
+@funindex \maxima
+@funindex \longa
+@funindex \breve
-Rests are entered like notes with the note name @code{r}
+Rests are entered like notes with the note name @code{r};
+longer rests with the predefined commands shown:
+@c \time 16/1 is used to avoid spurious bar lines
+@c and long tracts of empty measures
@lilypond[fragment,quote,ragged-right,verbatim]
-r1 r2 r4 r8
+\new Staff {
+ % These two lines are just to prettify this example
+ \time 16/1
+ \override Staff.TimeSignature #'stencil = ##f
+ % Print a maxima rest, equal to four breves
+ r\maxima
+ % Print a longa rest, equal to two breves
+ r\longa
+ % Print a breve rest
+ r\breve
+ r1 r2 r4 r8 r16 r32 r64
+}
@end lilypond
-Whole bar rests, centered in middle of the bar, must be done with
-multi-measure rests. They can be used for a single bar as well as
-many bars, and are discussed in @ref{Multi measure rests}.
+Whole measure rests, centered in the middle of the measure, must
+be entered as multi-measure rests. They can be used for a single
+measure as well as many measures and are discussed in
+@ref{Full measure rests}.
To explicitly specify a rest's vertical position, write a note
followed by @code{\rest}. A rest will be placed in the position
-where the note would appear,
+where the note would appear. This allows for precise manual
+formatting of polyphonic music, since the automatic rest collision
+formatter will leave these rests alone.
-@lilypond[fragment,quote,ragged-right,verbatim]
-a'4\rest d'4\rest
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+a4\rest d4\rest
@end lilypond
-@noindent
-This makes manual formatting of polyphonic music much easier,
-since the automatic rest collision formatter will leave these
-rests alone.
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{rest-styles.ly}
+
@seealso
-Program reference: @internalsref{Rest}.
+Notation Reference: @ref{Full measure rests}
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference: @rinternals{Rest}
+
+
+@knownissues
+
+@c Deliberately duplicated in Durations and Rests. -gp
+There is no fundamental limit to rest durations (both in terms of
+longest and shortest), but the number of glyphs is limited: there
+are rests from 128th to maxima (8 x whole).
@node Skips
-@unnumberedsubsubsec Skips
+@subsubsection Skips
+
+@cindex skip
+@cindex invisible rest
+@cindex rest, invisible
+@cindex spacer note
-@cindex Skip
-@cindex Invisible rest
-@cindex Space note
@funindex \skip
@funindex s
-An invisible rest (also called a @q{skip}) can be entered like a
-note with note name @samp{s} or with @code{\skip @var{duration}}
+An invisible rest (also called a @q{skip rest}) can be entered like a
+note with note name @code{s} or with the predefined skip command
+followed by the required duration, as shown here:
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-a4 a4 s4 a4 \skip 1 a4
+% Skip the third beat in the first measure
+a4 a4 s4 a4
+% Use skip command to skip a whole note (measure)
+\skip 1
+a2 a2
@end lilypond
+@cindex lyrics, skip
+
The @code{s} syntax is only available in note mode and chord mode.
-In other situations, for example, when entering lyrics, you should
-use the @code{\skip} command
+In other situations, for example, when entering lyrics, one must
+use the predefined skip command:
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,ragged-right,verbatim,relative=2]
<<
- \relative { a'2 a2 }
+ { a2 a2 }
\new Lyrics \lyricmode { \skip 2 bla2 }
>>
@end lilypond
-The skip command is merely an empty musical placeholder. It does
-not produce any output, not even transparent output.
-
-The @code{s} skip command does create @internalsref{Staff} and
-@internalsref{Voice} when necessary, similar to note and rest
-commands. For example, the following results in an empty staff.
+The @code{s} skip rest implicitly causes @code{Staff} and
+@code{Voice} contexts to be created if none exist, just
+like notes and rests do. These in turn cause a staff with default
+clef and time signature to be printed, with bar lines if necessary.
+For example, the following results in a complete staff with three
+short empty measures:
-@lilypond[quote,ragged-right,verbatim]
-{ s4 }
+@lilypond[quote,verbatim,fragment,ragged-right]
+{ s1 s s }
@end lilypond
-The fragment @code{@{ \skip 4 @} } would produce an empty page.
+However, the predefined skip command behaves differently: it is
+merely an empty musical placeholder. It does not create any
+contexts and does not cause anything to be printed, not even
+transparently. On its own it does not even print an
+empty page:
+
+@example
+% This is valid input, but does nothing
+@{ \skip 1 @}
+@end example
@seealso
-Program reference: @internalsref{SkipMusic}.
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference: @rinternals{SkipMusic}
-@node Multi measure rests
-@unnumberedsubsubsec Multi measure rests
+@node Full measure rests
+@subsubsection Full measure rests
-@cindex multi measure rests
-@cindex full measure rests
-@cindex Rests, multi measure
-@cindex Rests, full measure
-@cindex whole rests for a full measure
+@cindex multi-measure rests
+@cindex full-measure rests
+@cindex rest, multi-measure
+@cindex rest, full-measure
+@cindex whole rest for a full measure
@funindex R
-Rests for one full measure (or many bars) are entered using
-@samp{R}. It is specifically meant for full bar rests and for
-entering parts: the rest can expand to fill a score with rests, or
-it can be printed as a single multi-measure rest. This expansion
-is controlled by the property @code{Score.skipBars}. If this is
-set to true, empty measures will not be expanded, and the
-appropriate number is added automatically
+Rests for one or more full measures are entered like notes with
+the note name uppercase @code{R}:
+
+@lilypond[quote,fragment,verbatim,relative=2]
+% Rest bars contracted to single bar
+\compressFullBarRests
+R1*4
+R1*24
+R1*4
+b2^"Tutti" b4 a4
+@end lilypond
+
+@funindex \expandFullBarRests
+@funindex \compressFullBarRests
+@cindex multi-measure rest, expanding
+@cindex multi-measure rest, contracting
+
+By default a multi-measure rest is expanded in the printed score
+to show all the rest measures explicitly or (as in the example
+above) it can be contracted to a single measure containing a
+multi-measure rest symbol, with the number of measures of rest
+printed above the measure:
@lilypond[quote,ragged-right,fragment,verbatim]
-\time 4/4 r1 | R1 | R1*2 \time 3/4 R2. \time 2/4 R2 \time 4/4
-\set Score.skipBars = ##t R1*17 R1*4
+% Default behavior
+\time 3/4 r2. | R2.*2 |
+\time 2/4 R2 |
+\time 4/4
+% Rest measures contracted to single measure
+\compressFullBarRests
+r1 | R1*17 | R1*4 |
+% Rest measures expanded
+\expandFullBarRests
+\time 3/4
+R2.*2 |
@end lilypond
-The @code{1} in @code{R1} is similar to the duration notation used
-for notes. Hence, for time signatures other than 4/4, you must
-enter other durations. This can be done with augmentation dots or
-fractions
+The @code{1} in @code{R1} is similar to the duration notation
+used for notes and is the length of a measure in 2/2 or 4/4 time.
+The duration in a multi-measure rest must always be an integral
+number of measure-lengths, so in other time signatures augmentation
+dots or fractions must be used:
@lilypond[quote,ragged-right,fragment,verbatim]
-\set Score.skipBars = ##t
+\compressFullBarRests
\time 3/4
R2. | R2.*2
\time 13/8
-R1*13/8
-R1*13/8*12 |
-\time 10/8 R4*5*4 |
+R1*13/8 | R1*13/8*12 |
+\time 10/8
+R4*5*4 |
@end lilypond
An @code{R} spanning a single measure is printed as either a whole
-rest or a breve, centered in the measure regardless of the time
+or breve rest, centered in the measure, regardless of the time
signature.
-If there are only a few measures of rest, LilyPond prints
-@q{church rests} (a series of rectangles) in the staff. To
-replace that with a simple rest, use
-@code{MultiMeasureRest.expand-limit}.
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\set Score.skipBars = ##t
-R1*2 | R1*5 | R1*9
-\override MultiMeasureRest #'expand-limit = 1
-R1*2 | R1*5 | R1*9
-@end lilypond
@cindex text on multi-measure rest
+@cindex multi-measure rest, attaching text
@cindex script on multi-measure rest
+@cindex multi-measure rest, script
@cindex fermata on multi-measure rest
+@cindex multi-measure rest, attaching fermata
-Texts can be added to multi-measure rests by using the
-@var{note}-@code{markup} syntax @ref{Text markup}. A variable
-(@code{\fermataMarkup}) is provided for adding fermatas
+Text can be added to multi-measure rests by using the
+@var{note} - @code{\markup} syntax described in
+@ref{Formatting text}. The predefined command @code{\fermataMarkup}
+is provided for adding fermatas.
@lilypond[quote,ragged-right,verbatim,fragment]
-\set Score.skipBars = ##t
+\compressFullBarRests
\time 3/4
R2.*10^\markup { \italic "ad lib." }
R2.^\fermataMarkup
@end lilypond
-Warning! This text is created by @code{MultiMeasureRestText}, not
-@code{TextScript}.
+@warning{Text attached to a multi-measure rest is created
+by @code{MultiMeasureRestText}, not
+@code{TextScript}. Overrides must be directed to the correct
+object, or they will be ignored. See the following example.}
@lilypond[quote,ragged-right,verbatim,fragment]
+% This fails, as the wrong object name is specified
\override TextScript #'padding = #5
-R1^"low"
+R1^"wrong"
+% This is correct and works
\override MultiMeasureRestText #'padding = #5
-R1^"high"
+R1^"right"
@end lilypond
-If you want to have text on the left end of a multi-measure rest,
-attach the text to a zero-length skip note, i.e.,
-
-@example
-s1*0^"Allegro"
-R1*4
-@end example
+Text attached to a multi-measure rest will be centered above or
+below it. Long text attached in this way does not cause the
+measure to expand, and may collide with text in adjacent measures.
+This behavior may be changed with the predefined command
+@code{\textLengthOn}, which will cause following bars to expand
+as necessary to accommodate text. @code{\textLengthOff} returns
+to the default behavior. To left-align text within a bar attach
+it to a zero-length skip note preceding the rest.
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\compressFullBarRests
+\textLengthOn
+s1*0^\markup { [MAJOR GENERAL] }
+R1*19
+s1*0^\markup { [MABEL] }
+s1*0_\markup { \italic { Cue: ... it is yours } }
+R1*30
+\textLengthOff
+c4^\markup { CHORUS } d f c
+@end lilypond
+@noindent
+Text attached to a skip note in this way is left-aligned to the
+position where the note would be placed in the measure, and placed
+above the measure count numeral, but if the measure length is
+determined by the length of the text, the text will appear to be
+centered. If two (or more) texts are
+attached to skip notes in a measure the measure length is determined by
+the longer text, and the shorter text is then clearly
+left-aligned, as shown in the second measure above. If the shorter
+text of two marks is short enough to fit it will be placed
+alongside and to the left of the measure count numeral.
+
+@predefined
+@code{\textLengthOn},
+@code{\textLengthOff},
+@code{\fermataMarkup},
+@code{\compressFullBarRests},
+@code{\expandFullBarRests}.
+
+@snippets
+
+@cindex church rest
+@cindex rest, church
+@cindex kirchenpausen
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{changing-form-of-multi--measure-rests.ly}
+
+@cindex multi-measure rests, positioning
+@cindex positioning multi-measure rests
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{positioning-multi--measure-rests.ly}
@seealso
-Program reference: @internalsref{MultiMeasureRestMusicGroup},
-@internalsref{MultiMeasureRest}.
+Music Glossary:
+@rglos{multi-measure rest},
+@rglos{church rests}.
+
+Notation Reference:
+@ref{Durations},
+@ref{Text},
+@ref{Formatting text},
+@ref{Text scripts}.
+
+Snippets:
+@rlsr{Rhythms}.
-The layout object @internalsref{MultiMeasureRestNumber} is for the
-default number, and @internalsref{MultiMeasureRestText} for user
-specified texts.
+Internals Reference:
+@rinternals{MultiMeasureRest},
+@rinternals{MultiMeasureRestNumber},
+@rinternals{MultiMeasureRestText}.
-@refbugs
+@knownissues
-It is not possible to use fingerings (e.g., @code{R1-4}) to put
-numbers over multi-measure rests. And the pitch of multi-measure
-rests (or staff-centered rests) can not be influenced.
+If an attempt is made to use fingerings (e.g.,
+@code{R1*10-4}) to put numbers over multi-measure rests, the
+fingering numeral (4) may collide with the bar counter
+numeral (10).
@cindex condensing rests
+@cindex rests, condensing ordinary
-There is no way to automatically condense multiple rests into a
-single multi-measure rest. Multi-measure rests do not take part
-in rest collisions.
+There is no way to automatically condense multiple ordinary rests
+into a single multi-measure rest.
+
+@cindex rests, collisions of
+
+Multi-measure rests do not take part in rest collisions.
Be careful when entering multi-measure rests followed by whole
notes. The following will enter two notes lasting four measures
-each
+each:
@example
R1*4 cis cis
@end example
-When @code{skipBars} is
-set, the result will look OK, but the bar numbering will be off.
-
-
@node Displaying rhythms
@subsection Displaying rhythms
* Unmetered music::
* Polymetric notation::
* Automatic note splitting::
+* Showing melody rhythms::
@end menu
@node Time signature
-@unnumberedsubsubsec Time signature
+@subsubsection Time signature
-@cindex Time signature
+@cindex time signature
@cindex meter
@funindex \time
-Time signature indicates the metrum of a piece: a regular pattern
-of strong and weak beats. It is denoted by a fraction at the
-start of the staff.
+The time signature is set as follows:
-The time signature is set with the @code{\time} command
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\time 2/4 c2
+\time 3/4 c2.
+@end lilypond
-@lilypond[quote,ragged-right,fragment,verbatim]
-\time 2/4 c'2 \time 3/4 c'2.
+@cindex Time signature, visibility of
+
+Time signatures by default are printed at the start of every line
+and whenever the time signature changes. If a change takes place
+at the end of a line a warning time signature sign is printed
+there. This default behavior may be changed, see
+@ref{Controlling visibility of objects}.
+
+@funindex \numericTimeSignature
+@funindex \defaultTimeSignature
+@cindex time signature style
+
+The symbol that is printed in 2/2 and 4/4 time can be customized
+to use a numeric style:
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+% Default style
+\time 4/4 c1
+\time 2/2 c1
+% Change to numeric style
+\numericTimeSignature
+\time 4/4 c1
+\time 2/2 c1
+% Revert to default style
+\defaultTimeSignature
+\time 4/4 c1
+\time 2/2 c1
@end lilypond
-@commonprop
-The symbol that is printed can be customized with the @code{style}
-property. Setting it to @code{#'()} uses fraction style for 4/4
-and 2/2 time,
+Ancient time signatures are covered in
+@ref{Ancient time signatures}.
-@lilypond[fragment,quote,ragged-right,verbatim]
-\time 4/4 c'1
-\time 2/2 c'1
-\override Staff.TimeSignature #'style = #'()
-\time 4/4 c'1
-\time 2/2 c'1
-@end lilypond
-
-There are many more options for its layout. See @ref{Ancient time
-signatures}, for more examples.
-
-@code{\time} sets the property @code{timeSignatureFraction},
-@code{beatLength} and @code{measureLength} in the @code{Timing}
-context, which is normally aliased to @internalsref{Score}. The
-property @code{measureLength} determines where bar lines should be
-inserted, and how automatic beams should be generated. Changing
-the value of @code{timeSignatureFraction} also causes the symbol
-to be printed.
-
-More options are available through the Scheme function
-@code{set-time-signature}. In combination with the
-@internalsref{Measure_grouping_engraver}, it will create
-@internalsref{MeasureGrouping} signs. Such signs ease reading
-rhythmically complex modern music. In the following example, the
-9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
-@code{set-time-signature} as the third argument @code{(2 2 2 3)}
+@predefined
+
+@code{\numericTimeSignature},
+@code{\defaultTimeSignature}.
+
+@snippets
+
+@c TODO Send as snippet called "setting measure and beat lengths"
+@c when example is added
+@code{\time} sets the properties @code{timeSignatureFraction},
+@code{beatLength}, and @code{measureLength} in the @code{Timing}
+context, which is normally aliased to @code{Score}. Changing the
+value of @code{timeSignatureFraction} causes the new time
+signature symbol to be printed without changing the other
+properties. The property @code{measureLength} determines where
+bar lines should be inserted and, with @code{beatLength}, how
+automatic beams should be generated.
+
+TODO Add example of using beatLength.
+@c beatLength is broken - see bug 511
+
+@c End of snippet
+
+@cindex measure groupings
+@cindex beats, grouping
+@cindex grouping beats
+@cindex measure sub-grouping
+
+@c TODO Sent as snippet called "grouping beats" 25 Mar 08
+Options to group beats within a bar are available through the
+Scheme function @code{set-time-signature}, which takes three
+arguments: the number of beats, the beat length, and the internal
+grouping of beats in the measure. If the
+@rinternals{Measure_grouping_engraver} is included, the function
+will also create @rinternals{MeasureGrouping} signs. Such signs
+ease reading rhythmically complex modern music. In the example,
+the 9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
+@code{set-time-signature} as the third argument: @code{'(2 2 2 3)}:
@lilypond[quote,ragged-right,verbatim]
\score {
}
}
@end lilypond
+@c TODO End of snippet called "grouping beats"
+
+@cindex compound time signatures
+@cindex time signature, compound
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{compound-time-signatures.ly}
@seealso
-Program reference: @internalsref{TimeSignature}, and
-@internalsref{Timing_translator}.
+Music Glossary:
+@rglos{time signature}
+
+Notation Reference:
+@ruser{Ancient time signatures},
+@ruser{Time administration}.
+
+Snippets:
+@rlsr{Rhythms}.
-Examples: @lsr{contemporary,compound-time-signature.ly}.
+Internals Reference:
+@rinternals{TimeSignature},
+@rinternals{Timing_translator}.
-@refbugs
+@knownissues
Automatic beaming does not use the measure grouping specified with
@code{set-time-signature}.
@node Upbeats
-@unnumberedsubsubsec Upbeats
+@subsubsection Upbeats
@cindex anacrusis
@cindex upbeat
@cindex partial measure
@cindex measure, partial
-@cindex shorten measures
+@cindex pickup measure
+@cindex measure, change length
+@cindex measurePosition
@funindex \partial
-Partial measures, such as an anacrusis or upbeat, are entered using the
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\partial 16*5 c16 cis d dis e | a2. c,4 | b2
-@end lilypond
-
-The syntax for this command is
+Partial or pick-up measures, such as an anacrusis or upbeat, are
+entered using the @code{\partial} command, with the syntax
@example
-\partial @var{duration}
+\partial @var{duration} @emph{notes}
@end example
-where @code{duration} is the rhythmic length to be added before
-the next bar.
+where @code{duration} is the rhythmic length of the @emph{notes}
+which are to be placed before the first complete measure:
-This is internally translated into
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\partial 16*5 c16 cis d dis e |
+a2. c,4 |
+b2
+@end lilypond
+
+Internally, this is translated into
@example
-\set Timing.measurePosition = -@var{length of duration}
+\set Timing.measurePosition = -@var{duration}
@end example
The property @code{measurePosition} contains a rational number
indicating how much of the measure has passed at this point. Note
-that this is a negative number; @code{\partial 4} is internally
-translated to mean @qq{there is a quarter note left in the bar.}
+that this is set to a negative number by the @code{\partial}
+command: i.e., @code{\partial 4} is internally translated to
+@code{-4}, meaning @qq{there is a quarter note left in the measure.}
+
+
+@seealso
+
+Music Glossary: @rglos{anacrusis}
+
+Notation Reference: @ref{Grace notes}
+
+Snippets:
+@rlsr{Rhythms}.
+Internal Reference: @rinternals{Timing_translator}
-@refbugs
+@knownissues
+
+@cindex grace notes, in anacruses
This command does not take into account grace notes at the start
-of the music. When a piece starts with graces notes in the
-pickup, then the @code{\partial} should follow the grace notes
+of the music. If the pick-up starts with one or more grace
+notes, then the @code{\partial} should follow the grace note(s):
@lilypond[verbatim,quote,ragged-right,relative,fragment]
\grace f16
a2 g2
@end lilypond
-@code{\partial} is only intended to be used at the beginning of a
-piece. If you use it after the beginning, some odd warnings may
-occur.
-
+The @code{\partial} command is intended to be used only at the
+beginning of a piece. If you use it after the beginning, some
+odd warnings may occur.
@node Unmetered music
-@unnumberedsubsubsec Unmetered music
+@subsubsection Unmetered music
-@cindex cadenza
@funindex \cadenzaOn
@funindex \cadenzaOff
+@cindex bar lines, turning off
+@cindex bar numbering, turning off
+@cindex cadenza
+@cindex unmetered music
Bar lines and bar numbers are calculated automatically. For
unmetered music (cadenzas, for example), this is not desirable.
-To turn off automatic bar lines and bar numbers, use the commands
-@code{\cadenzaOn} and @code{\cadenzaOff}.
+To turn off automatic bar lines and bar numbers, use the command
+@code{\cadenzaOn}, and use @code{\cadenzaOff} to turn them on
+again.
+
+@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+c4 d e d
+\cadenzaOn
+c4 c d8 d d f4 g4.
+\cadenzaOff
+\bar "|"
+d4 e d c
+@end lilypond
+
+Bar numbering is resumed at the end of the cadenza as if the
+cadenza were not there:
@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+% Show all bar numbers
+\override Score.BarNumber #'break-visibility = #all-visible
c4 d e d
\cadenzaOn
c4 c d8 d d f4 g4.
d4 e d c
@end lilypond
+@predefined
-@refbugs
+@code{\cadenzaOn},
+@code{\cadenzaOff}.
-LilyPond will only insert line breaks and page breaks at a
-barline. Unless the unmetered music ends before the end of the
-staff line, you will need to insert invisible bar lines
+@seealso
+
+Music Glossary: @rglos{cadenza}
+
+Notation Reference: @ref{Controlling visibility of objects}
+
+Snippets:
+@rlsr{Rhythms}.
+
+@knownissues
+
+LilyPond will insert line breaks and page breaks only at a
+bar line. Unless the unmetered music ends before the end of the
+staff line, you will need to insert invisible bar lines with
@example
\bar ""
@node Polymetric notation
-@unnumberedsubsubsec Polymetric notation
+@subsubsection Polymetric notation
@cindex double time signatures
@cindex signatures, polymetric
@cindex polymetric signatures
@cindex meter, polymetric
-Double time signatures are not supported explicitly, but they can
-be faked. In the next example, the markup for the time signature
-is created with a markup text. This markup text is inserted in
-the @internalsref{TimeSignature} grob. See also
-@lsr{contemporary,compound-time-signature}.
+@strong{Alternating time signatures}
+
+Regularly alternating double time signatures are not supported
+explicitly, but they can be faked. In the next example, the
+double time signature is created with markup text, while the
+real time signature is set in the usual way with @code{\time}.
@lilypond[verbatim,ragged-right]
-% create 2/4 + 5/8
-tsMarkup =\markup {
+% Create 9/8 split into 2/4 + 5/8
+tsMarkup = \markup {
\override #'(baseline-skip . 2) \number {
\column { "2" "4" }
\vcenter "+"
}
{
- \override Staff.TimeSignature #'stencil = #ly:text-interface::print
+ \override Staff.TimeSignature #'stencil =
+ #ly:text-interface::print
\override Staff.TimeSignature #'text = #tsMarkup
- \time 3/2
+ \time 9/8
+ c'2 \bar ":" c'4 c'4.
c'2 \bar ":" c'4 c'4.
}
@end lilypond
-Each staff can also have its own time signature. This is done by
-moving the @internalsref{Timing_translator} to the
-@internalsref{Staff} context.
+@strong{Staves with different time signatures, equal measure lengths}
-@example
-\layout @{
- \context @{ \Score
- \remove "Timing_translator"
- \remove "Default_bar_line_engraver"
- @}
- \context @{
- \Staff
- \consists "Timing_translator"
- \consists "Default_bar_line_engraver"
- @}
+This notation can be created by setting a common time signature
+for each staff but replacing the symbol manually by setting
+@code{timeSignatureFraction} to the desired fraction and scaling
+the printed durations in each staff to the common time
+signature. This done with @code{\compressMusic}, which
+is used in a similar way to @code{\times}, but does not create
+a tuplet bracket, see @ref{Scaling durations}.
-@}
-@end example
+In this example, music with the time signatures of 3/4, 9/8, and
+10/8 are used in parallel. In the second staff, shown durations
+are multiplied by 2/3, as 2/3 * 9/8 = 3/4, and in the third
+staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
+@lilypond[quote,ragged-right,verbatim,fragment]
+\relative c' { <<
+ \new Staff {
+ \time 3/4
+ c4 c c |
+ c c c |
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(9 . 8)
+ \compressMusic #'(2 . 3)
+ \repeat unfold 6 { c8[ c c] }
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(10 . 8)
+ \compressMusic #'(3 . 5) {
+ \repeat unfold 2 { c8[ c c] }
+ \repeat unfold 2 { c8[ c] } |
+ c4. c4. \times 2/3 { c8 c c } c4
+ }
+ }
+>> }
+@end lilypond
-Now, each staff has its own time signature.
+@strong{Staves with different time signatures, unequal bar lengths}
-@example
-<<
- \new Staff @{
- \time 3/4
- c4 c c | c c c |
- @}
- \new Staff @{
- \time 2/4
- c4 c | c c | c c
- @}
- \new Staff @{
- \time 3/8
- c4. c8 c c c4. c8 c c
- @}
->>
-@end example
+Each staff can be given its own independent time signature by
+moving the @code{Timing_translator} to the @code{Staff} context.
-@lilypond[quote,ragged-right]
-\layout{
- \context{
- \Score
- \remove "Timing_translator"
- \remove "Default_bar_line_engraver"
- }
- \context{ \Staff
+@lilypond[quote,verbatim,ragged-right]
+\layout {
+ \context {
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ \context {
+ \Staff
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
}
+% Now each staff has its own time signature.
+
\relative c' <<
\new Staff {
\time 3/4
- c4 c c | c c c |
+ c4 c c |
+ c c c |
}
\new Staff {
\time 2/4
- c4 c | c c | c c
+ c4 c |
+ c c |
+ c c |
}
\new Staff {
\time 3/8
- c4. c8 c c c4. c8 c c
+ c4. |
+ c8 c c |
+ c4. |
+ c8 c c |
}
>>
@end lilypond
-A different form of polymetric notation is where note lengths have
-different values across staves.
+@seealso
-This notation can be created by setting a common time signature
-for each staff but replacing it manually using
-@code{timeSignatureFraction} to the desired fraction. Then the
-printed durations in each staff are scaled to the common time
-signature. The latter is done with @code{\compressMusic}, which
-is used similar to @code{\times}, but does not create a tuplet
-bracket. The syntax is @example \compressMusic #'(@var{numerator}
-. @var{denominator}) @var{musicexpr} @end example
+Music Glossary:
+@rglos{polymetric},
+@rglos{polymetric time signature},
+@rglos{meter}.
+Notation Reference: @ref{Scaling durations}
+Snippets:
+@rlsr{Rhythms}.
+@c Is this still permitted?
+@c @lsr{contemporary,compound-time-signature}
-In this example, music with the time signatures of 3/4, 9/8, and
-10/8 are used in parallel. In the second staff, shown durations
-are multiplied by 2/3, so that 2/3 * 9/8 = 3/4, and in the third
-staff, shown durations are multiplied by 3/5, so that 3/5 * 10/8 =
-3/4.
+Internals Reference:
+@rinternals{TimeSignature},
+@rinternals{Timing-translator},
+@rinternals{Staff}.
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' { <<
- \new Staff {
- \time 3/4
- c4 c c | c c c |
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(9 . 8)
- \compressMusic #'(2 . 3)
- \repeat unfold 6 { c8[ c c] }
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(10 . 8)
- \compressMusic #'(3 . 5) {
- \repeat unfold 2 { c8[ c c] }
- \repeat unfold 2 { c8[ c] }
- | c4. c4. \times 2/3 { c8 c c } c4
- }
- }
->> }
+@knownissues
+
+When using different time signatures in parallel, the spacing is
+aligned vertically, but bar lines distort the regular spacing.
+
+
+@node Automatic note splitting
+@subsubsection Automatic note splitting
+
+@cindex notes, splitting
+@cindex splitting notes
+
+Long notes which overrun bar lines can be converted automatically
+to tied notes. This is done by replacing the
+@code{Note_heads_engraver} by the
+@code{Completion_heads_engraver}. In the following
+example, notes crossing the bar lines are split and tied.
+
+@lilypond[quote,fragment,verbatim,relative=1,ragged-right]
+\new Voice \with {
+ \remove "Note_heads_engraver"
+ \consists "Completion_heads_engraver"
+}
+
+{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
@end lilypond
+This engraver splits all running notes at the bar line, and
+inserts ties. One of its uses is to debug complex scores: if the
+measures are not entirely filled, then the ties show exactly how
+much each measure is off.
-@refbugs
+To allow line breaking on the bar lines where the
+@code{Completion_heads_engraver} has inserted a split note, remove
+the @code{Forbid_line_break_engraver} too.
-When using different time signatures in parallel, the spacing is
-aligned vertically, but bar lines distort the regular spacing.
+@seealso
+
+Music Glossary: @rglos{tie}
+
+Learning Manual:
+@rlearning{Engravers explained},
+@rlearning{Adding and removing engravers}.
+
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference:
+@rinternals{Note_heads_engraver},
+@rinternals{Completion_heads_engraver},
+@rinternals{Forbid_line_break_engraver}.
+
+
+@knownissues
+
+Not all durations (especially those containing tuplets) can be
+represented exactly with normal notes and dots, but the engraver
+will not insert tuplets.
+
+The @code{Completion_heads_engraver} only affects notes; it does not
+split rests.
+
+
+@node Showing melody rhythms
+@subsubsection Showing melody rhythms
+
+Sometimes you might want to show only the rhythm of a melody. This
+can be done with the rhythmic staff. All pitches of notes on such a
+staff are squashed, and the staff itself has a single line
+
+@c TODO Devise a more realistic example, perhaps with lyrics -td
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+\new RhythmicStaff {
+ \time 4/4
+ c4 e8 f g2 | r4 g r2 | g1 | r1 |
+}
+@end lilypond
+
+
+@node Beams
+@subsection Beams
+
+@menu
+* Automatic beams::
+* Setting automatic beam behavior::
+* Manual beams::
+* Feathered beams::
+@end menu
+
+@node Automatic beams
+@subsubsection Automatic beams
+
+By default, beams are inserted automatically:
+
+@cindex beams, manual
+@cindex manual beams
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\time 2/4 c8 c c c
+\time 6/8 c c c c8. c16 c8
+@end lilypond
+
+If these automatic decisions are not satisfactory, beaming can be
+entered explicitly; see @ref{Manual beams}. It is also possible
+to define beaming patterns that differ from the defaults; see
+@ref{Setting automatic beam behavior}. The default beaming rules
+are defined in @file{scm/@/auto@/-beam@/.scm}.
+
+@cindex autoBeamOn
+@cindex autoBeamOff
+
+@noindent
+Automatic beaming may be turned off and on with
+@code{\autoBeamOff} and @code{\autoBeamOn} commands:
+
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+c4 c8 c8. c16 c8. c16 c8
+\autoBeamOff
+c4 c8 c8. c16 c8.
+\autoBeamOn
+c16 c8
+@end lilypond
+
+
+@snippets
+
+Beaming patterns may be altered with the @code{beatGrouping} property,
+
+@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
+\time 5/16
+\set beatGrouping = #'(2 3)
+c8[^"(2+3)" c16 c8]
+\set beatGrouping = #'(3 2)
+c8[^"(3+2)" c16 c8]
+@end lilypond
+
+The beams of consecutive 16th (or shorter) notes are, by default,
+not sub-divided. That is, the three (or more) beams stretch
+unbroken over entire groups of notes. This behavior can
+be modified to sub-divide the beams into sub-groups by setting
+the property @code{subdivideBeams}. When set, multiple beams
+will be sub-divided at intervals defined by the current value of
+@code{beatLength} by reducing the multiple beams to just one beam
+between the sub-groups. Note that @code{beatLength} lives in the
+@code{Score} context and defaults to a quarter note. It must be
+set to a fraction giving the duration of the beam sub-group
+using the @code{make-moment} function, as shown here:
+
+@lilypond[fragment,ragged-right,quote,relative=2,verbatim]
+c32[ c c c c c c c]
+\set subdivideBeams = ##t
+c32[ c c c c c c c]
+% Set beam sub-group length to an eighth note
+\set Score.beatLength = #(ly:make-moment 1 8)
+c32[ c c c c c c c]
+% Set beam sub-group length to a sixteenth note
+\set Score.beatLength = #(ly:make-moment 1 16)
+c32[ c c c c c c c]
+@end lilypond
+@funindex subdivideBeams
+
+@noindent
+For more information about @code{make-moment}, see
+@ref{Time administration}.
+
+@funindex breakable
+@cindex break, line
+@cindex line breaks
+
+Line breaks are normally forbidden when beams cross bar lines.
+This behavior can be changed by setting the @code{breakable}
+property: @code{\override Beam #'breakable = ##t}.
+
+@lilypond[ragged-right,relative=2,fragment,verbatim,quote]
+\override Beam #'breakable = ##t
+c8 \repeat unfold 15 { c[ c] } c
+@end lilypond
+
+@cindex beams and line breaks
+@cindex beams, kneed
+@cindex kneed beams
+@cindex auto-knee-gap
+
+Kneed beams are inserted automatically when a large gap is
+detected between the note heads. This behavior can be tuned
+through the @code{auto-knee-gap} property. A kneed beam is
+drawn if the gap is larger than the value of
+@code{auto-knee-gap} plus the width of the beam object (which
+depends on the duration of the notes and the slope of the beam).
+By default @code{auto-knee-gap} is set to 5.5 staff spaces.
+
+@lilypond[fragment,ragged-right,quote,verbatim]
+f8 f''8 f8 f''8
+\override Beam #'auto-knee-gap = #6
+f8 f''8 f8 f''8
+@end lilypond
+
+
+@seealso
+
+Notation Reference: @ref{Manual beams}, @ref{Setting automatic beam behavior}.
+
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference: @rinternals{Beam}.
+
+
+@knownissues
+
+Automatically kneed cross-staff beams cannot be used together with
+hidden staves. See @ref{Hiding staves}.
+
+Beams can collide with note heads and accidentals in other voices
+
+
+@node Setting automatic beam behavior
+@subsubsection Setting automatic beam behavior
+
+@funindex autoBeamSettings
+@funindex (end * * * *)
+@funindex (begin * * * *)
+@cindex automatic beams, tuning
+@cindex tuning automatic beaming
+
+@c [TODO: use \applyContext]
+
+In normal time signatures, automatic beams can start on any note
+but can end in only a few positions within the measure: beams can
+end on a beat, or at durations specified by the properties in
+@code{autoBeamSettings}. The properties in
+@code{autoBeamSettings} consist of a list of rules for where beams
+can begin and end. The default @code{autoBeamSettings} rules are
+defined in @file{scm/@/auto@/-beam@/.scm}.
+
+In order to add a rule to the list, use
+@example
+#(override-auto-beam-setting '(be p q n m) a b [context])
+@end example
+
+@itemize
+
+@item @code{be} is either @code{begin} or @code{end}.
+
+@item @code{p/q} is the duration of the note for which you want
+to add a rule. A beam is considered to have the duration of its
+shortest note. Set @code{p} and @code{q} to @code{'*'} to
+have this apply to any beam.
+
+@item @code{n/m} is the time signature to which
+this rule should apply. Set @code{n} and @code{m} to @code{'*'}
+to have this apply in any time signature.
+
+@item @code{a/b} is the position in the bar at which the beam should
+begin/end.
+
+@item @code{context} is optional, and it specifies the context at which
+the change should be made. The default is @code{'Voice}.
+
+@code{#(score-override-auto-beam-setting '(A B C D) E F)} is equivalent to
+@code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
+
+@end itemize
+
+For example, if automatic beams should always end on the first quarter
+note, use
-@node Automatic note splitting
-@unnumberedsubsubsec Automatic note splitting
+@example
+#(override-auto-beam-setting '(end * * * *) 1 4)
+@end example
-Long notes can be converted automatically to tied notes. This is
-done by replacing the @internalsref{Note_heads_engraver} by the
-@internalsref{Completion_heads_engraver}. In the following
-examples, notes crossing the bar line are split and tied.
+You can force the beam settings to only take effect on beams whose shortest
+note is a certain duration
-@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
-\new Voice \with {
- \remove "Note_heads_engraver"
- \consists "Completion_heads_engraver"
-} {
- c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
-}
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 2/4
+#(override-auto-beam-setting '(end 1 16 * *) 1 16)
+a16 a a a a a a a |
+a32 a a a a16 a a a a a |
+#(override-auto-beam-setting '(end 1 32 * *) 1 16)
+a32 a a a a16 a a a a a |
@end lilypond
-This engraver splits all running notes at the bar line, and
-inserts ties. One of its uses is to debug complex scores: if the
-measures are not entirely filled, then the ties exactly show how
-much each measure is off.
-
-If you want to allow line breaking on the bar lines where
-@internalsref{Completion_heads_engraver} splits notes, you must
-also remove @internalsref{Forbid_line_break_engraver}.
+You can force the beam settings to only take effect in certain time
+signatures
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 5/8
+#(override-auto-beam-setting '(end * * 5 8) 2 8)
+c8 c d d d
+\time 4/4
+e8 e f f e e d d
+\time 5/8
+c8 c d d d
+@end lilypond
+You can also remove a previously set beam-ending rule by using
-@refbugs
+@example
+#(revert-auto-beam-setting '(be p q n m) a b [context])
+@end example
-Not all durations (especially those containing tuplets) can be
-represented exactly with normal notes and dots, but the engraver
-will not insert tuplets.
+@noindent
+@code{be}, @code{p}, @code{q}, @code{n}, @code{m}, @code{a},
+@code{b} and @code{context} are the same as above. Note that the
+default rules are specified in @file{scm/@/auto@/-beam@/.scm},
+so you can revert rules that you did not explicitly create.
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 4/4
+a16 a a a a a a a a a a a a a a a
+#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
+a16 a a a a a a a a a a a a a a a
+@end lilypond
-@code{Completion_heads_engraver} only affects notes; it does not
-split rests.
+The rule in a @code{revert-auto-beam-setting} statement must exactly
+match the original rule. That is, no wildcard expansion is taken into
+account.
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 1/4
+#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
+a16 a a a
+#(revert-auto-beam-setting '(end 1 16 * *) 1 8) % this won't revert it!
+a a a a
+#(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % this will
+a a a a
+@end lilypond
-@seealso
-Program reference: @internalsref{Completion_heads_engraver}.
+@c TODO: old material -- not covered by above stuff, I think.
+If automatic beams should end on every quarter in 5/4 time, specify
+all endings
+@example
+#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
+#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
+#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
+#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
+@dots{}
+@end example
+The same syntax can be used to specify beam starting points. In this
+example, automatic beams can only end on a dotted quarter note
+@example
+#(override-auto-beam-setting '(end * * * *) 3 8)
+#(override-auto-beam-setting '(end * * * *) 1 2)
+#(override-auto-beam-setting '(end * * * *) 7 8)
+@end example
+In 4/4 time signature, this means that automatic beams could end only on
+3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
+3/8, has passed within the measure).
+If any unexpected beam behavior occurs, check the default automatic beam
+settings in @file{scm/@/auto@/-beam@/.scm}
+for possible interference, because the beam
+endings defined there will still apply on top of your own overrides. Any
+unwanted endings in the default vales must be reverted for your time
+signature(s).
+For example, to typeset @code{(3 4 3 2)}-beam endings in 12/8, begin
+with
-@node Beams
-@subsection Beams
+@example
+%%% revert default values in scm/auto-beam.scm regarding 12/8 time
+#(revert-auto-beam-setting '(end * * 12 8) 3 8)
+#(revert-auto-beam-setting '(end * * 12 8) 3 4)
+#(revert-auto-beam-setting '(end * * 12 8) 9 8)
+
+%%% your new values
+#(override-auto-beam-setting '(end 1 8 12 8) 3 8)
+#(override-auto-beam-setting '(end 1 8 12 8) 7 8)
+#(override-auto-beam-setting '(end 1 8 12 8) 10 8)
+@end example
-@menu
-* Automatic beams::
-* Manual beams::
-* Feathered beams::
-@end menu
+@cindex automatic beam generation
+@cindex autobeam
+@funindex autoBeaming
+@cindex lyrics
-@node Automatic beams
-@unnumberedsubsubsec Automatic beams
+If beams are used to indicate melismata in songs, then automatic
+beaming should be switched off with @code{\autoBeamOff}.
-LilyPond inserts beams automatically
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
-@end lilypond
+@predefined
-When these automatic decisions are not good enough, beaming can be
-entered explicitly. It is also possible to define beaming
-patterns that differ from the defaults. See @ref{Setting
-automatic beam behavior}, for details.
+@funindex \autoBeamOff
+@code{\autoBeamOff},
+@funindex \autoBeamOn
+@code{\autoBeamOn}.
-Individual notes may be marked with @code{\noBeam} to prevent them
-from being beamed
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c8 c\noBeam c c
-@end lilypond
+@knownissues
+If a score ends while an automatic beam has not been ended and is
+still accepting notes, this last beam will not be typeset at all.
+The same holds for polyphonic voices, entered with @code{<<
+@dots{} \\ @dots{} >>}. If a polyphonic voice ends while an
+automatic beam is still accepting notes, it is not typeset.
@seealso
-Program reference: @internalsref{Beam}.
+Snippets:
+@rlsr{Rhythms}.
@node Manual beams
-@unnumberedsubsubsec Manual beams
+@subsubsection Manual beams
@cindex beams, manual
-@funindex ]
-@funindex [
In some cases it may be necessary to override the automatic
beaming algorithm. For example, the autobeamer will not put beams
-over rests or bar lines. Such beams are specified manually by
+over rests or bar lines, and in choral scores the beaming is
+often set to follow the meter of the lyrics rather than the
+notes. Such beams can be specified manually by
marking the begin and end point with @code{[} and @code{]}
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
@end lilypond
-@commonprop
+Individual notes may be marked with @code{\noBeam} to prevent them
+from being beamed:
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\time 2/4 c8 c\noBeam c c
+@end lilypond
+
+@funindex ]
+@funindex [
@funindex stemLeftBeamCount
@funindex stemRightBeamCount
-
-LilyPond can automatically determine beaming patterns within a
-beam, but this automatic behavior can sometimes produce odd
-results; therefore the @code{stemLeftBeamCount} and
-@code{stemRightBeamCount} properties can be used to override the
-defaults. If either property is set, its value will be used only
-once, and then it is erased.
+Even more strict manual control with the beams can be achieved by
+setting the properties @code{stemLeftBeamCount} and
+@code{stemRightBeamCount}. They specify the number of beams to
+draw on the left and right side, respectively, of the next note.
+If either property is set, its value will be used only once, and
+then it is erased. In this example, the last @code{f} is printed
+with only one beam on the left side, i.e., the eighth-note beam of
+the group as a whole.
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
{
- f8[ r16
- f g a]
- f8[ r16
- \set stemLeftBeamCount = #1
- f g a]
+ f8[ r16 f g a]
+ f8[ r16
+ \set stemLeftBeamCount = #1
+ f g a]
}
@end lilypond
-The property @code{subdivideBeams} can be set in order to
-subdivide all 16th or shorter beams at beat positions, as defined
-by the @code{beatLength} property.
-
-@lilypond[fragment,quote,relative=2,verbatim]
-c16[ c c c c c c c]
-\set subdivideBeams = ##t
-c16[ c c c c c c c]
-\set Score.beatLength = #(ly:make-moment 1 8)
-c16[ c c c c c c c]
-@end lilypond
-@funindex subdivideBeams
-
-@noindent
-For more information about @code{make-moment}, see
-@ref{Time administration}.
-
-Line breaks are normally forbidden when beams cross bar lines.
-This behavior can be changed by setting @code{breakable}.
-
-@funindex breakable
-
-@cindex beams and line breaks
-@cindex beams, kneed
-@cindex kneed beams
-@cindex auto-knee-gap
-
-Kneed beams are inserted automatically when a large gap is
-detected between the note heads. This behavior can be tuned
-through the @code{auto-knee-gap} object.
-
-
-@refbugs
-
-Automatically kneed cross-staff beams cannot be used together with
-hidden staves. See @ref{Hiding staves}.
-
-@c Is this still true with skyline spacing stuff? -J.Mandereau
-Beams do not avoid collisions with symbols around the notes, such
-as texts and accidentals.
+@snippets
@node Feathered beams
-@unnumberedsubsubsec Feathered beams
-
-Feathered beams are printed by setting the @code{grow-direction}
-property of a @code{Beam}. The @code{\featherDurations} function
-can be used to adjust note durations.
+@subsubsection Feathered beams
+
+@cindex beams, feathered
+@funindex \featherDurations
+
+Feathered beams are used to indicate that a small group of notes
+should be played at an increasing (or decreasing) tempo, without
+changing the overall tempo of the piece. The extent of the
+feathered beam must be indicated manually using @code{[} and
+@code{]}, and the beam feathering is turned on by specifying a
+direction to the @code{Beam} property @code{grow-direction}.
+
+If the placement of the notes and the sound in the MIDI output
+is to reflect the ritardando or accelerando indicated by the
+feathered beam the notes must be grouped as a
+music expression delimited by braces and preceded by a
+@code{featheredDurations} command which specifies the ratio
+between the durations of the first and last notes in the group.
+
+The square brackets
+show the extent of the beam and the braces show
+which notes are to have their durations modified. Normally
+these would delimit the same group of notes, but this is not
+required: the two commands are independent.
+
+In the following example the eight 16th notes occupy exactly the
+same time as a half note, but the first note is one half as long
+as the last one, with the intermediate notes gradually
+lengthening. The first four 32nd notes gradually speed up, while
+the last four 32nd notes are at a constant tempo.
@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
\override Beam #'grow-direction = #LEFT
-\featherDurations #(ly:make-moment 5 4)
-{
- c16[ c c c c c c]
-}
+\featherDurations #(ly:make-moment 2 1)
+{ c16[ c c c c c c c] }
+\override Beam #'grow-direction = #RIGHT
+\featherDurations #(ly:make-moment 2 3)
+{ c32[ d e f] }
+% revert to non-feathered beams
+\override Beam #'grow-direction = #'()
+{ g32[ a b c] }
@end lilypond
-@refbugs
+@noindent
+The spacing in the printed output represents the
+note durations only approximately, but the midi output is exact.
+
+@knownissues
The @code{\featherDurations} command only works with very short
-music snippets.
+music snippets, and when numbers in the fraction are small.
+
+@seealso
+
+Snippets:
+@rlsr{Rhythms}.
+
@node Bars
@menu
-* Bar check::
* Bar lines::
* Bar numbers::
-* Barnumber check::
+* Bar and bar number checks::
* Rehearsal marks::
@end menu
-@node Bar check
-@unnumberedsubsubsec Bar check
+@node Bar lines
+@subsubsection Bar lines
-@cindex Bar check
-@funindex barCheckSynchronize
-@funindex |
+@cindex bar lines
+@funindex \bar
+@cindex measure lines
+@cindex repeat bars
-Bar checks help detect errors in the durations. A bar check is
-entered using the bar symbol, @samp{|}. Whenever it is
-encountered during interpretation, it should fall on a measure
-boundary. If it does not, a warning is printed. In the next
-example, the second bar check will signal an error
+Bar lines delimit measures, and are also used to indicate
+repeats. Normally, simple bar lines are automatically inserted
+into the printed output at places based on the current time
+signature.
-@example
-\time 3/4 c2 e4 | g2 |
-@end example
+The simple bar lines inserted automatically can be changed to
+other types with the @code{\bar} command. For example, a closing
+double bar line is usually placed at the end of a piece:
-Bar checks can also be used in lyrics, for example
+@lilypond[quote,ragged-right,relative=1,fragment,verbatim]
+e4 d c2 \bar "|."
+@end lilypond
+
+@warning{An incorrect duration can lead to poorly formatted
+music.}
+
+It is not invalid if the final note in a measure does not
+end on the automatically entered bar line: the note is assumed
+to carry over into the next measure. But if a long sequence
+of such carry-over measures appears the music can appear compressed
+or even flowing off the page. This is because automatic line
+breaks happen only at the end of complete measures, i.e., where
+the end of a note coincides with the end of a measure.
+
+@cindex line breaks
+@cindex bar lines, invisible
+@cindex measure lines, invisible
+
+Line breaks are also permitted at manually inserted bar lines
+even within incomplete measures. To allow a line break without
+printing a bar line, use
@example
-\lyricmode @{
- \time 2/4
- Twin -- kle | Twin -- kle
-@}
+\bar ""
@end example
-Failed bar checks are caused by entering incorrect durations.
-Incorrect durations often completely garble up the score,
-especially if the score is polyphonic, so a good place to start
-correcting input is by scanning for failed bar checks and
-incorrect durations.
-
-@funindex |
-@funindex pipeSymbol
-
-It is also possible to redefine the meaning of @code{|}. This is
-done by assigning a music expression to @code{pipeSymbol},
-
-@lilypond[quote,ragged-right,verbatim]
-pipeSymbol = \bar "||"
+@noindent
+This will insert an invisible bar line and allow (but not
+force) a line break to occur at this point. The bar number
+counter is not increased. To force a line break see
+@ref{Line breaking}.
+
+This and other special bar lines may be inserted manually at any
+point. When they coincide with the end of a measure they replace
+the simple bar line which would have been inserted there
+automatically. When they do not coincide
+with the end of a measure the specified bar line is inserted at that
+point in the printed output. Such insertions do not affect
+the calculation and placement of subsequent automatic bar lines.
+
+The simple bar line and four types of double bar line are available
+for manual insertion:
-{ c'2 c' | c'2 c' }
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|." d
@end lilypond
+@noindent
+together with dotted and dashed bar lines:
-@node Bar lines
-@unnumberedsubsubsec Bar lines
-
-@cindex Bar lines
-@funindex \bar
-@cindex measure lines
-@cindex repeat bars
-
-Bar lines delimit measures, but are also used to indicate repeats.
-Normally they are inserted automatically. Line breaks may only
-happen on bar lines.
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+f1 \bar ":" g \bar "dashed" a
+@end lilypond
-Special types of bar lines can be forced with the @code{\bar} command
+@noindent
+and three types of repeat bar line:
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-c4 \bar "|:" c4
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+f1 \bar "|:" g \bar ":|:" a \bar ":|" b
@end lilypond
-The following bar types are available
+@cindex repeats
-@lilypondfile[ragged-right,quote]{bar-lines.ly}
+Although the bar line types signifying repeats may be inserted
+manually they do not in themselves cause LilyPond to recognize
+a repeated section. Such repeated sections are better entered
+using the various repeat commands (see @ref{Repeats}), which
+automatically print the appropriate bar lines.
In addition, you can specify @code{"||:"}, which is equivalent to
@code{"|:"} except at line breaks, where it gives a double bar
line at the end of the line and a start repeat at the beginning of
the next line.
-To allow a line break where there is no visible bar line, use
-
-@example
-\bar ""
-@end example
-
-@noindent
-This will insert an invisible bar line and allow line breaks at
-this point (without increasing the bar number counter).
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+\override Score.RehearsalMark #'padding = #3
+c c c c
+\bar "||:"
+c c c c \break
+\bar "||:"
+c c c c
+@end lilypond
In scores with many staves, a @code{\bar} command in one staff is
automatically applied to all staves. The resulting bar lines are
@end lilypond
-@commonprop
+@snippets
@funindex whichBar
-@funindex repeatCommands
@funindex defaultBarType
-The command @code{\bar }@var{bartype} is a short cut for doing
-@code{\set Timing.whichBar = }@var{bartype}. Whenever
-@code{whichBar} is set to a string, a bar line of that type is
-created.
-
-A bar line is created whenever the @code{whichBar} property is
-set. At the start of a measure it is set to the contents of
-@code{Timing.defaultBarType}. The contents of
-@code{repeatCommands} are used to override default measure bars.
-
-You are encouraged to use @code{\repeat} for repetitions. See
-@ref{Repeats}.
+The command @code{\bar }@var{bartype} is a shortcut for
+@code{\set Timing.whichBar = }@var{bartype}. A bar line is
+created whenever the @code{whichBar} property is
+set.
+The default bar type used for automatically inserted bar lines is
+@code{"|"}. This may be changed at any time
+with @code{\set Timing.defaultBarType = }@var{bartype}.
@seealso
-In this manual: @ref{Repeats}, @ref{System start delimiters}.
+Notation Reference: @ref{Line breaking}, @ref{Repeats},
+@c FIXME: node name changed, but is subject to further changes.
+@c @ref{System start delimiters}.
+
+Snippets:
+@rlsr{Rhythms}.
-Program reference: @internalsref{BarLine} (created at
-@internalsref{Staff} level), @internalsref{SpanBar} (across
-staves).
+Internals Reference: @rinternals{BarLine} (created at
+@rinternals{Staff} level), @rinternals{SpanBar} (across
+staves), @rinternals{Timing_translator} (for Timing
+properties).
@node Bar numbers
-@unnumberedsubsubsec Bar numbers
+@subsubsection Bar numbers
-@cindex Bar numbers
+@cindex bar numbers
@cindex measure numbers
@funindex currentBarNumber
-Bar numbers are printed by default at the start of the line. The
-number itself is stored in the @code{currentBarNumber} property,
-which is normally updated automatically for every measure.
+Bar numbers are typeset by default at the start of every line except
+the first line. The number itself is stored in the
+@code{currentBarNumber} property, which is normally updated
+automatically for every measure. It may also be set manually:
@lilypond[verbatim,ragged-right,quote,fragment,relative]
-\repeat unfold 4 {c4 c c c} \break
+c1 c c c
+\break
\set Score.currentBarNumber = #50
-\repeat unfold 4 {c4 c c c}
+c1 c c c
@end lilypond
-Bar numbers may only be printed at bar lines; to print a bar
-number at the beginning of a piece, an empty bar line must be
-added
+
+@snippets
+
+@funindex barNumberVisibility
+@cindex bar numbers, regular spacing
+
+Bar numbers can be typeset at regular intervals instead of just at
+the beginning of every line. To do this the default behavior
+must be overridden to permit bar numbers to be printed at places
+other than the start of a line. This is controlled by the
+@code{break-visibility} property of @code{BarNumber}. This takes
+three values which may be set to @code{#t} or @code{#f} to specify
+whether the corresponding bar number is visible or not. The order
+of the three values is @code{end of line visible}, @code{middle of
+line visible}, @code{beginning of line visible}. In the following
+example bar numbers are printed at all possible places:
@lilypond[verbatim,ragged-right,quote,fragment,relative]
-\set Score.currentBarNumber = #50
-\bar ""
-\repeat unfold 4 {c4 c c c} \break
-\repeat unfold 4 {c4 c c c}
+\override Score.BarNumber #'break-visibility = ##(#t #t #t)
+\set Score.currentBarNumber = #11
+\bar "" % Permit first bar number to be printed
+c1 c c c
+\break
+c c c c
+@end lilypond
+
+@c All the rest of these examples will be added to LSR
+@c and moved into the Snippets. -gp
+
+@noindent
+and here the bar numbers are printed every two measures
+except at the end of the line:
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\override Score.BarNumber #'break-visibility = ##(#f #t #t)
+\set Score.currentBarNumber = #11
+\bar "" % Permit first bar number to be printed
+% Print a bar number every second measure
+\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
+c1 c c c c
+\break
+c c c c c
+@end lilypond
+
+@cindex measure number, format
+@cindex bar number, format
+
+The size of the bar number may be changed. This is illustrated
+in the following example, which also shows how to enclose bar
+numbers in boxes and circles, and shows an alternative way
+of specifying @code{#(#f #t #t)} for @code{break-visibility}.
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+% Prevent bar numbers at the end of a line and permit them elsewhere
+\override Score.BarNumber #'break-visibility
+ = #end-of-line-invisible
+
+% Increase the size of the bar number by 2
+\override Score.BarNumber #'font-size = #2
+\repeat unfold 3 { c1 } \bar "|"
+
+% Draw a box round the following bar number(s)
+\override Score.BarNumber #'stencil
+ = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
+\repeat unfold 3 { c1 } \bar "|"
+
+% Draw a circle round the following bar number(s)
+\override Score.BarNumber #'stencil
+ = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
+\repeat unfold 4 { c1 } \bar "|."
@end lilypond
-Bar numbers can be typeset at regular intervals instead of at the
-beginning of each line. This is illustrated in the following
-example, whose source is available as
-@lsr{staff,making-bar-numbers-appear-at-regular-intervals.ly}.
+@cindex bar number alignment
-@lilypondfile[ragged-right,quote]{bar-number-regular-interval.ly}
+Bar numbers by default are left-aligned to their parent object.
+This is usually the left edge of a line or, if numbers are printed
+within a line, the left bar line of the measure. The numbers may also
+be positioned directly on the bar line or right-aligned to the
+bar line:
-Bar numbers can be removed entirely by removing the Bar number
-engraver from the score.
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\set Score.currentBarNumber = #111
+\override Score.BarNumber #'break-visibility = ##(#t #t #t)
+% Increase the size of the bar number by 2
+\override Score.BarNumber #'font-size = #2
+% Print a bar number every second measure
+\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
+c1 c1
+% Center-align bar numbers
+\override Score.BarNumber #'self-alignment-X = #0
+c1 c1
+% Right-align bar numbers
+\override Score.BarNumber #'self-alignment-X = #-1
+c1 c1
+@end lilypond
+
+Bar numbers can be removed entirely by removing the
+@code{Bar_number_engraver} from the @code{Score} context.
@lilypond[verbatim,ragged-right,quote]
\layout {
}
}
\relative c''{
-c4 c c c \break
-c4 c c c
+ c4 c c c \break
+ c4 c c c
}
@end lilypond
@seealso
-Program reference: @internalsref{BarNumber}.
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference: @rinternals{BarNumber}.
+
+
+@knownissues
+
+Bar numbers may collide with the top of the
+@rinternals{StaffGroup} bracket, if there is one. To solve
+this, the @code{padding} property of @rinternals{BarNumber} can
+be used to position the number correctly.
+
+Bar numbers may only be printed at bar lines; to print a bar
+number at the beginning of a piece, an empty bar line must be
+inserted there, and a value other than @code{1} must be placed
+in @code{currentBarNumber}:
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\set Score.currentBarNumber = #50
+\bar ""
+c1 c c c
+c1 c c c
+\break
+@end lilypond
+
-Examples: @lsrdir{staff}
+@node Bar and bar number checks
+@subsubsection Bar and bar number checks
+
+@cindex bar check
+@funindex barCheckSynchronize
+@funindex |
+
+Bar checks help detect errors in the entered durations.
+A bar check may be entered using the bar symbol, @code{|},
+at any place where a bar line is expected to fall.
+If bar check lines are encountered at other places,
+a list of warnings is printed in the log file,
+showing the line numbers and lines
+in which the bar checks failed. In the next
+example, the second bar check will signal an error.
+
+@example
+\time 3/4 c2 e4 | g2 |
+@end example
+
+Bar checks can also be used in lyrics, for example
+
+@example
+\lyricmode @{
+ \time 2/4
+ Twin -- kle | Twin -- kle |
+@}
+@end example
-@refbugs
+An incorrect duration can result in a completely garbled score,
+especially if the score is polyphonic, so a good place to start
+correcting input is by scanning for failed bar checks and
+incorrect durations.
-Bar numbers can collide with the @internalsref{StaffGroup}
-bracket, if there is one at the top. To solve this, the
-@code{padding} property of @internalsref{BarNumber} can be used to
-position the number correctly.
+@funindex |
+@funindex pipeSymbol
+It is also possible to redefine the action taken when a bar check
+or pipe symbol, @code{|}, is encountered in the input, so that
+it does something other than a bar check. This is done by
+assigning a music expression to @code{pipeSymbol}.
+In the following example @code{|} is set to insert a double bar
+line wherever it appears in the input, rather than checking
+for end of bar.
-@node Barnumber check
-@unnumberedsubsubsec Barnumber check
+@lilypond[quote,ragged-right,verbatim]
+pipeSymbol = \bar "||"
+{
+ c'2 c'2 |
+ c'2 c'2
+ c'2 | c'2
+ c'2 c'2
+}
+@end lilypond
When copying large pieces of music, it can be helpful to check
that the LilyPond bar number corresponds to the original that you
will print a warning if the @code{currentBarNumber} is not 123
when it is processed.
+@seealso
+
+Snippets:
+@rlsr{Rhythms}.
+
@node Rehearsal marks
-@unnumberedsubsubsec Rehearsal marks
+@subsubsection Rehearsal marks
-@cindex Rehearsal marks
+@cindex rehearsal marks
+@cindex mark, rehearsal
@funindex \mark
To print a rehearsal mark, use the @code{\mark} command
mark manually. The value to use is stored in the property
@code{rehearsalMark}.
+@cindex rehearsal mark format
+@cindex rehearsal mark style
+@cindex style, rehearsal mark
+@cindex format, rehearsal mark
+@cindex mark, rehearsal, style
+@cindex mark, rehearsal, format
+
The style is defined by the property @code{markFormatter}. It is
a function taking the current mark (an integer) and the current
context as argument. It should return a markup object. In the
-following example, @code{markFormatter} is set to a canned
-procedure. After a few measures, it is set to function that
+following example, @code{markFormatter} is set to a pre-defined
+procedure. After a few measures, it is set to a procedure that
produces a boxed number.
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
printed with @code{\musicglyph}.
For common tweaks to the positioning of rehearsal marks, see
-@ref{Text marks}.
+@ref{Formatting text}.
@seealso
-This manual: @ref{Text marks}.
+Snippets:
+@rlsr{Rhythms}.
+
+This manual: @ref{The Feta font}, @ref{Formatting text}.
-Program reference: @internalsref{RehearsalMark}.
+Internals Reference: @rinternals{RehearsalMark}.
Init files: @file{scm/@/translation@/-functions@/.scm} contains
the definition of @code{format-mark-numbers} and
@code{format-mark-letters}. They can be used as inspiration for
other formatting functions.
-Examples: @lsr{parts,rehearsal-mark-numbers.ly}
+Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
@node Special rhythmic concerns
* Grace notes::
* Aligning to cadenzas::
* Time administration::
-* Proportional notation (introduction)::
@end menu
@node Grace notes
-@unnumberedsubsubsec Grace notes
+@subsubsection Grace notes
@funindex \grace
@cindex ornaments
@cindex appoggiatura
@cindex acciaccatura
-Grace notes are ornaments that are written out. The most common
-ones are acciaccatura, which should be played as very short. It
-is denoted by a slurred small note with a slashed stem. The
-appoggiatura is a grace note that takes a fixed fraction of the
-main note, and is denoted as a slurred note in small print without
-a slash. They are entered with the commands @code{\acciaccatura}
-and @code{\appoggiatura}, as demonstrated in the following example
+Grace notes are ornaments that are written out. They are made with
+the @code{\grace} command. By prefixing this keyword to a music
+expression, a new one is formed, which will be printed in a
+smaller font and takes up no logical time in a measure.
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-b4 \acciaccatura d8 c4 \appoggiatura e8 d4
-\acciaccatura { g16[ f] } e4
+c4 \grace c16 c4
+\grace { c16[ d16] } c2 c4
@end lilypond
-Both are special forms of the @code{\grace} command. By prefixing
-this keyword to a music expression, a new one is formed, which
-will be printed in a smaller font and takes up no logical time in
-a measure.
+Two special forms of the @code{\grace} command exist.
+An @emph{acciaccatura}, which should be played as very short,
+is denoted by a slurred small note with a slashed stem. The
+@emph{appoggiatura}, a grace note that takes a fixed fraction of the
+main note, is denoted as a slurred note in small print without
+a slash. They are entered with the commands @code{\acciaccatura}
+and @code{\appoggiatura}, as demonstrated in the following
+example:
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-c4 \grace c16 c4
-\grace { c16[ d16] } c2 c4
+b4 \acciaccatura d8 c4
+\appoggiatura e8 d4
+\acciaccatura { g16[ f] } e4
@end lilypond
@noindent
-Unlike @code{\acciaccatura} and @code{\appoggiatura}, the
-@code{\grace} command does not start a slur.
-
-@cindex timing, internal
-
-Internally, timing for grace notes is done using a second,
-@q{grace} timing. Every point in time consists of two rational
-numbers: one denotes the logical time, one denotes the grace
-timing. The above example is shown here with timing tuples
-
-@lilypond[quote,ragged-right]
-<<
- \relative c''{
- c4 \grace c16 c4 \grace {
- c16[ d16] } c2 c4
- }
- \new Lyrics \lyricmode {
- \override LyricText #'font-family = #'typewriter
-
- \markup { (0,0) } 4
- \grace { \markup {
- ( \fraction 1 4 , \fraction -1 16 ) } 16 }
- \markup { (\fraction 1 4 , 0 ) } 4
- \grace {
- \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
- \markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16
- }
- \markup { ( \fraction 2 4 , 0 ) }
- }
->>
-@end lilypond
+@code{\acciaccatura} and @code{\appoggiatura} start a slur,
+@code{\grace} does not.
The placement of grace notes is synchronized between different
staves. In the following example, there are two sixteenth grace
@funindex \afterGrace
+@cindex grace notes, following
+
If you want to end a note with a grace, use the @code{\afterGrace}
command. It takes two arguments: the main note, and the grace
notes following the main note.
-@lilypond[ragged-right, verbatim,relative=2,fragment]
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
c1 \afterGrace d1 { c16[ d] } c4
@end lilypond
This will put the grace notes after a @q{space} lasting 3/4 of the
length of the main note. The fraction 3/4 can be changed by
-setting @code{afterGraceFraction}, ie.
+setting @code{afterGraceFraction}, i.e.,
@example
#(define afterGraceFraction (cons 7 8))
@noindent
By adjusting the duration of the skip note (here it is a
-half-note), the space between the main-note and the grace is
-adjusted.
+half-note), the space between the main note and the grace
+may be adjusted.
A @code{\grace} music expression will introduce special
typesetting settings, for example, to produce smaller type, and
Another option is to change the variables @code{startGraceMusic},
@code{stopGraceMusic}, @code{startAcciaccaturaMusic},
@code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic},
-@code{stopAppoggiaturaMusic}. More information is in the file
-@file{ly/@/grace@/-init@/.ly}.
+@code{stopAppoggiaturaMusic}. The default values of these can be
+seen in the file @file{ly/@/grace@/-init@/.ly}. By redefining
+them other effects may be obtained.
+
+@cindex stem, with slash
@noindent
-The slash through the stem in acciaccaturas can be obtained in
+The slash through the stem in @emph{acciaccatura}s can be obtained in
other situations by @code{\override Stem #'stroke-style =
#"grace"}.
-@commonprop
+@snippets
-Grace notes may be forced to use floating spacing,
+Grace notes may be forced to use align with regular notes
+in other staves by setting @code{strict-grace-spacing} to
+##t:
@lilypond[relative=2,ragged-right]
<<
@seealso
-Program reference: @internalsref{GraceMusic}.
+Music Glossary:
+@rglos{grace notes},
+@rglos{acciaccatura},
+@rglos{appoggiatura}
+Snippets:
+@rlsr{Rhythms}.
-@refbugs
+Internals Reference: @rinternals{GraceMusic}.
-A score that starts with a @code{\grace} expression needs an
-explicit @code{\new Voice} declaration, otherwise the main note
-and the grace note end up on different staves.
+
+@knownissues
+
+A multi-note beamed @emph{acciaccatura} is printed without a slash,
+and looks exactly the same as a multi-note beamed
+@emph{appoggiatura}.
+@c TODO Add link to LSR snippet to add slash when available
Grace note synchronization can also lead to surprises. Staff
notation, such as key signatures, bar lines, etc., are also
@noindent
This can be remedied by inserting grace skips of the corresponding
-durations in the other staves. For the above example
+durations in the other staves. For the above example
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
<< \new Staff { e4 \bar "|:" \grace c16 d4 }
expressions. Nesting or juxtaposing grace sections is not
supported, and might produce crashes or other errors.
-
@node Aligning to cadenzas
-@unnumberedsubsubsec Aligning to cadenzas
+@subsubsection Aligning to cadenzas
+
+@cindex cadenza
+@cindex cadenza, aligning to
+@cindex aligning to cadenza
In an orchestral context, cadenzas present a special problem: when
constructing a score that includes a cadenza, all other
instruments should skip just as many notes as the length of the
cadenza, otherwise they will start too soon or too late.
-A solution to this problem are the functions
+A solution to this problem is to use the functions
@code{mmrest-of-length} and @code{skip-of-length}. These Scheme
-functions take a piece of music as argument, and generate a
-@code{\skip} or multi-rest, exactly as long as the piece. The use
-of @code{mmrest-of-length} is demonstrated in the following
-example.
+functions take a piece of music as argument, and generate a multi-measure
+rest or @code{\skip}, exactly as long as the piece. The use of
+@code{mmrest-of-length} is demonstrated in the following example.
@lilypond[verbatim,ragged-right,quote]
cadenza = \relative c' {
>>
@end lilypond
+@seealso
+
+Snippets:
+@rlsr{Rhythms}.
+
@node Time administration
-@unnumberedsubsubsec Time administration
+@subsubsection Time administration
-@cindex Time administration
+@cindex time administration
+@cindex timing (within the score)
+@cindex music, unmetered
+@cindex unmetered music
-Time is administered by the
-@internalsref{Time_signature_engraver}, which usually lives in the
-@internalsref{Score} context. The bookkeeping deals with the
-following variables
+@funindex currentBarNumber
+@funindex measurePosition
+@funindex measureLength
+
+Time is administered by the @code{Timing_translator}, which by
+default is to be found in the @code{Score} context. An alias,
+@code{Timing}, is added to the context in which the
+@code{Timing_translator} is placed.
+
+The following properties of @code{Timing} are used
+to keep track of timing within the score.
+
+@cindex bar number
+@cindex measure number
@table @code
@item currentBarNumber
-The measure number.
+The current measure number. For an example showing the
+use of this property see @ref{Bar numbers}.
@item measureLength
The length of the measures in the current time signature. For a
-4/4 time this is@tie{}1, and for 6/8 it is 3/4.
+4/4 time this is@tie{}1, and for 6/8 it is 3/4. Its value
+determines when bar lines are inserted and how automatic beams
+should be generated.
@item measurePosition
The point within the measure where we currently are. This
-quantity is reset to@tie{}0 whenever it exceeds
-@code{measureLength}. When that happens, @code{currentBarNumber}
-is incremented.
+quantity is reset by subtracting @code{measureLength} whenever
+@code{measureLength} is reached or exceeded. When that happens,
+@code{currentBarNumber} is incremented.
@item timing
If set to true, the above variables are updated for every time
@end table
Timing can be changed by setting any of these variables
-explicitly. In the next example, the 4/4 time signature is
-printed, but @code{measureLength} is set to 5/4. After a while,
-the measure is shortened by 1/8, by setting @code{measurePosition}
-to 7/8 at 2/4 in the measure, so the next bar line will fall at
-2/4 + 3/8. The 3/8 arises because 5/4 normally has 10/8, but we
-have manually set the measure position to be 7/8 and 10/8 - 7/8 =
-3/8.
+explicitly. In the next example, the default 4/4 time
+signature is printed, but @code{measureLength} is set to 5/4.
+At 4/8 through the third measure, the @code{measurePosition} is
+advanced by 1/8 to 5/8, shortening that bar by 1/8.
+The next bar line then falls at 9/8 rather than 5/4.
@lilypond[quote,ragged-right,verbatim,relative,fragment]
\set Score.measureLength = #(ly:make-moment 5 4)
c1 c4
c1 c4
c4 c4
-\set Score.measurePosition = #(ly:make-moment 7 8)
-b8 b b
+\set Score.measurePosition = #(ly:make-moment 5 8)
+b4 b4 b8
c4 c1
@end lilypond
notes.
-@node Proportional notation (introduction)
-@unnumberedsubsubsec Proportional notation (introduction)
-@cindex Proportional notation
-
-See @ref{Proportional notation}.
-
-
-TODO: remove all this stuff?
-
-Notes can be spaced proportionally to their time-difference by
-assigning a duration to @code{proportionalNotationDuration}
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-<<
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
- \new Staff { c8[ c c c c c] c4 c2 r2 }
- \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
->>
-@end lilypond
-
-Setting this property only affects the ideal spacing between
-consecutive notes. For true proportional notation, the following
-settings are also required.
-
-@itemize @bullet
-
-@item True proportional notation requires that symbols are allowed
-to overstrike each other. That is achieved by removing the
-@internalsref{Separating_line_group_engraver} from
-@internalsref{Staff} context.
-
-@item Spacing influence of prefatory matter (clefs, bar lines,
-etc.) is removed by setting the @code{strict-note-spacing}
-property to @code{#t} in @internalsref{SpacingSpanner} grob.
-
-@item Optical spacing tweaks are switched by setting
-@code{uniform-stretching} in @internalsref{SpacingSpanner} to
-true.
-
-@end itemize
-
@seealso
-Examples: @lsr{spacing,proportional@/-spacing@/.ly},
-@lsr{spacing,proportional@/-strict@/-grace@/-notes@/.ly}, and
-@lsr{spacing,proportional@/-strict@/-notespacing@/.ly}
+This manual: @ref{Bar numbers}, @ref{Unmetered music}
-An example of strict proportional notation is in the
-example file @file{input/proportional.ly}.
+Snippets:
+@rlsr{Rhythms}.
+Internals Reference: @rinternals{Timing_translator},
+@rinternals{Score}