]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/rhythms.itely
New bar line interface
[lilypond.git] / Documentation / notation / rhythms.itely
index e223bab4124b6d54cedca6e31056b37e6c6a3521..975017057ca64fcaf384ccfc228ddca0e9d8b9a5 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.18"
+@c \version "2.17.5"
 
 @node Rhythms
 @section Rhythms
@@ -312,13 +312,15 @@ block, as discussed in @rlearning{Voices contain music}.
 @cindex scaling durations
 @cindex durations, scaling
 
-You can alter the duration of single notes, rests or chords by a
+The duration of single notes, rests or chords may be multiplied 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}.
+in the MIDI output.  Multiplying factors may be combined like
+@code{*L*M/N}.  Factors are part of the duration: if a duration is
+not specified for subsequent notes, the default duration taken from
+the preceding note will include any scaling factor.
 
 In the following example, the first three notes take up exactly
 two beats, but no triplet bracket is printed.
@@ -326,16 +328,16 @@ two beats, but no triplet bracket is printed.
 @lilypond[quote,relative=2,verbatim]
 \time 2/4
 % Alter durations to triplets
-a4*2/3 gis4*2/3 a4*2/3
+a4*2/3 gis a
 % Normal durations
-a4 a4
+a4 a
 % Double the duration of chord
 <a d>4*2
 % Duration of quarter, appears like sixteenth
 b16*4 c4
 @end lilypond
 
-The duration of spacing notes may also be modified by
+The duration of spacer rests may also be modified by
 a multiplier.  This is useful for skipping many measures, e.g.,
 @code{s1*23}.
 
@@ -349,20 +351,19 @@ 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
 multiplier.  This leaves the appearance of the music unchanged but
 the internal duration of the notes will be multiplied by the
-fraction @emph{num}/@emph{den}.  The spaces around the dot are
-required.  Here is an example showing how music can be compressed
-and expanded:
+fraction @emph{num}/@emph{den}.  Here is an example showing how music
+can be compressed and expanded:
 
 @lilypond[quote,relative=2,verbatim]
 \time 2/4
 % Normal durations
 <c a>4 c8 a
 % Scale music by *2/3
-\scaleDurations #'(2 . 3) {
+\scaleDurations 2/3 {
   <c a f>4. c8 a f
 }
 % Scale music by *2
-\scaleDurations #'(2 . 1) {
+\scaleDurations 2/1 {
   <c' a>4 c8 b
 }
 @end lilypond
@@ -1050,19 +1051,42 @@ Mensural time signatures are covered in
 @funindex \overrideTimeSignatureSettings
 
 In addition to setting the printed time signature, the @code{\time}
-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
-be changed, or new default values can be added:
+command also sets the values of the time-signature-based 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 default value of @code{beatStructure} can be overridden in the
+@code{\time} command itself by supplying it as the optional first
+argument:
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \relative c' {
+      \time #'(2 2 3) 7/8
+      \repeat unfold 7 { c8 } |
+      \time #'(3 2 2) 7/8
+      \repeat unfold 7 { c8 } |
+    }
+  }
+}
+@end lilypond
+
+Alternatively, the default values of all these time-signature-based
+variables, including @code{baseMoment} and @code{beamExceptions},
+can be set together.  The values can be set independently for several
+different time signatures.  The new values take effect when a
+subsequent @code{\time} command with the same value of the time
+signature is executed:
 
 @lilypond[quote,verbatim]
 \score {
   \new Staff {
     \relative c' {
       \overrideTimeSignatureSettings
-        #'(4 . 4)  % timeSignatureFraction
-        #'(1 . 4)  % baseMomentFraction
+        4/4        % timeSignatureFraction
+        1/4        % baseMomentFraction
         #'(3 1)    % beatStructure
         #'()       % beamExceptions
       \time 4/4
@@ -1077,11 +1101,11 @@ be changed, or new default values can be added:
 @enumerate
 
 @item
-@code{@var{timeSignatureFraction}}, a Scheme pair describing the
-time signature.
+@code{@var{timeSignatureFraction}}, a fraction describing the
+time signature to which these values apply.
 
 @item
-@code{@var{baseMomentFraction}}, a Scheme pair containing the numerator
+@code{@var{baseMomentFraction}}, a fraction containing the numerator
 and denominator of the basic timing unit for the time signature.
 
 @item
@@ -1105,8 +1129,8 @@ instantiated or there must be music in the context before the
   \relative c' {
     % This call will fail because the context isn't yet instantiated
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
@@ -1114,8 +1138,8 @@ instantiated or there must be music in the context before the
     \repeat unfold 7 { c8 } |
     % This call will succeed
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
@@ -1138,13 +1162,13 @@ to the original values:
   \relative c' {
     \repeat unfold 8 { c8 } |
     \overrideTimeSignatureSettings
-      #'(4 . 4)  % timeSignatureFraction
-      #'(1 . 4)  % baseMomentFraction
+      4/4        % timeSignatureFraction
+      1/4        % baseMomentFraction
       #'(3 1)    % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
-    \revertTimeSignatureSettings #'(4 . 4)
+    \revertTimeSignatureSettings 4/4
     \time 4/4
     \repeat unfold 8 { c8 } |
   }
@@ -1161,8 +1185,8 @@ for different staves by moving the @code{Timing_translator} and the
   \new StaffGroup <<
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(3 1)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -1170,8 +1194,8 @@ for different staves by moving the @code{Timing_translator} and the
      }
      \new Staff {
         \overrideTimeSignatureSettings
-          #'(4 . 4)  % timeSignatureFraction
-          #'(1 . 4)  % baseMomentFraction
+          4/4        % timeSignatureFraction
+          1/4        % baseMomentFraction
           #'(1 3)    % beatStructure
           #'()       % beamExceptions
         \time 4/4
@@ -1193,6 +1217,10 @@ for different staves by moving the @code{Timing_translator} and the
 }
 @end lilypond
 
+A further method of changing these time-signature-related variables,
+which avoids reprinting the time signature at the time of the change,
+is shown in @ref{Setting automatic beam behavior}.
+
 @predefined
 @code{\numericTimeSignature},
 @code{\defaultTimeSignature}.
@@ -1209,8 +1237,12 @@ Music Glossary:
 
 Notation Reference:
 @ref{Mensural time signatures},
+@ref{Setting automatic beam behavior},
 @ref{Time administration}.
 
+Installed Files:
+@file{scm/time-signature-settings.scm}.
+
 Snippets:
 @rlsr{Rhythms}.
 
@@ -1559,7 +1591,7 @@ Explicitly create a @code{Voice} context when starting a piece with
 Polymetric notation is supported explicitly or by manually modifying the
 visible time signature symbol and/or scaling note durations.
 
-@subsubheading Different time signatures with equal-length measures
+@subsubsubheading Different time signatures with equal-length measures
 
 Set a common time signature for each staff, and set the
 @code{timeSignatureFraction} to the desired fraction.  Then use the
@@ -1585,14 +1617,14 @@ affect the autobeaming rules.
   }
   \new Staff {
     \time 3/4
-    \set Staff.timeSignatureFraction = #'(9 . 8)
-    \scaleDurations #'(2 . 3)
+    \set Staff.timeSignatureFraction = 9/8
+    \scaleDurations 2/3
       \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
-    \set Staff.timeSignatureFraction = #'(10 . 8)
-    \scaleDurations #'(3 . 5) {
+    \set Staff.timeSignatureFraction = 10/8
+    \scaleDurations 3/5 {
       \repeat unfold 2 { c8[ c c] }
       \repeat unfold 2 { c8[ c] } |
       c4. c \times 2/3 { c8[ c c] } c4
@@ -1601,7 +1633,7 @@ affect the autobeaming rules.
 >>
 @end lilypond
 
-@subsubheading Different time signatures with unequal-length measures
+@subsubsubheading Different time signatures with unequal-length measures
 
 Each staff can be given its own independent time signature by
 moving the @code{Timing_translator} and the
@@ -1649,7 +1681,7 @@ moving the @code{Timing_translator} and the
 @cindex compound time signatures
 @cindex time signature, compound
 
-@subsubheading Compound time signatures
+@subsubsubheading Compound time signatures
 
 These are created using the @code{\compoundMeter} function.  The syntax
 for this is:
@@ -1828,7 +1860,7 @@ be done with the @code{Pitch_squash_engraver} and
     }
   }
   \new Voice \with {
-    \consists Pitch_squash_engraver
+    \consists "Pitch_squash_engraver"
   } \relative c'' {
     \improvisationOn
     c4 c8 c c4 c8 c
@@ -1983,12 +2015,38 @@ new beam starts.
 @funindex \set
 @funindex set
 
+When automatic beaming is enabled, the placement of automatic beams
+is determined by three context properties:
+@code{baseMoment}, @code{beatStructure}, and @code{beamExceptions}.
+The default values of these variables may be overridden as described
+below, or alternatively the default values themselves may be changed
+as explained in @ref{Time signature}.
+
+If a @code{beamExceptions} rule is defined for the time signature in
+force, that rule is used to determine the beam placement.  If no
+@code{beamExceptions} rule is defined for the time signature in force,
+the beam placement is determined by the settings of @code{baseMoment}
+and @code{beatStructure}.
+
+By default, @code{beamExceptions} rules are defined for most common
+time signatures, so the @code{beamException} rules must be disabled
+if automatic beaming is to be based on @code{baseMoment} and
+@code{beatStructure}.  The @code{beamExceptions} rules are disabled
+by
+
+@example
+\set Timing.beamExceptions = #'()
+@end example
+
+
+@subsubsubheading Beaming based on @code{baseMoment} and @code{beatStructure}
+
 In most instances, automatic beams will end at the end of a beat.
 The ending points for beats are determined by the context properties
 @code{baseMoment} and @code{beatStructure}.  @code{beatStructure}
 is a scheme list that defines the length of each beat in the measure
 in units of @code{baseMoment}.  By default, @code{baseMoment} is
-the one over numerator of the time signature.  By default,
+one over the denominator of the time signature.  By default,
 each unit of length @code{baseMoment} is a single beat.
 
 @lilypond[quote,relative=2,verbatim]
@@ -2000,6 +2058,25 @@ c16^"(2+3)" c c c c |
 c16^"(3+2)" c c c c |
 @end lilypond
 
+If a common time signature is being used, @code{beamExceptions}
+@emph{must} be disabled to enable @code{beatStructure} to work.
+The @code{\set Timing.beamExceptions = #'()} command can always
+be included if beaming is being determined by @code{beatStructure}.
+
+@lilypond[quote,relative=2,verbatim]
+\time 4/4
+a8^"default" a a a a a a a
+
+\set Timing.baseMoment = #(ly:make-moment 1 4)
+\set Timing.beatStructure = #'(1 1 1 1)
+a8^"no change" a a a a a a a
+
+\set Timing.beamExceptions = #'()
+\set Timing.baseMoment = #(ly:make-moment 1 4)
+\set Timing.beatStructure = #'(1 1 1 1)
+a8^"changed" a a a a a a a
+@end lilypond
+
 Beam setting changes can be limited to specific contexts.  If no
 setting is included in a lower-level context, the setting of the
 enclosing context will apply.
@@ -2064,6 +2141,8 @@ 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}.
 
+@subsubsubheading Beaming based on @code{beamExceptions}
+
 Special autobeaming rules (other than ending a beam on a beat)
 are defined in the @code{beamExceptions} property.
 
@@ -2148,34 +2227,34 @@ if @code{beamExceptions} is not reset.
 \repeat unfold 8 {c8}
 @end lilypond
 
-In traditional engraving, eighth notes can have special beaming rules.
-A measure consisting of only eighth notes can be beamed in one.  This rule is
-controlled by the context property @code{beamWholeMeasure}:
+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 one
-\repeat unfold 6 { a8 }
-% We can avoid beaming in one
-\set Timing.beamWholeMeasure = ##f
-\repeat unfold 6 { a8 }
+% by default we beam in (6) 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
 
-In some engraving from the Romantic and Classical periods,
-a half-measure of eighth notes can be beamed
-together even though this violates the general rule (see Gould, p. 153).
-This behavior is controlled by the context property @code{beamHalfMeasure}:
+In engraving from the Romantic and Classical periods,
+beams often begin midway through the measure in 3/4 time,
+but modern practice is to avoid the false impression of 6/8 time
+(see Gould, p. 153).  Similar situations arise in 3/8 time.
+This behavior is controlled by the context property @code{beamHalfMeasure},
+which has effect only in time signatures with 3 in the numerator:
 
 @lilypond[quote,verbatim,relative=2]
 \time 3/4
-% By default we avoid half-measure beams
 r4. a8 a a |
-% We can allow half-measure beams
-\set Timing.beamHalfMeasure = ##t
+\set Timing.beamHalfMeasure = ##f
 r4. a8 a a |
 @end lilypond
 
-@i{@strong{How automatic beaming works}}
+@subsubsubheading How automatic beaming works
 
 When automatic beaming is enabled, the placement of automatic beams
 is determined by the context properties
@@ -2239,8 +2318,11 @@ The default beaming rules can be found in
 {beam-endings-in-score-context.ly}
 
 @seealso
+Notation Reference:
+@ref{Time signature}.
+
 Installed Files:
-@file{scm/beam-settings.scm}.
+@file{scm/time-signature-settings.scm}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -2291,8 +2373,8 @@ beaming settings for a time signature are described in
 <<
   \new Staff {
     \overrideTimeSignatureSettings
-      #'(3 . 4)         % timeSignatureFraction
-      #'(1 . 8)         % baseMomentFraction
+      3/4               % timeSignatureFraction
+      1/8               % baseMomentFraction
       #'(1 5)           % beatStructure
       #'()             % beamExceptions
     \time 3/4
@@ -2564,7 +2646,7 @@ f1 \bar "|"
 f1 \bar "."
 g1 \bar "||"
 a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
 c1 \bar "|.|"
 d1 \bar "|."
 e1
@@ -2574,8 +2656,8 @@ e1
 together with dotted and dashed bar lines:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar ":"
-g1 \bar "dashed"
+f1 \bar ";"
+g1 \bar "!"
 a1
 @end lilypond
 
@@ -2583,11 +2665,11 @@ a1
 and five types of repeat bar line:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
-c1 \bar ":|"
+c1 \bar ":|."
 e1
 @end lilypond
 
@@ -2610,13 +2692,13 @@ c4 c c c
 c4 c c c \break
 \bar "S"
 c4 c c c
-\bar "|S"
+\bar "S-|"
 c4 c c c \break
-\bar "|S"
+\bar "S-|"
 c4 c c c
-\bar "S|"
+\bar "S-S"
 c4 c c c \break
-\bar "S|"
+\bar "S-S"
 c1
 @end lilypond
 
@@ -2635,9 +2717,9 @@ the next line.
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar "||:"
+\bar ".|:-||"
 c4 c c c \break
-\bar "||:"
+\bar ".|:-||"
 c4 c c c
 @end lilypond
 
@@ -2646,32 +2728,36 @@ variations:
 
 @lilypond[quote,relative=2,verbatim]
 c4 c c c
-\bar ":|S"
+\bar ":|.S"
 c4 c c c \break
-\bar ":|S"
+\bar ":|.S"
 c4 c c c
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c \break
-\bar ":|S."
+\bar ":|.S-S"
 c4 c c c
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c \break
-\bar "S|:"
+\bar "S.|:-S"
 c4 c c c
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c \break
-\bar ".S|:"
+\bar "S.|:"
 c4 c c c
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c \break
-\bar ":|S|:"
+\bar ":|.S.|:"
 c4 c c c
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c4 c c c \break
-\bar ":|S.|:"
+\bar ":|.S.|:-S"
 c1
 @end lilypond
 
+Additionally there is an @code{\inStaffSegno} command which
+creates a segno bar, placed in cooperation
+with the @code{\repeat volta} command.
+
 
 In scores with many staves, a @code{\bar} command in one staff is
 automatically applied to all staves.  The resulting bar lines are
@@ -3255,8 +3341,8 @@ 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
 
@@ -3266,8 +3352,8 @@ 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
 
@@ -3321,7 +3407,7 @@ becomes:
 Or explicitly change the musical duration:
 
 @example
-\acciaccatura @{ \scaleDurations #' (1 . 2) @{ c'8[ d' e' f' g'] @} @}
+\acciaccatura @{ \scaleDurations 1/2 @{ c'8[ d' e' f' g'] @} @}
 @end example
 
 See @ref{Scaling durations}.
@@ -3356,9 +3442,9 @@ MyCadenza = \relative c' {
     \MyCadenza c'1
   }
   \new Staff {
-    $(mmrest-of-length MyCadenza)
+    #(mmrest-of-length MyCadenza)
     c'1
-    $(skip-of-length MyCadenza)
+    #(skip-of-length MyCadenza)
     c'1
   }
 >>