1 @c -*- coding: utf-8; mode: texinfo; -*-
3 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
5 When revising a translation, copy the HEAD committish of the
6 version that you are working on. See TRANSLATION for details.
12 @lilypondfile[quote]{rhythms-headword.ly}
14 This section discusses rhythms, rests, durations, beaming and bars.
19 * Displaying rhythms::
22 * Special rhythmic concerns::
27 @subsection Writing rhythms
37 @subsubsection Durations
39 @cindex durations, of notes
40 @cindex note durations
46 Durations are designated by numbers and dots.
47 Durations are entered as their reciprocal values. For example, a
48 quarter note is entered using a @code{4} (since it is a 1/4 note),
49 and a half note is entered using a @code{2} (since it is a 1/2
50 note). For notes longer than a whole you must use the
51 @code{\longa} (a double breve) and @code{\breve} commands.
52 Durations as short as 64th notes may be specified. Shorter values
53 are possible, but only as beamed notes.
55 @c Two 64th notes are needed to obtain beams
56 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
63 Here are the same durations with automatic beaming turned off.
65 @c not strictly "writing rhythms"; more of a "displaying" thing,
66 @c but it's ok here. -gp
67 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
74 A note with the duration of a quadruple breve may be entered with
75 @code{\maxima}, but this is supported only within ancient music
76 notation. For details, see @ref{Ancient notation}.
78 If the duration is omitted, it is set to the previously
79 entered duration. The default for the first note is a quarter
82 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
91 To obtain dotted note lengths, place a dot (@code{.}) after the
92 duration. Double-dotted notes are specified by appending two
95 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
96 a4 b c4. b8 a4. b4.. c8.
99 Some durations cannot be represented with just binary durations
100 and dots; they can be represented only by tying two or more
101 notes together. For details, see @ref{Ties}.
103 For ways of specifying durations for the syllables of lyrics and
104 ways of aligning lyrics to notes, see @ref{Vocal music}.
106 Optionally, notes can be spaced strictly proportionately to their
107 duration. For details of this and other settings which control
108 proportional notation, see @ref{Proportional notation}.
112 @funindex \dotsNeutral
114 Dots are normally moved up to avoid staff lines, except in
115 polyphonic situations. Predefined commands are available to
116 force a particular direction manually, for details
117 see @ref{Controlling direction and placement}.
133 @rglos{Duration names notes and rests}.
136 @ref{Automatic beams},
138 @ref{Writing rhythms},
141 @ref{Ancient notation},
142 @ref{Proportional notation}.
144 Snippets: @lsrdir{Rhythms,Rhythms}.
148 @internalsref{DotColumn}.
153 @c Deliberately duplicated in Durations and Rests. -gp
154 There is no fundamental limit to rest durations (both in terms of
155 longest and shortest), but the number of glyphs is limited:
156 rests from 128th to maxima (8 x whole) may be printed.
160 @subsubsection Tuplets
166 Tuplets are made from a music expression by multiplying all the
167 durations with a fraction:
170 \times @var{fraction} @{ @var{music} @}
174 The duration of @var{music} will be multiplied by the
175 fraction. The fraction's denominator will be printed over or
176 under the notes, optionally with a bracket. The most common
177 tuplet is the triplet in which 3 notes have the duration of 2, so
178 the notes are 2/3 of their written length.
180 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
181 a2 \times 2/3 {b4 b b}
182 c4 c \times 2/3 {b4 a g}
187 @funindex \tupletDown
188 @funindex \tupletNeutral
190 The automatic placement of the tuplet bracket above or below the
191 notes may be overridden manually with predefined commands, for
192 details see @ref{Controlling direction and placement}.
194 Tuplets may be nested:
196 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
198 c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 |
201 Modifying nested tuplets which begin at the same musical moment
202 must be done with @code{\tweak}.
204 To modify the duration of notes without printing a tuplet bracket,
205 see @ref{Scaling durations}.
211 @code{\tupletNeutral}.
216 @cindex tuplet formatting
217 @cindex triplet formatting
219 @funindex tupletNumberFormatFunction
220 @funindex tupletSpannerDuration
222 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
223 {entering-several-tuplets-using-only-one--times-command.ly}
225 @funindex TupletNumber
227 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
228 {changing-the-tuplet-number.ly}
230 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
231 {permitting-line-breaks-within-beamed-tuplets.ly}
240 Learning Manual: @rlearning{Tweaking methods}.
243 @ref{Time administration},
244 @ref{Scaling durations},
245 @ref{Objects connected to the input},
246 @ref{Polymetric notation}.
248 Snippets: @lsrdir{Rhythms,Rhythms}.
251 @internalsref{TupletBracket},
252 @internalsref{TupletNumber},
253 @internalsref{TimeScaledMusic}.
256 @cindex grace notes within tuplet brackets
257 When the very first note on a staff is a grace note followed by a
258 tuplet the grace note must be placed before the @code{\times}
259 command to avoid errors. Anywhere else, grace notes may be
260 placed within tuplet brackets.
263 @node Scaling durations
264 @subsubsection Scaling durations
266 @cindex scaling durations
267 @cindex durations, scaling
269 TODO Change \compressMusic to \scaleDurations when implemented.
271 You can alter the duration of single notes, rests or chords by a
272 fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
273 @code{M} is 1) to the duration.
274 This will not affect the appearance of the notes or rests
275 produced, but the altered duration will be used in calculating the
276 position within the measure and setting the duration in the MIDI
277 output. Multiplying factors may be combined such as @code{*L*M/N}.
279 In the following example, the first three notes take up exactly
280 two beats, but no triplet bracket is printed.
282 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
284 % Alter durations to triplets
285 a4*2/3 gis4*2/3 a4*2/3
288 % Double the duration of chord
290 % Duration of quarter, appears like sixteenth
294 The duration of skip or spacing notes may also be modified by
295 a multiplier. This is useful for skipping many measures, e.g.,
298 @cindex compressing music
299 @funindex \compressMusic
301 Longer stretches of music may be compressed by a fraction in
302 the same way, as if every note, chord or rest had the fraction
303 as a multiplier. The general syntax of the command to do this
307 \compressMusic #'(@emph{num} . @emph{den}) @{ @emph{music} @}
311 This will leave the appearance of @emph{music} unchanged but
312 the internal duration of the notes will be multiplied by the
313 fraction @emph{num}/@emph{den}. The spaces around the dot
314 are required. Here is an example showing how music can be
315 compressed and expanded:
317 @lilypond[quote,fragment,relative=2,ragged-right,verbatim]
321 % Scale music by *2/3
322 \compressMusic #'(2 . 3) {
326 \compressMusic #'(2 . 1) {
332 One application of this command is in polymetric
333 notation, see @ref{Polymetric notation}.
341 @ref{Polymetric notation}.
343 Snippets: @lsrdir{Rhythms,Rhythms}
352 A tie connects two adjacent note heads of the same pitch. The tie
353 in effect extends the duration of a note.
355 @warning{Ties should not be confused with @emph{slurs}, which
356 indicate articulation, or @emph{phrasing slurs}, which indicate
357 musical phrasing. A tie is just a way of extending a note
358 duration, similar to the augmentation dot.}
360 A tie is entered using the tilde symbol @code{~}
362 @lilypond[quote,ragged-right,fragment,verbatim]
368 Ties are used either when the note crosses a bar line, or when
369 dots cannot be used to denote the rhythm. Ties should also be
370 used when note values cross larger subdivisions of the measure:
372 @lilypond[fragment,quote,ragged-right]
374 r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
378 If you need to tie a lot of notes across bar lines, it may be
379 easier to use automatic note splitting, see @ref{Automatic note
380 splitting}. This mechanism automatically splits long notes, and
381 ties them across bar lines.
383 @cindex ties and chords
384 @cindex chords and ties
386 When a tie is applied to a chord, all note heads whose pitches
387 match are connected. When no note heads match, no ties will be
388 created. Chords may be partially tied by placing the tie inside
391 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
393 <c~ e g~ b> <c e g b>
397 @cindex repeating ties
398 @cindex ties, repeating
399 @cindex volta brackets and ties
400 @cindex ties and volta brackets
402 When a second alternative of a repeat starts with a tied note, you
403 have to specify the repeated tie as follows:
405 @lilypond[fragment,quote,ragged-right,relative=2,verbatim]
406 \repeat volta 2 { c g <c e>2 ~ }
408 % First alternative: following note is tied normally
410 % Second alternative: following note has a repeated tie
411 {<c e>2\repeatTie d4 c }}
414 @cindex laissez vibrer
415 @cindex ties, laissez vibrer
416 @funindex \laissezVibrer
418 @notation{L.v.} ties (@notation{laissez vibrer}) indicate that
419 notes must not be damped at the end. It is used in notation for
420 piano, harp and other string and percussion instruments. They can
421 be entered as follows:
423 @lilypond[fragment,ragged-right,verbatim,relative=1]
424 <c f g>\laissezVibrer
427 @cindex ties, placement
430 @funindex \tieNeutral
432 The vertical placement of ties may be controlled, see
433 Predefined commands, or for details, see
434 @ref{Controlling direction and placement}.
436 @cindex ties, appearance
441 Solid, dotted or dashed ties may be specified, see Predefined
457 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
458 {using-ties-with-arpeggios.ly}
460 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
461 {engraving-ties-manually.ly}
468 @rglos{laissez vibrer}.
470 Notation Reference: @ref{Automatic note splitting}.
472 Snippets: @lsrdir{Rhythms,Rhythms}
475 @internalsref{LaissezVibrerTie},
476 @internalsref{LaissezVibrerTieColumn},
477 @internalsref{TieColumn},
483 Switching staves when a tie is active will not produce a slanted
486 Changing clefs or octavations during a tie is not really
487 well-defined. In these cases, a slur may be preferable.
494 @subsection Writing rests
499 * Full measure rests::
515 Rests are entered like notes with the note name @code{r};
516 longer rests with the predefined commands shown:
518 @c \time 16/1 is used to avoid spurious bar lines
519 @c and long tracts of empty measures
520 @lilypond[fragment,quote,ragged-right,verbatim]
522 % These two lines are just to prettify this example
524 \override Staff.TimeSignature #'stencil = ##f
525 % Print a maxima rest, equal to four breves
527 % Print a longa rest, equal to two breves
531 r1 r2 r4 r8 r16 r32 r64
535 Whole measure rests, centered in the middle of the measure, must
536 be entered as multi-measure rests. They can be used for a single
537 measure as well as many measures and are discussed in
538 @ref{Full measure rests}.
540 To explicitly specify a rest's vertical position, write a note
541 followed by @code{\rest}. A rest will be placed in the position
542 where the note would appear. This allows for precise manual
543 formatting of polyphonic music, since the automatic rest collision
544 formatter will leave these rests alone.
546 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
552 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
558 Notation Reference: @ref{Full measure rests}
560 Snippets: @lsrdir{Rhythms,Rhythms}
562 Internals Reference: @internalsref{Rest}
567 @c Deliberately duplicated in Durations and Rests. -gp
568 There is no fundamental limit to rest durations (both in terms of
569 longest and shortest), but the number of glyphs is limited: there
570 are rests from 128th to maxima (8 x whole).
576 @cindex invisible rest
577 @cindex rest, invisible
583 An invisible rest (also called a @q{skip rest}) can be entered like a
584 note with note name @code{s} or with the predefined skip command
585 followed by the required duration, as shown here:
587 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
588 % Skip the third beat in the first bar
590 % Use skip command to skip a whole note (bar)
597 The @code{s} syntax is only available in note mode and chord mode.
598 In other situations, for example, when entering lyrics, one must
599 use the predefined skip command:
601 @lilypond[quote,ragged-right,verbatim,relative=2]
604 \new Lyrics \lyricmode { \skip 2 bla2 }
608 The @code{s} skip rest implicitly causes @code{Staff} and
609 @code{Voice} contexts to be created if none exist, just
610 like notes and rests do. These in turn cause a staff with default
611 clef and time signature to be printed, with if necessary, barlines.
612 For example, the following results in a complete staff with three
615 @lilypond[quote,verbatim,fragment,ragged-right]
619 However, the predefined skip command behaves differently: it is
620 merely an empty musical placeholder. It does not create any
621 contexts and does not cause anything to be printed, not even
622 transparently. On its own it does not even print an
626 % This is valid input, but does nothing
632 Snippets: @lsrdir{Rhythms,Rhythms}
634 Internals Reference: @internalsref{SkipMusic}
637 @node Full measure rests
638 @subsubsection Full measure rests
640 @cindex multi-measure rests
641 @cindex full-measure rests
642 @cindex rest, multi-measure
643 @cindex rest, full-measure
644 @cindex whole rest for a full measure
647 Rests for one or more full measures are entered like notes with
648 the note name uppercase @code{R}:
650 @lilypond[quote,fragment,verbatim,relative=2]
651 % Rest bars contracted to single bar
652 \compressFullBarRests
659 @funindex \expandFullBarRests
660 @funindex \compressFullBarRests
661 @cindex multi-measure rest, expanding
662 @cindex multi-measure rest, contracting
664 By default a multi-measure rest is expanded in the printed score
665 to show all the rest measures explicitly or (as in the example
666 above) it can be contracted to a single measure containing a
667 multi-measure rest symbol, with the number of measures of rest
668 printed above the measure:
670 @lilypond[quote,ragged-right,fragment,verbatim]
672 \time 3/4 r2. | R2.*2 |
675 % Rest bars contracted to single bar
676 \compressFullBarRests
684 The @code{1} in @code{R1} is similar to the duration notation
685 used for notes and is the length of a measure in 2/2 or 4/4 time.
686 The duration in a multi-measure rest must always be an integral
687 number of measure-lengths, so in other time signatures augmentation
688 dots or fractions must be used:
690 @lilypond[quote,ragged-right,fragment,verbatim]
691 \compressFullBarRests
695 R1*13/8 | R1*13/8*12 |
700 An @code{R} spanning a single measure is printed as either a whole
701 or breve rest, centered in the measure, regardless of the time
705 @cindex text on multi-measure rest
706 @cindex multi-measure rest, attaching text
707 @cindex script on multi-measure rest
708 @cindex multi-measure rest, script
709 @cindex fermata on multi-measure rest
710 @cindex multi-measure rest, attaching fermata
712 Text can be added to multi-measure rests by using the
713 @var{note} - @code{\markup} syntax described in
714 @ref{Text markup}. The predefined command @code{\fermataMarkup}
715 is provided for adding fermatas.
717 @lilypond[quote,ragged-right,verbatim,fragment]
718 \compressFullBarRests
720 R2.*10^\markup { \italic "ad lib." }
724 @warning{Text attached to a multi-measure rest is created
725 by @code{MultiMeasureRestText}, not
726 @code{TextScript}. Overrides must be directed to the correct
727 object, or they will be ignored. See the following example.}
729 @lilypond[quote,ragged-right,verbatim,fragment]
730 % This fails, as the wrong object name is specified
731 \override TextScript #'padding = #5
733 % This is correct and works
734 \override MultiMeasureRestText #'padding = #5
738 Text attached to a multi-measure rest will be centered above or
739 below it. Long text attached in this way does not cause the
740 measure to expand, and may collide with text in adjacent measures.
741 This behavior may be changed with the predefined command
742 @code{\textLengthOn}, which will cause following bars to expand
743 as necessary to accommodate text. @code{\textLengthOff} returns
744 to the default behavior. To left-align text within a bar attach
745 it to a zero-length skip note preceding the rest.
747 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
748 \compressFullBarRests
750 s1*0^\markup {[MAJOR GENERAL]}
752 s1*0^\markup {[MABEL] }
753 s1*0_\markup {\italic {Cue: ... it is yours}}
756 c4^\markup {CHORUS} d f c
760 Text attached to a skip note in this way is left-aligned to the
761 position where the note would be placed in the bar, and placed
762 above the bar count numeral, but if the bar length is
763 determined by the length of the text, the text will appear to be
764 centered. If two (or more) texts are
765 attached to skip notes in a bar the bar length is determined by
766 the longer text, and the shorter text is then clearly
767 left-aligned, as shown in the second bar above. If the shorter
768 text of two marks is short enough to fit it will be placed
769 alongside and to the left of the bar count numeral.
772 @code{\textLengthOn},
773 @code{\textLengthOff},
774 @code{\fermataMarkup},
775 @code{\compressFullBarRests},
776 @code{\expandFullBarRests}.
782 @cindex kirchenpausen
784 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
785 {changing-form-of-multi--measure-rests.ly}
787 @cindex multi-measure rests, positioning
788 @cindex positioning multi-measure rests
790 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
791 {positioning-multi--measure-rests.ly}
796 @rglos{multi-measure rest},
797 @rglos{church rests}.
805 Snippets: @lsrdir{Rhythms,Rhythms}
808 @internalsref{MultiMeasureRest},
809 @internalsref{MultiMeasureRestNumber},
810 @internalsref{MultiMeasureRestText}.
815 If an attempt is made to use fingerings (e.g.,
816 @code{R1*10-4}) to put numbers over multi-measure rests, the
817 fingering numeral (4) may collide with the bar counter
820 @cindex condensing rests
821 @cindex rests, condensing ordinary
823 There is no way to automatically condense multiple ordinary rests
824 into a single multi-measure rest.
826 @cindex rests, collisions of
828 Multi-measure rests do not take part in rest collisions.
830 Be careful when entering multi-measure rests followed by whole
831 notes. The following will enter two notes lasting four measures
839 @node Displaying rhythms
840 @subsection Displaying rhythms
846 * Polymetric notation::
847 * Automatic note splitting::
851 @subsubsection Time signature
853 @cindex time signature
857 The time signature is set as follows:
859 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
864 @cindex Time signature, visibility of
866 Time signatures by default are printed at the start of every line
867 and whenever the time signature changes. If a change takes place
868 at the end of a line a warning time signature sign is printed
869 there. This default behavior may be changed, see
870 @ref{Controlling visibility of objects}.
872 @funindex \numericTimeSignature
873 @funindex \defaultTimeSignature
874 @cindex time signature style
876 The symbol that is printed in 2/2 and 4/4 time can be customized
877 to use a numeric style:
879 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
883 % Change to numeric style
884 \numericTimeSignature
887 % Revert to default style
888 \defaultTimeSignature
894 Ancient time signatures are covered in
895 @ref{Ancient time signatures}.
899 @code{\numericTimeSignature},
900 @code{\defaultTimeSignature}.
904 @c TODO Send as snippet called "setting measure and beat lengths"
905 @c when example is added
906 @code{\time} sets the properties @code{timeSignatureFraction},
907 @code{beatLength}, and @code{measureLength} in the @code{Timing}
908 context, which is normally aliased to @code{Score}. Changing the
909 value of @code{timeSignatureFraction} causes the new time
910 signature symbol to be printed without changing the other
911 properties. The property @code{measureLength} determines where
912 bar lines should be inserted and, with @code{beatLength}, how
913 automatic beams should be generated.
915 TODO Add example of using beatLength.
916 @c beatLength is broken - see bug 511
920 @cindex measure groupings
921 @cindex beats, grouping
922 @cindex grouping beats
923 @cindex measure sub-grouping
925 @c TODO Sent as snippet called "grouping beats" 25 Mar 08
926 Options to group beats within a bar are available through the
927 Scheme function @code{set-time-signature}, which takes three
928 arguments: the number of beats, the beat length, and the internal
929 grouping of beats in the measure. If the
930 @internalsref{Measure_grouping_engraver} is included, the function
931 will also create @internalsref{MeasureGrouping} signs. Such signs
932 ease reading rhythmically complex modern music. In the example,
933 the 9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
934 @code{set-time-signature} as the third argument: @code{'(2 2 2 3)}:
936 @lilypond[quote,ragged-right,verbatim]
939 #(set-time-signature 9 8 '(2 2 2 3))
940 g8[ g] d[ d] g[ g] a8[( bes g]) |
941 #(set-time-signature 5 8 '(3 2))
947 \consists "Measure_grouping_engraver"
952 @c TODO End of snippet called "grouping beats"
954 @cindex compound time signatures
955 @cindex time signature, compound
957 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
958 {compound-time-signatures.ly}
964 @rglos{time signature}
967 @ruser{Ancient time signatures},
968 @ruser{Time administration}.
971 @lsrdir{Rhythms,Rhythms}
974 @internalsref{TimeSignature},
975 @internalsref{Timing_translator}.
980 Automatic beaming does not use the measure grouping specified with
981 @code{set-time-signature}.
985 @subsubsection Upbeats
989 @cindex partial measure
990 @cindex measure, partial
991 @cindex pickup measure
992 @cindex measure, change length
993 @cindex measurePosition
996 Partial or pick-up measures, such as an anacrusis or upbeat, are
997 entered using the @code{\partial} command, with the syntax
1000 \partial @var{duration} @emph{notes}
1003 where @code{duration} is the rhythmic length of the @emph{notes}
1004 which are to be placed before the first complete measure:
1006 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
1007 \partial 16*5 c16 cis d dis e |
1012 Internally, this is translated into
1015 \set Timing.measurePosition = -@var{duration}
1018 The property @code{measurePosition} contains a rational number
1019 indicating how much of the measure has passed at this point. Note
1020 that this is set to a negative number by the @code{\partial}
1021 command: i.e., @code{\partial 4} is internally translated to
1022 @code{-4}, meaning @qq{there is a quarter note left in the bar.}
1027 Music Glossary: @rglos{anacrusis}
1029 Notation Reference: @ref{Grace notes}
1031 Snippets: @lsrdir{Rhythms,Rhythms}
1033 Internal Reference: @internalsref{Timing_translator}
1037 @cindex grace notes, in anacruses
1039 This command does not take into account grace notes at the start
1040 of the music. If the pick-up starts with one or more grace
1041 notes, then the @code{\partial} should follow the grace note(s):
1043 @lilypond[verbatim,quote,ragged-right,relative,fragment]
1050 The @code{\partial} command is intended to be used only at the
1051 beginning of a piece. If you use it after the beginning, some
1052 odd warnings may occur.
1054 @node Unmetered music
1055 @subsubsection Unmetered music
1057 @funindex \cadenzaOn
1058 @funindex \cadenzaOff
1059 @cindex bar lines, turning off
1060 @cindex bar numbering, turning off
1062 @cindex unmetered music
1064 Bar lines and bar numbers are calculated automatically. For
1065 unmetered music (cadenzas, for example), this is not desirable.
1066 To turn off automatic bar lines and bar numbers, use the command
1067 @code{\cadenzaOn}, and use @code{\cadenzaOff} to turn them on
1070 @lilypond[verbatim,quote,ragged-right,relative=2,fragment]
1079 Bar numbering is resumed at the end of the cadenza as if the
1080 cadenza were not there:
1082 @lilypond[verbatim,quote,ragged-right,relative=2,fragment]
1083 % Show all bar numbers
1084 \override Score.BarNumber #'break-visibility = #all-visible
1100 Music Glossary: @rglos{cadenza}
1102 Notation Reference: @ref{Controlling visibility of objects}
1104 Snippets: @lsrdir{Rhythms,Rhythms}
1108 LilyPond will insert line breaks and page breaks only at a
1109 bar line. Unless the unmetered music ends before the end of the
1110 staff line, you will need to insert invisible bar lines with
1117 to indicate where breaks can occur.
1120 @node Polymetric notation
1121 @subsubsection Polymetric notation
1123 @cindex double time signatures
1124 @cindex signatures, polymetric
1125 @cindex polymetric signatures
1126 @cindex meter, polymetric
1128 @strong{Alternating time signatures}
1130 Regularly alternating double time signatures are not supported
1131 explicitly, but they can be faked. In the next example, the
1132 double time signature is created with markup text, while the
1133 real time signature is set in the usual way with @code{\time}.
1135 @lilypond[verbatim,ragged-right]
1136 % Create 9/8 split into 2/4 + 5/8
1137 tsMarkup = \markup {
1138 \override #'(baseline-skip . 2) \number {
1141 \bracket \column { "5" "8" }
1146 \override Staff.TimeSignature #'stencil =
1147 #ly:text-interface::print
1148 \override Staff.TimeSignature #'text = #tsMarkup
1150 c'2 \bar ":" c'4 c'4.
1151 c'2 \bar ":" c'4 c'4.
1155 @strong{Staves with different time signatures, equal bar lengths}
1157 This notation can be created by setting a common time signature
1158 for each staff but replacing the symbol manually by setting
1159 @code{timeSignatureFraction} to the desired fraction and scaling
1160 the printed durations in each staff to the common time
1161 signature. This done with @code{\compressMusic}, which
1162 is used in a similar way to @code{\times}, but does not create
1163 a tuplet bracket, see @ref{Scaling durations}.
1165 In this example, music with the time signatures of 3/4, 9/8, and
1166 10/8 are used in parallel. In the second staff, shown durations
1167 are multiplied by 2/3, as 2/3 * 9/8 = 3/4, and in the third
1168 staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
1170 @lilypond[quote,ragged-right,verbatim,fragment]
1179 \set Staff.timeSignatureFraction = #'(9 . 8)
1180 \compressMusic #'(2 . 3)
1181 \repeat unfold 6 { c8[ c c] }
1185 \set Staff.timeSignatureFraction = #'(10 . 8)
1186 \compressMusic #'(3 . 5) {
1187 \repeat unfold 2 { c8[ c c] }
1188 \repeat unfold 2 { c8[ c] } |
1189 c4. c4. \times 2/3 { c8 c c } c4
1195 @strong{Staves with different time signatures, unequal bar lengths}
1197 Each staff can be given its own independent time signature by
1198 moving the Timing_translator to the Staff context.
1200 @lilypond[quote,verbatim,ragged-right]
1204 \remove "Timing_translator"
1205 \remove "Default_bar_line_engraver"
1209 \consists "Timing_translator"
1210 \consists "Default_bar_line_engraver"
1214 % Now each staff has its own time signature.
1227 c4. c8 c c c4. c8 c c
1237 @rglos{polymetric time signature},
1240 Notation Reference: @ref{Scaling durations}
1243 @lsrdir{Rhythms,Rhythms}
1244 @c Is this still permitted?
1245 @c @lsr{contemporary,compound-time-signature}
1247 Internals Reference:
1248 @internalsref{TimeSignature},
1249 @internalsref{Timing-translator},
1250 @internalsref{Staff}.
1254 When using different time signatures in parallel, the spacing is
1255 aligned vertically, but bar lines distort the regular spacing.
1258 @node Automatic note splitting
1259 @subsubsection Automatic note splitting
1261 @cindex notes, splitting
1262 @cindex splitting notes
1264 Long notes which overrun bar lines can be converted automatically
1265 to tied notes. This is done by replacing the
1266 @code{Note_heads_engraver} by the
1267 @code{Completion_heads_engraver}. In the following
1268 example, notes crossing the bar lines are split and tied.
1270 @lilypond[quote,fragment,verbatim,relative=1,ragged-right]
1272 \remove "Note_heads_engraver"
1273 \consists "Completion_heads_engraver"
1276 {c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2}
1279 This engraver splits all running notes at the bar line, and
1280 inserts ties. One of its uses is to debug complex scores: if the
1281 measures are not entirely filled, then the ties show exactly how
1282 much each measure is off.
1284 To allow line breaking on the bar lines where the
1285 @code{Completion_heads_engraver} has inserted a split note, remove
1286 the @code{Forbid_line_break_engraver} too.
1291 Music Glossary: @rglos{tie}
1294 @rlearning{Engravers explained},
1295 @rlearning{Adding and removing engravers}.
1297 Snippets: @lsrdir{Rhythms,Rhythms}
1299 Internals Reference:
1300 @internalsref{Note_heads_engraver},
1301 @internalsref{Completion_heads_engraver},
1302 @internalsref{Forbid_line_break_engraver}.
1307 Not all durations (especially those containing tuplets) can be
1308 represented exactly with normal notes and dots, but the engraver
1309 will not insert tuplets.
1311 The @code{Completion_heads_engraver} only affects notes; it does not
1320 * Setting automatic beam behavior::
1325 @node Automatic beams
1326 @subsubsection Automatic beams
1328 By default, beams are inserted automatically:
1330 @cindex beams, manual
1331 @cindex manual beams
1333 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
1335 \time 6/8 c c c c8. c16 c8
1338 If these automatic decisions are not satisfactory, beaming can be
1339 entered explicitly; see @ref{Manual beams}. It is also possible
1340 to define beaming patterns that differ from the defaults; see
1341 @ref{Setting automatic beam behavior}. The default beaming rules
1342 are defined in @file{scm/@/auto@/-beam@/.scm}.
1348 Automatic beaming may be turned off and on with
1349 @code{\autoBeamOff} and @code{\autoBeamOn} commands:
1351 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
1352 c4 c8 c8. c16 c8. c16 c8
1362 Beaming patterns may be altered with the @code{beatGrouping} property,
1364 @lilypond[quote,verbatim,relative=2,fragment,ragged-right]
1366 \set beatGrouping = #'(2 3)
1368 \set beatGrouping = #'(3 2)
1372 The beams of consecutive 16th (or shorter) notes are, by default,
1373 not sub-divided. That is, the three (or more) beams stretch
1374 unbroken over entire groups of notes. This behavior can
1375 be modified to sub-divide the beams into sub-groups by setting
1376 the property @code{subdivideBeams}. When set, multiple beams
1377 will be sub-divided at intervals defined by the current value of
1378 @code{beatLength} by reducing the multiple beams to just one beam
1379 between the sub-groups. Note that @code{beatLength} lives in the
1380 @code{Score} context and defaults to a quarter note. It must be
1381 set to a fraction giving the duration of the beam sub-group
1382 using the @code{make-moment} function, as shown here:
1384 @lilypond[fragment,ragged-right,quote,relative=2,verbatim]
1386 \set subdivideBeams = ##t
1388 % Set beam sub-group length to an eighth note
1389 \set Score.beatLength = #(ly:make-moment 1 8)
1391 % Set beam sub-group length to a sixteenth note
1392 \set Score.beatLength = #(ly:make-moment 1 16)
1395 @funindex subdivideBeams
1398 For more information about @code{make-moment}, see
1399 @ref{Time administration}.
1405 Line breaks are normally forbidden when beams cross bar lines.
1406 This behavior can be changed by setting the @code{breakable}
1407 property: @code{\override Beam #'breakable = ##t}.
1409 @lilypond[ragged-right,relative=2,fragment,verbatim,quote]
1410 \override Beam #'breakable = ##t
1411 c8 \repeat unfold 15 {c[ c] } c
1414 @cindex beams and line breaks
1415 @cindex beams, kneed
1417 @cindex auto-knee-gap
1419 Kneed beams are inserted automatically when a large gap is
1420 detected between the note heads. This behavior can be tuned
1421 through the @code{auto-knee-gap} property. A kneed beam is
1422 drawn if the gap is larger than the value of
1423 @code{auto-knee-gap} plus the width of the beam object (which
1424 depends on the duration of the notes and the slope of the beam).
1425 By default @code{auto-knee-gap} is set to 5.5 staff spaces.
1427 @lilypond[fragment,ragged-right,quote,verbatim]
1429 \override Beam #'auto-knee-gap = #6
1436 Notation Reference: @ref{Manual beams}, @ref{Setting automatic beam behavior}.
1438 Snippets: @lsrdir{Rhythms,Rhythms}
1440 Internals Reference: @internalsref{Beam}.
1445 Automatically kneed cross-staff beams cannot be used together with
1446 hidden staves. See @ref{Hiding staves}.
1448 Beams can collide with note heads and accidentals in other voices
1451 @node Setting automatic beam behavior
1452 @subsubsection Setting automatic beam behavior
1454 @funindex autoBeamSettings
1455 @funindex (end * * * *)
1456 @funindex (begin * * * *)
1457 @cindex automatic beams, tuning
1458 @cindex tuning automatic beaming
1460 @c [TODO: use \applyContext]
1462 In normal time signatures, automatic beams can start on any note
1463 but can end in only a few positions within the measure: beams can
1464 end on a beat, or at durations specified by the properties in
1465 @code{autoBeamSettings}. The properties in
1466 @code{autoBeamSettings} consist of a list of rules for where beams
1467 can begin and end. The default @code{autoBeamSettings} rules are
1468 defined in @file{scm/@/auto@/-beam@/.scm}.
1470 In order to add a rule to the list, use
1472 #(override-auto-beam-setting '(be p q n m) a b [context])
1477 @item @code{be} is either @code{begin} or @code{end}.
1479 @item @code{p/q} is the duration of the note for which you want
1480 to add a rule. A beam is considered to have the duration of its
1481 shortest note. Set @code{p} and @code{q} to @code{'*'} to
1482 have this apply to any beam.
1484 @item @code{n/m} is the time signature to which
1485 this rule should apply. Set @code{n} and @code{m} to @code{'*'}
1486 to have this apply in any time signature.
1488 @item @code{a/b} is the position in the bar at which the beam should
1491 @item @code{context} is optional, and it specifies the context at which
1492 the change should be made. The default is @code{'Voice}.
1494 @code{#(score-override-auto-beam-setting '(A B C D) E F)} is equivalent to
1495 @code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
1499 For example, if automatic beams should always end on the first quarter
1503 #(override-auto-beam-setting '(end * * * *) 1 4)
1506 You can force the beam settings to only take effect on beams whose shortest
1507 note is a certain duration
1509 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1511 #(override-auto-beam-setting '(end 1 16 * *) 1 16)
1513 a32 a a a a16 a a a a a |
1514 #(override-auto-beam-setting '(end 1 32 * *) 1 16)
1515 a32 a a a a16 a a a a a |
1518 You can force the beam settings to only take effect in certain time
1521 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1523 #(override-auto-beam-setting '(end * * 5 8) 2 8)
1531 You can also remove a previously set beam-ending rule by using
1534 #(revert-auto-beam-setting '(be p q n m) a b [context])
1538 be, p, q, n, m, a, b and context are the same as above. Note that the
1539 default rules are specified in @file{scm/@/auto@/-beam@/.scm},
1540 so you can revert rules that you did not explicitly create.
1542 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1544 a16 a a a a a a a a a a a a a a a
1545 #(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
1546 a16 a a a a a a a a a a a a a a a
1549 The rule in a revert-auto-beam-setting statement must exactly match the
1550 original rule. That is, no wildcard expansion is taken into account.
1552 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1554 #(override-auto-beam-setting '(end 1 16 1 4) 1 8)
1556 #(revert-auto-beam-setting '(end 1 16 * *) 1 8) % this won't revert it!
1558 #(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % this will
1564 @c TODO: old material -- not covered by above stuff, I think.
1565 If automatic beams should end on every quarter in 5/4 time, specify
1568 #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
1569 #(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
1570 #(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
1571 #(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
1575 The same syntax can be used to specify beam starting points. In this
1576 example, automatic beams can only end on a dotted quarter note
1578 #(override-auto-beam-setting '(end * * * *) 3 8)
1579 #(override-auto-beam-setting '(end * * * *) 1 2)
1580 #(override-auto-beam-setting '(end * * * *) 7 8)
1582 In 4/4 time signature, this means that automatic beams could end only on
1583 3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
1584 3/8, has passed within the measure).
1586 If any unexpected beam behavior occurs, check the default automatic beam
1587 settings in @file{scm/@/auto@/-beam@/.scm}
1588 for possible interference, because the beam
1589 endings defined there will still apply on top of your own overrides. Any
1590 unwanted endings in the default vales must be reverted for your time
1593 For example, to typeset @code{(3 4 3 2)}-beam endings in 12/8, begin
1597 %%% revert default values in scm/auto-beam.scm regarding 12/8 time
1598 #(revert-auto-beam-setting '(end * * 12 8) 3 8)
1599 #(revert-auto-beam-setting '(end * * 12 8) 3 4)
1600 #(revert-auto-beam-setting '(end * * 12 8) 9 8)
1603 #(override-auto-beam-setting '(end 1 8 12 8) 3 8)
1604 #(override-auto-beam-setting '(end 1 8 12 8) 7 8)
1605 #(override-auto-beam-setting '(end 1 8 12 8) 10 8)
1608 @cindex automatic beam generation
1610 @funindex autoBeaming
1613 If beams are used to indicate melismata in songs, then automatic
1614 beaming should be switched off with @code{\autoBeamOff}.
1619 @funindex \autoBeamOff
1620 @code{\autoBeamOff},
1621 @funindex \autoBeamOn
1627 If a score ends while an automatic beam has not been ended and is
1628 still accepting notes, this last beam will not be typeset at all.
1629 The same holds for polyphonic voices, entered with @code{<<
1630 @dots{} \\ @dots{} >>}. If a polyphonic voice ends while an
1631 automatic beam is still accepting notes, it is not typeset.
1635 Snippets: @lsrdir{Rhythms,Rhythms}
1639 @subsubsection Manual beams
1641 @cindex beams, manual
1643 In some cases it may be necessary to override the automatic
1644 beaming algorithm. For example, the autobeamer will not put beams
1645 over rests or bar lines, and in choral scores the beaming is
1646 often set to follow the meter of the lyrics rather than the
1647 notes. Such beams can be specified manually by
1648 marking the begin and end point with @code{[} and @code{]}
1650 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
1652 r4 r8[ g' a r8] r8 g[ | a] r8
1657 Individual notes may be marked with @code{\noBeam} to prevent them
1660 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
1661 \time 2/4 c8 c\noBeam c c
1667 @funindex stemLeftBeamCount
1668 @funindex stemRightBeamCount
1670 Even more strict manual control with the beams can be achieved by
1671 setting the properties @code{stemLeftBeamCount} and
1672 @code{stemRightBeamCount}. They specify the number of beams to
1673 draw on the left and right side, respectively, of the next note.
1674 If either property is set, its value will be used only once, and
1675 then it is erased. In this example, the last @code{f} is printed
1676 with only one beam on the left side, i.e. the eighth-note beam of
1677 the group as a whole.
1679 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
1683 \set stemLeftBeamCount = #1
1691 @node Feathered beams
1692 @subsubsection Feathered beams
1694 @cindex beams, feathered
1695 @funindex \featherDurations
1697 Feathered beams are used to indicate that a small group of notes
1698 should be played at an increasing (or decreasing) tempo, without
1699 changing the overall tempo of the piece. The extent of the
1700 feathered beam must be indicated manually using @code{[} and
1701 @code{]}, and the beam feathering is turned on by specifying a
1702 direction to the Beam property @code{grow-direction}.
1704 If the placement of the notes and the sound in the MIDI output
1705 is to reflect the ritardando or accelerando indicated by the
1706 feathered beam the notes must be grouped as a
1707 music expression delimited by braces and preceded by a
1708 @code{featheredDurations} command which specifies the ratio
1709 between the durations of the first and last notes in the group.
1712 show the extent of the beam and the braces show
1713 which notes are to have their durations modified. Normally
1714 these would delimit the same group of notes, but this is not
1715 required: the two commands are independent.
1717 In the following example the eight 16th notes occupy exactly the
1718 same time as a half note, but the first note is one half as long
1719 as the last one, with the intermediate notes gradually
1720 lengthening. The first four 32nd notes gradually speed up, while
1721 the last four 32nd notes are at a constant tempo.
1723 @lilypond[ragged-right,relative=1,fragment,verbatim,quote]
1724 \override Beam #'grow-direction = #LEFT
1725 \featherDurations #(ly:make-moment 2 1)
1726 { c16[ c c c c c c c] }
1727 \override Beam #'grow-direction = #RIGHT
1728 \featherDurations #(ly:make-moment 2 3)
1730 % revert to non-feathered beams
1731 \override Beam #'grow-direction = #'()
1736 The spacing in the printed output represents the
1737 note durations only approximately, but the midi output is exact.
1741 The @code{\featherDurations} command only works with very short
1742 music snippets, and when numbers in the fraction are small.
1746 Snippets: @lsrdir{Rhythms,Rhythms}
1757 * Bar and bar number checks::
1762 @subsubsection Bar lines
1766 @cindex measure lines
1769 Bar lines delimit measures, and are also used to indicate
1770 repeats. Normally, simple bar lines are automatically inserted
1771 into the printed output at places based on the current time
1774 The simple bar lines inserted automatically can be changed to
1775 other types with the @code{\bar} command. For example, a closing
1776 double bar line is usually placed at the end of a piece:
1778 @lilypond[quote,ragged-right,relative=1,fragment,verbatim]
1782 @warning{An incorrect duration can lead to poorly formatted
1785 It is not invalid if the final note in a bar does not
1786 end on the automatically entered bar line: the note is assumed
1787 to carry over into the next bar. But if a long sequence
1788 of such carry-over bars appears the music can appear compressed
1789 or even flowing off the page. This is because automatic line
1790 breaks happen only at the end of complete bars, i.e. where
1791 the end of a note coincides with the end of a bar.
1794 @cindex bar lines, invisible
1795 @cindex measure lines, invisible
1797 Line breaks are also permitted at manually inserted bar lines
1798 even within incomplete bars. To allow a line break without
1799 printing a bar line, use
1806 This will insert an invisible bar line and allow (but not
1807 force) a line break to occur at this point. The bar number
1808 counter is not increased. To force a line break see
1809 @ref{Line breaking}.
1811 This and other special bar lines may be inserted manually at any
1812 point. When they coincide with the end of a bar they replace
1813 the simple bar line which would have been inserted there
1814 automatically. When they do not coincide
1815 with the end of a bar the specified bar line is inserted at that
1816 point in the printed output. Such insertions do not affect
1817 the calculation and placement of subsequent automatic bar lines.
1819 The simple bar line and four types of double bar line are available
1820 for manual insertion:
1822 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
1823 f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|." d
1827 together with dotted and dashed bar lines:
1829 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
1830 f1 \bar ":" g \bar "dashed" a
1834 and three types of repeat bar line:
1836 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
1837 f1 \bar "|:" g \bar ":|:" a \bar ":|" b
1842 Although the bar line types signifying repeats may be inserted
1843 manually they do not in themselves cause LilyPond to recognize
1844 a repeated section. Such repeated sections are better entered
1845 using the various repeat commands (see @ref{Repeats}), which
1846 automatically print the appropriate bar lines.
1848 In addition, you can specify @code{"||:"}, which is equivalent to
1849 @code{"|:"} except at line breaks, where it gives a double bar
1850 line at the end of the line and a start repeat at the beginning of
1853 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1854 \override Score.RehearsalMark #'padding = #3
1862 In scores with many staves, a @code{\bar} command in one staff is
1863 automatically applied to all staves. The resulting bar lines are
1864 connected between different staves of a @code{StaffGroup},
1865 @code{PianoStaff}, or @code{GrandStaff}.
1867 @lilypond[quote,ragged-right,fragment,verbatim]
1875 \new Staff { \clef bass c4 g e g }
1877 \new Staff { \clef bass c2 c2 }
1885 @funindex defaultBarType
1887 The command @code{\bar }@var{bartype} is a shortcut for
1888 @code{\set Timing.whichBar = }@var{bartype}. A bar line is
1889 created whenever the @code{whichBar} property is
1892 The default bar type used for automatically inserted bar lines is
1893 @code{"|"}. This may be changed at any time
1894 with @code{\set Timing.defaultBarType = }@var{bartype}.
1898 Notation Reference: @ref{Line breaking}, @ref{Repeats},
1899 @c FIXME: node name changed, but is subject to further changes.
1900 @c @ref{System start delimiters}.
1902 Snippets: @lsrdir{Rhythms,Rhythms}
1904 Internals Reference: @internalsref{BarLine} (created at
1905 @internalsref{Staff} level), @internalsref{SpanBar} (across
1906 staves), @internalsref{Timing_translator} (for Timing
1911 @subsubsection Bar numbers
1914 @cindex measure numbers
1915 @funindex currentBarNumber
1917 Bar numbers are typeset by default at the start of every line except
1918 the first line. The number itself is stored in the
1919 @code{currentBarNumber} property, which is normally updated
1920 automatically for every measure. It may also be set manually:
1922 @lilypond[verbatim,ragged-right,quote,fragment,relative]
1925 \set Score.currentBarNumber = #50
1932 @funindex barNumberVisibility
1933 @cindex bar numbers, regular spacing
1935 Bar numbers can be typeset at regular intervals instead of just at
1936 the beginning of every line. To do this the default behavior
1937 must be overridden to permit bar numbers to be printed at places
1938 other than the start of a line. This is controlled by the
1939 @code{break-visibility} property of @code{BarNumber}. This takes
1940 three values which may be set to @code{#t} or @code{#f} to specify
1941 whether the corresponding bar number is visible or not. The order
1942 of the three values is @code{end of line visible}, @code{middle of
1943 line visible}, @code{beginning of line visible}. In the following
1944 example bar numbers are printed at all possible places:
1946 @lilypond[verbatim,ragged-right,quote,fragment,relative]
1947 \override Score.BarNumber #'break-visibility = ##(#t #t #t)
1948 \set Score.currentBarNumber = #11
1949 \bar "" % Permit first bar number to be printed
1955 @c All the rest of these examples will be added to LSR
1956 @c and moved into the Snippets. -gp
1959 and here the bar numbers are printed every two bars
1960 except at the end of the line:
1962 @lilypond[verbatim,ragged-right,quote,fragment,relative]
1963 \override Score.BarNumber #'break-visibility = ##(#f #t #t)
1964 \set Score.currentBarNumber = #11
1965 \bar "" % Permit first bar number to be printed
1966 % Print a bar number every 2nd bar
1967 \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
1973 @cindex measure number, format
1974 @cindex bar number, format
1976 The size of the bar number may be changed. This is illustrated
1977 in the following example, which also shows how to enclose bar
1978 numbers in boxes and circles, and shows an alternative way
1979 of specifying @code{#(#f #t #t)} for @code{break-visibility}.
1981 @lilypond[verbatim,ragged-right,quote,fragment,relative]
1982 % Prevent bar numbers at the end of a line and permit them elsewhere
1983 \override Score.BarNumber #'break-visibility
1984 = #end-of-line-invisible
1986 % Increase the size of the bar number by 2
1987 \override Score.BarNumber #'font-size = #2
1988 \repeat unfold 3 { c1 } \bar "|"
1990 % Draw a box round the following bar number(s)
1991 \override Score.BarNumber #'stencil
1992 = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
1993 \repeat unfold 3 { c1 } \bar "|"
1995 % Draw a circle round the following bar number(s)
1996 \override Score.BarNumber #'stencil
1997 = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
1998 \repeat unfold 4 { c1 } \bar "|."
2001 @cindex bar number alignment
2003 Bar numbers by default are left-aligned to their parent object.
2004 This is usually the left edge of a line or, if numbers are printed
2005 within a line, the left bar line of the bar. The numbers may also
2006 be positioned directly on the bar line or right-aligned to the
2009 @lilypond[verbatim,ragged-right,quote,fragment,relative]
2010 \set Score.currentBarNumber = #111
2011 \override Score.BarNumber #'break-visibility = ##(#t #t #t)
2012 % Increase the size of the bar number by 2
2013 \override Score.BarNumber #'font-size = #2
2014 % Print a bar number every 2nd bar
2015 \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
2017 % Center-align bar numbers
2018 \override Score.BarNumber #'self-alignment-X = #0
2020 % Right-align bar numbers
2021 \override Score.BarNumber #'self-alignment-X = #-1
2025 Bar numbers can be removed entirely by removing the Bar number
2026 engraver from the score context.
2028 @lilypond[verbatim,ragged-right,quote]
2032 \remove "Bar_number_engraver"
2044 Snippets: @lsrdir{Rhythms,Rhythms}
2046 Internals Reference: @internalsref{BarNumber}.
2051 Bar numbers may collide with the top of the
2052 @internalsref{StaffGroup} bracket, if there is one. To solve
2053 this, the @code{padding} property of @internalsref{BarNumber} can
2054 be used to position the number correctly.
2056 Bar numbers may only be printed at bar lines; to print a bar
2057 number at the beginning of a piece, an empty bar line must be
2058 inserted there, and a value other than @code{1} must be placed
2059 in @code{currentBarNumber}:
2061 @lilypond[verbatim,ragged-right,quote,fragment,relative]
2062 \set Score.currentBarNumber = #50
2071 @node Bar and bar number checks
2072 @subsubsection Bar and bar number checks
2075 @funindex barCheckSynchronize
2078 Bar checks help detect errors in the entered durations.
2079 A bar check may be entered using the bar symbol, @code{|},
2080 at any place where a bar line is expected to fall.
2081 If bar check lines are encountered at other places,
2082 a list of warnings is printed in the log file,
2083 showing the line numbers and lines
2084 in which the bar checks failed. In the next
2085 example, the second bar check will signal an error.
2088 \time 3/4 c2 e4 | g2 |
2091 Bar checks can also be used in lyrics, for example
2096 Twin -- kle | Twin -- kle |
2100 An incorrect duration can result in a completely garbled score,
2101 especially if the score is polyphonic, so a good place to start
2102 correcting input is by scanning for failed bar checks and
2103 incorrect durations.
2106 @funindex pipeSymbol
2108 It is also possible to redefine the action taken when a bar check
2109 or pipe symbol, @code{|}, is encountered in the input, so that
2110 it does something other than a bar check. This is done by
2111 assigning a music expression to @code{pipeSymbol}.
2112 In the following example @code{|} is set to insert a double bar
2113 line wherever it appears in the input, rather than checking
2116 @lilypond[quote,ragged-right,verbatim]
2117 pipeSymbol = \bar "||"
2126 When copying large pieces of music, it can be helpful to check
2127 that the LilyPond bar number corresponds to the original that you
2128 are entering from. This can be checked with
2129 @code{\barNumberCheck}, for example,
2132 \barNumberCheck #123
2136 will print a warning if the @code{currentBarNumber} is not 123
2137 when it is processed.
2141 Snippets: @lsrdir{Rhythms,Rhythms}
2144 @node Rehearsal marks
2145 @subsubsection Rehearsal marks
2147 @cindex rehearsal marks
2148 @cindex mark, rehearsal
2151 To print a rehearsal mark, use the @code{\mark} command
2153 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
2162 The letter@tie{}@q{I} is skipped in accordance with engraving
2163 traditions. If you wish to include the letter @q{I}, then use
2166 \set Score.markFormatter = #format-mark-alphabet
2169 The mark is incremented automatically if you use @code{\mark
2170 \default}, but you can also use an integer argument to set the
2171 mark manually. The value to use is stored in the property
2172 @code{rehearsalMark}.
2174 @cindex rehearsal mark format
2175 @cindex rehearsal mark style
2176 @cindex style, rehearsal mark
2177 @cindex format, rehearsal mark
2178 @cindex mark, rehearsal, style
2179 @cindex mark, rehearsal, format
2181 The style is defined by the property @code{markFormatter}. It is
2182 a function taking the current mark (an integer) and the current
2183 context as argument. It should return a markup object. In the
2184 following example, @code{markFormatter} is set to a pre-defined
2185 procedure. After a few measures, it is set to a procedure that
2186 produces a boxed number.
2188 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
2189 \set Score.markFormatter = #format-mark-numbers
2192 \set Score.markFormatter = #format-mark-box-numbers
2198 The file @file{scm/@/translation@/-functions@/.scm} contains the
2199 definitions of @code{format-mark-numbers} (the default format),
2200 @code{format-mark-box-numbers}, @code{format-mark-letters} and
2201 @code{format-mark-box-letters}. These can be used as inspiration
2202 for other formatting functions.
2204 You may use @code{format-mark-barnumbers},
2205 @code{format-mark-box-barnumbers}, and
2206 @code{format-mark-circle-barnumbers} to get bar numbers instead of
2207 incremented numbers or letters.
2209 Other styles of rehearsal mark can be specified manually
2216 @code{Score.markFormatter} does not affect marks specified in this
2217 manner. However, it is possible to apply a @code{\markup} to the
2221 \mark \markup@{ \box A1 @}
2228 Music glyphs (such as the segno sign) may be printed inside a
2231 @lilypond[fragment,quote,ragged-right,verbatim,relative]
2232 c1 \mark \markup { \musicglyph #"scripts.segno" }
2233 c1 \mark \markup { \musicglyph #"scripts.coda" }
2234 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
2239 See @ref{The Feta font}, for a list of symbols which may be
2240 printed with @code{\musicglyph}.
2242 For common tweaks to the positioning of rehearsal marks, see
2247 Snippets: @lsrdir{Rhythms,Rhythms}
2249 This manual: @ref{The Feta font}, @ref{Text marks}.
2251 Internals Reference: @internalsref{RehearsalMark}.
2253 Init files: @file{scm/@/translation@/-functions@/.scm} contains
2254 the definition of @code{format-mark-numbers} and
2255 @code{format-mark-letters}. They can be used as inspiration for
2256 other formatting functions.
2258 Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
2261 @node Special rhythmic concerns
2262 @subsection Special rhythmic concerns
2267 * Aligning to cadenzas::
2268 * Time administration::
2272 @subsubsection Grace notes
2277 @cindex appoggiatura
2278 @cindex acciaccatura
2280 Grace notes are ornaments that are written out. They are made with
2281 the @code{\grace} command. By prefixing this keyword to a music
2282 expression, a new one is formed, which will be printed in a
2283 smaller font and takes up no logical time in a measure.
2285 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
2287 \grace { c16[ d16] } c2 c4
2290 Two special forms of the @code{\grace} command exist.
2291 An @emph{acciaccatura}, which should be played as very short,
2292 is denoted by a slurred small note with a slashed stem. The
2293 @emph{appoggiatura}, a grace note that takes a fixed fraction of the
2294 main note, is denoted as a slurred note in small print without
2295 a slash. They are entered with the commands @code{\acciaccatura}
2296 and @code{\appoggiatura}, as demonstrated in the following
2299 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
2300 b4 \acciaccatura d8 c4
2302 \acciaccatura { g16[ f] } e4
2306 @code{\acciaccatura} and @code{\appoggiatura} start a slur,
2307 @code{\grace} does not.
2309 The placement of grace notes is synchronized between different
2310 staves. In the following example, there are two sixteenth grace
2311 notes for every eighth grace note
2313 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
2314 << \new Staff { e4 \grace { c16[ d e f] } e4 }
2315 \new Staff { c4 \grace { g8[ b] } c4 } >>
2318 @funindex \afterGrace
2320 @cindex grace notes, following
2322 If you want to end a note with a grace, use the @code{\afterGrace}
2323 command. It takes two arguments: the main note, and the grace
2324 notes following the main note.
2326 @lilypond[ragged-right, verbatim,relative=2,fragment]
2327 c1 \afterGrace d1 { c16[ d] } c4
2330 This will put the grace notes after a @q{space} lasting 3/4 of the
2331 length of the main note. The fraction 3/4 can be changed by
2332 setting @code{afterGraceFraction}, ie.
2335 #(define afterGraceFraction (cons 7 8))
2339 will put the grace note at 7/8 of the main note.
2341 The same effect can be achieved manually by doing
2343 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
2346 { s2 \grace { c16[ d] } } >>
2352 By adjusting the duration of the skip note (here it is a
2353 half-note), the space between the main-note and the grace
2356 A @code{\grace} music expression will introduce special
2357 typesetting settings, for example, to produce smaller type, and
2358 set directions. Hence, when introducing layout tweaks, they
2359 should be inside the grace expression, for example,
2361 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
2373 The overrides should also be reverted inside the grace expression.
2375 The layout of grace expressions can be changed throughout the
2376 music using the function @code{add-grace-property}. The following
2377 example undefines the @code{Stem} direction for this grace, so
2378 that stems do not always point up.
2382 #(add-grace-property 'Voice 'Stem 'direction '())
2388 Another option is to change the variables @code{startGraceMusic},
2389 @code{stopGraceMusic}, @code{startAcciaccaturaMusic},
2390 @code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic},
2391 @code{stopAppoggiaturaMusic}. The default values of these can be
2392 seen in the file @file{ly/@/grace@/-init@/.ly}. By redefining
2393 them other effects may be obtained.
2395 @cindex stem, with slash
2398 The slash through the stem in @emph{acciaccatura}s can be obtained in
2399 other situations by @code{\override Stem #'stroke-style =
2405 Grace notes may be forced to use align with regular notes
2406 in other staves by setting @code{strict-grace-spacing} to
2409 @lilypond[relative=2,ragged-right]
2411 \override Score.SpacingSpanner #'strict-grace-spacing = ##t
2420 c'16[ c'16 c'16 c'16]
2421 c'16[ c'16 c'16 c'16]
2431 @rglos{grace notes},
2432 @rglos{acciaccatura},
2433 @rglos{appoggiatura}
2435 Snippets: @lsrdir{Rhythms,Rhythms}
2437 Internals Reference: @internalsref{GraceMusic}.
2442 A multi-note beamed @emph{acciaccatura} is printed without a slash,
2443 and looks exactly the same as a multi-note beamed
2444 @emph{appoggiatura}.
2445 @c TODO Add link to LSR snippet to add slash when available
2447 Grace note synchronization can also lead to surprises. Staff
2448 notation, such as key signatures, bar lines, etc., are also
2449 synchronized. Take care when you mix staves with grace notes and
2450 staves without, for example,
2452 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
2453 << \new Staff { e4 \bar "|:" \grace c16 d4 }
2454 \new Staff { c4 \bar "|:" d4 } >>
2458 This can be remedied by inserting grace skips of the corresponding
2459 durations in the other staves. For the above example
2461 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
2462 << \new Staff { e4 \bar "|:" \grace c16 d4 }
2463 \new Staff { c4 \bar "|:" \grace s16 d4 } >>
2466 Grace sections should only be used within sequential music
2467 expressions. Nesting or juxtaposing grace sections is not
2468 supported, and might produce crashes or other errors.
2470 @node Aligning to cadenzas
2471 @subsubsection Aligning to cadenzas
2474 @cindex cadenza, aligning to
2475 @cindex aligning to cadenza
2477 In an orchestral context, cadenzas present a special problem: when
2478 constructing a score that includes a cadenza, all other
2479 instruments should skip just as many notes as the length of the
2480 cadenza, otherwise they will start too soon or too late.
2482 A solution to this problem is to use the functions
2483 @code{mmrest-of-length} and @code{skip-of-length}. These Scheme
2484 functions take a piece of music as argument, and generate a multi-rest
2485 or @code{\skip}, exactly as long as the piece. The use of
2486 @code{mmrest-of-length} is demonstrated in the following example.
2488 @lilypond[verbatim,ragged-right,quote]
2489 cadenza = \relative c' {
2490 c4 d8 << { e f g } \\ { d4. } >>
2495 \new Staff { \cadenza c'4 }
2497 #(ly:export (mmrest-of-length cadenza))
2505 Snippets: @lsrdir{Rhythms,Rhythms}
2508 @node Time administration
2509 @subsubsection Time administration
2511 @cindex time administration
2512 @cindex timing (within the score)
2513 @cindex music, unmetered
2514 @cindex unmetered music
2516 @funindex currentBarNumber
2517 @funindex measurePosition
2518 @funindex measureLength
2520 Time is administered by the @code{Timing_translator}, which by
2521 default is to be found in the @code{Score} context. An alias,
2522 @code{Timing}, is added to the context in which the
2523 @code{Timing_translator} is placed.
2525 The following properties of @code{Timing} are used
2526 to keep track of timing within the score.
2529 @cindex measure number
2532 @item currentBarNumber
2533 The current measure number. For an example showing the
2534 use of this property see @ref{Bar numbers}.
2537 The length of the measures in the current time signature. For a
2538 4/4 time this is@tie{}1, and for 6/8 it is 3/4. Its value
2539 determines when bar lines are inserted and how automatic beams
2540 should be generated.
2542 @item measurePosition
2543 The point within the measure where we currently are. This
2544 quantity is reset by subtracting @code{measureLength} whenever
2545 @code{measureLength} is reached or exceeded. When that happens,
2546 @code{currentBarNumber} is incremented.
2549 If set to true, the above variables are updated for every time
2550 step. When set to false, the engraver stays in the current
2551 measure indefinitely.
2555 Timing can be changed by setting any of these variables
2556 explicitly. In the next example, the default 4/4 time
2557 signature is printed, but @code{measureLength} is set to 5/4.
2558 At 4/8 through the third measure, the @code{measurePosition} is
2559 advanced by 1/8 to 5/8, shortening that bar by 1/8.
2560 The next bar line then falls at 9/8 rather than 5/4.
2562 @lilypond[quote,ragged-right,verbatim,relative,fragment]
2563 \set Score.measureLength = #(ly:make-moment 5 4)
2567 \set Score.measurePosition = #(ly:make-moment 5 8)
2573 As the example illustrates, @code{ly:make-moment n m} constructs a
2574 duration of n/m of a whole note. For example,
2575 @code{ly:make-moment 1 8} is an eighth note duration and
2576 @code{ly:make-moment 7 16} is the duration of seven sixteenths
2582 This manual: @ref{Bar numbers}, @ref{Unmetered music}
2584 Snippets: @lsrdir{Rhythms,Rhythms}
2586 Internals Reference: @internalsref{Timing_translator},
2587 @internalsref{Score}