Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.44"
@node Rhythms
@section Rhythms
@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{alternative-breve-note.ly}
+
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{changing-the-number-of-augmentation-dots-per-note.ly}
@lilypond[quote,verbatim,relative=1]
<c e g> ~ <c e g>
-<c ~ e g ~ b> <c e g b>
+<c~ e g~ b> <c e g b>
@end lilypond
@cindex repeating ties
Switching staves when a tie is active will not produce a slanted
tie.
-Changing clefs or octavations during a tie is not really
+Changing clefs or ottavations during a tie is not really
well-defined. In these cases, a slur may be preferable.
@c \time 16/1 is used to avoid spurious bar lines
@c and long tracts of empty measures
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim,relative=2]
\new Staff {
% These two lines are just to prettify this example
\time 16/1
contexts to be created if none exist, just like notes and rests
do:
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim,relative=2]
s1 s s
@end lilypond
@code{\skip} simply skips musical time; it creates no output of
any kind.
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim,relative=2]
% This is valid input, but does nothing
\skip 1 \skip1 \skip 1
@end lilypond
always be an integral number of measure-lengths, so augmentation dots
or fractions must often be used:
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim,relative=2]
\compressFullBarRests
\time 2/4
R1 | R2 |
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]
+@lilypond[quote,verbatim,relative=2]
\time 4/4
R1 |
\time 6/4
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,verbatim]
+@lilypond[quote,verbatim,relative=2]
% Default behavior
\time 3/4 r2. | R2.*2 |
\time 2/4 R2 |
The predefined command @code{\fermataMarkup}
is provided for adding fermatas.
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim,relative=2]
\compressFullBarRests
\time 3/4
R2.*10^\markup { \italic "ad lib." }
be directed to the correct object, or they will be ignored. See the
following example:}
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim,relative=2]
% This fails, as the wrong object name is specified
\override TextScript #'padding = #5
R1^"wrong"
@lilypond[quote,verbatim]
\score {
- \relative c' {
- \overrideTimeSignatureSettings
- #'Score % context
- #'(4 . 4) % timeSignatureFraction
- #'(1 . 4) % baseMomentFraction
- #'(3 1) % beatStructure
- #'() % beamExceptions
- \time 4/4
- \repeat unfold 8 { c8 } |
+ \new Staff {
+ \relative c' {
+ \overrideTimeSignatureSettings
+ #'(4 . 4) % timeSignatureFraction
+ #'(1 . 4) % baseMomentFraction
+ #'(3 1) % beatStructure
+ #'() % beamExceptions
+ \time 4/4
+ \repeat unfold 8 { c8 } |
+ }
}
}
@end lilypond
-@code{\overrideTimeSignatureSettings} takes five arguments:
+@code{\overrideTimeSignatureSettings} takes four arguments:
@enumerate
-@item
-@code{@var{context}}, a Scheme symbol that describes the context
-to which the default setting will apply.
@item
@code{@var{timeSignatureFraction}}, a Scheme pair describing the
described in @ref{Setting automatic beam behavior}.
@end enumerate
+The context containing @code{\overrideTimeSignatureSettings} must
+be instantiated before the @code{\overrideTimeSignatureSettings}
+call is executed. That means it must either be explicitly
+instantiated or there must be music in the context before the
+@code{\overrideTimeSignatureSettings} call:
+
+@lilypond[quote,verbatim]
+\score {
+ \relative c' {
+ % This call will fail because the context isn't yet instantiated
+ \overrideTimeSignatureSettings
+ #'(4 . 4) % timeSignatureFraction
+ #'(1 . 4) % baseMomentFraction
+ #'(3 1) % beatStructure
+ #'() % beamExceptions
+ \time 4/4
+ c8^\markup {"Beamed (2 2)"}
+ \repeat unfold 7 { c8 } |
+ % This call will succeed
+ \overrideTimeSignatureSettings
+ #'(4 . 4) % timeSignatureFraction
+ #'(1 . 4) % baseMomentFraction
+ #'(3 1) % beatStructure
+ #'() % beamExceptions
+ \time 4/4
+ c8^\markup {"Beamed (3 1)"}
+ \repeat unfold 7 { c8 } |
+ }
+}
+@end lilypond
+
+
@cindex time signature properties, restoring default values
@cindex restoring default properties for time signatures
@funindex \revertTimeSignatureSettings
\relative c' {
\repeat unfold 8 { c8 } |
\overrideTimeSignatureSettings
- #'Score % context
- #'(4 . 4) % timeSignatureFraction
- #'(1 . 4) % baseMomentFraction
- #'(3 1) % beatStructure
- #'((end . (((1 . 8) . (3 1))))) % beamExceptions
+ #'(4 . 4) % timeSignatureFraction
+ #'(1 . 4) % baseMomentFraction
+ #'(3 1) % beatStructure
+ #'() % beamExceptions
\time 4/4
\repeat unfold 8 { c8 } |
- \revertTimeSignatureSettings #'Score #'(4 . 4)
+ \revertTimeSignatureSettings #'(4 . 4)
\time 4/4
\repeat unfold 8 { c8 } |
}
}
@end lilypond
+Different values of default time signature properties can be established
+for different staves by moving the @code{Timing_translator} and the
+@code{Default_bar_line_engraver} from the @code{Score} context to the
+@code{Staff} context.
+
+@lilypond[quote, verbatim]
+\score {
+ \new StaffGroup <<
+ \new Staff {
+ \overrideTimeSignatureSettings
+ #'(4 . 4) % timeSignatureFraction
+ #'(1 . 4) % baseMomentFraction
+ #'(3 1) % beatStructure
+ #'() % beamExceptions
+ \time 4/4
+ \repeat unfold 8 {c''8}
+ }
+ \new Staff {
+ \overrideTimeSignatureSettings
+ #'(4 . 4) % timeSignatureFraction
+ #'(1 . 4) % baseMomentFraction
+ #'(1 3) % beatStructure
+ #'() % beamExceptions
+ \time 4/4
+ \repeat unfold 8 {c''8}
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ \context {
+ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ }
+ }
+}
+@end lilypond
+
@predefined
@code{\numericTimeSignature},
@code{\defaultTimeSignature}.
e4. d8 c2
@end lilypond
+Metronome marks may also be printed as a range of two numbers:
+
+@lilypond[verbatim,quote,relative=1]
+\tempo 4 = 40 ~ 46
+c4. e8 a4 g
+b,2 d4 r
+@end lilypond
+
Tempo indications with text can be used instead:
@lilypond[verbatim,quote,relative=2]
d4 e d c
@end lilypond
-@cindex beaming in cadenzas
-@cindex beaming in unmetered music
-@cindex cadenza, beaming in
-@cindex unmetered music, beaming in
+@cindex beams, in cadenzas
+@cindex beams, in unmetered music
+@cindex cadenza, with beams
+@cindex unmetered music, with beams
Automatic beaming is disabled by @code{\cadenzaOn} and enabled
by @code{\cadenzaOff}. Therefore, all beaming in cadenzas
@code{\times}, but does not create a tuplet bracket; see
@ref{Scaling durations}.
-@cindex beaming in polymetric music
-@cindex beaming in polymetric meter
+@cindex beams, with polymetric meters
+@cindex polymetric meters, with beams
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
@cindex notes, splitting
@cindex splitting notes
+@cindex rests, splitting
+@cindex splitting rests
@funindex Note_heads_engraver
@funindex Completion_heads_engraver
+@funindex Completion_rest_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
-@code{Completion_heads_engraver}. In the following
-example, notes crossing the bar lines are split and tied.
+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 @code{Completion_heads_engraver}. Similarly, long rests which
+overrun bar lines are split automatically by replacing the
+@code{Rest_engraver} with the @code{Completion_rest_engraver}. In the
+following example, notes and rests crossing the bar lines are split,
+notes are also tied.
@lilypond[quote,verbatim,relative=1]
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
+ \remove "Rest_engraver"
+ \consists "Completion_rest_engraver"
}
-{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
+{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 r1*2 }
@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
+These engravers split all running notes and rests at the bar line, and
+inserts ties for notes. 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.
Internals Reference:
@rinternals{Note_heads_engraver},
@rinternals{Completion_heads_engraver},
+@rinternals{Rest_engraver},
+@rinternals{Completion_rest_engraver},
@rinternals{Forbid_line_break_engraver}.
@cindex beams, manual
@cindex manual beams
-@cindex beams, setting rules for
-@cindex beams, custom rules for
+@cindex beams, customizing rules
@funindex \autoBeamOn
@funindex autoBeamOn
c16 c8
@end lilypond
-@cindex melismata, beams
-@cindex beams and melismata
+@cindex melismata, with beams
+@cindex beams, with melismata
@warning{If beams are used to indicate melismata in songs, then
automatic beaming should be switched off with @code{\autoBeamOff}
Beaming patterns that differ from the automatic defaults can be
created; see @ref{Setting automatic beam behavior}.
-
@predefined
@code{\autoBeamOff},
@code{\autoBeamOn}.
@endpredefined
-
-@snippets
-
-
-@cindex line breaks and beams
-@cindex beams and line breaks
-
+@cindex beams, line breaks
+@cindex line breaks, beams
+@cindex beams, with knee gap
+@cindex knee gap, with beams
@funindex breakable
+@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{beams-across-line-breaks.ly}
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{changing-beam-knee-gap.ly}
-@cindex \partcombine and \autoBeamOff
-@cindex \autoBeamOff and \partcombine
-
+@cindex beams, \partcombine with \autoBeamOff
+@cindex voices, \partcombine with \autoBeamOff
@lilypondfile [verbatim, lilyquote, ragged-right, texidoc, doctitle]
{partcombine-and-autobeamoff.ly}
-
@seealso
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}.
@rinternals{beam-interface},
@rinternals{unbreakable-spanner-interface}.
-
-@knownissues
-
-Beams can collide with note heads and accidentals in other voices.
-
-
@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
+@cindex beams, with lyrics
+@cindex lyrics, with beams
@funindex autoBeaming
@funindex baseMoment
By default @code{baseMoment} is set to one over the denominator of
the time signature. Any exceptions to this default can be found in
-@file{scm/@/time@/-signature@/-settings@/.scm}.
+@file{scm/time-signature-settings.scm}.
Special autobeaming rules (other than ending a beam on a beat)
are defined in the @code{beamExceptions} property.
\repeat unfold 6 { a8 }
@end lilypond
-These default automatic beaming settings for a time signature
-are determined in @file{scm/@/time@/-signature@/-settings@/.scm}.
-The automatic beaming settings for a time signature can be changed
-as described in @ref{Time signature}.
+The default automatic beaming settings for a time signature
+are determined in @file{scm/time-signature-settings.scm}.
+Changing the default automatic beaming settings
+for a time signature is described in @ref{Time signature}.
+
+Many automatic beaming settings for a time signature contain an
+entry for @code{beamExceptions}. For example, 4/4 time tries to
+beam the measure in two if there are only eighth notes. The
+@code{beamExceptions} rule can override the @code{beatStructure} setting
+if @code{beamExceptions} is not reset.
+
+@lilypond[quote,verbatim,relative=2]
+\time 4/4
+\set Timing.baseMoment = #(ly:make-moment 1 8)
+\set Timing.beatStructure = #'(3 3 2)
+% This won't beam (3 3 2) because of beamExceptions
+\repeat unfold 8 {c8} |
+% This will beam (3 3 2) because we clear beamExceptions
+\set Timing.beamExceptions = #'()
+\repeat unfold 8 {c8}
+@end lilypond
+
+In a similar fashion, eighth notes in 3/4 time are beamed as a full
+measure by default. To beam eighth notes in 3/4 time on the beat,
+reset @code{beamExceptions}.
+
+@lilypond[quote,verbatim,relative=2]
+\time 3/4
+% by default we beam in (3) due to beamExceptions
+\repeat unfold 6 {a8} |
+% This will beam (1 1 1) due to beatLength
+\set Timing.beamExceptions = #'()
+\repeat unfold 6 {a8}
+@end lilypond
@i{@strong{How automatic beaming works}}
@end itemize
-In the rules above, the beam-type is the duration of the
+In the rules above, the @emph{beam-type} is the duration of the
shortest note in the beamed group.
-For reference, the default beaming rules are found in
+The default beaming rules can be found in
@file{scm/time-signature-settings.scm}.
@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{conducting-signs,-measure-grouping-signs.ly}
-@cindex beam, last in score
-@cindex beam, last in polyphonic voice
+@cindex beam, endings in a score
+@cindex beam, endings with multiple voices
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{beam-endings-in-score-context.ly}
@seealso
-Installed files:
+Installed Files:
@file{scm/beam-settings.scm}.
Snippets:
The workaround for these problems is to manually beam the last
beam in the voice or score.
+By default, the @code{Timing} translator is aliased to the
+@code{Score} context. This means that setting the time signature
+in one staff will affect the beaming of the other staves as well.
+Thus, a time signature setting in a later staff will reset custom
+beaming that was set in an earlier staff.
+One way to avoid this problem is to set the time signature
+in only one staff.
+
+@lilypond[quote,verbatim,relative=2]
+<<
+ \new Staff {
+ \time 3/4
+ \set Timing.baseMoment = #(ly:make-moment 1 8)
+ \set Timing.beatStructure = #'(1 5)
+ \repeat unfold 6 { a8 }
+ }
+ \new Staff {
+ \repeat unfold 6 { a8 }
+ }
+>>
+@end lilypond
+
+The default beam settings for the time signature can also be changed, so
+that the desired beaming will always be used. Changes in automatic
+beaming settings for a time signature are described in
+@ref{Time signature}.
+
+@lilypond[quote,verbatim,relative=2]
+<<
+ \new Staff {
+ \overrideTimeSignatureSettings
+ #'(3 . 4) % timeSignatureFraction
+ #'(1 . 8) % baseMomentFraction
+ #'(1 5) % beatStructure
+ #'() % beamExceptions
+ \time 3/4
+ \repeat unfold 6 { a8 }
+ }
+ \new Staff {
+ \time 3/4
+ \repeat unfold 6 { a8 }
+ }
+>>
+@end lilypond
+
@node Manual beams
@unnumberedsubsubsec Manual beams
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{featherDurations} command which specifies
+reflect the @emph{ritardando} or @emph{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.
c1
@end lilypond
-The file @file{scm/@/translation@/-functions@/.scm} contains the
+The file @file{scm/translation-functions.scm} contains the
definitions of @code{format-mark-numbers} (the default format),
@code{format-mark-box-numbers}, @code{format-mark-letters} and
@code{format-mark-box-letters}. These can be used as inspiration
@ref{Aligning objects}.
Installed Files:
-@file{scm/@/translation@/-functions@/.scm} contains
+@file{scm/translation-functions.scm} contains
the definitions of @code{format-mark-numbers} and
@code{format-mark-letters}. They can be used as inspiration for
other formatting functions.
@ref{Manual beams}.
Installed Files:
-@file{ly/@/grace@/-init@/.ly}.
+@file{ly/grace-init.ly}.
Snippets:
@rlsr{Rhythms}.
>>
@end lilypond
-Grace sections should only be used within sequential music
-expressions. Nesting or juxtaposing grace sections is not
-supported, and might produce crashes or other errors.
+The use of grace notes within voice contexts confuses the way the voice
+is typeset. This can be overcome by inserting a rest or note between the
+voice command and the grace note.
+
+@lilypond[quote,verbatim]
+accMusic = {
+ \acciaccatura { f8 } e8 r8 \acciaccatura { f8 } e8 r4
+}
+
+\new Staff {
+ <<
+ \new Voice {
+ \relative c'' {
+ r8 r8 \voiceOne \accMusic \oneVoice r8 |
+ r8 \voiceOne r8 \accMusic \oneVoice r8 |
+ }
+ }
+ \new Voice {
+ \relative c' {
+ s8 s8 \voiceTwo \accMusic \oneVoice s8 |
+ s8 \voiceTwo r8 \accMusic \oneVoice s8 |
+ }
+ }
+ >>
+}
+@end lilypond
+
+Grace sections should only be used within sequential music expressions.
+Nesting or juxtaposing grace sections is not supported, and might
+produce crashes or other errors.
+
+Each grace note in MIDI output has a length of 1/4 of its actual
+duration. If the combined length of the grace notes is greater than the
+length of the preceding note a @qq{@code{Going back in MIDI time}}
+error will be generated. Either make the grace notes shorter in
+duration, for example:
+
+@example
+\acciaccatura @{ c'8[ d' e' f' g'] @}
+@end example
+
+becomes:
+
+@example
+\acciaccatura @{ c'16[ d' e' f' g'] @}
+@end example
+
+Or explicitly change the musical duration:
+
+@example
+\acciaccatura @{ \scaleDurations #' (1 . 2) @{ c'8[ d' e' f' g'] @} @}
+@end example
+
+See @ref{Scaling durations}.
+
@node Aligning to cadenzas
@unnumberedsubsubsec Aligning to cadenzas