]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/notation/rhythms.itely
07b95005528c3be16d08a2766ad624fabae83b6d
[lilypond.git] / Documentation / notation / rhythms.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  For details, see the Contributors'
7     Guide, node Updating translation committishes..
8 @end ignore
9
10 @c \version "2.12.0"
11
12 @node Rhythms
13 @section Rhythms
14
15 @lilypondfile[quote]{rhythms-headword.ly}
16
17 This section discusses rhythms, rests, durations, beaming and bars.
18
19 @menu
20 * Writing rhythms::
21 * Writing rests::
22 * Displaying rhythms::
23 * Beams::
24 * Bars::
25 * Special rhythmic concerns::
26 @end menu
27
28
29 @node Writing rhythms
30 @subsection Writing rhythms
31
32 @menu
33 * Durations::
34 * Tuplets::
35 * Scaling durations::
36 * Ties::
37 @end menu
38
39 @node Durations
40 @unnumberedsubsubsec Durations
41
42 @cindex durations, of notes
43 @cindex note durations
44 @cindex length of notes
45 @cindex note lengths
46
47 @funindex \longa
48 @funindex longa
49 @funindex \breve
50 @funindex breve
51 @funindex \maxima
52 @funindex maxima
53
54 Durations are designated by numbers and dots.  Durations are entered
55 as their reciprocal values.  For example, a quarter note is entered
56 using a @code{4} (since it is a 1/4 note), and a half note is entered
57 using a @code{2} (since it is a 1/2 note).  For notes longer than a
58 whole you must use the @code{\longa} (a double breve) and
59 @code{\breve} commands.  Durations as short as 128th notes may be
60 specified.  Shorter values are possible, but only as beamed notes.
61
62 @c Two 64th notes are needed to obtain beams
63 @lilypond[quote,verbatim,relative=2]
64 \time 8/1
65 c\longa c\breve c1 c2
66 c4 c8 c16 c32 c64 c128 c128
67 @end lilypond
68
69 Here are the same durations with automatic beaming turned off.
70
71 @c not strictly "writing rhythms"; more of a "displaying" thing,
72 @c but it's ok here.  -gp
73 @lilypond[quote,verbatim,relative=2]
74 \time 8/1
75 \autoBeamOff
76 c\longa c\breve c1 c2
77 c4 c8 c16 c32 c64 c128 c128
78 @end lilypond
79
80 A note with the duration of a quadruple breve may be entered with
81 @code{\maxima}, but this is supported only within ancient music
82 notation.  For details, see @ref{Ancient notation}.
83
84 @cindex duration, default
85 @cindex default note duration
86 @cindex note duration, default
87
88 If the duration is omitted, it is set to the previously
89 entered duration.  The default for the first note is a quarter
90 note.
91
92 @lilypond[quote,verbatim,relative=2]
93 a a a2 a a4 a a1 a
94 @end lilypond
95
96 @cindex notes, dotted
97 @cindex dotted notes
98 @cindex notes, double-dotted
99 @cindex double-dotted notes
100
101 @funindex .
102
103 To obtain dotted note lengths, place a dot (@code{.}) after the
104 duration.  Double-dotted notes are specified by appending two
105 dots, and so on.
106
107 @lilypond[quote,verbatim,relative=2]
108 a4 b c4. b8 a4. b4.. c8.
109 @end lilypond
110
111 Some durations cannot be represented with just binary durations
112 and dots; they can be represented only by tying two or more
113 notes together.  For details, see @ref{Ties}.
114
115 For ways of specifying durations for the syllables of lyrics and
116 ways of aligning lyrics to notes, see @ref{Vocal music}.
117
118 Optionally, notes can be spaced strictly proportionately to their
119 duration.  For details of this and other settings which control
120 proportional notation, see @ref{Proportional notation}.
121
122 @funindex \dotsUp
123 @funindex dotsUp
124 @funindex \dotsDown
125 @funindex dotsDown
126 @funindex \dotsNeutral
127 @funindex dotsNeutral
128
129 Dots are normally moved up to avoid staff lines, except in
130 polyphonic situations.  Dots may be manually placed above or below
131 the staff; see @ref{Direction and placement}.
132
133
134 @predefined
135 @code{\autoBeamOn},
136 @code{\autoBeamOff},
137 @code{\dotsUp},
138 @code{\dotsDown},
139 @code{\dotsNeutral}.
140 @endpredefined
141
142
143 @seealso
144 Music Glossary:
145 @rglos{breve},
146 @rglos{longa},
147 @rglos{maxima},
148 @rglos{note value},
149 @rglos{Duration names notes and rests}.
150
151 Notation Reference:
152 @ref{Automatic beams},
153 @ref{Ties},
154 @ref{Stems},
155 @ref{Writing rhythms},
156 @ref{Writing rests},
157 @ref{Vocal music},
158 @ref{Ancient notation},
159 @ref{Proportional notation}.
160
161 Snippets:
162 @rlsr{Rhythms}.
163
164 Internals Reference:
165 @rinternals{Dots},
166 @rinternals{DotColumn}.
167
168
169 @knownissues
170
171 @c Deliberately duplicated in Durations and Rests.  -gp
172 There is no fundamental limit to rest durations (both in terms of
173 longest and shortest), but the number of glyphs is limited:
174 rests from 128th to maxima (8 x whole) may be printed.
175
176
177 @node Tuplets
178 @unnumberedsubsubsec Tuplets
179
180 @cindex tuplets
181 @cindex triplets
182
183 @funindex \times
184 @funindex times
185
186 Tuplets are made from a music expression by multiplying all the
187 durations with a fraction:
188
189 @example
190 \times @var{fraction} @{ @var{music} @}
191 @end example
192
193 @noindent
194 The duration of @var{music} will be multiplied by the
195 fraction.  The fraction's denominator will be printed over or
196 under the notes, optionally with a bracket.  The most common
197 tuplet is the triplet in which 3 notes have the duration of 2, so
198 the notes are 2/3 of their written length.
199
200 @lilypond[quote,verbatim,relative=2]
201 a2 \times 2/3 { b4 b b }
202 c4 c \times 2/3 { b4 a g }
203 @end lilypond
204
205 @cindex tuplet bracket placement
206
207 @funindex \tupletUp
208 @funindex tupletUp
209 @funindex \tupletDown
210 @funindex tupletDown
211 @funindex \tupletNeutral
212 @funindex tupletNeutral
213
214 Tuplet brackets may be manually placed above or below the staff;
215 see @ref{Direction and placement}.
216
217 Tuplets may be nested:
218
219 @lilypond[quote,verbatim,relative=2]
220 \autoBeamOff
221 c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4
222 @end lilypond
223
224 Modifying nested tuplets which begin at the same musical moment
225 must be done with @code{\tweak}.
226
227 To modify the duration of notes without printing a tuplet bracket,
228 see @ref{Scaling durations}.
229
230
231 @predefined
232 @code{\tupletUp},
233 @code{\tupletDown},
234 @code{\tupletNeutral}.
235 @endpredefined
236
237
238 @snippets
239
240 @cindex tuplet formatting
241 @cindex triplet formatting
242
243 @funindex tupletNumberFormatFunction
244 @funindex tupletSpannerDuration
245
246 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
247 {entering-several-tuplets-using-only-one--times-command.ly}
248
249 @cindex Tuplet number changes
250
251 @funindex TupletNumber
252
253 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
254 {changing-the-tuplet-number.ly}
255
256 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
257 {non-default-tuplet-numbers.ly}
258
259 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
260 {controlling-tuplet-bracket-visibility.ly}
261
262 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
263 {permitting-line-breaks-within-beamed-tuplets.ly}
264
265
266 @seealso
267 Music Glossary:
268 @rglos{triplet},
269 @rglos{tuplet},
270 @rglos{polymetric}.
271
272 Learning Manual:
273 @rlearning{Tweaking methods}.
274
275 Notation Reference:
276 @ref{Time administration},
277 @ref{Scaling durations},
278 @ref{The tweak command},
279 @ref{Polymetric notation}.
280
281 Snippets:
282 @rlsr{Rhythms}.
283
284 Internals Reference:
285 @rinternals{TupletBracket},
286 @rinternals{TupletNumber},
287 @rinternals{TimeScaledMusic}.
288
289
290 @cindex grace notes within tuplet brackets
291
292 @knownissues
293 When the first note on a staff is a grace note followed by a
294 tuplet the grace note must be placed before the @code{\times}
295 command to avoid errors.  Anywhere else, grace notes may be
296 placed within tuplet brackets.
297
298
299 @node Scaling durations
300 @unnumberedsubsubsec Scaling durations
301
302 @cindex scaling durations
303 @cindex durations, scaling
304
305 You can alter the duration of single notes, rests or chords by a
306 fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if @code{M}
307 is 1) to the duration.  This will not affect the appearance of the
308 notes or rests produced, but the altered duration will be used in
309 calculating the position within the measure and setting the duration
310 in the MIDI output.  Multiplying factors may be combined such as
311 @code{*L*M/N}.
312
313 In the following example, the first three notes take up exactly
314 two beats, but no triplet bracket is printed.
315
316 @lilypond[quote,relative=2,verbatim]
317 \time 2/4
318 % Alter durations to triplets
319 a4*2/3 gis4*2/3 a4*2/3
320 % Normal durations
321 a4 a4
322 % Double the duration of chord
323 <a d>4*2
324 % Duration of quarter, appears like sixteenth
325 b16*4 c4
326 @end lilypond
327
328 The duration of spacing notes may also be modified by
329 a multiplier.  This is useful for skipping many measures, e.g.,
330 @code{s1*23}.
331
332 @cindex compressing music
333 @cindex expanding music
334
335 @funindex \scaleDurations
336 @funindex scaleDurations
337
338 Longer stretches of music may be compressed by a fraction in the
339 same way, as if every note, chord or rest had the fraction as a
340 multiplier.  This leaves the appearance of the music unchanged but
341 the internal duration of the notes will be multiplied by the
342 fraction @emph{num}/@emph{den}.  The spaces around the dot are
343 required.  Here is an example showing how music can be compressed
344 and expanded:
345
346 @lilypond[quote,relative=2,verbatim]
347 \time 2/4
348 % Normal durations
349 <c a>4 c8 a
350 % Scale music by *2/3
351 \scaleDurations #'(2 . 3) {
352   <c a f>4. c8 a f
353 }
354 % Scale music by *2
355 \scaleDurations #'(2 . 1) {
356   <c' a>4 c8 b
357 }
358 @end lilypond
359
360 One application of this command is in polymetric
361 notation, see @ref{Polymetric notation}.
362
363
364 @seealso
365 Notation Reference:
366 @ref{Tuplets},
367 @ref{Invisible rests},
368 @ref{Polymetric notation}.
369
370 Snippets:
371 @rlsr{Rhythms}.
372
373
374 @node Ties
375 @unnumberedsubsubsec Ties
376
377 @cindex tie
378
379 @funindex ~
380
381 A tie connects two adjacent note heads of the same pitch.  The tie
382 in effect extends the duration of a note.
383
384 @warning{Ties should not be confused with @emph{slurs}, which
385 indicate articulation, or @emph{phrasing slurs}, which indicate
386 musical phrasing.  A tie is just a way of extending a note
387 duration, similar to the augmentation dot.}
388
389 A tie is entered using the tilde symbol (@code{~}).
390
391 @lilypond[quote,verbatim,relative=2]
392 a2 ~ a
393 @end lilypond
394
395 Ties are used either when the note crosses a bar line, or when
396 dots cannot be used to denote the rhythm.  Ties should also be
397 used when note values cross larger subdivisions of the measure:
398
399 @lilypond[verbatim,quote]
400 \relative c' {
401   r8 c8 ~ c2 r4 |
402   r8^"not" c2 ~ c8 r4
403 }
404 @end lilypond
405
406 If you need to tie many notes across bar lines, it may be
407 easier to use automatic note splitting, see @ref{Automatic note
408 splitting}.  This mechanism automatically splits long notes, and
409 ties them across bar lines.
410
411 @cindex ties and chords
412 @cindex chords and ties
413
414 When a tie is applied to a chord, all note heads whose pitches
415 match are connected.  When no note heads match, no ties will be
416 created.  Chords may be partially tied by placing the tie inside
417 the chord.
418
419 @lilypond[quote,verbatim,relative=1]
420 <c e g> ~ <c e g>
421 <c~ e g~ b> <c e g b>
422 @end lilypond
423
424 @cindex repeating ties
425 @cindex ties, repeating
426 @cindex volta brackets and ties
427 @cindex ties and volta brackets
428
429 @funindex \repeatTie
430 @funindex repeatTie
431
432 When a second alternative of a repeat starts with a tied note, you
433 have to specify the repeated tie as follows:
434
435 @lilypond[quote,relative=2,verbatim]
436 \repeat volta 2 { c g <c e>2 ~ }
437 \alternative {
438   % First alternative: following note is tied normally
439   { <c e>2. r4 }
440   % Second alternative: following note has a repeated tie
441   { <c e>2\repeatTie d4 c } }
442 @end lilypond
443
444 @cindex laissez vibrer
445 @cindex ties, laissez vibrer
446
447 @funindex \laissezVibrer
448 @funindex laissezVibrer
449
450 @notation{L.v.}@: ties (@notation{laissez vibrer}) indicate that
451 notes must not be damped at the end.  It is used in notation for
452 piano, harp and other string and percussion instruments.  They can
453 be entered as follows:
454
455 @lilypond[quote,verbatim,relative=1]
456 <c f g>1\laissezVibrer
457 @end lilypond
458
459 @cindex ties, placement
460
461 @funindex \tieUp
462 @funindex tieUp
463 @funindex \tieDown
464 @funindex tieDown
465 @funindex \tieNeutral
466 @funindex tieNeutral
467
468 Ties may be manually placed above or below the staff; see
469 @ref{Direction and placement}.
470
471 @cindex ties, appearance
472 @cindex ties, dotted
473 @cindex ties, dashed
474 @cindex dashed ties
475 @cindex dotted ties
476
477 @funindex \tieDotted
478 @funindex tieDotted
479 @funindex \tieDashed
480 @funindex tieDashed
481 @funindex \tieSolid
482 @funindex tieSolid
483
484 Ties may be made dashed, dotted, or a combination of solid and
485 dashed.
486
487 @lilypond[quote, verbatim, relative=1]
488 \tieDotted
489 c2 ~ c
490 \tieDashed
491 c2 ~ c
492 \tieHalfDashed
493 c2 ~ c
494 \tieHalfSolid
495 c2 ~ c
496 \tieSolid
497 c2 ~ c
498 @end lilypond
499
500 Custom dash patterns can be specified:
501
502 @lilypond[quote, verbatim, relative=1]
503 \tieDashPattern #0.3 #0.75
504 c2 ~ c
505 \tieDashPattern #0.7 #1.5
506 c2 ~ c
507 \tieSolid
508 c2 ~ c
509 @end lilypond
510
511 Dash pattern definitions for ties have the same structure as
512 dash pattern definitions for slurs.
513 For more information about complex dash patterns,
514 see the snippets under @ref{Slurs}.
515
516 @predefined
517 @code{\tieUp},
518 @code{\tieDown},
519 @code{\tieNeutral},
520 @code{\tieDotted},
521 @code{\tieDashed},
522 @code{\tieDashPattern},
523 @code{\tieHalfDashed},
524 @code{\tieHalfSolid},
525 @code{\tieSolid}.
526 @endpredefined
527
528
529 @snippets
530
531 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
532 {using-ties-with-arpeggios.ly}
533
534 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
535 {engraving-ties-manually.ly}
536
537
538 @seealso
539 Music Glossary:
540 @rglos{tie},
541 @rglos{laissez vibrer}.
542
543 Notation Reference:
544 @ref{Slurs},
545 @ref{Automatic note splitting}.
546
547 Snippets:
548 @rlsr{Rhythms}.
549
550 Internals Reference:
551 @rinternals{LaissezVibrerTie},
552 @rinternals{LaissezVibrerTieColumn},
553 @rinternals{TieColumn},
554 @rinternals{Tie}.
555
556
557 @knownissues
558
559 Switching staves when a tie is active will not produce a slanted
560 tie.
561
562 Changing clefs or octavations during a tie is not really
563 well-defined.  In these cases, a slur may be preferable.
564
565
566
567 @node Writing rests
568 @subsection Writing rests
569
570 Rests are entered as part of the music in music expressions.
571
572 @menu
573 * Rests::
574 * Invisible rests::
575 * Full measure rests::
576 @end menu
577
578 @node Rests
579 @unnumberedsubsubsec Rests
580
581 @cindex rest
582 @cindex rest, entering durations
583 @cindex maxima rest
584 @cindex longa rest
585 @cindex breve rest
586
587 @funindex \rest
588 @funindex rest
589 @funindex r
590 @funindex \maxima
591 @funindex maxima
592 @funindex \longa
593 @funindex longa
594 @funindex \breve
595 @funindex breve
596
597 Rests are entered like notes with the note name @code{r}.
598 Durations longer than a whole rest use the predefined
599 commands shown:
600
601 @c \time 16/1 is used to avoid spurious bar lines
602 @c and long tracts of empty measures
603 @lilypond[fragment,quote,verbatim]
604 \new Staff {
605   % These two lines are just to prettify this example
606   \time 16/1
607   \override Staff.TimeSignature #'stencil = ##f
608   % Print a maxima rest, equal to four breves
609   r\maxima
610   % Print a longa rest, equal to two breves
611   r\longa
612   % Print a breve rest
613   r\breve
614   r1 r2 r4 r8 r16 r32 r64 r128
615 }
616 @end lilypond
617
618 @cindex rest, multi-measure
619 @cindex rest, whole-measure
620
621 Whole measure rests, centered in the middle of the measure, must be
622 entered as multi-measure rests.  They can be used for a single
623 measure as well as many measures and are discussed in @ref{Full
624 measure rests}.
625
626 @cindex rest, specifying vertical position
627
628 To explicitly specify a rest's vertical position, write a note
629 followed by @code{\rest}.  A rest of the duration of the note will
630 be placed at the staff position where the note would appear.  This
631 allows for precise manual formatting of polyphonic music, since the
632 automatic rest collision formatter will not move these rests.
633
634 @lilypond[quote,verbatim,relative=2]
635 a4\rest d4\rest
636 @end lilypond
637
638 @snippets
639
640 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
641 {rest-styles.ly}
642
643
644 @seealso
645 Music Glossary:
646 @rglos{breve},
647 @rglos{longa},
648 @rglos{maxima}.
649
650 Notation Reference:
651 @ref{Full measure rests}.
652
653 Snippets:
654 @rlsr{Rhythms}.
655
656 Internals Reference:
657 @rinternals{Rest}.
658
659
660 @knownissues
661
662 @c Deliberately duplicated in Durations and Rests.  -gp
663 There is no fundamental limit to rest durations (both in terms of
664 longest and shortest), but the number of glyphs is limited: there
665 are rests from 128th to maxima (8 x whole).
666
667
668 @node Invisible rests
669 @unnumberedsubsubsec Invisible rests
670
671 @cindex skip
672 @cindex invisible rest
673 @cindex rest, invisible
674 @cindex spacer note
675 @cindex spacer rest
676
677 @funindex s
678 @funindex \skip
679 @funindex skip
680
681 An invisible rest (also called a @q{spacer rest}) can be entered
682 like a note with the note name@tie{}@code{s}:
683
684 @lilypond[verbatim,quote,relative=2]
685 c4 c s c
686 s2 c
687 @end lilypond
688
689 @cindex lyrics, skip
690
691 Spacer rests are available only in note mode and chord mode.  In
692 other situations, for example, when entering lyrics, the
693 command @code{\skip} is used to skip a musical moment.
694 @code{\skip} requires an explicit duration.
695
696 @lilypond[quote,verbatim,relative=2]
697 <<
698   {
699     a2 \skip2 a2 a2
700   }
701   \new Lyrics {
702     \lyricmode {
703       foo2 \skip 1 bla2
704     }
705   }
706 >>
707 @end lilypond
708
709 Because @code{\skip} is a command, it does not affect the default
710 durations of following notes, unlike@tie{}@code{s}.
711
712 @lilypond[quote,verbatim,relative=2]
713 <<
714   {
715     \repeat unfold 8 {a4}
716   }
717   {
718     a4 \skip 2 a |
719     s2 a
720   }
721 >>
722 @end lilypond
723
724
725 A spacer rest implicitly causes @code{Staff} and @code{Voice}
726 contexts to be created if none exist, just like notes and rests
727 do:
728
729 @lilypond[quote,verbatim,fragment]
730 s1 s s
731 @end lilypond
732
733 @code{\skip} simply skips musical time; it creates no output of
734 any kind.
735
736 @lilypond[quote,verbatim,fragment]
737 % This is valid input, but does nothing
738 \skip 1 \skip1 \skip 1
739 @end lilypond
740
741
742 @seealso
743 Learning Manual:
744 @rlearning{Visibility and color of objects}.
745
746 Notation Reference:
747 @ref{Hidden notes},
748 @ref{Visibility of objects}.
749
750 Snippets:
751 @rlsr{Rhythms}.
752
753 Internals Reference:
754 @rinternals{SkipMusic}.
755
756
757 @node Full measure rests
758 @unnumberedsubsubsec Full measure rests
759
760 @cindex multi-measure rests
761 @cindex full-measure rests
762 @cindex rest, multi-measure
763 @cindex rest, full-measure
764 @cindex whole rest for a full measure
765 @cindex rest, whole for a full measure
766
767 @funindex R
768
769 Rests for one or more full measures are entered like notes with
770 the note name uppercase @code{R}:
771
772 @lilypond[quote,verbatim,relative=2]
773 % Rest measures contracted to single measure
774 \compressFullBarRests
775 R1*4
776 R1*24
777 R1*4
778 b2^"Tutti" b4 a4
779 @end lilypond
780
781 The duration of full-measure rests is identical to the duration
782 notation used for notes.  The duration in a multi-measure rest must
783 always be an integral number of measure-lengths, so augmentation dots
784 or fractions must often be used:
785
786 @lilypond[quote,fragment,verbatim]
787 \compressFullBarRests
788 \time 2/4
789 R1 | R2 |
790 \time 3/4
791 R2. | R2.*2 |
792 \time 13/8
793 R1*13/8 | R1*13/8*12 |
794 \time 10/8
795 R4*5*4 |
796 @end lilypond
797
798 A full-measure rest is printed as either a whole or breve rest,
799 centered in the measure, depending on the time signature.
800
801 @lilypond[quote,verbatim,fragment]
802 \time 4/4
803 R1 |
804 \time 6/4
805 R1*3/2 |
806 \time 8/4
807 R1*2 |
808 @end lilypond
809
810 @cindex multi-measure rest, expanding
811 @cindex multi-measure rest, contracting
812
813 @funindex \expandFullBarRests
814 @funindex expandFullBarRests
815 @funindex \compressFullBarRests
816 @funindex compressFullBarRests
817
818 By default a multi-measure rest is expanded in the printed score to
819 show all the rest measures explicitly.  Alternatively, a multi-measure
820 rest can be shown as a single measure containing a multi-measure rest
821 symbol, with the number of measures of rest printed above the measure:
822
823 @lilypond[quote,fragment,verbatim]
824 % Default behavior
825 \time 3/4 r2. | R2.*2 |
826 \time 2/4 R2 |
827 \time 4/4
828 % Rest measures contracted to single measure
829 \compressFullBarRests
830 r1 | R1*17 | R1*4 |
831 % Rest measures expanded
832 \expandFullBarRests
833 \time 3/4
834 R2.*2 |
835 @end lilypond
836
837
838 @cindex text on multi-measure rest
839 @cindex multi-measure rest, attaching text
840 @cindex script on multi-measure rest
841 @cindex multi-measure rest, script
842 @cindex fermata on multi-measure rest
843 @cindex multi-measure rest, attaching fermata
844 @cindex markup on multi-measure rest
845 @cindex multi-measure rest with markup
846
847 @funindex \fermataMarkup
848 @funindex fermataMarkup
849 @funindex MultiMeasureRestText
850
851 Markups can be added to multi-measure rests.
852 The predefined command @code{\fermataMarkup}
853 is provided for adding fermatas.
854
855 @lilypond[quote,verbatim,fragment]
856 \compressFullBarRests
857 \time 3/4
858 R2.*10^\markup { \italic "ad lib." }
859 R2.^\fermataMarkup
860 @end lilypond
861
862 @warning{
863 Markups attached to a multi-measure rest are
864 objects of type @code{MultiMeasureRestText}, not
865 @code{TextScript}.  Overrides must be directed to the correct
866 object, or they will be ignored.  See the following example.
867 }
868
869 @lilypond[quote,verbatim,fragment]
870 % This fails, as the wrong object name is specified
871 \override TextScript #'padding = #5
872 R1^"wrong"
873 % This is correct and works
874 \override MultiMeasureRestText #'padding = #5
875 R1^"right"
876 @end lilypond
877
878 When a multi-measure rest immediately follows a @code{\partial}
879 setting, resulting bar-check warnings may not be displayed.
880
881
882 @funindex \textLengthOn
883 @funindex textLengthOn
884 @funindex \textLengthOff
885 @funindex textLenthOff
886 @funindex \fermataMarkup
887 @funindex fermataMarkup
888 @funindex \compressFullBarRests
889 @funindex compressFullBarRests
890 @funindex \expandFullBarRests
891 @funindex expandFullBarRests
892
893 @predefined
894 @code{\textLengthOn},
895 @code{\textLengthOff},
896 @code{\fermataMarkup},
897 @code{\compressFullBarRests},
898 @code{\expandFullBarRests}.
899 @endpredefined
900
901
902 @snippets
903
904 @cindex church rest
905 @cindex rest, church
906 @cindex kirchenpausen
907
908 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
909 {changing-form-of-multi-measure-rests.ly}
910
911 @cindex multi-measure rests, positioning
912 @cindex positioning multi-measure rests
913
914 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
915 {positioning-multi-measure-rests.ly}
916
917 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
918 {multi-measure-rest-markup.ly}
919
920
921 @seealso
922 Music Glossary:
923 @rglos{multi-measure rest}.
924
925 Notation Reference:
926 @ref{Durations},
927 @ref{Text},
928 @ref{Formatting text},
929 @ref{Text scripts}.
930
931 Snippets:
932 @rlsr{Rhythms}.
933
934 Internals Reference:
935 @rinternals{MultiMeasureRest},
936 @rinternals{MultiMeasureRestNumber},
937 @rinternals{MultiMeasureRestText}.
938
939
940 @cindex fingerings and multi-measure rests
941 @cindex multi-measure rests and fingerings
942
943 @knownissues
944
945 If an attempt is made to use fingerings (e.g.,
946 @code{R1*10-4}) to put numbers over multi-measure rests, the
947 fingering numeral (4) may collide with the bar counter
948 numeral (10).
949
950 @cindex condensing rests
951 @cindex rest, condensing ordinary
952
953 There is no way to automatically condense multiple ordinary rests
954 into a single multi-measure rest.
955
956 @cindex rest, collisions of
957
958 Multi-measure rests do not take part in rest collisions.
959
960 @node Displaying rhythms
961 @subsection Displaying rhythms
962
963 @menu
964 * Time signature::
965 * Upbeats::
966 * Unmetered music::
967 * Polymetric notation::
968 * Automatic note splitting::
969 * Showing melody rhythms::
970 @end menu
971
972 @node Time signature
973 @unnumberedsubsubsec Time signature
974
975 @cindex time signature
976 @cindex meter
977
978 @funindex \time
979 @funindex time
980
981 The time signature is set as follows:
982
983 @lilypond[quote,verbatim,relative=2]
984 \time 2/4 c2
985 \time 3/4 c2.
986 @end lilypond
987
988 @cindex time signature, visibility of
989
990 Time signatures are printed at the beginning of a piece
991 and whenever the time signature changes.  If a change takes place
992 at the end of a line a warning time signature sign is printed
993 there.  This default behavior may be changed, see
994 @ref{Visibility of objects}.
995
996 @lilypond[quote,verbatim,relative=2]
997 \time 2/4
998 c2 c
999 \break
1000 c c
1001 \break
1002 \time 4/4
1003 c c c c
1004 @end lilypond
1005
1006 @cindex time signature style
1007 @cindex meter style
1008
1009 @funindex \numericTimeSignature
1010 @funindex numericTimeSignature
1011 @funindex \defaultTimeSignature
1012 @funindex defaultTimeSignature
1013
1014 The time signature symbol that is used in 2/2 and 4/4 time can be
1015 changed to a numeric style:
1016
1017 @lilypond[quote,verbatim,relative=2]
1018 % Default style
1019 \time 4/4 c1
1020 \time 2/2 c1
1021 % Change to numeric style
1022 \numericTimeSignature
1023 \time 4/4 c1
1024 \time 2/2 c1
1025 % Revert to default style
1026 \defaultTimeSignature
1027 \time 4/4 c1
1028 \time 2/2 c1
1029 @end lilypond
1030
1031
1032 Mensural time signatures are covered in
1033 @ref{Mensural time signatures}.
1034
1035
1036 @predefined
1037 @code{\numericTimeSignature},
1038 @code{\defaultTimeSignature}.
1039 @endpredefined
1040
1041
1042 @snippets
1043
1044 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1045 {changing-the-time-signature-without-affecting-the-beaming.ly}
1046
1047 @cindex compound time signatures
1048 @cindex time signature, compound
1049
1050 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
1051 {compound-time-signatures.ly}
1052
1053 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
1054 {time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly}
1055
1056
1057 @seealso
1058 Music Glossary:
1059 @rglos{time signature}
1060
1061 Notation Reference:
1062 @ref{Mensural time signatures},
1063 @ref{Time administration}.
1064
1065 Snippets:
1066 @rlsr{Rhythms}.
1067
1068 Internals Reference:
1069 @rinternals{TimeSignature},
1070 @rinternals{Timing_translator}.
1071
1072
1073 @node Upbeats
1074 @unnumberedsubsubsec Upbeats
1075
1076 @cindex anacrusis
1077 @cindex upbeat
1078 @cindex partial measure
1079 @cindex measure, partial
1080 @cindex pickup measure
1081 @cindex measure, change length
1082
1083 @funindex measurePosition
1084 @funindex \partial
1085 @funindex partial
1086
1087 Partial or pick-up measures, such as an anacrusis or upbeat, are
1088 entered using the @code{\partial} command, with the syntax
1089
1090 @example
1091 \partial @var{duration}
1092 @end example
1093
1094 @noindent
1095 where @code{duration} is the rhythmic length of the remaining
1096 interval of the current measure before the start of the next.
1097
1098 @lilypond[quote,verbatim,relative=2]
1099 \partial 4 e4 |
1100 a2. c,4 |
1101 @end lilypond
1102
1103 The partial measure can be any duration less than the full measure:
1104
1105 @lilypond[quote,verbatim,relative=2]
1106 \partial 8*3 c8 d e |
1107 a2. c,4 |
1108 @end lilypond
1109
1110 Internally, @code{\partial @var{duration}} is translated into:
1111
1112 @example
1113 \set Timing.measurePosition -@var{duration}
1114 @end example
1115
1116 For example, @code{\partial 8*3} becomes:
1117
1118 @example
1119 \set Timing.measurePosition = #(ly:make-moment -3 8)
1120 @end example
1121
1122 The property @code{measurePosition} contains a rational number
1123 indicating how much of the measure has passed at this point.  Note
1124 that this is set to a negative number by the @code{\partial} command:
1125 i.e., @code{\partial 4} is internally translated to @code{-4}, meaning
1126 @qq{there is a quarter note left in the measure.}
1127
1128 @seealso
1129 Music Glossary:
1130 @rglos{anacrusis}.
1131
1132 Notation Reference:
1133 @ref{Grace notes}.
1134
1135 Snippets:
1136 @rlsr{Rhythms}.
1137
1138 Internal Reference:
1139 @rinternals{Timing_translator}.
1140
1141 @knownissues
1142
1143 The @code{\partial} command is intended to be used only at the
1144 beginning of a piece.  If you use it after the beginning, some
1145 odd warnings or effects may occur, in this case use
1146 @code{\set Timing.measurePosition} instead.
1147
1148 @node Unmetered music
1149 @unnumberedsubsubsec Unmetered music
1150
1151 @cindex bar lines, turning off
1152 @cindex bar numbering, turning off
1153 @cindex cadenza
1154 @cindex unmetered music
1155
1156 @funindex \cadenzaOn
1157 @funindex cadenzaOn
1158 @funindex \cadenzaOff
1159 @funindex cadenzaOff
1160
1161 Bar lines and bar numbers are calculated automatically.  For
1162 unmetered music (some cadenzas, for example), this is not desirable.
1163 To turn off automatic calculation of bar lines and bar numbers,
1164 use the command @code{\cadenzaOn}, and use @code{\cadenzaOff}
1165 to turn them on again.
1166
1167 @lilypond[verbatim,relative=2,fragment]
1168 c4 d e d
1169 \cadenzaOn
1170 c4 c d8 d d f4 g4.
1171 \cadenzaOff
1172 \bar "|"
1173 d4 e d c
1174 @end lilypond
1175
1176 Bar numbering is resumed at the end of the cadenza as if the
1177 cadenza were not there:
1178
1179 @lilypond[verbatim,relative=2,fragment]
1180 % Show all bar numbers
1181 \override Score.BarNumber #'break-visibility = #all-visible
1182 c4 d e d
1183 \cadenzaOn
1184 c4 c d8 d d f4 g4.
1185 \cadenzaOff
1186 \bar "|"
1187 d4 e d c
1188 @end lilypond
1189
1190 Note that these predefined commands affect all staves in the
1191 score, even when they are placed in just one @code{Voice}
1192 context.  To change this, move the @code{Timing_translator}
1193 from the @code{Score} context to the @code{Staff} context, as
1194 shown in @ref{Polymetric notation}.
1195
1196 @predefined
1197 @code{\cadenzaOn},
1198 @code{\cadenzaOff}.
1199 @endpredefined
1200
1201
1202 @seealso
1203 Music Glossary:
1204 @rglos{cadenza}.
1205
1206 Notation Reference:
1207 @ref{Visibility of objects},
1208 @ref{Polymetric notation}.
1209
1210 Snippets:
1211 @rlsr{Rhythms}.
1212
1213
1214 @cindex cadenza line breaks
1215 @cindex cadenza page breaks
1216 @cindex unmetered music, line breaks
1217 @cindex unmetered music, page breaks
1218 @cindex breaks in unmetered music
1219 @cindex line breaks in cadenzas
1220 @cindex page breaks in cadenzas
1221 @cindex line breaks in unmetered music
1222 @cindex page breaks in unmetered music
1223
1224 @knownissues
1225
1226 LilyPond will insert line breaks and page breaks only at a
1227 bar line.  Unless the unmetered music ends before the end of the
1228 staff line, you will need to insert invisible bar lines with
1229
1230 @example
1231 \bar ""
1232 @end example
1233
1234 @noindent
1235 to indicate where breaks can occur.
1236
1237 You must explicitly create a @code{Voice} context when starting a
1238 piece with @code{\cadenzaOn}, otherwise strange errors may occur.
1239
1240 @lilypond[verbatim,relative=2,fragment]
1241 \new Voice \relative c'{
1242   \cadenzaOn
1243   c16^"Solo Free Time" d e f g2. \bar "||"
1244   \cadenzaOff
1245 }
1246 @end lilypond
1247
1248
1249 @node Polymetric notation
1250 @unnumberedsubsubsec Polymetric notation
1251
1252 @c This section necessarily uses \set
1253 @c This is acceptable  -td
1254
1255 @cindex double time signatures
1256 @cindex signatures, polymetric
1257 @cindex time signatures, polymetric
1258 @cindex time signatures, double
1259 @cindex polymetric signatures
1260 @cindex meter, polymetric
1261
1262 @funindex timeSignatureFraction
1263 @funindex \scaleDurations
1264 @funindex scaleDurations
1265 @funindex \times
1266 @funindex times
1267
1268 Polymetric notation is supported, either explicitly or by modifying
1269 the visible time signature symbol and scaling the note durations.
1270
1271 @strong{@i{Staves with different time signatures, equal measure lengths}}
1272
1273 This notation can be created by setting a common time signature
1274 for each staff but replacing the symbol manually by setting
1275 @code{timeSignatureFraction} to the desired fraction and scaling
1276 the printed durations in each staff to the common time
1277 signature; see @ref{Time signature}.  The scaling is done with
1278 @code{\scaleDurations}, which is used in a similar way to
1279 @code{\times}, but does not create a tuplet bracket; see
1280 @ref{Scaling durations}.
1281
1282 @cindex beaming in polymetric music
1283 @cindex beaming in polymetric meter
1284
1285 In this example, music with the time signatures of 3/4, 9/8, and
1286 10/8 are used in parallel.  In the second staff, shown durations
1287 are multiplied by 2/3, as 2/3 * 9/8 = 3/4, and in the third
1288 staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
1289 It will often be necessary to insert beams manually, as the
1290 duration scaling affects the autobeaming rules.
1291
1292 @lilypond[quote,verbatim,fragment]
1293 \relative c' <<
1294   \new Staff {
1295     \time 3/4
1296     c4 c c |
1297     c c c |
1298   }
1299   \new Staff {
1300     \time 3/4
1301     \set Staff.timeSignatureFraction = #'(9 . 8)
1302     \scaleDurations #'(2 . 3)
1303     \repeat unfold 6 { c8[ c c] }
1304   }
1305   \new Staff {
1306     \time 3/4
1307     \set Staff.timeSignatureFraction = #'(10 . 8)
1308     \scaleDurations #'(3 . 5) {
1309       \repeat unfold 2 { c8[ c c] }
1310       \repeat unfold 2 { c8[ c] } |
1311       c4. c4. \times 2/3 { c8[ c c] } c4
1312     }
1313   }
1314 >>
1315 @end lilypond
1316
1317 @strong{@i{Staves with different time signatures, unequal bar lengths}}
1318
1319 Each staff can be given its own independent time signature by
1320 moving the @code{Timing_translator} and the
1321 @code{Default_bar_line_engraver} to the @code{Staff} context.
1322
1323 @lilypond[quote,verbatim]
1324 \layout {
1325   \context {
1326     \Score
1327     \remove "Timing_translator"
1328     \remove "Default_bar_line_engraver"
1329   }
1330   \context {
1331     \Staff
1332     \consists "Timing_translator"
1333     \consists "Default_bar_line_engraver"
1334   }
1335 }
1336
1337 % Now each staff has its own time signature.
1338
1339 \relative c' <<
1340   \new Staff {
1341     \time 3/4
1342     c4 c c |
1343     c4 c c |
1344   }
1345   \new Staff {
1346     \time 2/4
1347     c4 c |
1348     c4 c |
1349     c4 c |
1350   }
1351   \new Staff {
1352     \time 3/8
1353     c4. |
1354     c8 c c |
1355     c4. |
1356     c8 c c |
1357   }
1358 >>
1359 @end lilypond
1360
1361 @snippets
1362
1363 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1364 {compound-time-signatures.ly}
1365
1366
1367 @seealso
1368 Music Glossary:
1369 @rglos{polymetric},
1370 @rglos{polymetric time signature},
1371 @rglos{meter}.
1372
1373 Notation Reference:
1374 @ref{Time signature},
1375 @ref{Scaling durations}.
1376
1377 Snippets:
1378 @rlsr{Rhythms}.
1379
1380 Internals Reference:
1381 @rinternals{TimeSignature},
1382 @rinternals{Timing_translator},
1383 @rinternals{Default_bar_line_engraver},
1384 @rinternals{Staff}.
1385
1386
1387 @knownissues
1388
1389 When using different time signatures in parallel, notes
1390 at the same moment will be placed at the same horizontal
1391 location.  However, the bar lines in the different staves
1392 will cause the note spacing to be less regular in each of the
1393 individual staves than would be normal without the different
1394 time signatures.
1395
1396 @node Automatic note splitting
1397 @unnumberedsubsubsec Automatic note splitting
1398
1399 @cindex notes, splitting
1400 @cindex splitting notes
1401
1402 @funindex Note_heads_engraver
1403 @funindex Completion_heads_engraver
1404
1405 Long notes which overrun bar lines can be converted automatically
1406 to tied notes.  This is done by replacing the
1407 @code{Note_heads_engraver} with the
1408 @code{Completion_heads_engraver}.  In the following
1409 example, notes crossing the bar lines are split and tied.
1410
1411 @lilypond[quote,verbatim,relative=1]
1412 \new Voice \with {
1413   \remove "Note_heads_engraver"
1414   \consists "Completion_heads_engraver"
1415 }
1416
1417 { c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
1418 @end lilypond
1419
1420 This engraver splits all running notes at the bar line, and
1421 inserts ties.  One of its uses is to debug complex scores: if the
1422 measures are not entirely filled, then the ties show exactly how
1423 much each measure is off.
1424
1425
1426 @seealso
1427 Music Glossary:
1428 @rglos{tie}
1429
1430 Learning Manual:
1431 @rlearning{Engravers explained},
1432 @rlearning{Adding and removing engravers}.
1433
1434 Snippets:
1435 @rlsr{Rhythms}.
1436
1437 Internals Reference:
1438 @rinternals{Note_heads_engraver},
1439 @rinternals{Completion_heads_engraver},
1440 @rinternals{Forbid_line_break_engraver}.
1441
1442
1443 @knownissues
1444
1445 Not all durations (especially those containing tuplets) can be
1446 represented exactly with normal notes and dots, but the
1447 @code{Completion_heads_engraver} will not insert tuplets.
1448
1449 The @code{Completion_heads_engraver} only affects notes; it does not
1450 split rests.
1451
1452
1453 @node Showing melody rhythms
1454 @unnumberedsubsubsec Showing melody rhythms
1455
1456 @cindex melody rhythms, showing
1457 @cindex rhythms, showing melody
1458
1459 Sometimes you might want to show only the rhythm of a melody.  This
1460 can be done with the rhythmic staff.  All pitches of notes on such a
1461 staff are squashed, and the staff itself has a single line
1462
1463 @lilypond[quote,relative=1,verbatim]
1464 <<
1465   \new RhythmicStaff {
1466     \new Voice = "myRhythm" {
1467       \time 4/4
1468       c4 e8 f g2
1469       r4 g g f
1470       g1
1471     }
1472   }
1473   \new Lyrics {
1474     \lyricsto "myRhythm" {
1475       This is my song
1476       I like to sing
1477     }
1478   }
1479 >>
1480 @end lilypond
1481
1482 @cindex guitar chord charts
1483 @cindex strumming rhythms, showing
1484 @cindex guitar strumming rhythms, showing
1485
1486 @funindex Pitch_squash_engraver
1487 @funindex \improvisationOn
1488 @funindex improvisationOn
1489 @funindex \improvisationOff
1490 @funindex improvisationOff
1491
1492 Guitar chord charts often show the strumming rhythms.  This can
1493 be done with the @code{Pitch_squash_engraver} and
1494 @code{\improvisationOn}.
1495
1496
1497 @lilypond[quote,verbatim]
1498 <<
1499   \new ChordNames {
1500     \chordmode {
1501       c1 f g c
1502     }
1503   }
1504
1505   \new Voice \with {
1506     \consists Pitch_squash_engraver
1507   } \relative c'' {
1508     \improvisationOn
1509     c4 c8 c c4 c8 c
1510     f4 f8 f f4 f8 f
1511     g4 g8 g g4 g8 g
1512     c4 c8 c c4 c8 c
1513   }
1514 >>
1515 @end lilypond
1516
1517
1518 @predefined
1519 @code{\improvisationOn},
1520 @code{\improvisationOff}.
1521 @endpredefined
1522
1523
1524 @snippets
1525
1526 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1527 {guitar-strum-rhythms.ly}
1528
1529
1530 @seealso
1531 Snippets:
1532 @rlsr{Rhythms}.
1533
1534 Internals Reference:
1535 @rinternals{RhythmicStaff},
1536 @rinternals{Pitch_squash_engraver}.
1537
1538
1539 @node Beams
1540 @subsection Beams
1541
1542 @menu
1543 * Automatic beams::
1544 * Setting automatic beam behavior::
1545 * Manual beams::
1546 * Feathered beams::
1547 @end menu
1548
1549 @node Automatic beams
1550 @unnumberedsubsubsec Automatic beams
1551
1552 By default, beams are inserted automatically:
1553
1554 @cindex beams, manual
1555 @cindex manual beams
1556 @cindex beams, setting rules for
1557 @cindex beams, custom rules for
1558
1559 @funindex \autoBeamOn
1560 @funindex autoBeamOn
1561 @funindex \autoBeamOff
1562 @funindex autoBeamOff
1563
1564 @lilypond[quote,verbatim,relative=2]
1565 \time 2/4 c8 c c c
1566 \time 6/8 c c c c8. c16 c8
1567 @end lilypond
1568
1569 If these automatic decisions are not satisfactory, beaming can be
1570 entered explicitly; see @ref{Manual beams}.  Beams @emph{must} be
1571 entered manually if beams are to be extended over rests.
1572
1573 If automatic beaming is not required, it may be turned off with
1574 @code{\autoBeamOff} and on with @code{\autoBeamOn}:
1575
1576 @lilypond[quote,relative=1,verbatim]
1577 c4 c8 c8. c16 c8. c16 c8
1578 \autoBeamOff
1579 c4 c8 c8. c16 c8.
1580 \autoBeamOn
1581 c16 c8
1582 @end lilypond
1583
1584 @cindex melismata, beams
1585 @cindex beams and melismata
1586
1587 @warning{If beams are used to indicate melismata in songs, then
1588 automatic beaming should be switched off with @code{\autoBeamOff}
1589 and the beams indicated manually.}
1590
1591 Beaming patterns that differ from the automatic defaults can be
1592 created; see @ref{Setting automatic beam behavior}.
1593
1594
1595 @predefined
1596 @code{\autoBeamOff},
1597 @code{\autoBeamOn}.
1598 @endpredefined
1599
1600
1601 @snippets
1602
1603 @cindex line breaks and beams
1604 @cindex beams and line breaks
1605
1606 @funindex breakable
1607
1608 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1609 {beams-across-line-breaks.ly}
1610
1611 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1612 {changing-beam-knee-gap.ly}
1613
1614
1615 @seealso
1616 Notation Reference:
1617 @ref{Manual beams},
1618 @ref{Setting automatic beam behavior}.
1619
1620 Installed Files:
1621 @file{scm/@/auto@/-beam@/.scm}.
1622
1623 Snippets:
1624 @rlsr{Rhythms}.
1625
1626 Internals Reference:
1627 @rinternals{Auto_beam_engraver},
1628 @rinternals{Beam_engraver},
1629 @rinternals{Beam},
1630 @rinternals{BeamEvent},
1631 @rinternals{BeamForbidEvent},
1632 @rinternals{beam-interface},
1633 @rinternals{unbreakable-spanner-interface}.
1634
1635
1636 @knownissues
1637
1638 Beams can collide with note heads and accidentals in other voices.
1639
1640
1641 @node Setting automatic beam behavior
1642 @unnumberedsubsubsec Setting automatic beam behavior
1643
1644
1645 @cindex automatic beams, tuning
1646 @cindex tuning automatic beaming
1647 @cindex automatic beam generation
1648 @cindex autobeam
1649 @cindex lyrics and beaming
1650
1651 @funindex autoBeaming
1652 @funindex beamSettings
1653 @funindex measureLength
1654 @funindex beatLength
1655 @funindex \time
1656 @funindex time
1657 @funindex \set
1658 @funindex set
1659
1660 The placement of automatic beams is determined by the time signature.
1661 Three types of rules are used for determining the end of automatic
1662 beams: @emph{default} rules
1663 for the time signature, @emph{explicit} rules for the beam in the time
1664 signature, and the @emph{beatLength} for the time signature.
1665
1666 The following rules, in order of priority, apply when determining
1667 the appearance of beams:
1668
1669 @itemize
1670 @item
1671 If a manual beam is specified with @code{[..]} set the beam
1672 as specified, otherwise
1673
1674 @item
1675 if @code{\autoBeamOff} is in force do not beam, otherwise
1676
1677 @item
1678 if an explicit beam-ending rule is defined for the beam type
1679 in the time signature, use it to determine the valid
1680 places where beams may end, otherwise
1681
1682 @item
1683 if a default beam-ending rule is defined in the time signature,
1684 use it to group notes with beams, otherwise
1685
1686 @item
1687 use the value of @code{beatLength} to group notes with beams
1688
1689 @end itemize
1690
1691 @i{@strong{Modifying the grouping of beats}}
1692
1693 By default @code{beatLength} is
1694 derived from the time signature set by the @code{\time} command.
1695 The @code{beatLength} is set to be one over the denominator
1696 of the time signature.
1697
1698 @code{beatLength} is a @i{moment},
1699 a unit of musical duration.  A quantity of type @i{moment} is
1700 created by the scheme function @code{ly:make-moment}.  For more
1701 information about this function, see @ref{Time administration}.
1702
1703 Autobeam settings are stored in the
1704 @code{beamSettings} property.  Default values of @code{beamSettings}
1705 are determined in @file{scm/@/beam@/-settings@/.scm}.  Entries in
1706 @code{beamSettings} are indexed by time signature and
1707 rule type.
1708
1709 Time signature should be a scheme pair , e.g. @code{#'(4 . 4)}.
1710
1711 Rule type should be @code{#'end} for beam ending.
1712
1713 The ending rules consist of a scheme alist
1714 (or list of pairs) that
1715 indicates the beam type and the grouping to be applied to
1716 beams containing notes with a shortest duration of that
1717 beam type.
1718
1719 @example
1720 #'((beam-type1 . grouping-1)
1721    (beam-type2 . grouping-2)
1722    (beam-type3 . grouping-3))
1723 @end example
1724
1725 Beam type is either a scheme pair indicating the duration
1726 of the beam, e.g. @code{(1 . 16)}, or @code{*} to indicate a
1727 default rule, which applies to all beams if no explicit rule is
1728 defined.
1729
1730 Grouping is a scheme list indicating the grouping to be applied to
1731 the beam.  For default rules (where beam type is
1732 @code{*}, the grouping is in units of @code{beatLength}.
1733 For explicit rules, the grouping is in units of the beam type.
1734
1735 For reference, the default beaming rules are found in
1736 @file{scm/beam-settings.scm}.
1737
1738 Beam settings are changed with
1739 @code{\overrideBeamSettings} and @code{\revertBeamSettings}.
1740
1741 @warning{
1742 The ending settings must be
1743 @emph{complete} rules.  That is, every rule that should apply to
1744 the current time signature must be included in the setting.
1745 It is not possible to change the grouping of only one beam type
1746 for a given time signature.  While this may seem cumbersome,
1747 it means that the current beaming settings need not be known
1748 in order to specify a new beaming pattern.}
1749
1750 @lilypond[quote,relative=2,verbatim]
1751 \time 5/16
1752 c8^"beats" c16 c8 |
1753 \overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (2 3)))
1754 c8^"(2+3)" c16 c8
1755 \overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (3 2)))
1756 c8^"(3+2)" c16 c8
1757 @end lilypond
1758
1759 Beam setting changes can be limited to specific contexts.  If no
1760 setting is included in a lower-level context, the setting of the
1761 enclosing context will apply.
1762
1763 @lilypond[quote, verbatim,relative=1]
1764 \new Staff <<
1765   \time 7/8
1766   \new Voice = one {
1767     \relative c'' {
1768       \overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (2 3 2)))
1769         a8 a a a a a a
1770     }
1771   }
1772   \new Voice  = two {
1773     \relative c' {
1774       \voiceTwo
1775       \overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (1 3 3)))
1776       f8 f f f f f f
1777     }
1778   }
1779 >>
1780 @end lilypond
1781
1782 When multiple voices are used the @code{Staff} context must be
1783 specified if the beaming is to be applied to all voices in the
1784 staff:
1785
1786 @lilypond[quote,verbatim,relative=2]
1787 \time 7/8
1788 % rhythm 3-1-1-2
1789 % Context Voice specified --  does not work correctly
1790 % Because of autogenerated voices, all beating will
1791 % be at beatLength (1 . 8)
1792 \overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (3 1 1 2)))
1793 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
1794
1795 % Works correctly with context Staff specified
1796 \overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (3 1 1 2)))
1797 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
1798 @end lilypond
1799
1800 @funindex revertBeamSettings
1801
1802 Beam settings can be reverted to get back to default behavior.  This
1803 is accomplished by using @code{\revertBeamSettings}.  The arguments
1804 are the same as for @code{\overrideBeamSettings}, except no value
1805 for @var{grouping} is given:
1806
1807 @example
1808 \revertBeamSettings context time-signature rule-type
1809 @end example
1810
1811
1812 @lilypond[quote,verbatim,relative=2]
1813 \time 4/4
1814 \repeat unfold 8 {a8}
1815 % set default rule for (1 1 1 1) grouping
1816 \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1 1)))
1817 \repeat unfold 8 {a8}
1818 % revert the new rule
1819 \revertBeamSettings #'Score #'(4 . 4) #'end
1820 \repeat unfold 8 {a8}
1821 @end lilypond
1822
1823
1824 @predefined
1825 @code{\overrideBeamSettings},
1826 @code{\revertBeamSettings}.
1827 @endpredefined
1828
1829
1830 @snippets
1831
1832 @cindex beams, subdividing
1833
1834 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1835 {sub-dividing-beams.ly}
1836
1837 @cindex measure groupings
1838 @cindex beats, grouping
1839 @cindex grouping beats
1840 @cindex measure sub-grouping
1841
1842 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1843 {conducting-signs,-measure-grouping-signs.ly}
1844
1845 @cindex beam, last in score
1846 @cindex beam, last in polyphonic voice
1847
1848 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1849 {beam-endings-in-score-context.ly}
1850
1851
1852 @seealso
1853 Installed files:
1854 @file{scm/beam-settings.scm}.
1855
1856 Snippets:
1857 @rlsr{Rhythms}.
1858
1859 Internals Reference:
1860 @rinternals{Auto_beam_engraver},
1861 @rinternals{Beam},
1862 @rinternals{BeamForbidEvent},
1863 @rinternals{beam-interface}.
1864
1865
1866 @knownissues
1867
1868 If a score ends while an automatic beam has not been ended and is
1869 still accepting notes, this last beam will not be typeset at all.
1870 The same holds for polyphonic voices, entered with @code{<<
1871 @dots{} \\ @dots{} >>}.  If a polyphonic voice ends while an
1872 automatic beam is still accepting notes, it is not typeset.
1873 The workaround for these problems is to manually beam the last
1874 beam in the voice or score.
1875
1876 @node Manual beams
1877 @unnumberedsubsubsec Manual beams
1878
1879 @cindex beams, manual
1880 @cindex manual beams
1881
1882 @funindex ]
1883 @funindex [
1884
1885 In some cases it may be necessary to override the automatic
1886 beaming algorithm.  For example, the autobeamer will not put beams
1887 over rests or bar lines, and in choral scores the beaming is
1888 often set to follow the meter of the lyrics rather than the
1889 notes.  Such beams can be specified manually by
1890 marking the begin and end point with @code{[} and @code{]}.
1891
1892 @lilypond[quote,relative=1,verbatim]
1893 r4 r8[ g' a r8] r8 g[ | a] r8
1894 @end lilypond
1895
1896 @cindex manual beams, direction shorthand for
1897
1898 Beaming direction can be set manually using direction indicators:
1899
1900 @lilypond[quote,relative=2,verbatim]
1901 c8^[ d e] c,_[ d e f g]
1902 @end lilypond
1903
1904 @funindex \noBeam
1905 @funindex noBeam
1906
1907 Individual notes may be marked with @code{\noBeam} to prevent them
1908 from being beamed:
1909
1910 @lilypond[quote,verbatim,relative=2]
1911 \time 2/4
1912 c8 c\noBeam c c
1913 @end lilypond
1914
1915 @funindex stemLeftBeamCount
1916 @funindex stemRightBeamCount
1917
1918 Even more strict manual control with the beams can be achieved by
1919 setting the properties @code{stemLeftBeamCount} and
1920 @code{stemRightBeamCount}.  They specify the number of beams to
1921 draw on the left and right side, respectively, of the next note.
1922 If either property is set, its value will be used only once, and
1923 then it is erased.  In this example, the last @code{f} is printed
1924 with only one beam on the left side, i.e., the eighth-note beam of
1925 the group as a whole.
1926
1927 @lilypond[quote,relative=2,verbatim]
1928 a8[ r16 f g a]
1929 a8[ r16
1930 \set stemLeftBeamCount = #2
1931 \set stemRightBeamCount = #1
1932 f16
1933 \set stemLeftBeamCount = #1
1934 g16 a]
1935 @end lilypond
1936
1937
1938 @predefined
1939 @code{\noBeam}.
1940 @endpredefined
1941
1942
1943 @snippets
1944
1945 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1946 {flat-flags-and-beam-nibs.ly}
1947
1948
1949 @seealso
1950 Notation Reference:
1951 @ref{Direction and placement}.
1952
1953 Snippets:
1954 @rlsr{Rhythms}.
1955
1956 Internals Reference:
1957 @rinternals{Beam},
1958 @rinternals{BeamEvent},
1959 @rinternals{Beam_engraver},
1960 @rinternals{beam-interface},
1961 @rinternals{Stem_engraver}.
1962
1963
1964 @node Feathered beams
1965 @unnumberedsubsubsec Feathered beams
1966
1967 @cindex beams, feathered
1968 @cindex feathered beams
1969
1970 @funindex \featherDurations
1971 @funindex featherDurations
1972 @funindex grow-direction
1973
1974 Feathered beams are used to indicate that a small group of notes
1975 should be played at an increasing (or decreasing) tempo, without
1976 changing the overall tempo of the piece.  The extent of the
1977 feathered beam must be indicated manually using @code{[} and
1978 @code{]}, and the beam feathering is turned on by specifying a
1979 direction to the @code{Beam} property @code{grow-direction}.
1980
1981 If the placement of the notes and the sound in the MIDI output is to
1982 reflect the ritardando or accelerando indicated by the feathered beam
1983 the notes must be grouped as a music expression delimited by braces
1984 and preceded by a @code{featherDurations} command which specifies
1985 the ratio between the durations of the first and last notes in the
1986 group.
1987
1988 The square brackets show the extent of the beam and the braces show
1989 which notes are to have their durations modified.  Normally these
1990 would delimit the same group of notes, but this is not required: the
1991 two commands are independent.
1992
1993 In the following example the eight 16th notes occupy exactly the
1994 same time as a half note, but the first note is one half as long
1995 as the last one, with the intermediate notes gradually
1996 lengthening.  The first four 32nd notes gradually speed up, while
1997 the last four 32nd notes are at a constant tempo.
1998
1999 @lilypond[relative=1,verbatim,quote]
2000 \override Beam #'grow-direction = #LEFT
2001 \featherDurations #(ly:make-moment 2 1)
2002 { c16[ c c c c c c c] }
2003 \override Beam #'grow-direction = #RIGHT
2004 \featherDurations #(ly:make-moment 2 3)
2005 { c32[ d e f] }
2006 % revert to non-feathered beams
2007 \override Beam #'grow-direction = #'()
2008 { g32[ a b c] }
2009 @end lilypond
2010
2011 @noindent
2012 The spacing in the printed output represents the
2013 note durations only approximately, but the MIDI output is exact.
2014
2015
2016 @predefined
2017 @code{\featherDurations}.
2018 @endpredefined
2019
2020 @seealso
2021 Snippets:
2022 @rlsr{Rhythms}.
2023
2024
2025 @knownissues
2026
2027 The @code{\featherDurations} command only works with very short
2028 music snippets, and when numbers in the fraction are small.
2029
2030
2031 @node Bars
2032 @subsection Bars
2033
2034
2035 @menu
2036 * Bar lines::
2037 * Bar numbers::
2038 * Bar and bar number checks::
2039 * Rehearsal marks::
2040 @end menu
2041
2042 @node Bar lines
2043 @unnumberedsubsubsec Bar lines
2044
2045 @cindex bar lines
2046 @cindex measure lines
2047 @cindex closing bar lines
2048 @cindex bar lines, closing
2049 @cindex double bar lines
2050 @cindex bar lines, double
2051 @cindex repeat bars
2052
2053 @funindex \bar
2054 @funindex bar
2055
2056 Bar lines delimit measures, and are also used to indicate
2057 repeats.  Normally, simple bar lines are automatically inserted
2058 into the printed output at places based on the current time
2059 signature.
2060
2061 The simple bar lines inserted automatically can be changed to
2062 other types with the @code{\bar} command.  For example, a closing
2063 double bar line is usually placed at the end of a piece:
2064
2065 @lilypond[quote,relative=1,verbatim]
2066 e4 d c2 \bar "|."
2067 @end lilypond
2068
2069 It is not invalid if the final note in a measure does not
2070 end on the automatically entered bar line: the note is assumed
2071 to carry over into the next measure.  But if a long sequence
2072 of such carry-over measures appears the music can appear compressed
2073 or even flowing off the page.  This is because automatic line
2074 breaks happen only at the end of complete measures, i.e., where
2075 all notes end before the end of a measure.
2076
2077 @warning{An incorrect duration can cause line breaks to be
2078 inhibited, leading to a line of highly compressed music or
2079 music which flows off the page.}
2080
2081 @cindex line breaks
2082 @cindex bar lines, invisible
2083 @cindex measure lines, invisible
2084
2085 Line breaks are also permitted at manually inserted bar lines
2086 even within incomplete measures.  To allow a line break without
2087 printing a bar line, use the following:
2088
2089 @example
2090 \bar ""
2091 @end example
2092
2093 @noindent
2094 This will insert an invisible bar line and allow (but not
2095 force) a line break to occur at this point.  The bar number
2096 counter is not increased.  To force a line break see
2097 @ref{Line breaking}.
2098
2099 @cindex manual bar lines
2100 @cindex manual measure lines
2101 @cindex bar lines, manual
2102 @cindex measure lines, manual
2103
2104 This and other special bar lines may be inserted manually at any
2105 point.  When they coincide with the end of a measure they replace
2106 the simple bar line which would have been inserted there
2107 automatically.  When they do not coincide with the end of a measure
2108 the specified bar line is inserted at that point in the printed
2109 output.
2110
2111 Note that manual bar lines are purely visual.  They do not affect
2112 any of the properties that a normal bar line would affect, such as
2113 measure numbers, accidentals, line breaks, etc.  They do not affect
2114 the calculation and placement of subsequent automatic bar lines.
2115 When a manual bar line is placed where a normal bar line already
2116 exists, the effects of the original bar line are not altered.
2117
2118 Two types of simple bar lines and five types of double bar lines are
2119 available for manual insertion:
2120
2121 @lilypond[quote,relative=1,verbatim]
2122 f1 \bar "|"
2123 f1 \bar "."
2124 g1 \bar "||"
2125 a1 \bar ".|"
2126 b1 \bar ".|."
2127 c1 \bar "|.|"
2128 d1 \bar "|."
2129 e1
2130 @end lilypond
2131
2132 @noindent
2133 together with dotted and dashed bar lines:
2134
2135 @lilypond[quote,relative=1,verbatim]
2136 f1 \bar ":"
2137 g1 \bar "dashed"
2138 a1
2139 @end lilypond
2140
2141 @noindent
2142 and five types of repeat bar line:
2143
2144 @lilypond[quote,relative=1,verbatim]
2145 f1 \bar "|:"
2146 g1 \bar ":|:"
2147 a1 \bar ":|.|:"
2148 b1 \bar ":|.:"
2149 c1 \bar ":|"
2150 d1
2151 @end lilypond
2152
2153 Additionally, a bar line can be printed as a simple tick:
2154 @lilypond[quote,relative=1,verbatim]
2155 f1 \bar "'"
2156 @end lilypond
2157 However, as such ticks are typically used in Gregorian chant, it is
2158 preferable to use @code{\divisioMinima} there instead, described in
2159 the section @ref{Divisiones} in Gregorian chant.
2160
2161 @cindex segno
2162
2163 For in-line segno signs, there are three types of bar lines which
2164 differ in their behavior at line breaks:
2165
2166 @lilypond[quote,relative=2,verbatim]
2167 c4 c c c
2168 \bar "S"
2169 c4 c c c \break
2170 \bar "S"
2171 c4 c c c
2172 \bar "|S"
2173 c4 c c c \break
2174 \bar "|S"
2175 c4 c c c
2176 \bar "S|"
2177 c4 c c c \break
2178 \bar "S|"
2179 c1
2180 @end lilypond
2181
2182 @cindex repeats
2183
2184 Although the bar line types signifying repeats may be inserted
2185 manually they do not in themselves cause LilyPond to recognize
2186 a repeated section.  Such repeated sections are better entered
2187 using the various repeat commands (see @ref{Repeats}), which
2188 automatically print the appropriate bar lines.
2189
2190 In addition, you can specify @code{"||:"}, which is equivalent to
2191 @code{"|:"} except at line breaks, where it gives a double bar
2192 line at the end of the line and a start repeat at the beginning of
2193 the next line.
2194
2195 @lilypond[quote,relative=2,verbatim]
2196 c4 c c c
2197 \bar "||:"
2198 c4 c c c \break
2199 \bar "||:"
2200 c4 c c c
2201 @end lilypond
2202
2203 For combinations of repeats with the segno sign, there are six different
2204 variations:
2205
2206 @lilypond[quote,relative=2,verbatim]
2207 c4 c c c
2208 \bar ":|S"
2209 c4 c c c \break
2210 \bar ":|S"
2211 c4 c c c
2212 \bar ":|S."
2213 c4 c c c \break
2214 \bar ":|S."
2215 c4 c c c
2216 \bar "S|:"
2217 c4 c c c \break
2218 \bar "S|:"
2219 c4 c c c
2220 \bar ".S|:"
2221 c4 c c c \break
2222 \bar ".S|:"
2223 c4 c c c
2224 \bar ":|S|:"
2225 c4 c c c \break
2226 \bar ":|S|:"
2227 c4 c c c
2228 \bar ":|S.|:"
2229 c4 c c c \break
2230 \bar ":|S.|:"
2231 c1
2232 @end lilypond
2233
2234
2235 In scores with many staves, a @code{\bar} command in one staff is
2236 automatically applied to all staves.  The resulting bar lines are
2237 connected between different staves of a @code{StaffGroup},
2238 @code{PianoStaff}, or @code{GrandStaff}.
2239
2240 @lilypond[quote,relative=1,verbatim]
2241 <<
2242   \new StaffGroup <<
2243     \new Staff {
2244       e4 d
2245       \bar "||"
2246       f4 e
2247     }
2248     \new Staff { \clef bass c4 g e g }
2249   >>
2250   \new Staff { \clef bass c2 c2 }
2251 >>
2252 @end lilypond
2253
2254
2255 @cindex default bar lines, changing
2256 @cindex bar lines, default, changing
2257
2258 @snippets
2259
2260 @funindex whichBar
2261 @funindex defaultBarType
2262 @funindex \bar
2263 @funindex bar
2264 @funindex bartype
2265
2266 The command @code{\bar }@var{bartype} is a shortcut for
2267 @code{\set Timing.whichBar = }@var{bartype}.  A bar line is
2268 created whenever the @code{whichBar} property is set.
2269
2270 The default bar type used for automatically inserted bar lines is
2271 @code{"|"}.  This may be changed at any time
2272 with @code{\set Timing.defaultBarType = }@var{bartype}.
2273
2274
2275 @seealso
2276 Notation Reference:
2277 @ref{Line breaking},
2278 @ref{Repeats},
2279 @ref{Grouping staves}.
2280
2281 Snippets:
2282 @rlsr{Rhythms}.
2283
2284 Internals Reference:
2285 @rinternals{BarLine} (created at @code{Staff} level),
2286 @rinternals{SpanBar} (across staves),
2287 @rinternals{Timing_translator} (for Timing properties).
2288
2289
2290 @node Bar numbers
2291 @unnumberedsubsubsec Bar numbers
2292
2293 @cindex bar numbers
2294 @cindex measure numbers
2295 @cindex numbers, bar
2296 @cindex numbers, measure
2297
2298 @funindex currentBarNumber
2299
2300 Bar numbers are typeset by default at the start of every line except
2301 the first line.  The number itself is stored in the
2302 @code{currentBarNumber} property, which is normally updated
2303 automatically for every measure.  It may also be set manually:
2304
2305 @lilypond[verbatim,quote,relative=1]
2306 c1 c c c
2307 \break
2308 \set Score.currentBarNumber = #50
2309 c1 c c c
2310 @end lilypond
2311
2312 @cindex bar numbers, regular spacing
2313
2314 @funindex barNumberVisibility
2315 @funindex BarNumber
2316
2317 Bar numbers can be typeset at regular intervals instead of just at
2318 the beginning of every line.  To do this the default behavior
2319 must be overridden to permit bar numbers to be printed at places
2320 other than the start of a line.  This is controlled by the
2321 @code{break-visibility} property of @code{BarNumber}.  This takes
2322 three values which may be set to @code{#t} or @code{#f} to specify
2323 whether the corresponding bar number is visible or not.  The order
2324 of the three values is @code{end of line visible}, @code{middle of
2325 line visible}, @code{beginning of line visible}.  In the following
2326 example bar numbers are printed at all possible places:
2327
2328 @lilypond[verbatim,quote,relative=1]
2329 \override Score.BarNumber #'break-visibility = #'#(#t #t #t)
2330 \set Score.currentBarNumber = #11
2331 % Permit first bar number to be printed
2332 \bar ""
2333 c1 | c | c | c
2334 \break
2335 c1 | c | c | c
2336 @end lilypond
2337
2338
2339 @snippets
2340
2341 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
2342 {printing-the-bar-number-for-the-first-measure.ly}
2343
2344 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
2345 {printing-bar-numbers-at-regular-intervals.ly}
2346
2347 @cindex measure number, format
2348 @cindex bar number, format
2349
2350 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
2351 {printing-bar-numbers-inside-boxes-or-circles.ly}
2352
2353 @cindex bar number alignment
2354
2355 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
2356 {aligning-bar-numbers.ly}
2357
2358 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
2359 {removing-bar-numbers-from-a-score.ly}
2360
2361
2362 @seealso
2363 Snippets:
2364 @rlsr{Rhythms}.
2365
2366 Internals Reference:
2367 @rinternals{BarNumber},
2368 @rinternals{Bar_number_engraver}.
2369
2370
2371 @cindex bar number collision
2372 @cindex collision, bar number
2373
2374 @knownissues
2375
2376 Bar numbers may collide with the top of the @code{StaffGroup} bracket,
2377 if there is one.  To solve this, the @code{padding} property of
2378 @code{BarNumber} can be used to position the number correctly.  See
2379 @rinternals{StaffGroup} and @rinternals{BarNumber} for more.
2380
2381
2382 @node Bar and bar number checks
2383 @unnumberedsubsubsec Bar and bar number checks
2384
2385 @cindex bar check
2386 @cindex bar number check
2387 @cindex measure check
2388 @cindex measure number check
2389
2390 @funindex barCheckSynchronize
2391 @funindex |
2392
2393 Bar checks help detect errors in the entered durations.  A bar check
2394 may be entered using the bar symbol, @code{|}, at any place where a
2395 bar line is expected to fall.  If bar check lines are encountered at
2396 other places, a list of warnings is printed in the log file, showing
2397 the line numbers and lines in which the bar checks failed.  In the
2398 next example, the second bar check will signal an error.
2399
2400 @example
2401 \time 3/4 c2 e4 | g2 |
2402 @end example
2403
2404 Bar checks can also be used in lyrics:
2405
2406 @example
2407 \lyricmode @{
2408   \time 2/4
2409   Twin -- kle | Twin -- kle |
2410 @}
2411 @end example
2412
2413 An incorrect duration can result in a completely garbled score,
2414 especially if the score is polyphonic, so a good place to start
2415 correcting input is by scanning for failed bar checks and
2416 incorrect durations.
2417
2418 If successive bar checks are off by the same musical interval,
2419 only the first warning message is displayed.  This allows the
2420 warning to focus on the source of the timing error.
2421
2422
2423 @funindex |
2424 @funindex pipeSymbol
2425
2426 It is also possible to redefine the action taken when a bar check
2427 or pipe symbol, @code{|}, is encountered in the input, so that
2428 it does something other than a bar check.  This is done by
2429 assigning a music expression to @code{pipeSymbol}.
2430 In the following example @code{|} is set to insert a double bar
2431 line wherever it appears in the input, rather than checking
2432 for end of bar.
2433
2434 @lilypond[quote,verbatim]
2435 pipeSymbol = \bar "||"
2436 {
2437   c'2 c'2 |
2438   c'2 c'2
2439   c'2 | c'2
2440   c'2 c'2
2441 }
2442 @end lilypond
2443
2444 @funindex \barNumberCheck
2445 @funindex barNumberCheck
2446
2447 When copying large pieces of music, it can be helpful to check that
2448 the LilyPond bar number corresponds to the original that you are
2449 entering from.  This can be checked with @code{\barNumberCheck}, for
2450 example,
2451
2452 @verbatim
2453 \barNumberCheck #123
2454 @end verbatim
2455
2456 @noindent
2457 will print a warning if the @code{currentBarNumber} is not 123
2458 when it is processed.
2459
2460
2461 @seealso
2462 Snippets:
2463 @rlsr{Rhythms}.
2464
2465
2466 @node Rehearsal marks
2467 @unnumberedsubsubsec Rehearsal marks
2468
2469 @cindex rehearsal marks
2470 @cindex mark, rehearsal
2471
2472 @funindex \mark
2473 @funindex mark
2474
2475 To print a rehearsal mark, use the @code{\mark} command.
2476
2477 @lilypond[quote,verbatim,relative=2]
2478 c1 \mark \default
2479 c1 \mark \default
2480 c1 \mark \default
2481 c1 \mark \default
2482 @end lilypond
2483
2484 @noindent
2485 The mark is incremented automatically if you use @code{\mark
2486 \default}, but you can also use an integer argument to set the
2487 mark manually.  The value to use is stored in the property
2488 @code{rehearsalMark}.
2489
2490 @lilypond[quote,verbatim,relative=2]
2491 c1 \mark \default
2492 c1 \mark \default
2493 c1 \mark #8
2494 c1 \mark \default
2495 c1 \mark \default
2496 @end lilypond
2497
2498 @noindent
2499 The letter@tie{}@q{I} is skipped in accordance with engraving
2500 traditions.  If you wish to include the letter @q{I}, then use one
2501 of the following commands, depending on which style of rehearsal mark
2502 you want (letters only, letters in a hollow box, or letters in a
2503 hollow circle).
2504
2505 @example
2506 \set Score.markFormatter = #format-mark-alphabet
2507 \set Score.markFormatter = #format-mark-box-alphabet
2508 \set Score.markFormatter = #format-mark-circle-alphabet
2509 @end example
2510
2511 @lilypond[quote,verbatim,relative=2]
2512 \set Score.markFormatter = #format-mark-box-alphabet
2513 c1 \mark \default
2514 c1 \mark \default
2515 c1 \mark #8
2516 c1 \mark \default
2517 c1 \mark \default
2518 @end lilypond
2519
2520 @cindex rehearsal mark format
2521 @cindex rehearsal mark style
2522 @cindex style, rehearsal mark
2523 @cindex format, rehearsal mark
2524 @cindex mark, rehearsal, style
2525 @cindex mark, rehearsal, format
2526 @cindex rehearsal mark, manual
2527 @cindex mark, rehearsal, manual
2528 @cindex custom rehearsal mark
2529 @cindex manual rehearsal mark
2530
2531 The style is defined by the property @code{markFormatter}.  It is
2532 a function taking the current mark (an integer) and the current
2533 context as argument.  It should return a markup object.  In the
2534 following example, @code{markFormatter} is set to a pre-defined
2535 procedure.  After a few measures, it is set to a procedure that
2536 produces a boxed number.
2537
2538 @lilypond[quote,verbatim,relative=2]
2539 \set Score.markFormatter = #format-mark-numbers
2540 c1 \mark \default
2541 c1 \mark \default
2542 \set Score.markFormatter = #format-mark-box-numbers
2543 c1 \mark \default
2544 \set Score.markFormatter = #format-mark-circle-numbers
2545 c1 \mark \default
2546 \set Score.markFormatter = #format-mark-circle-letters
2547 c1
2548 @end lilypond
2549
2550 The file @file{scm/@/translation@/-functions@/.scm} contains the
2551 definitions of @code{format-mark-numbers} (the default format),
2552 @code{format-mark-box-numbers}, @code{format-mark-letters} and
2553 @code{format-mark-box-letters}.  These can be used as inspiration
2554 for other formatting functions.
2555
2556 You may use @code{format-mark-barnumbers},
2557 @code{format-mark-box-barnumbers}, and
2558 @code{format-mark-circle-barnumbers} to get bar numbers instead of
2559 incremented numbers or letters.
2560
2561 Other styles of rehearsal mark can be specified manually:
2562
2563 @example
2564 \mark "A1"
2565 @end example
2566
2567 @noindent
2568 Note that @code{Score.markFormatter} does not affect marks specified
2569 in this manner.  However, it is possible to apply a @code{\markup} to the
2570 string.
2571
2572 @example
2573 \mark \markup@{ \box A1 @}
2574 @end example
2575
2576 @cindex segno
2577 @cindex coda
2578 @cindex D.S. al Fine
2579 @cindex fermata
2580 @cindex music glyphs
2581 @cindex glyphs, music
2582
2583 @funindex \musicglyph
2584 @funindex musicglyph
2585
2586 Music glyphs (such as the segno sign) may be printed inside a
2587 @code{\mark}
2588
2589 @lilypond[quote,verbatim,relative=1]
2590 c1 \mark \markup { \musicglyph #"scripts.segno" }
2591 c1 \mark \markup { \musicglyph #"scripts.coda" }
2592 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
2593 c1
2594 @end lilypond
2595
2596 @noindent
2597 See @ref{The Feta font}, for a list of symbols which may be
2598 printed with @code{\musicglyph}.
2599
2600 For common tweaks to the positioning of rehearsal marks, see
2601 @ref{Formatting text}.  For more precise control, see
2602 @code{break-alignable-interface} in @ref{Aligning objects}.
2603
2604
2605 @seealso
2606 Notation Reference:
2607 @ref{The Feta font},
2608 @ref{Formatting text},
2609 @ref{Aligning objects}.
2610
2611 Installed Files:
2612 @file{scm/@/translation@/-functions@/.scm} contains
2613 the definitions of @code{format-mark-numbers} and
2614 @code{format-mark-letters}.  They can be used as inspiration for
2615 other formatting functions.
2616
2617 Snippets:
2618 @rlsr{Rhythms}.
2619
2620 Internals Reference:
2621 @rinternals{MarkEvent},
2622 @rinternals{Mark_engraver},
2623 @rinternals{RehearsalMark}.
2624
2625
2626 @node Special rhythmic concerns
2627 @subsection Special rhythmic concerns
2628
2629
2630 @menu
2631 * Grace notes::
2632 * Aligning to cadenzas::
2633 * Time administration::
2634 @end menu
2635
2636 @node Grace notes
2637 @unnumberedsubsubsec Grace notes
2638
2639 @cindex ornaments
2640 @cindex grace notes
2641 @cindex appoggiatura
2642 @cindex acciaccatura
2643
2644 @funindex \grace
2645 @funindex grace
2646
2647 Grace notes are ornaments that are written out. Grace notes
2648 are printed in a smaller font and take up no logical time
2649 in a measure.
2650
2651 @lilypond[quote,relative=2,verbatim]
2652 c4 \grace c16 c4
2653 \grace { c16[ d16] } c2
2654 @end lilypond
2655
2656 LilyPond also supports two special types of grace notes, the
2657 @emph{acciaccatura} -- an unmeasured grace note indicated by a slurred
2658 small note with a slashed stem -- and the @emph{appoggiatura}, which
2659 takes a fixed fraction of the main note and appears in small print
2660 without a slash.
2661
2662 @lilypond[quote,relative=2,verbatim]
2663 \grace c8 b4
2664 \acciaccatura d8 c4
2665 \appoggiatura e8 d4
2666 \acciaccatura { g16[ f] } e4
2667 @end lilypond
2668
2669 The placement of grace notes is synchronized between different
2670 staves.  In the following example, there are two sixteenth grace
2671 notes for every eighth grace note
2672
2673 @lilypond[quote,relative=2,verbatim]
2674 <<
2675   \new Staff { e2 \grace { c16[ d e f] } e2 }
2676   \new Staff { c2 \grace { g8[ b] } c2 }
2677 >>
2678 @end lilypond
2679
2680 @cindex grace notes, following
2681
2682 @funindex \afterGrace
2683 @funindex afterGrace
2684
2685 If you want to end a note with a grace, use the @code{\afterGrace}
2686 command.  It takes two arguments: the main note, and the grace
2687 notes following the main note.
2688
2689 @lilypond[quote,verbatim,relative=2]
2690 c1 \afterGrace d1 { c16[ d] } c1
2691 @end lilypond
2692
2693 This will put the grace notes after a space lasting 3/4 of the
2694 length of the main note.  The default fraction 3/4 can be changed by
2695 setting @code{afterGraceFraction}.  The following example shows
2696 the results from setting the space at the default,  at 15/16, and
2697 finally at 1/2 of the main note.
2698
2699 @lilypond[quote,verbatim,relative=2]
2700 <<
2701   \new Staff {
2702     c1 \afterGrace d1 { c16[ d] } c1
2703   }
2704   \new Staff {
2705     #(define afterGraceFraction (cons 15 16))
2706     c1 \afterGrace d1 { c16[ d] } c1
2707   }
2708   \new Staff {
2709     #(define afterGraceFraction (cons 1 2))
2710     c1 \afterGrace d1 { c16[ d] } c1
2711   }
2712 >>
2713 @end lilypond
2714
2715 The space between the main note and the grace note may also be
2716 specified using spacers. The following example places the grace
2717 note after a space lasting 7/8 of the main note.
2718
2719 @lilypond[quote,verbatim,relative=2]
2720 \new Voice {
2721   <<
2722     { d1^\trill_( }
2723     { s2 s4. \grace { c16[ d] } }
2724   >>
2725   c1)
2726 }
2727 @end lilypond
2728
2729 @cindex tweaking grace notes
2730 @cindex grace notes, tweaking
2731 @cindex grace notes, changing layout settings
2732
2733 A @code{\grace} music expression will introduce special
2734 typesetting settings, for example, to produce smaller type, and
2735 set directions.  Hence, when introducing layout tweaks to
2736 override the special settings, they should be placed inside
2737 the grace expression.  The overrides should also be reverted
2738 inside the grace expression.  Here, the grace note's default stem
2739 direction is overridden and then reverted.
2740
2741 @lilypond[quote,verbatim,relative=2]
2742 \new Voice {
2743   \acciaccatura {
2744     \stemDown
2745     f16->
2746     \stemNeutral
2747   }
2748   g4 e c2
2749 }
2750 @end lilypond
2751
2752
2753 @cindex stem, with slash
2754
2755
2756 @snippets
2757
2758 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
2759 {using-grace-note-slashes-with-normal-heads.ly}
2760
2761 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
2762 {tweaking-grace-layout-within-music.ly}
2763
2764 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
2765 {redefining-grace-note-global-defaults.ly}
2766
2767 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
2768 {positioning-grace-notes-with-floating-space.ly}
2769
2770
2771 @seealso
2772 Music Glossary:
2773 @rglos{grace notes},
2774 @rglos{acciaccatura},
2775 @rglos{appoggiatura}.
2776
2777 Installed Files:
2778 @file{ly/@/grace@/-init@/.ly}.
2779
2780 Snippets:
2781 @rlsr{Rhythms}.
2782
2783 Internals Reference:
2784 @rinternals{GraceMusic},
2785 @rinternals{Grace_beam_engraver},
2786 @rinternals{Grace_engraver},
2787 @rinternals{Grace_spacing_engraver}.
2788
2789
2790 @knownissues
2791
2792 @cindex acciaccatura, multi-note
2793 @cindex multi-note acciaccatura
2794 @cindex grace-note synchronization
2795
2796 A multi-note beamed @i{acciaccatura} is printed without a slash,
2797 and looks exactly the same as a multi-note beamed
2798 @i{appoggiatura}.
2799
2800 @c TODO Add link to LSR snippet to add slash when available
2801
2802 Grace note synchronization can also lead to surprises.  Staff
2803 notation, such as key signatures, bar lines, etc., are also
2804 synchronized.  Take care when you mix staves with grace notes and
2805 staves without, for example,
2806
2807 @lilypond[quote,relative=2,verbatim]
2808 <<
2809   \new Staff { e4 \bar "|:" \grace c16 d2. }
2810   \new Staff { c4 \bar "|:" d2. }
2811 >>
2812 @end lilypond
2813
2814 @noindent
2815 This can be remedied by inserting grace skips of the corresponding
2816 durations in the other staves.  For the above example
2817
2818 @lilypond[quote,relative=2,verbatim]
2819 <<
2820   \new Staff { e4 \bar "|:" \grace c16 d2. }
2821   \new Staff { c4 \bar "|:" \grace s16 d2. }
2822 >>
2823 @end lilypond
2824
2825 Grace sections should only be used within sequential music
2826 expressions.  Nesting or juxtaposing grace sections is not
2827 supported, and might produce crashes or other errors.
2828
2829 @node Aligning to cadenzas
2830 @unnumberedsubsubsec Aligning to cadenzas
2831
2832 @cindex cadenza
2833 @cindex cadenza, aligning to
2834 @cindex aligning to cadenza
2835
2836 In an orchestral context, cadenzas present a special problem: when
2837 constructing a score that includes a measured cadenza or other solo
2838 passage, all other instruments should skip just as many notes as the
2839 length of the cadenza, otherwise they will start too soon or too late.
2840
2841 One solution to this problem is to use the functions
2842 @code{mmrest-of-length} and @code{skip-of-length}.  These Scheme
2843 functions take a defined piece of music as an argument and generate a
2844 multi-measure rest or @code{\skip} exactly as long as the piece.
2845
2846 @lilypond[verbatim,quote]
2847 MyCadenza = \relative c' {
2848   c4 d8 e f g g4
2849   f2 g4 g
2850 }
2851
2852 \new GrandStaff <<
2853   \new Staff {
2854     \MyCadenza c'1
2855     \MyCadenza c'1
2856   }
2857   \new Staff {
2858     #(ly:export (mmrest-of-length MyCadenza))
2859     c'1
2860     #(ly:export (skip-of-length MyCadenza))
2861     c'1
2862   }
2863 >>
2864 @end lilypond
2865
2866
2867 @seealso
2868 Music Glossary:
2869 @rglos{cadenza}.
2870
2871 Snippets:
2872 @rlsr{Rhythms}.
2873
2874
2875 @node Time administration
2876 @unnumberedsubsubsec Time administration
2877
2878 @cindex time administration
2879 @cindex timing (within the score)
2880 @cindex music, unmetered
2881 @cindex unmetered music
2882
2883 @funindex currentBarNumber
2884 @funindex measurePosition
2885 @funindex measureLength
2886
2887 Time is administered by the @code{Timing_translator}, which by
2888 default is to be found in the @code{Score} context.  An alias,
2889 @code{Timing}, is added to the context in which the
2890 @code{Timing_translator} is placed.
2891
2892 The following properties of @code{Timing} are used
2893 to keep track of timing within the score.
2894
2895 @cindex bar number
2896 @cindex measure number
2897
2898 @table @code
2899 @item currentBarNumber
2900 The current measure number.  For an example showing the
2901 use of this property see @ref{Bar numbers}.
2902
2903 @item measureLength
2904 The length of the measures in the current time signature.  For a
2905 4/4 time this is@tie{}1, and for 6/8 it is 3/4.  Its value
2906 determines when bar lines are inserted and how automatic beams
2907 should be generated.
2908
2909 @item measurePosition
2910 The point within the measure where we currently are.  This
2911 quantity is reset by subtracting @code{measureLength} whenever
2912 @code{measureLength} is reached or exceeded.  When that happens,
2913 @code{currentBarNumber} is incremented.
2914
2915 @item timing
2916 If set to true, the above variables are updated for every time
2917 step.  When set to false, the engraver stays in the current
2918 measure indefinitely.
2919
2920 @end table
2921
2922 Timing can be changed by setting any of these variables
2923 explicitly.  In the next example, the default 4/4 time
2924 signature is printed, but @code{measureLength} is set to 5/4.
2925 At 4/8 through the third measure, the @code{measurePosition} is
2926 advanced by 1/8 to 5/8, shortening that bar by 1/8.
2927 The next bar line then falls at 9/8 rather than 5/4.
2928
2929 @lilypond[quote,verbatim,relative=1]
2930 \set Score.measureLength = #(ly:make-moment 5 4)
2931 c1 c4
2932 c1 c4
2933 c4 c4
2934 \set Score.measurePosition = #(ly:make-moment 5 8)
2935 b4 b4 b8
2936 c4 c1
2937 @end lilypond
2938
2939 @noindent
2940 As the example illustrates, @code{ly:make-moment n m} constructs a
2941 duration of n/m of a whole note.  For example,
2942 @code{ly:make-moment 1 8} is an eighth note duration and
2943 @code{ly:make-moment 7 16} is the duration of seven sixteenths
2944 notes.
2945
2946
2947 @seealso
2948 Notation Reference:
2949 @ref{Bar numbers},
2950 @ref{Unmetered music}.
2951
2952 Snippets:
2953 @rlsr{Rhythms}.
2954
2955 Internals Reference:
2956 @rinternals{Timing_translator},
2957 @rinternals{Score}.
2958