X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fnotation%2Frhythms.itely;h=40fc4ec61091c45c040027ace5b0a9321f986ee9;hb=279e858502f36eb2653984fd5f51cecbb7eeb9dc;hp=6a9c08a8acf527ccaf0256a7298187d1647dbc01;hpb=34ac220bcc5b69864a2eb0d99dac8530014623e7;p=lilypond.git diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index 6a9c08a8ac..40fc4ec610 100644 --- a/Documentation/notation/rhythms.itely +++ b/Documentation/notation/rhythms.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.13.36" +@c \version "2.13.44" @node Rhythms @section Rhythms @@ -570,7 +570,7 @@ Internals Reference: 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. @@ -1056,25 +1056,23 @@ 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 @@ -1094,6 +1092,38 @@ for the time signature that go beyond ending at every beat, as 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 @@ -1106,20 +1136,61 @@ to the original values: \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}. @@ -1175,6 +1246,14 @@ c2 d 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] @@ -2006,10 +2085,41 @@ context to the default behavior. \repeat unfold 6 { a8 } @end lilypond -These default automatic beaming settings for a time signature + +The 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}. +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}} @@ -2093,6 +2203,51 @@ automatic beam is still accepting notes, it is not typeset. 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 set 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 @@ -2212,9 +2367,9 @@ feathered beam must be indicated manually using @code{[} and 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.