version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.61"
-
-@ignore
-GDP TODO list
-
-1.2.3.1 Time signature
-Needs an example of beatLength, which is broken (see my recent
-mail
-to -bug). What to do? For now I've left a paragraph of text
-which really
-needs to be inserted with an example in a snippet.
-
-1.2.3.4 Polymetric notation
-Quite extensive changes. Could you please check through. Divided
-into three
-sections. Necessarily uses tweaks. I've also left an @lsr under
-@seealso
-Snippets - is this permitted or is @lsr now verboten? This
-snippet is too
-long to include, but seems relevant.
-A snippet "grouping beats" hasn't yet appeared (only sent to vv a
-couple of
-days ago). Text left in Snippets: with TODO.
-@end ignore
+@c \version "2.12.0"
@node Rhythms
@section Rhythms
@cindex durations, of notes
@cindex note durations
+@cindex length of notes
+@cindex note lengths
@funindex \longa
+@funindex longa
@funindex \breve
+@funindex breve
@funindex \maxima
+@funindex maxima
-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.
+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 128th notes may be
+specified. Shorter values are possible, but only as beamed notes.
@c Two 64th notes are needed to obtain beams
@lilypond[quote,verbatim,relative=2]
@code{\maxima}, but this is supported only within ancient music
notation. For details, see @ref{Ancient notation}.
+@cindex duration, default
+@cindex default note duration
+@cindex note duration, default
+
If the duration is omitted, it is set to the previously
entered duration. The default for the first note is a quarter
note.
@cindex notes, dotted
@cindex dotted notes
+@cindex notes, double-dotted
+@cindex double-dotted notes
@funindex .
proportional notation, see @ref{Proportional notation}.
@funindex \dotsUp
+@funindex dotsUp
@funindex \dotsDown
+@funindex dotsDown
@funindex \dotsNeutral
+@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{Direction and placement}.
-@predefined
+@predefined
@code{\autoBeamOff},
@code{\dotsUp},
@code{\dotsDown},
@code{\dotsNeutral}.
+@endpredefined
@seealso
-
Music Glossary:
@rglos{breve},
@rglos{longa},
+@rglos{maxima},
@rglos{note value},
@rglos{Duration names notes and rests}.
Notation Reference:
@ref{Automatic beams},
@ref{Ties},
+@ref{Stems},
@ref{Writing rhythms},
@ref{Writing rests},
@ref{Vocal music},
@cindex tuplets
@cindex triplets
+
@funindex \times
+@funindex times
Tuplets are made from a music expression by multiplying all the
durations with a fraction:
c4 c \times 2/3 { b4 a g }
@end lilypond
+@cindex tuplet bracket placement
+
@funindex \tupletUp
+@funindex tupletUp
@funindex \tupletDown
+@funindex tupletDown
@funindex \tupletNeutral
+@funindex tupletNeutral
The automatic placement of the tuplet bracket above or below the
notes may be overridden manually with predefined commands, for
To modify the duration of notes without printing a tuplet bracket,
see @ref{Scaling durations}.
-@predefined
+@predefined
@code{\tupletUp},
@code{\tupletDown},
@code{\tupletNeutral}.
+@endpredefined
@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{entering-several-tuplets-using-only-one--times-command.ly}
+@cindex Tuplet number changes
+
@funindex TupletNumber
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{changing-the-tuplet-number.ly}
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{non-default-tuplet-numbers.ly}
+
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{permitting-line-breaks-within-beamed-tuplets.ly}
-@seealso
+@seealso
Music Glossary:
@rglos{triplet},
@rglos{tuplet},
@rinternals{TupletNumber},
@rinternals{TimeScaledMusic}.
-@knownissues
@cindex grace notes within tuplet brackets
+
+@knownissues
When the 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
@cindex durations, scaling
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}.
+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.
@code{s1*23}.
@cindex compressing music
+@cindex expanding music
+
@funindex \scaleDurations
+@funindex scaleDurations
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
@seealso
-
Notation Reference:
@ref{Tuplets},
@ref{Invisible rests},
@unnumberedsubsubsec Ties
@cindex tie
+
@funindex ~
A tie connects two adjacent note heads of the same pitch. The tie
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{~}
+A tie is entered using the tilde symbol (@code{~}).
@lilypond[quote,verbatim,relative=2]
a2 ~ a
<c~ e g~ b> <c e g b>
@end lilypond
-@funindex \repeatTie
@cindex repeating ties
@cindex ties, repeating
@cindex volta brackets and ties
@cindex ties and volta brackets
+@funindex \repeatTie
+@funindex repeatTie
+
When a second alternative of a repeat starts with a tied note, you
have to specify the repeated tie as follows:
@cindex laissez vibrer
@cindex ties, laissez vibrer
+
@funindex \laissezVibrer
+@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
@end lilypond
@cindex ties, placement
+
@funindex \tieUp
+@funindex tieUp
@funindex \tieDown
+@funindex tieDown
@funindex \tieNeutral
+@funindex tieNeutral
The vertical placement of ties may be controlled, see
Predefined commands, or for details, see
@ref{Direction and placement}.
@cindex ties, appearance
+@cindex ties, dotted
+@cindex ties, dashed
+@cindex dashed ties
+@cindex dotted ties
+
@funindex \tieDotted
+@funindex tieDotted
@funindex \tieDashed
+@funindex tieDashed
@funindex \tieSolid
+@funindex tieSolid
-Solid, dotted or dashed ties may be specified, see Predefined
-commands.
+Ties may be made dashed, dotted, or a combination of solid and
+dashed.
+@lilypond[quote, verbatim, relative=1]
+\tieDotted
+c2 ~ c
+\tieDashed
+c2 ~ c
+\tieHalfDashed
+c2 ~ c
+\tieHalfSolid
+c2 ~ c
+\tieSolid
+c2 ~ c
+@end lilypond
-@predefined
+Custom dash patterns can be specified:
+
+@lilypond[quote, verbatim, relative=1]
+\tieDashPattern #0.3 #0.75
+c2 ~ c
+\tieDashPattern #0.7 #1.5
+c2 ~ c
+\tieSolid
+c2 ~ c
+@end lilypond
+
+Dash pattern definitions for ties have the same structure as
+dash pattern definitions for slurs.
+For more information about complex dash patterns,
+see the snippets under @ref{Slurs}.
+@predefined
@code{\tieUp},
@code{\tieDown},
@code{\tieNeutral},
@code{\tieDotted},
@code{\tieDashed},
+@code{\tieDashPattern},
+@code{\tieHalfDashed},
+@code{\tieHalfSolid},
@code{\tieSolid}.
+@endpredefined
@snippets
@seealso
-
Music Glossary:
@rglos{tie},
@rglos{laissez vibrer}.
-Notation Reference: @ref{Automatic note splitting}.
+Notation Reference:
+@ref{Slurs},
+@ref{Automatic note splitting}.
Snippets:
@rlsr{Rhythms}.
-
-
@node Writing rests
@subsection Writing rests
@node Rests
@unnumberedsubsubsec Rests
+
@cindex rest
@cindex rest, entering durations
-@cindex maxima
-@cindex longa
-@cindex breve
+@cindex maxima rest
+@cindex longa rest
+@cindex breve rest
@funindex \rest
+@funindex rest
@funindex r
@funindex \maxima
+@funindex maxima
@funindex \longa
+@funindex longa
@funindex \breve
+@funindex breve
Rests are entered like notes with the note name @code{r}.
Durations longer than a whole rest use the predefined
@seealso
+Music Glossary:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima}.
Notation Reference:
@ref{Full measure rests}.
@cindex invisible rest
@cindex rest, invisible
@cindex spacer note
+@cindex spacer rest
+
@funindex s
@funindex \skip
+@funindex skip
An invisible rest (also called a @q{spacer rest}) can be entered
like a note with the note name@tie{}@code{s}:
\skip 1 \skip1 \skip 1
@end lilypond
-@seealso
+@seealso
Snippets:
@rlsr{Rhythms}.
@cindex rest, multi-measure
@cindex rest, full-measure
@cindex whole rest for a full measure
+@cindex rest, whole for a full measure
+
@funindex R
Rests for one or more full measures are entered like notes with
b2^"Tutti" b4 a4
@end lilypond
-The duration of full-measure rests is identical to the duration notation
-used for notes. The duration in a multi-measure rest must always be an
-integral number of measure-lengths, so augmentation
-dots or fractions must often be used:
+The duration of full-measure rests is identical to the duration
+notation used for notes. The duration in a multi-measure rest must
+always be an integral number of measure-lengths, so augmentation dots
+or fractions must often be used:
@lilypond[quote,fragment,verbatim]
\compressFullBarRests
R4*5*4 |
@end lilypond
-A full-measure rest is printed as either a whole
-or breve rest, centered in the measure, depending on the time
-signature.
+A full-measure rest is printed as either a whole or breve rest,
+centered in the measure, depending on the time signature.
@lilypond[quote,verbatim,fragment]
\time 4/4
\time 8/4
R1*2 |
@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.
-Alternatively, a mult-measure rest can be shown as a single measure
-containing a multi-measure rest symbol, with the number of measures of rest
-printed above the measure:
+@funindex \expandFullBarRests
+@funindex expandFullBarRests
+@funindex \compressFullBarRests
+@funindex compressFullBarRests
+
+By default a multi-measure rest is expanded in the printed score to
+show all the rest measures explicitly. Alternatively, a multi-measure
+rest can be shown as a single measure containing a multi-measure rest
+symbol, with the number of measures of rest printed above the measure:
@lilypond[quote,fragment,verbatim]
% Default behavior
@cindex multi-measure rest, script
@cindex fermata on multi-measure rest
@cindex multi-measure rest, attaching fermata
+@cindex markup on multi-measure rest
+@cindex multi-measure rest with markup
+
+@funindex \fermataMarkup
+@funindex fermataMarkup
+@funindex MultiMeasureRestText
Markups can be added to multi-measure rests.
The predefined command @code{\fermataMarkup}
When a multi-measure rest immediately follows a @code{\partial}
setting, resulting bar-check warnings may not be displayed.
+
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLenthOff
+@funindex \fermataMarkup
+@funindex fermataMarkup
+@funindex \compressFullBarRests
+@funindex compressFullBarRests
+@funindex \expandFullBarRests
+@funindex expandFullBarRests
+
@predefined
@code{\textLengthOn},
@code{\textLengthOff},
@code{\fermataMarkup},
@code{\compressFullBarRests},
@code{\expandFullBarRests}.
+@endpredefined
+
@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{multi--measure-rest-markup.ly}
-@seealso
+@seealso
Music Glossary:
@rglos{multi-measure rest}.
@rinternals{MultiMeasureRestText}.
+@cindex fingerings and multi-measure rests
+@cindex multi-measure rests and fingerings
+
@knownissues
If an attempt is made to use fingerings (e.g.,
@cindex time signature
@cindex meter
+
@funindex \time
+@funindex time
The time signature is set as follows:
\time 3/4 c2.
@end lilypond
-@cindex Time signature, visibility of
+@cindex time signature, visibility of
Time signatures are printed at the beginning of a piece
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
-@c ref{Controlling visibility of objects}.
+@ref{Visibility of objects}.
@lilypond[quote,verbatim,relative=2]
\time 2/4
c c c c
@end lilypond
+@cindex time signature style
+@cindex meter style
+
@funindex \numericTimeSignature
+@funindex numericTimeSignature
@funindex \defaultTimeSignature
-@cindex time signature style
+@funindex defaultTimeSignature
The time signature symbol that is used in 2/2 and 4/4 time can be
changed to a numeric style:
Mensural time signatures are covered in
@ref{Mensural time signatures}.
-@predefined
+@predefined
@code{\numericTimeSignature},
@code{\defaultTimeSignature}.
+@endpredefined
-@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}
-and @code{beatGrouping}, how
-automatic beams should be generated.
-@lilypond[quote,verbatim,relative=2]
-\time 3/4 % auto beam on 1/4 note groups
-a16 a a a a a a a a a a a a a a a
-\time 12/16 % no defined auto-beaming for this time sig
-a16 a a a a a a a a a a a a a a a
-\time 3/4
-a16 a a a a a a a a a a a a a a a
-\set Score.timeSignatureFraction = #'(12 16) %keep 3/4 beaming
- % due to beatLength
-a16 a a a a a a a a a a a a a a a
-\set Score.beatLength = #(ly:make-moment 1 8) %beam on 1/8 notes
-a16 a a a a a a a a a a a a a a a
-\set Score.beatLength = #(ly:make-moment 1 16)
-\set Score.beatGrouping = #'(3 4 2 3) %beam on 3/16, 7/16, 9/16, 12/16
-a16 a a a a a a a a a a a a a a a
-@end lilypond
-
-
-@c End of snippet
-
-@cindex measure groupings
-@cindex beats, grouping
-@cindex grouping beats
-@cindex measure sub-grouping
+@snippets
-@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 {
- \relative c'' {
- #(set-time-signature 9 8 '(2 2 2 3))
- g8[ g] d[ d] g[ g] a8[( bes g]) |
- #(set-time-signature 5 8 '(3 2))
- a4. g4
- }
- \layout {
- \context {
- \Staff
- \consists "Measure_grouping_engraver"
- }
- }
-}
-@end lilypond
-@c TODO End of snippet called "grouping beats"
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-time-signature-without-affecting-the-beaming.ly}
@cindex compound time signatures
@cindex time signature, compound
@seealso
-
Music Glossary:
@rglos{time signature}
@cindex measure, partial
@cindex pickup measure
@cindex measure, change length
-@cindex measurePosition
+
+@funindex measurePosition
@funindex \partial
+@funindex partial
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}
@end example
where @code{duration} is the rhythmic length of the interval
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:
+@seealso
+Music Glossary:
@rglos{anacrusis}.
-Notation Reference:
+Notation Reference:
@ref{Grace notes}.
Snippets:
Internal Reference:
@rinternals{Timing_translator}.
+
@knownissues
The @code{\partial} command is intended to be used only at the
@node Unmetered music
@unnumberedsubsubsec Unmetered music
-@funindex \cadenzaOn
-@funindex \cadenzaOff
@cindex bar lines, turning off
@cindex bar numbering, turning off
@cindex cadenza
@cindex unmetered music
+@funindex \cadenzaOn
+@funindex cadenzaOn
+@funindex \cadenzaOff
+@funindex cadenzaOff
+
Bar lines and bar numbers are calculated automatically. For
unmetered music (some cadenzas, for example), this is not desirable.
To turn off automatic calculation of bar lines and bar numbers,
-use the command @code{\cadenzaOn}, and use @code{\cadenzaOff}
+use the command @code{\cadenzaOn}, and use @code{\cadenzaOff}
to turn them on again.
@lilypond[verbatim,relative=2,fragment]
d4 e d c
@end lilypond
-@predefined
+@predefined
@code{\cadenzaOn},
@code{\cadenzaOff}.
+@endpredefined
-@seealso
+@seealso
Music Glossary:
@rglos{cadenza}.
Notation Reference:
-@c ref{Controlling visibility of objects}.
+@ref{Visibility of objects}.
Snippets:
@rlsr{Rhythms}.
+
+@cindex cadenza line breaks
+@cindex cadenza page breaks
+@cindex unmetered music, line breaks
+@cindex unmetered music, page breaks
+@cindex breaks in unmetered music
+@cindex line breaks in cadenzas
+@cindex page breaks in cadenzas
+@cindex line breaks in unmetered music
+@cindex page breaks in unmetered music
+
@knownissues
LilyPond will insert line breaks and page breaks only at a
@node Polymetric notation
@unnumberedsubsubsec Polymetric notation
+@c This section necessarily uses \set
+@c This is acceptable -td
+
@cindex double time signatures
@cindex signatures, polymetric
+@cindex time signatures, polymetric
+@cindex time signatures, double
@cindex polymetric signatures
@cindex meter, polymetric
-Polymetric notation is supported, either explicitly or through
-clever use of markup features.
+@funindex timeSignatureFraction
+@funindex \scaleDurations
+@funindex scaleDurations
+@funindex \times
+@funindex times
-@strong{Staves with different time signatures, equal measure lengths}
+Polymetric notation is supported, either explicitly or by modifying
+the visible time signature symbol and scaling the note durations.
+
+@strong{@i{Staves with different time signatures, equal measure lengths}}
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 is done with @code{\scaleDurations}, which
-is used in a similar way to @code{\times}, but does not create
-a tuplet bracket, see @ref{Scaling durations}.
+signature; see @ref{Time signature}. The scaling is done with
+@code{\scaleDurations}, which is used in a similar way to
+@code{\times}, but does not create a tuplet bracket; see
+@ref{Scaling durations}.
+
+@cindex beaming in polymetric music
+@cindex beaming in polymetric meter
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.
+It will often be necessary to insert beams manually, as the
+duration scaling affects the autobeaming rules.
@lilypond[quote,verbatim,fragment]
-\relative c' { <<
+\relative c' <<
\new Staff {
\time 3/4
c4 c c |
\time 3/4
\set Staff.timeSignatureFraction = #'(9 . 8)
\scaleDurations #'(2 . 3)
- \repeat unfold 6 { c8[ c c] }
+ \repeat unfold 6 { c8[ c c] }
}
\new Staff {
\time 3/4
\scaleDurations #'(3 . 5) {
\repeat unfold 2 { c8[ c c] }
\repeat unfold 2 { c8[ c] } |
- c4. c4. \times 2/3 { c8 c c } c4
+ c4. c4. \times 2/3 { c8[ c c] } c4
}
}
->> }
+>>
@end lilypond
-@strong{Staves with different time signatures, unequal bar lengths}
+@strong{@i{Staves with different time signatures, unequal bar lengths}}
Each staff can be given its own independent time signature by
-moving the @code{Timing_translator} to the @code{Staff} context.
+moving the @code{Timing_translator} and the
+@code{Default_bar_line_engraver} to the @code{Staff} context.
@lilypond[quote,verbatim]
\layout {
@seealso
-
Music Glossary:
@rglos{polymetric},
@rglos{polymetric time signature},
@rglos{meter}.
-Notation Reference: @ref{Scaling durations}
+Notation Reference:
+@ref{Time signature},
+@ref{Scaling durations}.
Snippets:
@rlsr{Rhythms}.
Internals Reference:
@rinternals{TimeSignature},
@rinternals{Timing_translator},
+@rinternals{Default_bar_line_engraver},
@rinternals{Staff}.
+
@knownissues
When using different time signatures in parallel, notes
@cindex notes, splitting
@cindex splitting notes
+@funindex Note_heads_engraver
+@funindex Completion_heads_engraver
+
Long notes which overrun bar lines can be converted automatically
to tied notes. This is done by replacing the
@code{Note_heads_engraver} with the
measures are not entirely filled, then the ties show exactly how
much each measure is off.
-@seealso
+@seealso
Music Glossary: @rglos{tie}
Learning Manual:
@knownissues
Not all durations (especially those containing tuplets) can be
-represented exactly with normal notes and dots, but the
+represented exactly with normal notes and dots, but the
@code{Completion_heads_engraver} will not insert tuplets.
The @code{Completion_heads_engraver} only affects notes; it does not
@node Showing melody rhythms
@unnumberedsubsubsec Showing melody rhythms
+@cindex melody rhythms, showing
+@cindex rhythms, showing melody
+
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
>>
@end lilypond
+@cindex guitar chord charts
+@cindex strumming rhythms, showing
+@cindex guitar strumming rhythms, showing
+
+@funindex Pitch_squash_engraver
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
Guitar chord charts often show the strumming rhythms. This can
be done with the @code{Pitch_squash_engraver} and
@code{\improvisationOn}.
-
+
@lilypond[quote,verbatim]
<<
\new ChordNames {
>>
@end lilypond
+
@predefined
@code{\improvisationOn},
@code{\improvisationOff}.
+@endpredefined
-@snippets
-@c TODO -- Convert to snippet;
-@c tag for both Rhythms and Guitar? Move to @seealso?
-For guitar music, it is possible to show strum rhythms, along
-with melody notes, chord names, and fret diagrams.
-
-
-@lilypond[quote,verbatim]
-\include "predefined-guitar-fretboards.ly"
-<<
- \new ChordNames {
- \chordmode {
- c1 f g c
- }
- }
-
- \new FretBoards {
- \chordmode {
- c1 f g c
- }
- }
-
-
- \new Voice \with {
- \consists Pitch_squash_engraver
- } \relative c'' {
- \improvisationOn
- c4 c8 c c4 c8 c
- f4 f8 f f4 f8 f
- g4 g8 g g4 g8 g
- c4 c8 c c4 c8 c
- }
+@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{guitar-strum-rhythms.ly}
- \new Voice = "melody" {
- \relative c'' {
- \improvisationOff
- c2 e4 e4
- f2. r4
- g2. a4
- e4 c2.
- }
- }
-
- \new Lyrics {
- \lyricsto "melody" {
- This is my song.
- I like to sing.
- }
- }
->>
-@end lilypond
@seealso
-
Snippets:
@rlsr{Rhythms}.
@rinternals{RhythmicStaff},
@rinternals{Pitch_squash_engraver}.
+
@node Beams
@subsection Beams
@cindex beams, manual
@cindex manual beams
+@cindex beams, setting rules for
+@cindex beams, custom rules for
+
+@funindex \autoBeamOn
+@funindex autoBeamOn
+@funindex \autoBeamOff
+@funindex autoBeamOff
@lilypond[quote,verbatim,relative=2]
\time 2/4 c8 c c c
@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
+entered explicitly; see @ref{Manual beams}. Beams @emph{must} be
+entered manually if beams are to be extended over rests.
-@noindent
-Automatic beaming may be turned off and on with
-@code{\autoBeamOff} and @code{\autoBeamOn} commands:
+If automatic beaming is not required, it may be turned off with
+@code{\autoBeamOff} and on with @code{\autoBeamOn}:
@lilypond[quote,relative=1,verbatim]
c4 c8 c8. c16 c8. c16 c8
c16 c8
@end lilypond
-@predefined
-@code{\autoBeamOff},
-@code{\autoBeamOn}.
+@cindex melismata, beams
+@cindex beams and melismata
-@snippets
+@warning{If beams are used to indicate melismata in songs, then
+automatic beaming should be switched off with @code{\autoBeamOff}
+and the beams indicated manually.}
-@c TODO -- convert to snippet
-Beaming patterns may be altered with the @code{beatGrouping} property,
+Beaming patterns that differ from the automatic defaults may be
+created, see @ref{Setting automatic beam behavior}.
-@lilypond[quote,verbatim,relative=2]
-\time 5/16
-\set beatGrouping = #'(2 3)
-c8[^"(2+3)" c16 c8]
-\set beatGrouping = #'(3 2)
-c8[^"(3+2)" c16 c8]
-@end lilypond
-
-@c TODO convert to snippet
-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[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
+@predefined
+@code{\autoBeamOff},
+@code{\autoBeamOn}.
+@endpredefined
-@noindent
-For more information about @code{make-moment}, see
-@ref{Time administration}.
-@funindex breakable
-@cindex break, line
-@cindex line breaks
+@snippets
-@c TODO convert to snippet
-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}.
+@cindex line breaks and beams
+@cindex beams and line breaks
-@lilypond[relative=2,verbatim,quote]
-\override Beam #'breakable = ##t
-c8 \repeat unfold 15 { c[ c] } c
-@end lilypond
+@funindex breakable
-@cindex beams and line breaks
-@cindex beams, kneed
-@cindex kneed beams
-@cindex auto-knee-gap
-
-@c TODO convert to snippet
-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.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beams-across-line-breaks.ly}
-@lilypond[fragment,quote,verbatim]
-f8 f''8 f8 f''8
-\override Beam #'auto-knee-gap = #6
-f8 f''8 f8 f''8
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-beam-knee-gap.ly}
@seealso
-
-Notation Reference:
-@ref{Manual beams},
+Notation Reference:
+@ref{Manual beams},
@ref{Setting automatic beam behavior}.
Installed Files:
-@file{scm/auto-beam.scm}.
+@file{scm/@/auto@/-beam@/.scm}.
Snippets:
@rlsr{Rhythms}.
@node Setting automatic beam behavior
@unnumberedsubsubsec Setting automatic beam behavior
+
+@cindex automatic beams, tuning
+@cindex tuning automatic beaming
+@cindex automatic beam generation
+@cindex autobeam
+@cindex lyrics and beaming
+
+@funindex autoBeaming
@funindex autoBeamSettings
@funindex (end * * * *)
@funindex (begin * * * *)
-@cindex automatic beams, tuning
-@cindex tuning automatic beaming
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \time
+@funindex time
+@funindex \set
+@funindex set
-@c [TODO: use \applyContext]
+There are two types of beaming rules: @emph{beam-grouping}
+rules and @emph{beam-ending} rules. Beam-grouping rules are the
+simplest, but are over-ridden by any beam-ending rules which apply.
-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}.
+The placement of automatic beams is determined by applying the
+following rules in order:
+
+@itemize
+
+@item If a manual beam is specified with @code{[..]} set the beam
+as specified, otherwise
+
+@item if @code{\autoBeamOff} is in force do not beam, otherwise
+
+@item if a beam-ending rule applies use it to determine the valid
+places where beams may end, otherwise
+
+@item if a valid (see below) beat-grouping rule applies use it to
+group notes with beams, otherwise
+
+@item use the value of @code{beatLength} to group notes with beams
+
+@end itemize
+
+@i{@strong{Modifying the grouping of beats}}
+
+If there are no beam-ending rules defined for the beam duration of a
+particular beam in the time signature in use, its beaming is
+controlled by three context properties: @code{measureLength},
+@code{beatLength} and @code{beatGrouping}. These properties may be
+set in the @code{Score}, @code{Staff} or @code{Voice} contexts to
+delimit their scope. The default values are set while processing
+@code{\time} commands, so any @code{\set} commands to modify their
+value must be placed after all @code{\time} commands.
+
+@warning{These three properties become effective for a particular
+beam @strong{only} if there are no beam-ending rules predefined for
+that beam's duration in the time signature in use, or if these
+beam-ending rules have all been reverted.}
+
+These determine the beaming as follows:
+
+Beams may begin anywhere (unless a beam is already active). Beams
+end at a time determined by the values of @code{beatGrouping} and
+@code{beatLength}, as follows:
+
+@itemize
+
+@item If @code{beatGrouping} and @code{beatLength} are consistent
+with @code{measureLength}, @code{beatGrouping} is used to determine
+the end points of beams.
+
+@item If @code{beatGrouping} and @code{beatLength} are inconsistent
+with @code{measureLength}, @code{beatLength} is used to determine
+the end points of beams.
+
+@end itemize
+
+By default the @code{measureLength} and @code{beatLength} are
+derived from the time signature set by the @code{\time} command.
+The @code{measureLength} is set to be exactly the same length as
+the measure length given by the time signature, and the
+@code{beatLength} is set to be the same as one over the denominator
+of the time signature.
+
+The default value of @code{beatGrouping} is taken from a table in
+@file{scm/@/music@/-functions@/.scm}. To find this, see
+@rlearning{Other sources of information}. It defines the beat
+grouping for 3/8, 4/8, 5/8, 8/8, and all the common compound time
+signatures.
+
+Both @code{measureLength} and @code{beatLength} are @i{moments},
+units of musical duration. A quantity of type @i{moment} is
+created by the scheme function @code{ly:make-moment}. For more
+information about this function, see @ref{Time administration}.
+
+@code{beatGrouping} is a list of integers giving the number of
+beats in each group.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{grouping-beats.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{specifying-context-with-beatgrouping.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-beatlength-and-beatgrouping.ly}
+
+@funindex subdivideBeams
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{sub-dividing-beams.ly}
+
+@cindex measure groupings
+@cindex beats, grouping
+@cindex grouping beats
+@cindex measure sub-grouping
+
+@funindex autoBeamSettings
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{conducting-signs,-measure-grouping-signs.ly}
+
+
+@strong{@i{Modifying the beam end points}}
+
+Beam-ending rules are required when beams of different durations are
+to end at different points within the measure. For example, it may
+be desirable for eighth-note beams in 4/4 time to end only at the
+end of the measure or half-way through it, but for sixteenth-note
+beams to end at quarter note positions to avoid overly long beamed
+runs. The rules work as follows:
+
+Automatic beams can start on any note but can end at only a few
+positions within the measure, namely at positions specified by the
+properties in @code{autoBeamSettings}. These properties consist of
+a list of rules defining where beams can end. The default
+@code{autoBeamSettings} rules are defined in
+@file{scm/@/auto@/-beam@/.scm}. To find this file, see
+@rlearning{Other sources of information}.
In order to add a rule to the list, use
+
@example
-#(override-auto-beam-setting
- '(beam-limit beam-numerator beam-denominator
- time-signature-numerator time-signature-denominator)
+#(override-auto-beam-setting
+ '(beam-limit
+ beam-numerator beam-denominator
+ time-signature-numerator time-signature-denominator)
moment-numerator moment-denominator [context])
@end example
+@noindent
+where
+
@itemize
@item @code{beam-limit} is the type of automatic beam limit
-defined, either @code{begin} or @code{end}.
+defined. This can be either @code{begin} or @code{end} but
+only @code{end} is effective.
@item @code{beam-numerator/beam-denominator} is the beam duration
-for which you want to add a rule. A beam is considered to have
-the duration of its shortest note. Set @code{beam-numerator} and
-@code{beam-denominator} to @code{'*'} to
-have this rule apply beams of any duration.
+to which the rule is to apply. A beam is considered to have the
+duration of its shortest note. Set @code{beam-numerator} and
+@code{beam-denominator} to @code{'*'} to have this rule apply to beams
+of any duration.
@item @code{time-signature-numerator/time-signature-denominator}
-is the time signature to which
-this rule should apply. Set @code{time-signature-numerator} and
-@code{time-signature-denominator} to @code{'*'}
-to have this rule apply in any time signature.
+specifies the time signature to which this rule should apply. If
+@code{time-signature-numerator} and @code{time-signature-denominator}
+are set to @code{'*'} this rule will apply in any time signature.
+
+@item @code{moment-numerator/moment-denominator} is the position
+in the bar at which the beam should end.
-@item @code{monent-numerator/moment-denominator} is the position
-in the bar at which the beam should
-begin or end.
+@funindex score-override-auto-beam-setting
+@funindex override-auto-beam-setting
@item @code{context} is optional, and it specifies the context at which
the change should be made. The default is @code{'Voice}.
a8 a a a a a a a
@end lilypond
-You can force the beam settings to only take effect on beams whose shortest
+You can force the beam settings to take effect only on beams whose shortest
note is a certain duration
@lilypond[quote,verbatim,relative=2]
a32 a a a a16 a a a a a |
@end lilypond
-You can force the beam settings to only take effect in certain time
+You can force the beam settings to take effect only in certain time
signatures
@lilypond[quote,verbatim,relative=2]
c8 c d d d
@end lilypond
-Existing auto-beam rules are removed by using
+When multiple voices are used the @code{Staff} context must be
+specified if the beaming is to be applied to all voices in the
+staff:
+
+@lilypond[quote,verbatim,relative=2]
+\time 7/8
+% rhythm 3-1-1-2
+% Context not specified - does not work correctly
+#(override-auto-beam-setting '(end * * 7 8) 3 8)
+#(override-auto-beam-setting '(end * * 7 8) 4 8)
+#(override-auto-beam-setting '(end * * 7 8) 5 8)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+
+% Works correctly with context specified
+#(override-auto-beam-setting '(end * * 7 8) 3 8 'Staff)
+#(override-auto-beam-setting '(end * * 7 8) 4 8 'Staff)
+#(override-auto-beam-setting '(end * * 7 8) 5 8 'Staff)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+@end lilypond
+
+@warning{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 in addition to your own.}
+
+@funindex revert-auto-beam-setting
+
+Any unwanted or conflicting default endings must be reverted for
+your time signature(s). Existing default or user-defined
+beam-ending rules are removed by using
@example
-#(revert-auto-beam-setting
- '(beam-limit beam-numerator beam-denominator
- time-signature-numerator time-signature-denominator)
+#(revert-auto-beam-setting
+ '(beam-limit
+ beam-numerator beam-denominator
+ time-signature-numerator time-signature-denominator)
moment-numerator moment-denominator [context])
@end example
@noindent
-@code{beam-limit}, @code{beam-numerator}, @code{beam-denominator},
+@code{beam-limit}, @code{beam-numerator}, @code{beam-denominator},
@code{time-signature-numerator}, @code{time-signature-denominator},
@code{moment-numerator}, @code{moment-denominator} and @code{context}
-are the same as above. Note that the default auto-beaming rules are
-specified in @file{scm/@/auto@/-beam@/.scm},
-so you can revert rules that you did not explicitly create.
+are the same as above.
@lilypond[quote,verbatim,relative=2]
\time 4/4
a a a a
@end lilypond
+@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-grouping-in-7-8-time.ly}
-@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
-
-@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
-
-@cindex automatic beam generation
-@cindex autobeam
-@funindex autoBeaming
-@cindex lyrics
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{reverting-default-beam-endings.ly}
-If beams are used to indicate melismata in songs, then automatic
-beaming should be switched off with @code{\autoBeamOff}.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-endings-in-score-context.ly}
+@funindex \autoBeamOff
+@funindex autoBeamOff
+@funindex \autoBeamOn
+@funindex autoBeamOn
@predefined
-
-@funindex \autoBeamOff
@code{\autoBeamOff},
-@funindex \autoBeamOn
@code{\autoBeamOn}.
+@endpredefined
+@cindex beam, last in score
+@cindex beam, last in polyphonic voice
+
@knownissues
If a score ends while an automatic beam has not been ended and is
@dots{} \\ @dots{} >>}. If a polyphonic voice ends while an
automatic beam is still accepting notes, it is not typeset.
-@seealso
+@seealso
Snippets:
@rlsr{Rhythms}.
@unnumberedsubsubsec Manual beams
@cindex beams, manual
+@cindex manual beams
+
@funindex ]
@funindex [
@end lilypond
+@funindex \noBeam
+@funindex noBeam
+
Individual notes may be marked with @code{\noBeam} to prevent them
from being beamed:
@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{flat-flags-and-beam-nibs.ly}
+
@node Feathered beams
@unnumberedsubsubsec Feathered beams
@cindex beams, feathered
-@funindex \featherDurations
+@cindex feathered beams
-@c TODO This section relies on overrides. We need to either add
-@c a predefined, move this to snippets (whole section), or violate
-@c policy for this section.
+@funindex \featherDurations
+@funindex featherDurations
+@funindex grow-direction
Feathered beams are used to indicate that a small group of notes
should be played at an increasing (or decreasing) tempo, without
@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.
+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{featherDurations} command which specifies
+the ratio between the durations of the first and last notes in the
+group.
-@c TODO -- eliminate "Talking through code"
+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
@noindent
The spacing in the printed output represents the
-note durations only approximately, but the midi output is exact.
-
-@c TODO -- resolve whether or not midi is capitalized -- policy
-@c decision needed
+note durations only approximately, but the MIDI output is exact.
@knownissues
The @code{\featherDurations} command only works with very short
music snippets, and when numbers in the fraction are small.
-@seealso
+@seealso
Snippets:
@rlsr{Rhythms}.
-
@node Bars
@subsection Bars
@unnumberedsubsubsec Bar lines
@cindex bar lines
-@funindex \bar
@cindex measure lines
+@cindex closing bar lines
+@cindex bar lines, closing
+@cindex double bar lines
+@cindex bar lines, double
@cindex repeat bars
+@funindex \bar
+@funindex bar
+
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
e4 d c2 \bar "|."
@end lilypond
-@c TODO -- make this warning more clear. What does it mean?
-@warning{An incorrect duration can lead to poorly formatted
-music.}
-
-@c TODO -- check this. I think this behavior no longer happens
-@c with completion_heads_engraver, but it may with note_heads_engraver
-@c Make an example showing the problem
-
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.
+all notes end before the end of a measure.
+
+@warning{An incorrect duration can cause line breaks to be
+inhibited, leading to a line of highly compressed music or
+music which flows off the page.}
@cindex line breaks
@cindex bar lines, invisible
counter is not increased. To force a line break see
@ref{Line breaking}.
+@cindex manual bar lines
+@cindex manual measure lines
+@cindex bar lines, manual
+@cindex measure lines, manual
+
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 five types of double bar line are available
+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.
+
+Two types of simple bar lines and five types of double bar lines are available
for manual insertion:
@lilypond[quote,relative=1,verbatim]
-f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
+f1 \bar "|" f \bar "." g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
@end lilypond
@noindent
f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
@end lilypond
+Additionally, a bar line can be printed as a simple tick:
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "'"
+@end lilypond
+However, as such ticks are typically used in Gregorian chant, it is preferable
+to use @code{\divisioMinima} there instead, described in the section
+@ref{Divisiones} in Gregorian chant.
+
+
@cindex repeats
Although the bar line types signifying repeats may be inserted
In scores with many staves, a @code{\bar} command in one staff is
automatically applied to all staves. The resulting bar lines are
connected between different staves of a @code{StaffGroup},
-@code{InnerStaffGroup}, @code{PianoStaff}, or @code{GrandStaff}.
+@code{PianoStaff}, or @code{GrandStaff}.
@lilypond[quote,fragment,verbatim]
<<
@end lilypond
+@cindex default bar lines, changing
+@cindex bar lines, default, changing
+
@snippets
@funindex whichBar
@funindex defaultBarType
+@funindex \bar
+@funindex bar
+@funindex bartype
The command @code{\bar }@var{bartype} is a shortcut for
@code{\set Timing.whichBar = }@var{bartype}. A bar line is
@code{"|"}. This may be changed at any time
with @code{\set Timing.defaultBarType = }@var{bartype}.
-@seealso
-Notation Reference:
-@ref{Line breaking},
+@seealso
+Notation Reference:
+@ref{Line breaking},
@ref{Repeats},
@ref{Grouping staves}.
@cindex bar numbers
@cindex measure numbers
+@cindex numbers, bar
+@cindex numbers, measure
+
@funindex currentBarNumber
Bar numbers are typeset by default at the start of every line except
c1 c c c
@end lilypond
-
-@snippets
+@cindex bar numbers, regular spacing
@funindex barNumberVisibility
-@cindex bar numbers, regular spacing
+@funindex BarNumber
Bar numbers can be typeset at regular intervals instead of just at
the beginning of every line. To do this the default behavior
@lilypond[verbatim,quote,relative=1]
\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
\set Score.currentBarNumber = #11
-\bar "" % Permit first bar number to be printed
-c1 c c c
+% Permit first bar number to be printed
+\bar ""
+c1 | c | c | c
\break
-c c c c
+c1 | 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:
+@snippets
-@lilypond[verbatim,quote,relative=1]
-\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
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-the-bar-number-for-the-first-measure.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-bar-numbers-at-regular-intervals.ly}
@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,quote,relative=1]
-% 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
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-bar-numbers-inside-boxes-or-circles.ly}
@cindex bar number alignment
-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:
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{aligning-bar-numbers.ly}
-@lilypond[verbatim,quote,relative=1]
-\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,quote]
-\layout {
- \context {
- \Score
- \remove "Bar_number_engraver"
- }
-}
-\relative c''{
- c4 c c c \break
- c4 c c c
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{removing-bar-numbers-from-a-score.ly}
@seealso
-
Snippets:
@rlsr{Rhythms}.
Internals Reference: @rinternals{BarNumber}.
+@cindex bar number collision
+@cindex collision, bar number
+
@knownissues
Bar numbers may collide with the top of the
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,quote,relative=1]
-\set Score.currentBarNumber = #50
-\bar ""
-c1 c c c
-c1 c c c
-\break
-@end lilypond
-
@node Bar and bar number checks
@unnumberedsubsubsec Bar and bar number checks
@cindex bar check
+@cindex bar number check
+@cindex measure check
+@cindex measure number 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.
+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 lilypond
-When copying large pieces of music, it can be helpful to check
-that the LilyPond bar number corresponds to the original that you
-are entering from. This can be checked with
-@code{\barNumberCheck}, for example,
+@funindex \barNumberCheck
+@funindex barNumberCheck
+
+When copying large pieces of music, it can be helpful to check that
+the LilyPond bar number corresponds to the original that you are
+entering from. This can be checked with @code{\barNumberCheck}, for
+example,
@verbatim
\barNumberCheck #123
will print a warning if the @code{currentBarNumber} is not 123
when it is processed.
-@seealso
+@seealso
Snippets:
@rlsr{Rhythms}.
@cindex rehearsal marks
@cindex mark, rehearsal
+
@funindex \mark
+@funindex mark
To print a rehearsal mark, use the @code{\mark} command
@cindex format, rehearsal mark
@cindex mark, rehearsal, style
@cindex mark, rehearsal, format
+@cindex rehearsal mark, manual
+@cindex mark, rehearsal, manual
+@cindex custom rehearsal mark
+@cindex manual rehearsal mark
The style is defined by the property @code{markFormatter}. It is
a function taking the current mark (an integer) and the current
c1 \mark \default
\set Score.markFormatter = #format-mark-box-numbers
c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-numbers
c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-letters
c1
@end lilypond
@cindex segno
@cindex coda
-@cindex D.S al Fine
+@cindex D.S. al Fine
+@cindex fermata
+@cindex music glyphs
+@cindex glyphs, music
+
+@funindex \musicglyph
+@funindex musicglyph
Music glyphs (such as the segno sign) may be printed inside a
@code{\mark}
For common tweaks to the positioning of rehearsal marks, see
@ref{Formatting text}.
-@seealso
-This manual:
-@ref{The Feta font},
+@seealso
+Notation Reference:
+@ref{The Feta font},
@ref{Formatting text}.
-Installed Files:
+Installed 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
Internals Reference: @rinternals{RehearsalMark}.
-Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
@node Special rhythmic concerns
@subsection Special rhythmic concerns
@node Grace notes
@unnumberedsubsubsec Grace notes
-@funindex \grace
@cindex ornaments
@cindex grace notes
@cindex appoggiatura
@cindex acciaccatura
+@funindex \grace
+@funindex grace
+
Grace notes are ornaments that are written out. Grace notes
-are printed in a smaller font and take up no logical time
+are printed in a smaller font and take up no logical time
in a measure.
@lilypond[quote,relative=2,verbatim]
\grace { c16[ d16] } c2
@end lilypond
-Lilypond also supports two special types of grace notes, the
-@emph{acciaccatura}--an unmeasured grace note indicated by a slurred
-small note with a slashed stem--and the @emph{appoggiatura}, which
-takes a fixed fraction of the main note and appears in small print
-without a slash.
+LilyPond also supports two special types of grace notes, the
+@emph{acciaccatura}--an unmeasured grace note indicated by a slurred
+small note with a slashed stem--and the @emph{appoggiatura}, which
+takes a fixed fraction of the main note and appears in small print
+without a slash.
@lilypond[quote,relative=2,verbatim]
-\grace c8 b4
+\grace c8 b4
\acciaccatura d8 c4
\appoggiatura e8 d4
\acciaccatura { g16[ f] } e4
\new Staff { c2 \grace { g8[ b] } c2 } >>
@end lilypond
-@funindex \afterGrace
-
@cindex grace notes, following
+@funindex \afterGrace
+@funindex afterGrace
+
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.
This will put the grace notes after a space lasting 3/4 of the
length of the main note. The default fraction 3/4 can be changed by
setting @code{afterGraceFraction}. The following example shows
-the results from setting the space at the default, at 15/16, and
+the results from setting the space at the default, at 15/16, and
finally at 1/2 of the main note.
@lilypond[quote,verbatim,relative=2]
}
@end lilypond
+@cindex tweaking grace notes
+@cindex grace notes, tweaking
+@cindex grace notes, changing layout settings
+
A @code{\grace} music expression will introduce special
typesetting settings, for example, to produce smaller type, and
set directions. Hence, when introducing layout tweaks to
@snippets
-The slash through the stem found in @emph{acciaccatura}s can be applied
-in other situations:
-
-@lilypond[quote,verbatim,relative=2]
-\relative c'' {
- \override Stem #'stroke-style = #"grace"
- c8( d2) e8( f4)
-}
-@end lilypond
-
-The layout of grace expressions can be changed throughout the
-music using the function @code{add-grace-property}. The following
-example undefines the @code{Stem} direction for this grace, so
-that stems do not always point up.
-
-@lilypond[quote,verbatim,relative=2]
-\relative c'' {
- \new Staff {
- #(add-grace-property 'Voice 'Stem 'direction ly:stem::calc-direction)
- #(remove-grace-property 'Voice 'Stem 'direction)
- \new Voice {
- \acciaccatura { f16 } g4
- \grace { d16[ e] } f4
- \appoggiatura { a,32[ b c d] } e2
- }
- }
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{using-grace-note-slashes-with-normal-heads.ly}
-Another option is to change the variables @code{startGraceMusic},
-@code{stopGraceMusic}, @code{startAcciaccaturaMusic},
-@code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic},
-@code{stopAppoggiaturaMusic}. The default values of these can be
-seen in the file @code{ly/@/grace@/-init@/.ly}. By redefining
-them other effects may be obtained.
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{tweaking-grace-layout-within-music.ly}
-Grace notes may be forced to align with regular notes
-in other staves:
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{redefining-grace-note-global-defaults.ly}
-@lilypond[verbatim,quote]
-\relative c'' {
- <<
- \override Score.SpacingSpanner #'strict-grace-spacing = ##t
- \new Staff {
- c4
- \afterGrace c4 { c16[ c8 c16] }
- c4 r
- }
- \new Staff {
- c16 c c c c c c c c4 r
- }
- >>
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{positioning-grace-notes-with-floating-space.ly}
@seealso
-
Music Glossary:
@rglos{grace notes},
@rglos{acciaccatura},
@knownissues
-A multi-note beamed @emph{acciaccatura} is printed without a slash,
+@cindex acciaccatura, multi-note
+@cindex multi-note acciaccatura
+@cindex grace-note synchronization
+
+A multi-note beamed @i{acciaccatura} is printed without a slash,
and looks exactly the same as a multi-note beamed
-@emph{appoggiatura}.
+@i{appoggiatura}.
+
@c TODO Add link to LSR snippet to add slash when available
Grace note synchronization can also lead to surprises. Staff
staves without, for example,
@lilypond[quote,relative=2,verbatim]
-<< \new Staff { e4 \bar "|:" \grace c16 d2. }
- \new Staff { c4 \bar "|:" d2. } >>
+<<
+ \new Staff { e4 \bar "|:" \grace c16 d2. }
+ \new Staff { c4 \bar "|:" d2. }
+>>
@end lilypond
@noindent
durations in the other staves. For the above example
@lilypond[quote,relative=2,verbatim]
-<< \new Staff { e4 \bar "|:" \grace c16 d2. }
- \new Staff { c4 \bar "|:" \grace s16 d2. } >>
+<<
+ \new Staff { e4 \bar "|:" \grace c16 d2. }
+ \new Staff { c4 \bar "|:" \grace s16 d2. }
+>>
@end lilypond
Grace sections should only be used within sequential music
In an orchestral context, cadenzas present a special problem: when
constructing a score that includes a measured cadenza or other solo
-passage, all other instruments should skip just as many notes as the
-length of the cadenza, otherwise they will start too soon or too late.
+passage, all other instruments should skip just as many notes as the
+length of the cadenza, otherwise they will start too soon or too late.
One solution to this problem is to use the functions
@code{mmrest-of-length} and @code{skip-of-length}. These Scheme
-functions take a defined piece of music as an argument and generate a
-multi-measure rest or @code{\skip} exactly as long as the piece.
+functions take a defined piece of music as an argument and generate a
+multi-measure rest or @code{\skip} exactly as long as the piece.
@lilypond[verbatim,quote]
MyCadenza = \relative c' {
- c4 d8 e f g g4
+ c4 d8 e f g g4
f2 g4 g
}
\new GrandStaff <<
- \new Staff {
- \MyCadenza c'1
+ \new Staff {
+ \MyCadenza c'1
\MyCadenza c'1
}
\new Staff {
>>
@end lilypond
-@seealso
+@seealso
Music Glossary:
@rglos{cadenza}.
@seealso
-
This manual: @ref{Bar numbers}, @ref{Unmetered music}
Snippets: