X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fnotation%2Frhythms.itely;h=697c08a626bd87f758fefb1c454c7cba68cdced1;hb=5edacf4c1908d0fe988d0ef9b3d6a9820a1e8734;hp=9b719c93ea93e506fea2b44662b7441a0d33ba4d;hpb=95a4237d0aca94993bd3b91afc4ff0e4e2daec9f;p=lilypond.git diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index 9b719c93ea..697c08a626 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.14.0" @node Rhythms @section Rhythms @@ -142,6 +142,9 @@ the staff; see @ref{Direction and placement}. @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} @@ -570,7 +573,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 +1059,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 +1095,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 +1139,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 +1249,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] @@ -1360,10 +1442,10 @@ c4 c d8[ d d] f4 g4. 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 @@ -1474,8 +1556,8 @@ signature; see @ref{Time signature}. The scaling is done with @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 @@ -1495,7 +1577,7 @@ duration scaling affects the autobeaming rules. \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 @@ -1593,28 +1675,35 @@ time signatures. @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. @@ -1632,6 +1721,8 @@ Snippets: Internals Reference: @rinternals{Note_heads_engraver}, @rinternals{Completion_heads_engraver}, +@rinternals{Rest_engraver}, +@rinternals{Completion_rest_engraver}, @rinternals{Forbid_line_break_engraver}. @@ -1747,8 +1838,7 @@ By default, beams are inserted automatically: @cindex beams, manual @cindex manual beams -@cindex beams, setting rules for -@cindex beams, custom rules for +@cindex beams, customizing rules @funindex \autoBeamOn @funindex autoBeamOn @@ -1775,8 +1865,8 @@ c4 c8 c8. c16 c8. 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} @@ -1788,35 +1878,30 @@ produce unintended results. See the snippet below for more information.} 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}, @@ -1837,21 +1922,11 @@ Internals Reference: @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 @@ -2006,10 +2081,40 @@ 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}} @@ -2042,10 +2147,10 @@ end beams at the end of beats. @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 @@ -2063,15 +2168,15 @@ For reference, the default beaming rules are found in @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: @@ -2093,6 +2198,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 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 +2362,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. @@ -3057,9 +3207,61 @@ durations in the other staves. For the above example >> @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