Guide, node Updating translation committishes..
@end ignore
-@c \version "2.16.0"
+@c \version "2.17.11"
@node Rhythms
@section Rhythms
@cindex tuplets
@cindex triplets
-@funindex \times
-@funindex times
+@funindex \tuplet
+@funindex tuplet
-Tuplets are made from a music expression by multiplying all the
-durations with a fraction:
+Tuplets are made from a music expression with the @code{\tuplet}
+command, multiplying the speed of the music expression by a
+fraction:
@example
-\times @var{fraction} @{ @var{music} @}
+\tuplet @var{fraction} @{ @var{music} @}
@end example
@noindent
-The duration of @code{@var{music}} will be multiplied by the
-fraction. The fraction's denominator will be printed over or
+The fraction's numerator will be printed over or
under the notes, optionally with a bracket. The most common
-tuplet is the triplet in which 3 notes have the duration of 2, so
-the notes are 2/3 of their written length.
+tuplets are triplets: 3@tie{}notes sound within the duration
+normally allowed for@tie{}2:
@lilypond[quote,verbatim,relative=2]
-a2 \times 2/3 { b4 b b }
-c4 c \times 2/3 { b4 a g }
+a2 \tuplet 3/2 { b4 b b }
+c4 c \tuplet 3/2 { b4 a g }
+@end lilypond
+
+@cindex tuplet grouping
+@noindent
+When entering long passages of tuplets, having to write a separate
+@code{\tuplet} command for each group is inconvenient. It is
+possible to specify the duration of one tuplet group directly
+before the music in order to have the tuplets grouped
+automatically:
+
+@lilypond[quote,verbatim,relative=2]
+g2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e }
@end lilypond
@cindex tuplet bracket placement
@lilypond[quote,verbatim,relative=2]
\autoBeamOff
-c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4
+c4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4
@end lilypond
Modifying nested tuplets which begin at the same musical moment
@knownissues
Grace notes may be placed within tuplet brackets, @emph{except}
when a staff begins with a grace note followed by a tuplet. In this
-particular case, the grace note must be placed before the @code{\times}
+particular case, the grace note must be placed before the @code{\tuplet}
command to avoid errors.
@cindex tempo marks within tuplet brackets
Snippets:
@rlsr{Rhythms}.
+@knownissues
+The calculation of the position within a measure must take into
+account all the scaling factors applied to the notes within that
+measure and any fractional carry-out from earlier measures. This
+calculation is carried out using rational numbers. If an intermediate
+numerator or denominator in that calculation exceeds 2^30 the
+execution and typesetting will stop at that point without indicating
+an error.
+
@node Ties
@unnumberedsubsubsec Ties
musical phrasing. A tie is just a way of extending a note
duration, similar to the augmentation dot.}
-A tie is entered using the tilde symbol (@code{~}).
+A tie is entered by appending a tilde symbol (@code{~}) to the first
+of each pair of notes being tied. This indicates that the note
+should be tied to the following note, which must be at the same pitch.
@lilypond[quote,verbatim,relative=2]
-a2 ~ a
+a2~ a4~ a16 r r8
@end lilypond
Ties are used either when the note crosses a bar line, or when
@lilypond[verbatim,quote]
\relative c' {
- r8 c8 ~ c2 r4 |
- r8^"not" c2 ~ c8 r4
+ r8 c~ c2 r4 |
+ r8^"not" c2~ c8 r4
}
@end lilypond
When a tie is applied to a chord, all note heads whose pitches
match are connected. When no note heads match, no ties will be
-created. Chords may be partially tied by placing the tie inside
+created. Chords may be partially tied by placing the ties inside
the chord.
@lilypond[quote,verbatim,relative=1]
-<c e g> ~ <c e g>
+<c e g>~ <c e g c>
<c~ e g~ b> <c e g b>
@end lilypond
have to specify the repeated tie as follows:
@lilypond[quote,relative=2,verbatim]
-\repeat volta 2 { c g <c e>2 ~ }
+\repeat volta 2 { c g <c e>2~ }
\alternative {
% First alternative: following note is tied normally
{ <c e>2. r4 }
@funindex \tieNeutral
@funindex tieNeutral
-Ties may be manually placed above or below the staff; see
+Ties may be made to curve up or down manually; see
@ref{Direction and placement}.
@cindex ties, appearance
@lilypond[quote, verbatim, relative=1]
\tieDotted
-c2 ~ c
+c2~ c
\tieDashed
-c2 ~ c
+c2~ c
\tieHalfDashed
-c2 ~ c
+c2~ c
\tieHalfSolid
-c2 ~ c
+c2~ c
\tieSolid
-c2 ~ c
+c2~ c
@end lilypond
Custom dash patterns can be specified:
@lilypond[quote, verbatim, relative=1]
\tieDashPattern #0.3 #0.75
-c2 ~ c
+c2~ c
\tieDashPattern #0.7 #1.5
-c2 ~ c
+c2~ c
\tieSolid
-c2 ~ c
+c2~ c
@end lilypond
Dash pattern definitions for ties have the same structure as dash
collide with other objects in a staff.
@lilypond[verbatim,quote,ragged-right,relative=2]
-\override Tie #'layer = #-2
-\override Staff.TimeSignature #'layer = #-1
-\override Staff.KeySignature #'layer = #-1
-\override Staff.TimeSignature #'whiteout = ##t
-\override Staff.KeySignature #'whiteout = ##t
+\override Tie.layer = #-2
+\override Staff.TimeSignature.layer = #-1
+\override Staff.KeySignature.layer = #-1
+\override Staff.TimeSignature.whiteout = ##t
+\override Staff.KeySignature.whiteout = ##t
b2 b~
\time 3/4
\key a \major
\new Staff {
% These two lines are just to prettify this example
\time 16/1
- \override Staff.TimeSignature #'stencil = ##f
+ \override Staff.TimeSignature.stencil = ##f
% Print a maxima rest, equal to four breves
r\maxima
% Print a longa rest, equal to two breves
@lilypond[quote,verbatim,relative=2]
% This fails, as the wrong object name is specified
-\override TextScript #'padding = #5
+\override TextScript.padding = #5
R1^"wrong"
% This is the correct object name to be specified
-\override MultiMeasureRestText #'padding = #5
+\override MultiMeasureRestText.padding = #5
R1^"right"
@end lilypond
@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 {
@item
@code{@var{timeSignatureFraction}}, a fraction describing the
-time signature.
+time signature to which these values apply.
@item
@code{@var{baseMomentFraction}}, a fraction containing the numerator
}
@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}.
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}.
d4 g e c
@end lilypond
+@funindex \markLengthOn
+@funindex markLengthOn
+@funindex \markLengthOff
+@funindex markLengthOff
+
+When tempo indications follow each other closely in the music,
+such as in a part for an instrument with long periods of rests,
+the measures are stretched horizontally so that the tempo indications
+do not overlap. The commands @code{\markLengthOn} and
+@code{\markLengthOff} control this behavior.
+
+@lilypond[quote,relative=0]
+\compressFullBarRests
+\tempo "Molto vivace"
+R1*12
+\tempo "Meno mosso"
+R1*16
+@end lilypond
@snippets
r4 e8 | a4 c8 b c4 |
@end lilypond
-The @code{\partial @var{duration}} can also be written as;
+@code{\partial @var{duration}} can also be written as:
@example
\set Timing.measurePosition -@var{duration}
@end example
-So @code{\partial 8} becomes:
+So the first example above could be written:
@lilypond[quote,verbatim,relative=1]
\time 3/4
-\set Timing.measurePosition = #(ly:make-moment -1 8)
+\set Timing.measurePosition = #(ly:make-moment -1/8)
e8 | a4 c8 b c4 |
@end lilypond
-The property @code{measurePosition} contains a rational number
-indicating how much of the measure has passed at this point. Note
-that this is set to a negative number by the @code{\partial} command:
-i.e., @code{\partial 4} is internally translated to @w{@code{-4}},
-meaning @qq{there is a quarter note left in the measure.}
+The property @code{measurePosition} contains a rational number, which
+is usually positive and indicates how much of the measure has passed
+at this point. The @code{\partial @var{duration}} command sets it to
+a negative number, when it has a different meaning: it then says that
+the current (first) bar will be @emph{preceded} by a bar 0 (the partial
+bar) with a duration given by @var{duration}.
@seealso
Music Glossary:
\time 6/8
\partial 8
e8 | a4 c8 b[ c b] |
-\set Timing.measurePosition = #(ly:make-moment -1 4)
+\set Timing.measurePosition = #(ly:make-moment -1/4)
r8 e,8 | a4 c8 b[ c b] |
@end lilypond
@lilypond[verbatim,relative=2,quote]
% Show all bar numbers
-\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber.break-visibility = #all-visible
c4 d e d
\cadenzaOn
c4 c d8[ d d] f4 g4.
d4 e d c
@end lilypond
-A new bar is never started within a cadenza, even if one or more
-@code{\bar} commands are inserted within it. Therefore, reminder
-accidentals will need to be added manually. See @ref{Accidentals}.
+Inserting a @code{\bar} command within a cadenza does not start a new
+measure, even if a bar line is printed. So any accidentals -- which
+are usually assumed to remain in force until the end of the measure --
+will still be valid after the bar line printed by @code{\bar}. If
+subsequent accidentals should be printed, forced accidentals or
+reminder accidentals need to be inserted manually, see
+@ref{Accidentals}.
@lilypond[verbatim,relative=2,quote]
c4 d e d
\cadenzaOn
cis4 d cis d
\bar "|"
+% First cis is printed without alteration even if it's after a \bar
cis4 d cis! d
\cadenzaOff
\bar "|"
@funindex timeSignatureFraction
@funindex \scaleDurations
@funindex scaleDurations
-@funindex \times
-@funindex times
+@funindex \tuplet
+@funindex tuplet
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
\scaleDurations 3/5 {
\repeat unfold 2 { c8[ c c] }
\repeat unfold 2 { c8[ c] } |
- c4. c \times 2/3 { c8[ c c] } c4
+ c4. c \tuplet 3/2 { c8[ c c] } c4
}
}
>>
@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
@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:
}
}
\new Voice \with {
- \consists Pitch_squash_engraver
+ \consists "Pitch_squash_engraver"
} \relative c'' {
\improvisationOn
c4 c8 c c4 c8 c
@cindex beams, with melismata
@warning{If beams are used to indicate melismata in songs, then
-automatic beaming should be switched off with @code{\autoBeamOff}
+automatic beaming should be switched off with @code{@bs{}autoBeamOff}
and the beams indicated manually. Using @code{@bs{}partcombine} with
@code{@bs{}autoBeamOff} can produce unintended results. See the
snippets for more information.}
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}.
+force, that rule alone is used to determine the beam placement; the
+values of @code{baseMoment} and @code{beatStructure} are ignored.
+
+If no @code{beamExceptions} rule is defined for the time signature
+in force, the beam placement is determined by the values of
+@code{baseMoment} and @code{beatStructure}.
+
+
+@subsubsubheading Beaming based on @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
+time signatures, so the @code{beamExceptions} rules must be disabled
if automatic beaming is to be based on @code{baseMoment} and
@code{beatStructure}. The @code{beamExceptions} rules are disabled
by
\set Timing.beamExceptions = #'()
@end example
-
-@subsubheading @i{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
-one over the denominator of the time signature. By default,
-each unit of length @code{baseMoment} is a single beat.
+When @code{beamExceptions} is set to @code{#'()}, either due to an
+explicit setting or because no @code{beamExceptions} rules are defined
+internally for the time signature in force, the ending points for
+beams are on beats as specified 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 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]
\time 5/16
c16^"default" c c c c |
+% beamExceptions are unlikely to be defined for 5/16 time,
+% but let's disable them anyway to be sure
+\set Timing.beamExceptions = #'()
\set Timing.beatStructure = #'(2 3)
c16^"(2+3)" c c c c |
\set Timing.beatStructure = #'(3 2)
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
-
+% Disable beamExceptions because they are definitely
+% defined for 4/4 time
\set Timing.beamExceptions = #'()
-\set Timing.baseMoment = #(ly:make-moment 1 4)
+\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
@lilypond[quote, verbatim,relative=1]
\new Staff {
\time 7/8
+ % No need to disable beamExceptions as they are not defined for 7/8 time
\set Staff.beatStructure = #'(2 3 2)
<<
\new Voice = one {
@lilypond[quote,verbatim,relative=2]
\time 5/8
-\set Timing.baseMoment = #(ly:make-moment 1 16)
+% No need to disable beamExceptions as they are not defined for 5/8 time
+\set Timing.baseMoment = #(ly:make-moment 1/16)
\set Timing.beatStructure = #'(7 3)
\repeat unfold 10 { a16 }
@end lilypond
the time signature. Any exceptions to this default can be found in
@file{scm/time-signature-settings.scm}.
-@subsubheading @i{Beaming based on @code{beamExceptions}}
+@subsubsubheading Beaming based on @code{beamExceptions}
Special autobeaming rules (other than ending a beam on a beat)
are defined in the @code{beamExceptions} property.
@lilypond[quote,verbatim,relative=2]
\time 4/4
-\set Timing.baseMoment = #(ly:make-moment 1 8)
+\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} |
\time 3/4
% by default we beam in (6) due to beamExceptions
\repeat unfold 6 {a8} |
-% This will beam (1 1 1) due to beatLength
+% This will beam (1 1 1) due to default baseMoment and beatStructure
\set Timing.beamExceptions = #'()
\repeat unfold 6 {a8}
@end lilypond
r4. a8 a a |
@end lilypond
-@subsubheading @i{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
@item
if a beam-ending rule is defined in @code{beamExceptions}
-for a longer beam-type, use it to determined the valid places
+for a longer beam-type, use it to determine the valid places
where beams may end, otherwise
@item
{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}.
<<
\new Staff {
\time 3/4
- \set Timing.baseMoment = #(ly:make-moment 1 8)
+ \set Timing.baseMoment = #(ly:make-moment 1/8)
\set Timing.beatStructure = #'(1 5)
\repeat unfold 6 { a8 }
}
the last four 32nd notes are at a constant tempo.
@lilypond[relative=1,verbatim,quote]
-\override Beam #'grow-direction = #LEFT
-\featherDurations #(ly:make-moment 2 1)
+\override Beam.grow-direction = #LEFT
+\featherDurations #(ly:make-moment 2/1)
{ c16[ c c c c c c c] }
-\override Beam #'grow-direction = #RIGHT
-\featherDurations #(ly:make-moment 2 3)
+\override Beam.grow-direction = #RIGHT
+\featherDurations #(ly:make-moment 2/3)
{ c32[ d e f] }
% revert to non-feathered beams
-\override Beam #'grow-direction = #'()
+\override Beam.grow-direction = #'()
{ g32[ a b c] }
@end lilypond
f1 \bar "."
g1 \bar "||"
a1 \bar ".|"
-b1 \bar ".|."
+b1 \bar ".."
c1 \bar "|.|"
d1 \bar "|."
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
@noindent
-and five types of repeat bar line:
+and nine types of repeat bar lines:
@lilypond[quote,relative=1,verbatim]
-f1 \bar "|:"
-g1 \bar ":|:"
+f1 \bar ".|:"
+g1 \bar ":..:"
a1 \bar ":|.|:"
b1 \bar ":|.:"
-c1 \bar ":|"
-e1
+c1 \bar ":.|.:"
+d1 \bar "[|:"
+e1 \bar ":|][|:"
+f1 \bar ":|]"
+g1 \bar ":|."
+a1
@end lilypond
Additionally, a bar line can be printed as a simple tick:
preferable to use @code{\divisioMinima} there instead, described in
the section @ref{Divisiones} in Gregorian chant.
+Lilypond supports kievan notation and provides a special kievan
+bar line:
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "k"
+@end lilypond
+Further details of this notation are explained in
+@ref{Typesetting Kievan square notation}.
+
@cindex segno
For in-line segno signs, there are three types of bar lines which
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
using the various repeat commands (see @ref{Repeats}), which
automatically print the appropriate bar lines.
-In addition, you can specify @code{"||:"}, which is equivalent to
-@code{"|:"} except at line breaks, where it gives a double bar
+In addition, you can specify @code{".|:-||"}, which is equivalent to
+@code{".|:"} except at line breaks, where it gives a double bar
line at the end of the line and a start repeat at the beginning of
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
@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
creates a segno bar, placed in cooperation
with the @code{\repeat volta} command.
+@funindex \defineBarLine
+@funindex defineBarLine
+@cindex bar lines, defining
+@cindex defining bar lines
+
+New bar line types can be defined with @code{\defineBarLine}:
+
+@example
+\defineBarLine @var{bartype} #'(@var{end} @var{begin} @var{span})
+@end example
+
+The @code{\defineBarline} variables can include the
+@q{empty} string @code{""}, which is equivalent to an invisible
+bar line being printed. Or they can be set to @code{#f} which
+prints no bar line at all.
+
+After the definiton, the new bar line can be used by
+@code{\bar} @var{bartype}.
+
+There are currently ten bar line elements available:
+
+@lilypond[quote,verbatim]
+\defineBarLine ":" #'("" ":" "")
+\defineBarLine "=" #'("=" "" "")
+\defineBarLine "[" #'("" "[" "")
+\defineBarLine "]" #'("]" "" "")
+
+\new Staff {
+ s1 \bar "|"
+ s1 \bar "."
+ s1 \bar "!"
+ s1 \bar ";"
+ s1 \bar ":"
+ s1 \bar "k"
+ s1 \bar "S"
+ s1 \bar "="
+ s1 \bar "["
+ s1 \bar "]"
+ s1 \bar ""
+}
+@end lilypond
+
+The @code{"="} bar line provides the double span bar line, used
+in combination with the segno sign. Do not use it as a standalone
+double thin bar line; here, @code{\bar} @var{"||"} is
+preferred.
+
+The @code{"-"} sign starts annotations to bar lines which
+are useful to distinguish those with identical appearance
+but different behavior at line breaks and/or different span bars.
+The part following the @code{"-"} sign is not used for building up
+the bar line.
+
+@lilypond[quote,relative=2,verbatim]
+\defineBarLine "||-dashedSpan" #'("||" "" "!!")
+
+\new StaffGroup <<
+ \new Staff {
+ c1 \bar "||"
+ c1 \bar "||-dashedSpan"
+ c1
+ }
+ \new Staff {
+ c1
+ c1
+ c1
+ }
+>>
+@end lilypond
+
+Furthermore, the space character @code{" "} serves as a placeholder
+for defining span bars correctly aligned to the main bar lines:
+
+@lilypond[quote,relative=2,verbatim]
+\defineBarLine ":|.-wrong" #'(":|." "" "|.")
+\defineBarLine ":|.-right" #'(":|." "" " |.")
+
+\new StaffGroup <<
+ \new Staff {
+ c1 \bar ":|.-wrong"
+ c1 \bar ":|.-right"
+ c1
+ }
+ \new Staff {
+ c1
+ c1
+ c1
+ }
+>>
+@end lilypond
+
+If additional elements are needed, LilyPond provides a simple
+way to define them. For more informations on modifying or adding
+bar lines, see file @file{scm/bar-line.scm}.
In scores with many staves, a @code{\bar} command in one staff is
automatically applied to all staves. The resulting bar lines are
@cindex default bar lines, changing
@cindex bar lines, default, changing
-@snippets
-
@funindex whichBar
@funindex defaultBarType
@funindex \bar
@ref{Repeats},
@ref{Grouping staves}.
+Installed Files:
+@file{scm/bar-line.scm}.
+
Snippets:
@rlsr{Rhythms}.
example bar numbers are printed at all possible places:
@lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\override Score.BarNumber.break-visibility = ##(#t #t #t)
\set Score.currentBarNumber = #11
% Permit first bar number to be printed
\bar ""
@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
@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
duration, for example:
@example
-\acciaccatura @{ c'8[ d' e' f' g'] @}
+c'8 \acciaccatura @{ c'8[ d' e' f' g'] @}
@end example
becomes:
@example
-\acciaccatura @{ c'16[ d' e' f' g'] @}
+c'8 \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'] @} @}
+c'8 \acciaccatura @{ \scaleDurations 1/2 @{ c'8[ d' e' f' g'] @} @}
@end example
See @ref{Scaling durations}.
@lilypond[quote,verbatim]
\new Voice \relative c' {
- \set Timing.measureLength = #(ly:make-moment 5 4)
+ \set Timing.measureLength = #(ly:make-moment 5/4)
c1 c4 |
c1 c4 |
c4 c
- \set Timing.measurePosition = #(ly:make-moment 5 8)
+ \set Timing.measurePosition = #(ly:make-moment 5/8)
b4 b b8 |
c4 c1 |
}