Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.44"
@node Rhythms
@section Rhythms
command also sets time-signature-based default values for the properties
@code{baseMoment}, @code{beatStructure}, and @code{beamExceptions}. The
predefined default values for these properties can be found in
-@file{scm/@/time@/-signature@/-settings@/.scm}. The existing default values can
+@file{scm/time-signature-settings.scm}. The existing default values can
be changed, or new default values can be added:
@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. ees8
+fis g aes c,
+b1
+@end lilypond
+
Tempo indications with text can be used instead:
@lilypond[verbatim,quote,relative=2]
@ref{Setting automatic beam behavior}.
Installed Files:
-@file{scm/@/auto@/-beam@/.scm}.
+@file{scm/auto-beam.scm}.
Snippets:
@rlsr{Rhythms}.
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.
@end lilypond
These default automatic beaming settings for a time signature
-are determined in @file{scm/@/time@/-signature@/-settings@/.scm}.
+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}.
+Most 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}}
When automatic beaming is enabled, the placement of automatic beams
shortest note in the beamed group.
For reference, the default beaming rules are found in
-@file{scm/@/time@/-signature@/-settings@/.scm}.
+@file{scm/time-signature-settings.scm}.
@snippets
@seealso
-Installed files:
-@file{scm/@/beam@/-settings@/.scm}.
+Installed Files:
+@file{scm/beam-settings.scm}.
Snippets:
@rlsr{Rhythms}.
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}.