]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/notation.itely
Minor additions and editing.
[lilypond.git] / Documentation / user / notation.itely
1 @c -*- coding: latin-1; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3
4 @c A menu is needed before every deeper *section nesting of @node's; run
5 @c     M-x texinfo-all-menus-update
6 @c to automatically fill in these menus before saving changes
7
8 @node Notation manual
9 @chapter Notation manual
10
11 This chapter describes all the different types of notation supported
12 by LilyPond.  It is intended as a reference for users who are already
13 somewhat familiar with LilyPond.
14
15 @menu
16 * Note entry::                  
17 * Easier music entry::          
18 * Staff notation::              
19 * Polyphony::                   
20 * Beaming::                     
21 * Accidentals::                 
22 * Expressive marks::            
23 * Repeats::                     
24 * Rhythmic music::              
25 * Piano music::                 
26 * Vocal music::                 
27 * Other instrument specific notation::  
28 * Tablatures::                  
29 * Popular music::               
30 * Orchestral music::            
31 * Ancient notation::            
32 * Contemporary notation::       
33 * Educational use::             
34 @end menu
35
36 @c FIXME: Note entry vs Music entry at top level menu is confusing.
37
38 @node Note entry
39 @section Note entry
40 @cindex Note entry
41
42 This section is about basic notation elements like notes, rests, and
43 related constructs, such as stems, tuplets and ties.
44
45 @menu
46 * Notes::                       
47 * Pitches::                     
48 * Chromatic alterations::       
49 * Micro tones::                 
50 * Chords::                      
51 * Rests::                       
52 * Skips::                       
53 * Durations::                   
54 * Augmentation dots::           
55 * Scaling durations::           
56 * Stems::                       
57 * Ties::                        
58 * Tuplets::                     
59 @end menu
60
61
62 @node Notes
63 @subsection Notes
64
65
66 A note is printed by specifying its pitch and then its duration,
67
68 @lilypond[quote,verbatim,raggedright]
69 { cis'4 d'8 e'16 c'16 }
70 @end lilypond
71
72
73 @node Pitches
74 @subsection Pitches
75
76 @cindex Pitch names
77 @cindex Note specification
78 @cindex pitches
79 @cindex entering notes
80
81 The most common syntax for pitch entry is used for standard notes and
82 @code{\chordmode} modes.  In these modes, pitches may be designated by
83 names.  The notes are specified by the letters @code{a} through
84 @code{g}.  The octave is formed with notes ranging from @code{c}
85 to @code{b}.  The pitch @code{c} is an octave below middle C and the
86 letters span the octave above that C
87
88 @lilypond[quote,fragment,verbatim]
89 \clef bass
90 a,4 b, c d e f g a b c' d' e' \clef treble f' g' a' b' c''
91 @end lilypond
92
93 @cindex note names, Dutch
94
95 A sharp is formed by adding @code{-is} to the end of a pitch name and
96 a flat is formed by adding @code{-es}.  Double sharps and double flats
97 are obtained by adding @code{-isis} or @code{-eses}.  These
98 names are the Dutch note names.  In Dutch, @code{aes} is contracted to
99 @code{as}, but both forms are accepted.  Similarly, both
100 @code{es} and @code{ees} are accepted
101
102 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
103 ceses4
104 ces
105 c
106 cis
107 cisis
108 @end lilypond
109
110 In accordance with standard typsetting rules, a natural sign is printed
111 before a sharp or flat if a previous accidental needs to be
112 cancelled.  To change this behaviour, use
113 @code{\set Staff.extraNatural = ##f}
114
115 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
116 ceses4 ces cis c
117 \set Staff.extraNatural = ##f
118 ceses4 ces cis c
119 @end lilypond
120
121 There are predefined sets of note names for various other languages.
122 To use them, include the language specific init file.  For
123 example: @code{\include "english.ly"}.  The available language files
124 and the note names they define are
125
126 @anchor{note name}
127 @anchor{note names}
128 @example
129                         Note Names               sharp       flat
130 nederlands.ly  c   d   e   f   g   a   bes b   -is         -es
131 english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat
132                                                -x (double)
133 deutsch.ly     c   d   e   f   g   a   b   h   -is         -es
134 norsk.ly       c   d   e   f   g   a   b   h   -iss/-is    -ess/-es
135 svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess
136 italiano.ly    do  re  mi  fa  sol la  sib si  -d          -b
137 catalan.ly     do  re  mi  fa  sol la  sib si  -d/-s       -b
138 espanol.ly     do  re  mi  fa  sol la  sib si  -s          -b
139 @end example
140
141 @cindex @code{'}
142 @cindex @code{,}
143
144
145
146 The optional octave specification takes the form of a series of
147 single quote (`@code{'}') characters or a series of comma
148 (`@code{,}') characters.  Each @code{'} raises the pitch by one
149 octave; each @code{,} lowers the pitch by an octave
150
151 @lilypond[quote,raggedright,fragment,verbatim]
152 c' c'' es' g' as' gisis' ais'
153 @end lilypond
154
155 @c FIXME: we need this info (hide/unhide) somewhere in the manual, but this ain't the place.  -gp
156 @refcommands
157 Notes can be hidden and unhidden with the following commands
158
159 @cindex @code{\hideNotes}
160 @code{\hideNotes},
161 @cindex @code{\unHideNotes}
162 @code{\unHideNotes}.
163
164
165 @seealso
166
167 Program reference: @internalsref{NoteEvent}, and @internalsref{NoteHead}.
168
169
170
171 @node Chromatic alterations
172 @subsection Chromatic alterations
173
174 Normally accidentals are printed automatically, but you may also
175 print them manually.  A reminder accidental
176 @cindex reminder accidental
177 @cindex @code{?}
178 can be forced by adding an exclamation mark @code{!}
179 after the pitch.  A cautionary accidental
180 @cindex cautionary accidental
181 @cindex parenthesized accidental
182 (i.e., an accidental within parentheses) can be obtained by adding the
183 question mark `@code{?}' after the pitch.
184
185 @lilypond[quote,raggedright,fragment,verbatim]
186 cis' cis' cis'! cis'?
187 @end lilypond
188
189
190 @seealso
191
192 The automatic production of accidentals can be tuned in many
193 ways.  For more information, refer to @ref{Automatic accidentals}.
194
195
196
197 @node Micro tones
198 @subsection Micro tones
199
200 Half-flats and half-sharps are formed by adding @code{-eh} and
201 @code{-ih}; the following is a series of Cs with increasing pitches
202
203 @cindex quarter tones
204 @cindex semi-flats, semi-sharps
205
206 @lilypond[verbatim,raggedright,quote,relative=2,fragment]
207 { ceseh ceh cih cisih }
208 @end lilypond
209
210 Micro tones are also exported to the MIDI file
211
212
213 @refbugs
214
215 There are no generally accepted standards for denoting three quarter
216 flats, so LilyPond's symbol does not conform to any standard.
217
218 @node Chords
219 @subsection Chords
220
221 A chord is formed by a enclosing a set of pitches in @code{<} and
222 @code{>}.  A chord may be followed by a duration, and a set of
223 articulations, just like simple notes
224
225 @lilypond[verbatim,raggedright,fragment,quote,relative=1]
226 <c e g>4 <c>8
227 @end lilypond
228
229 @node Rests
230 @subsection Rests
231 @cindex Rests
232
233
234 @cindex @code{\rest}
235 @cindex @code{r}
236
237 Rests are entered like notes, with the note name @code{r}
238
239 @lilypond[fragment,quote,raggedright,verbatim]
240 r1 r2 r4 r8
241 @end lilypond
242
243 Whole bar rests, centered in middle of the bar,
244 must be done with multi-measure rests.  They are discussed in
245 @ref{Multi measure rests}.
246
247
248 A rest's vertical position may be explicitly specified by entering a
249 note with the @code{\rest} keyword appended, the rest will be placed at
250 the note's place.  This makes manual formatting in polyphonic music
251 easier.  Automatic rest collision formatting will leave these rests
252 alone
253
254 @lilypond[fragment,quote,raggedright,verbatim]
255 a'4\rest d'4\rest
256 @end lilypond
257
258 @seealso
259
260 Program reference: @internalsref{RestEvent}, and @internalsref{Rest}.
261
262
263 @c FIXME: naming.
264 @node Skips
265 @subsection Skips
266 @cindex Skip
267 @cindex Invisible rest
268 @cindex Space note
269
270 @cindex @code{\skip}
271 @cindex @code{s}
272 An invisible rest (also called a `skip') can be entered like a note
273 with note name `@code{s}' or with @code{\skip @var{duration}}
274
275 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
276 a4 a4 s4 a4 \skip 1 a4
277 @end lilypond
278
279 The @code{s} syntax is only available in note mode and chord mode.  In
280 other situations, for example, when entering lyrics, you should use
281 the @code{\skip} command
282
283 @lilypond[quote,raggedright,verbatim]
284 <<
285   \relative { a'2 a1 }
286   \new Lyrics \lyricmode { \skip 2 bla1 }
287 >>
288 @end lilypond
289
290 The skip command is merely an empty musical placeholder.  It does not
291 produce any output, not even transparent output.
292
293 The @code{s} skip command does create @internalsref{Staff} and
294 @internalsref{Voice} when necessary, similar to note and rest
295 commands.  For example, the following results in an empty staff.
296
297 @lilypond[quote,raggedright,verbatim]
298 { s4 }
299 @end lilypond
300
301 The fragment @code{@{ \skip 4 @} } would produce an empty page.
302
303 @seealso
304
305 Program reference: @internalsref{SkipEvent}, @internalsref{SkipMusic}.
306
307
308
309 @node Durations
310 @subsection Durations
311
312
313 @cindex duration
314 @cindex @code{\longa}
315 @cindex @code{\breve}
316 @cindex @code{\maxima}
317
318
319 In Note, Chord, and Lyrics mode, durations are designated by numbers and
320 dots: durations are entered as their reciprocal values.  For example, a
321 quarter note is entered using a @code{4} (since it is a 1/4 note), while
322 a half note is entered using a @code{2} (since it is a 1/2 note).  For
323 notes longer than a whole you must use the variables @code{\longa} and
324 @code{\breve}
325
326 @example
327 c'\breve
328 c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64
329 r\longa r\breve
330 r1 r2 r4 r8 r16 r32 r64 r64
331 @end example
332
333 @lilypond[quote]
334 \score {
335  \relative c'' {
336     a\breve*1/2 \autoBeamOff
337     a1 a2 a4 a8 a16 a32 a64 a64
338    \bar "empty"
339    \break
340     r\longa*1/4 r\breve *1/2
341     r1 r2 r4 r8 r16 r32 r64 r64
342   }
343   \layout {
344     raggedright = ##t
345     \context {
346       \Staff
347         \remove "Clef_engraver"
348         \override StaffSymbol #'transparent = ##t
349         \override TimeSignature #'transparent = ##t
350         \override BarLine #'transparent = ##t
351         \consists "Pitch_squash_engraver"
352     }
353   }
354 }
355 @end lilypond
356
357 If the duration is omitted then it is set to the previously entered
358 duration.  The default for the first note is a quarter note.
359
360 @lilypond[quote,raggedright,verbatim,fragment]
361 { a a a2 a a4 a a1 a }
362 @end lilypond
363
364
365
366 @node Augmentation dots
367 @subsection Augmentation dots
368
369 @cindex @code{.}
370 To obtain dotted note lenghts, simply add a dot (`@code{.}') to
371 the number.  Double-dotted notes are produced in a similar way.
372
373 @lilypond[quote,raggedright,fragment,verbatim]
374 a'4 b' c''4. b'8 a'4. b'4.. c''8.
375 @end lilypond
376
377 @refcommands
378
379 Dots are normally moved up to avoid staff lines, except in polyphonic
380 situations.  The following commands may be used to force a particular
381 direction manually
382
383 @cindex @code{\dotsUp}
384 @code{\dotsUp},
385 @cindex @code{\dotsDown}
386 @code{\dotsDown},
387 @cindex @code{\dotsNeutral}
388 @code{\dotsNeutral}.
389
390 @seealso
391
392 Program reference: @internalsref{Dots}, and @internalsref{DotColumn}.
393
394 @node Scaling durations
395 @subsection Scaling durations
396
397 You can alter the length of duration by a fraction @var{N/M}
398 appending `@code{*}@var{N/M}' (or `@code{*}@var{N}' if @var{M=1}).  This
399 will not affect the appearance of the notes or rests produced.
400
401 In the following example, the first three notes take up exactly two
402 beats, but no triplet bracket is printed.
403 @lilypond[quote,raggedright,fragment,relative=2,verbatim]
404 \time 2/4
405 a4*2/3 gis4*2/3 a4*2/3
406 a4 a4 a4*2
407 b16*4 c4
408 @end lilypond
409
410
411 @seealso
412
413 This manual: @ref{Tuplets}
414
415
416 @c TODO: I'm not certain that Stems belong here in the manual.  -gp
417 @node Stems
418 @subsection Stems
419
420 Whenever a note is found, a @internalsref{Stem} object is created
421 automatically.  For whole notes and rests, they are also created but
422 made invisible.
423
424 @refcommands
425
426 @cindex @code{\stemUp}
427 @code{\stemUp},
428 @cindex @code{\stemDown}
429 @code{\stemDown},
430 @cindex @code{\stemNeutral}
431 @code{\stemNeutral}.
432
433
434 @node Ties
435 @subsection Ties
436
437 @cindex Tie
438 @cindex ties
439 @cindex @code{~}
440
441 A tie connects two adjacent note heads of the same pitch.  The tie in
442 effect extends the length of a note.  Ties should not be confused with
443 slurs, which indicate articulation, or phrasing slurs, which indicate
444 musical phrasing.  A tie is entered using the tilde symbol `@code{~}'
445
446 @lilypond[quote,raggedright,fragment,verbatim]
447 e' ~ e' <c' e' g'> ~ <c' e' g'>
448 @end lilypond
449
450 When a tie is applied to a chord, all note heads whose pitches match
451 are connected.  When no note heads match, no ties will be created.
452
453 A tie is just a way of extending a note duration, similar to the
454 augmentation dot.  The following example shows two ways of notating
455 exactly the same concept
456 @c
457 @lilypond[quote,fragment,raggedright]
458 \time 3/4 c'2. c'2 ~ c'4
459 @end lilypond
460
461 @noindent
462 Ties are used either when the note crosses a bar line, or when dots
463 cannot be used to denote the rhythm.  When using ties, larger note
464 values should be aligned to subdivisions of the measure, eg.
465
466 @lilypond[fragment,quote,raggedright]
467 \relative {
468   r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
469 }
470 @end lilypond
471
472 If you need to tie a lot of notes over bars, it may be easier to use
473 automatic note splitting (see @ref{Automatic note splitting}).  This
474 mechanism automatically splits long notes, and ties them across bar
475 lines.
476
477 @refcommands
478
479
480 @cindex @code{\tieUp}
481 @code{\tieUp},
482 @cindex @code{\tieDown}
483 @code{\tieDown},
484 @cindex @code{\tieNeutral}
485 @code{\tieNeutral},
486 @cindex @code{\tieDotted}
487 @code{\tieDotted},
488 @cindex @code{\tieSolid}
489 @code{\tieSolid}.
490
491 @seealso
492
493 In this manual: @ref{Automatic note splitting}.
494
495 Program reference: @internalsref{TieEvent}, @internalsref{Tie}.
496
497 @refbugs
498
499
500 Switching staves when a tie is active will not produce a slanted tie.
501
502 Formatting of ties is a difficult subject.  The results are often not
503 optimal.
504
505 @node Tuplets
506 @subsection Tuplets
507
508 @cindex tuplets
509 @cindex triplets
510 @cindex @code{\times}
511
512 Tuplets are made out of a music expression by multiplying all durations
513 with a fraction
514
515 @cindex @code{\times}
516 @example
517 \times @var{fraction} @var{musicexpr}
518 @end example
519
520 @noindent
521 The duration of @var{musicexpr} will be multiplied by the fraction.
522 The fraction's denominator will be printed over the notes, optionally
523 with a bracket.  The most common tuplet is the triplet in which 3
524 notes have the length of 2, so the notes are 2/3 of their written
525 length
526
527 @lilypond[quote,raggedright,fragment,verbatim]
528 g'4 \times 2/3 {c'4 c' c'} d'4 d'4
529 @end lilypond
530
531 The property @code{tupletSpannerDuration} specifies how long each
532 bracket should last.  With this, you can make lots of tuplets while
533 typing @code{\times} only once, thus saving lots of typing.  In the next
534 example, there are two triplets shown, while @code{\times} was only
535 used once
536
537 @lilypond[quote,fragment,relative=1,raggedright,verbatim]
538 \set tupletSpannerDuration = #(ly:make-moment 1 4)
539 \times 2/3 { c'8 c c c c c }
540 @end lilypond
541
542 The format of the number is determined by the property
543 @code{tupletNumberFormatFunction}.  The default prints only the
544 denominator, but if it is set to the Scheme function
545 @code{fraction-tuplet-formatter}, @var{num}:@var{den} will be printed
546 instead.
547
548
549 @cindex @code{tupletNumberFormatFunction}
550 @cindex tuplet formatting
551
552
553 @refcommands
554
555 @cindex @code{\tupletUp}
556 @code{\tupletUp},
557 @cindex @code{\tupletDown}
558 @code{\tupletDown},
559 @cindex @code{\tupletNeutral}
560 @code{\tupletNeutral}.
561
562 @seealso
563
564 User manual: @ref{Changing context properties on the fly} for the
565 @code{\set} command.
566
567
568 Program reference: @internalsref{TupletBracket}, and @internalsref{TimeScaledMusic}.
569
570 Examples: @inputfileref{input/@/regression,tuplet@/-nest@/.ly}.
571
572 @refbugs
573
574 Nested tuplets are not formatted automatically.  In this case, outer
575 tuplet brackets should be moved manually, which is demonstrated in
576 @inputfileref{input/@/regression,tuplet@/-nest@/.ly}.
577
578
579
580 @node Easier music entry
581 @section Easier music entry
582 @cindex Music entry
583
584 This section deals with tricks and features of the input language that
585 were added solely to help entering music and finding and correcting
586 mistakes.  There are also external tools that make debugging easier.
587 See @ref{Point and click} for more information.
588
589 It is also possible to enter and edit music using other programs, such as
590 GUI interfaces or MIDI sequencers.  Refer to the LilyPond
591 website for more information.
592
593
594 @menu
595 * Relative octaves::            
596 * Octave check::                
597 * Bar check::                   
598 * Skipping corrected music::    
599 * Automatic note splitting::    
600 @end menu
601
602
603
604
605 @node Relative octaves
606 @subsection Relative octaves
607 @cindex Relative
608 @cindex relative octave specification
609
610 Octaves are specified by adding @code{'} and @code{,} to pitch names.
611 When you copy existing music, it is easy to accidentally put a pitch
612 in the wrong octave and hard to find such an error.  The relative
613 octave mode prevents these errors by making the mistakes much
614 larger: a single error puts the rest of the piece off by one octave
615
616 @cindex @code{\relative}
617 @example
618 \relative @var{startpitch} @var{musicexpr}
619 @end example
620
621 @noindent
622 or
623
624 @example
625 \relative @var{musicexpr}
626 @end example
627
628 The octave of notes that appear in @var{musicexpr} are calculated as
629 follows: if no octave changing marks are used, the basic interval
630 between this and the last note is always taken to be a fourth or
631 less.  This distance is determined without regarding alterations; a
632 @code{fisis} following a @code{ceses} will be put above the
633 @code{ceses}.  In other words, a doubly-augmented fourth is considered
634 a smaller interval than a diminshed fifth, even though the fourth is
635 seven semitones while the fifth is only six semitones.
636
637 The octave changing marks @code{'} and @code{,} can be added to raise
638 or lower the pitch by an extra octave.  Upon entering relative mode,
639 an absolute starting pitch can be specified that will act as the
640 predecessor of the first note of @var{musicexpr}.  If no starting pitch
641 is specified, then middle C is used as a start.
642
643 Here is the relative mode shown in action
644 @lilypond[quote,fragment,raggedright,verbatim]
645 \relative c'' {
646   b c d c b c bes a
647 }
648 @end lilypond
649
650 Octave changing marks are used for intervals greater than a fourth
651 @lilypond[quote,raggedright,fragment,verbatim]
652 \relative c'' {
653   c g c f, c' a, e''
654 }
655 @end lilypond
656
657 If the preceding item is a chord, the first note of the chord is used
658 to determine the first note of the next chord
659
660 @lilypond[quote,raggedright,fragment,verbatim]
661 \relative c' {
662   c <c e g>
663   <c' e g>
664   <c, e' g>
665 }
666 @end lilypond
667
668 The pitch after the @code{\relative} contains a note name.
669
670
671 The relative conversion will not affect @code{\transpose},
672 @code{\chordmode} or @code{\relative} sections in its argument.  To use
673 relative within transposed music, an additional @code{\relative} must
674 be placed inside @code{\transpose}.
675
676 @node Octave check
677 @subsection Octave check
678
679
680 Octave checks make octave errors easier to correct: a note may be
681 followed by @code{=}@var{quotes} which indicates what its absolute
682 octave should be.  In the following example,
683 @example
684 \relative c'' @{ c='' b=' d,='' @}
685 @end example
686
687 @noindent
688 @c take care with @code, adds confusing quotes.
689 the @code{d} will generate a warning, because a @code{d''} is expected
690 (because @code{b'} to @code{d''} is only a third), but a @code{d}' is
691 found.  In the output, the octave is corrected to be a @code{d''} and
692 the next note is calculated relative to @code{d''} instead of @code{d'}.
693
694
695
696 There is also a syntax that is separate from the notes.  The syntax
697
698 @example
699 \octave @var{pitch}
700 @end example
701
702 This checks that @var{pitch} (without quotes) yields @var{pitch} (with
703 quotes) in \relative mode.  If not, a warning is printed, and the
704 octave is corrected.
705
706 In the example below, the first check passes without incident, since
707 the @code{e} (in relative mode) is within a fifth of @code{a'}.  However,
708 the second check produces a warning, since the @code{e} is not within
709 a fifth of @code{b'}.  The warning message is printed, and the octave
710 is adjusted so that the following notes are in the correct octave
711 once again.
712
713 @example
714 \relative c' @{
715   e
716   \octave a'
717   \octave b'
718 @}
719 @end example
720
721
722 The octave of a note following an octave check is determined with
723 respect to the note preceding it.  In the next fragment, the last note
724 is a @code{a'}, above middle C.  That means that the @code{\octave}
725 check passes successfully, so the check could be deleted without changing
726 the output of the piece.
727
728 @lilypond[quote,raggedright,verbatim,fragment]
729 \relative c' {
730   e
731   \octave b
732   a
733 }
734 @end lilypond
735
736 @node Bar check
737 @subsection Bar check
738 @cindex Bar check
739
740 @cindex bar check
741 @cindex @code{barCheckSynchronize}
742 @cindex @code{|}
743
744 Bar checks help detect errors in the durations.  A bar check is
745 entered using the bar symbol, `@code{|}'.  Whenever it is encountered
746 during interpretation, it should fall on a measure boundary.  If it
747 does not, a warning is printed.  In the next example, the second bar
748 check will signal an error
749 @example
750 \time 3/4 c2 e4 | g2 |
751 @end example
752
753 Bar checks can also be used in lyrics, for example
754
755 @example
756 \lyricmode @{
757   \time 2/4
758   Twin -- kle | Twin -- kle
759 @}
760 @end example
761
762
763 @cindex @code{skipTypesetting}
764
765 Failed bar checks are caused by entering incorrect
766 durations.  Incorrect durations often completely garble up the score,
767 especially if the score is polyphonic, so a good place to start correcting
768 input is by scanning for failed bar checks and incorrect durations.  To
769 speed up this process, the @code{skipTypesetting} feature may be
770 used.  It is described in the next section.
771
772 @cindex @code{|}
773 @cindex @code{pipeSymbol}
774
775 It is also possible to redefine the meaning of @code{|}.  This is done
776 by assigning a music expression to @code{pipeSymbol},
777
778 @lilypond[quote,raggedright,verbatim]
779 pipeSymbol = \bar "||"
780
781 { c'2 c' | c'2 c }
782 @end lilypond
783
784
785 @node Skipping corrected music
786 @subsection Skipping corrected music
787
788 The property @code{Score.skipTypesetting} can be used to switch on and
789 off typesetting completely during the interpretation phase.  When
790 typesetting is switched off, the music is processed much more
791 quickly.  This can be used to skip over the parts of a score that
792 have already been checked for errors
793
794 @lilypond[quote,fragment,raggedright,verbatim]
795 \relative c'' {
796   c8 d
797   \set Score.skipTypesetting = ##t
798   e e e e e e e e
799   \set Score.skipTypesetting = ##f
800   c d b bes a g c2 }
801 @end lilypond
802
803 In polyphonic music, @code{Score.skipTypesetting} will affect all
804 voices and staves, saving even more time.
805
806 @node Automatic note splitting
807 @subsection Automatic note splitting
808
809 Long notes can be converted automatically to tied notes.  This is done
810 by replacing the @internalsref{Note_heads_engraver} by the
811 @internalsref{Completion_heads_engraver}.
812 In the following examples, notes crossing the bar line are split and tied.
813
814
815 @lilypond[quote,fragment,verbatim,relative=1,linewidth=12\cm]
816 \new Voice \with {
817   \remove "Note_heads_engraver"
818   \consists "Completion_heads_engraver"
819 } {
820   c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
821 }
822 @end lilypond
823
824 This engraver splits all running notes at the bar line, and inserts
825 ties.  One of its uses is to debug complex scores: if the measures are
826 not entirely filled, then the ties exactly show how much each measure
827 is off.
828
829 @refbugs
830
831 Not all durations (especially those containing tuplets) can be
832 represented exactly with normal notes and dots, but the engraver will
833 not insert tuplets.
834
835 @seealso
836
837 Examples: @inputfileref{input/@/regression,completion@/-heads@/.ly}.
838
839 @noindent
840
841 Program reference: @internalsref{Completion_heads_engraver}.
842
843
844 @node Staff notation
845 @section Staff notation
846
847 This section describes music notation that occurs on staff level,
848 such as key signatures, clefs and time signatures.
849
850 @cindex Staff notation
851
852 @menu
853 * Staff symbol::                
854 * Key signature::               
855 * Clef::                        
856 * Ottava brackets::             
857 * Time signature::              
858 * Partial measures::            
859 * Unmetered music::             
860 * Bar lines::                   
861 * Time administration::         
862 * Controlling formatting of prefatory matter::  
863 @end menu
864
865 @node Staff symbol
866 @subsection Staff symbol
867
868 @cindex adjusting staff symbol
869
870 Notes, dynamic signs, etc., are grouped
871 with a set of horizontal lines, into a staff (plural `staves').  In our
872 system, these lines are drawn using a separate layout object called
873 staff symbol.
874
875
876 @cindex staff lines, setting number of
877 @cindex staff lines, setting thickness of
878 @cindex thickness of staff lines, setting
879 @cindex number of staff lines, setting
880
881 @seealso
882
883 Program reference: @internalsref{StaffSymbol}.
884
885 Examples: @inputfileref{input/@/test,staff@/-lines@/.ly},
886 @inputfileref{input/@/test,staff@/-size@/.ly}.
887
888 @refbugs
889
890 If a staff is ended halfway a piece, the staff symbol may not end
891 exactly on the bar line.
892
893
894 @node Key signature
895 @subsection Key signature
896 @cindex Key signature
897
898 @cindex @code{\key}
899
900 The key signature indicates the tonality in which a piece is played.  It
901 is denoted by a set of alterations (flats or sharps) at the start of the
902 staff.
903
904
905 Setting or changing the key signature is done with the @code{\key}
906 command
907 @example
908 @code{\key} @var{pitch} @var{type}
909 @end example
910
911 @cindex @code{\minor}
912 @cindex @code{\major}
913 @cindex @code{\minor}
914 @cindex @code{\ionian}
915 @cindex @code{\locrian}
916 @cindex @code{\aeolian}
917 @cindex @code{\mixolydian}
918 @cindex @code{\lydian}
919 @cindex @code{\phrygian}
920 @cindex @code{\dorian}
921
922 Here, @var{type} should be @code{\major} or @code{\minor} to get
923 @var{pitch}-major or @var{pitch}-minor, respectively.
924 The standard mode names @code{\ionian},
925 @code{\locrian}, @code{\aeolian}, @code{\mixolydian}, @code{\lydian},
926 @code{\phrygian}, and @code{\dorian} are also defined.
927
928 This command sets the context property
929 @internalsref{Staff}.@code{keySignature}.  Non-standard key signatures
930 can be specified by setting this property directly.
931
932 Accidentals and key signatures often confuse new users, because
933 unaltered notes get natural signs depending on the key signature.  For
934 more information, see @ref{More about pitches}.
935
936 @seealso
937
938 Program reference: @internalsref{KeyChangeEvent},
939 @internalsref{KeyCancellation} and @internalsref{KeySignature}.
940
941 @cindex @code{keySignature}
942
943
944 @node Clef
945 @subsection Clef
946 @cindex @code{\clef}
947
948 The clef indicates which lines of the staff correspond to which
949 pitches.
950
951
952 The clef can be set with the @code{\clef} command
953 @lilypond[quote,raggedright,fragment,verbatim]
954 { c''2 \clef alto g'2 }
955 @end lilypond
956
957 Supported clef-names include
958 @c Moved standard clefs to the top /MB
959 @table @code
960 @cindex treble clef
961 @cindex violin clef
962 @item treble, violin, G, G2
963 G clef on 2nd line
964 @item alto, C
965 @cindex alto clef
966  C clef on 3rd line
967 @item tenor
968 @cindex tenor clef
969  C clef on 4th line.
970 @item bass, F
971 @cindex bass clef
972  F clef on 4th line
973 @item french
974 @cindex french clef
975  G clef on 1st line, so-called French violin clef
976 @item soprano
977 @cindex soprano clef
978  C clef on 1st line
979 @item mezzosoprano
980 @cindex mezzosoprano clef
981  C clef on 2nd line
982 @item baritone
983 @cindex baritone clef
984  C clef on 5th line
985 @item varbaritone
986 @cindex varbaritone clef
987  F clef on 3rd line
988 @item subbass
989 @cindex subbass clef
990  F clef on 5th line
991 @item percussion
992  percussion clef
993 @item tab
994  tablature clef
995 @end table
996
997 By adding @code{_8} or @code{^8} to the clef name, the clef is
998 transposed one octave down or up, respectively, and @code{_15} and
999 @code{^15} transposes by two octaves.  The argument @var{clefname}
1000 must be enclosed in quotes when it contains underscores or digits.  For
1001 example,
1002
1003
1004 @cindex choral tenor clef
1005 @lilypond[quote,raggedright,verbatim,fragment,relative=1]
1006 \clef "G_8" c4
1007 @end lilypond
1008
1009 This command is equivalent to setting @code{clefGlyph},
1010 @code{clefPosition} (which controls the Y position of the clef),
1011 @code{middleCPosition} and @code{clefOctavation}.  A clef is printed
1012 when any of these properties are changed.  The following example shows
1013 possibilities when setting properties manually.
1014
1015 @lilypond[quote,raggedright,verbatim]
1016 {
1017   \set Staff.clefGlyph = #"clefs.F"
1018   \set Staff.clefPosition = #2
1019   c'4
1020   \set Staff.clefGlyph = #"clefs.G"
1021   c'4
1022   \set Staff.clefGlyph = #"clefs.C"
1023   c'4
1024   \set Staff.clefOctavation = #7
1025   c'4
1026   \set Staff.clefOctavation = #0
1027   \set Staff.clefPosition = #0
1028   c'4
1029   \clef "bass"
1030   c'4
1031 }
1032 @end lilypond
1033
1034
1035 @seealso
1036
1037 Program reference: @internalsref{Clef}.
1038
1039
1040
1041 @node Ottava brackets
1042 @subsection Ottava brackets
1043
1044 `Ottava' brackets introduce an extra transposition of an octave for
1045 the staff.  They are created by invoking the function
1046 @code{set-octavation}
1047
1048 @cindex ottava
1049 @cindex 15ma
1050 @cindex octavation
1051
1052 @lilypond[quote,raggedright,verbatim,fragment]
1053 \relative c''' {
1054   a2 b
1055   #(set-octavation 1)
1056   a b
1057   #(set-octavation 0)
1058   a b
1059 }
1060 @end lilypond
1061
1062 The @code{set-octavation} function also takes -1 (for 8va bassa) and 2
1063 (for 15ma) as arguments.  Internally the function sets the properties
1064 @code{ottavation} (e.g., to @code{"8va"}) and
1065 @code{centralCPosition}.  For overriding the text of the bracket, set
1066 @code{ottavation} after invoking @code{set-octavation}, i.e.,
1067
1068 @lilypond[quote,raggedright,verbatim]
1069 {
1070   #(set-octavation 1)
1071   \set Staff.ottavation = #"8"
1072   c'''
1073 }
1074 @end lilypond
1075
1076 @seealso
1077
1078 Program reference: @internalsref{OttavaBracket}.
1079
1080 Examples: @inputfileref{input/@/regression,ottava@/.ly},
1081 @inputfileref{input/@/regression,ottava@/-broken@/.ly}.
1082
1083 @refbugs
1084
1085 @code{set-octavation} will get confused when clef changes happen
1086 during an octavation bracket.
1087
1088
1089
1090
1091 @node Time signature
1092 @subsection Time signature
1093 @cindex Time signature
1094 @cindex meter
1095 @cindex @code{\time}
1096
1097 Time signature indicates the metrum of a piece: a regular pattern of
1098 strong and weak beats.  It is denoted by a fraction at the start of the
1099 staff.
1100
1101
1102 The time signature is set or changed by the @code{\time}
1103 command
1104 @lilypond[quote,raggedright,fragment,verbatim]
1105 \time 2/4 c'2 \time 3/4 c'2.
1106 @end lilypond
1107
1108 The symbol that is printed can be customized with the @code{style}
1109 property.  Setting it to @code{#'()} uses fraction style for 4/4 and
1110 2/2 time,
1111
1112 @lilypond[fragment,quote,raggedright,verbatim]
1113 \time 4/4 c'1
1114 \time 2/2 c'1
1115 \override Staff.TimeSignature #'style = #'()
1116 \time 4/4 c'1
1117 \time 2/2 c'1
1118 @end lilypond
1119
1120
1121
1122 There are many more options for its layout.  See @ref{Ancient time
1123 signatures} for more examples.
1124
1125
1126 This command sets the property @code{timeSignatureFraction},
1127 @code{beatLength} and @code{measureLength} in the @code{Timing}
1128 context, which is normally aliased to @internalsref{Score}.  The
1129 property @code{measureLength} determines where bar lines should be
1130 inserted, and how automatic beams should be generated.  Changing the
1131 value of @code{timeSignatureFraction} also causes the symbol to be
1132 printed.
1133
1134 More options are available through the Scheme function
1135 @code{set-time-signature}.  In combination with the
1136 @internalsref{Measure_grouping_engraver}, it will create
1137 @internalsref{MeasureGrouping} signs.  Such signs ease reading
1138 rhythmically complex modern music.  In the following example, the 9/8
1139 measure is subdivided in 2, 2, 2 and 3.  This is passed to
1140 @code{set-time-signature} as the third argument @code{(2 2 2 3)}
1141
1142 @lilypond[quote,raggedright,verbatim]
1143 \score {
1144   \relative c'' {
1145     #(set-time-signature 9 8 '(2 2 2 3))
1146     g8[ g] d[ d] g[ g] a8[( bes g]) |
1147     #(set-time-signature 5 8 '(3 2))
1148     a4. g4
1149   }
1150   \layout {
1151     \context {
1152       \Staff
1153       \consists "Measure_grouping_engraver"
1154     }
1155   }
1156 }
1157 @end lilypond
1158
1159 @seealso
1160
1161 Program reference: @internalsref{TimeSignature}, and @internalsref{Timing_engraver}.
1162
1163
1164 @refbugs
1165
1166 Automatic beaming does not use the measure grouping specified with
1167 @code{set-time-signature}.
1168
1169 @node Partial measures
1170 @subsection Partial measures
1171 @cindex Partial
1172 @cindex anacrusis
1173 @cindex partial measure
1174 @cindex measure, partial
1175 @cindex shorten measures
1176 @cindex @code{\partial}
1177
1178 Partial measures, for example in upsteps, are entered using the
1179 @code{\partial} command
1180 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
1181 \partial 16*5 c16 cis d dis e | a2. c,4 | b2
1182 @end lilypond
1183
1184 The syntax for this command is
1185 @example
1186 \partial @var{duration}
1187 @end example
1188 This is internally translated into
1189 @example
1190 \set Timing.measurePosition = -@var{length of duration}
1191 @end example
1192 @cindex @code{|}
1193 The property @code{measurePosition} contains a rational number
1194 indicating how much of the measure has passed at this point.
1195
1196 @refbugs
1197
1198 This command does not take into account grace notes at the start of
1199 the music.  When a piece starts with graces notes in the pickup, then
1200 the @code{\partial} should follow the grace notes
1201
1202 @lilypond[verbatim,quote,raggedright,relative,fragment]
1203 {
1204   \grace f16
1205   \partial 4
1206   g4
1207   a2 g2
1208 }
1209 @end lilypond
1210
1211
1212 @node Unmetered music
1213 @subsection Unmetered music
1214
1215 @cindex @code{\bar}
1216
1217 Bar lines and bar numbers are calculated automatically.  For unmetered
1218 music (cadenzas, for example), this is not desirable.  By setting
1219 @code{Score.timing} to false, this automatic timing can be switched
1220 off.  Empty bar lines,
1221
1222 @example
1223 \bar ""
1224 @end example
1225
1226 @noindent
1227 indicate where line breaks can occur.
1228
1229 @refcommands
1230
1231 @cindex @code{\cadenzaOn}
1232 @code{\cadenzaOn},
1233 @cindex @code{\cadenzaOff}
1234 @code{\cadenzaOff}.
1235
1236
1237
1238
1239 @node Bar lines
1240 @subsection Bar lines
1241 @cindex Bar lines
1242
1243 @cindex @code{\bar}
1244 @cindex measure lines
1245 @cindex repeat bars
1246
1247
1248 Bar lines delimit measures, but are also used to indicate repeats.
1249 Normally, they are inserted automatically.  Line breaks may only
1250 happen on bar lines.
1251
1252 Special types of bar lines can be forced with the @code{\bar} command
1253 @c
1254 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
1255 c4 \bar "|:" c4
1256 @end lilypond
1257
1258 The following bar types are available
1259 @lilypondfile[raggedright,quote]{bar-lines.ly}
1260
1261 For allowing line breaks, there is a special command,
1262 @example
1263 \bar ""
1264 @end example
1265 This will insert an invisible bar line, and allow line breaks at this
1266 point.
1267
1268 In scores with many staves, a @code{\bar} command in one staff is
1269 automatically applied to all staves.  The resulting bar lines are
1270 connected between different staves of a @internalsref{StaffGroup}
1271 @c
1272 @lilypond[quote,raggedright,fragment,verbatim]
1273 <<
1274   \context StaffGroup <<
1275     \new Staff {
1276       e'4 d'
1277       \bar "||"
1278       f' e'
1279     }
1280     \new Staff { \clef bass c4 g e g }
1281   >>
1282   \new Staff { \clef bass c2 c2 }
1283 >>
1284 @end lilypond
1285
1286
1287 The command @code{\bar }@var{bartype} is a short cut for doing
1288 @code{\set Timing.whichBar = }@var{bartype}.  Whenever @code{whichBar}
1289 is set to a string, a bar line of that type is created.
1290
1291 A bar line is created whenever the @code{whichBar} property is set.
1292 At the start of a measure it is set to the contents of
1293 @code{Timing.defaultBarType}.  The contents of @code{repeatCommands} are used
1294 to override default measure bars.
1295
1296 @cindex @code{whichBar}
1297 @cindex @code{repeatCommands}
1298 @cindex @code{defaultBarType}
1299
1300 You are encouraged to use @code{\repeat} for repetitions.  See
1301 @ref{Repeats}.
1302
1303
1304
1305 @seealso
1306
1307 In this manual: @ref{Repeats}, @ref{System start delimiters}.
1308
1309
1310 Program reference: @internalsref{BarLine} (created at
1311 @internalsref{Staff} level), @internalsref{SpanBar} (across staves).
1312
1313 @cindex bar lines at start of system
1314 @cindex start of system
1315
1316
1317
1318 Examples: @inputfileref{input/@/test,bar@/-lines@/.ly},
1319
1320
1321 @node Time administration
1322 @subsection Time administration
1323
1324 Time is administered by the @internalsref{Time_signature_engraver},
1325 which usually lives in the @internalsref{Score} context.
1326 The bookkeeping deals with the following variables
1327
1328 @table @code
1329 @item currentBarNumber
1330 The measure number.
1331
1332 @item measureLength
1333 The length of the measures in the current time signature.  For a 4/4
1334 time this is@tie{}1, and for 6/8 it is 3/4.
1335
1336 @item measurePosition
1337 The point within the measure where we currently are.  This quantity
1338 is reset to@tie{}0 whenever it exceeds @code{measureLength}.  When that
1339 happens, @code{currentBarNumber} is incremented.
1340
1341 @item timing
1342 If set to true, the above variables are updated for every time
1343 step.  When set to false, the engraver stays in the current measure
1344 indefinitely.
1345 @end table
1346
1347 Timing can be changed by setting any of these variables explicitly.
1348 In the next example, the 4/4 time signature is printed, but
1349 @code{measureLength} is set to 5/4.  After a while, the measure is
1350 shortened by 1/8, by setting @code{measurePosition} to -3/8 at 2/4 in
1351 the measure, so the next bar line will fall at 2/4 + 3/8.
1352
1353 @lilypond[quote,raggedright,verbatim,relative,fragment]
1354 \set Score.measureLength = #(ly:make-moment 5 4)
1355 c1 c4
1356 c1 c4
1357 c4 c4
1358 \set Score.measurePosition = #(ly:make-moment -3 8)
1359 b8 b b
1360 c4 c1
1361 @end lilypond
1362
1363
1364 @node Controlling formatting of prefatory matter
1365 @subsection Controlling formatting of prefatory matter
1366
1367 @c  This section will be moved to somewhere else soon.
1368 This example demonstrates how to place prefactory matter
1369 (such as the clef and key signature) at the end of a line.
1370
1371 @lilypond[quote,verbatim]
1372 \transpose c c' {
1373   \override Staff.Clef
1374     #'break-visibility = #end-of-line-visible
1375   \override Staff.KeySignature
1376     #'break-visibility = #end-of-line-visible
1377   \set Staff.explicitClefVisibility = #end-of-line-visible
1378   \set Staff.explicitKeySignatureVisibility = #end-of-line-visible
1379
1380   % We want the time sig to take space, otherwise there is not
1381   % enough white at the start of the line.
1382
1383   \override Staff.TimeSignature #'transparent = ##t
1384   \set Score.defaultBarType = #"empty"
1385
1386   c1 d e f g a b c
1387   \key d \major
1388   \break
1389
1390   % see above.
1391   \time 4/4
1392
1393   d e fis g a b cis d
1394   \key g \major
1395   \break
1396   \time 4/4
1397 }
1398 @end lilypond
1399
1400
1401 @node Polyphony
1402 @section Polyphony
1403
1404 Polyphony in music refers to having more than one voice occuring in
1405 a piece of music.  Polyphony in LilyPond refers to having more than
1406 one voice on the same staff.
1407
1408 @menu
1409 * Writing polyphonic music::    
1410 @end menu
1411
1412 @node Writing polyphonic music
1413 @subsection Writing polyphonic music
1414 @cindex polyphony
1415
1416 The easiest way to enter fragments with more than one voice on a staff
1417 is to split chords using the separator @code{\\}.  You can use it for
1418 small, short-lived voices or for single chords
1419
1420 @cindex @code{\\}
1421
1422 @lilypond[quote,raggedright,verbatim,fragment]
1423 \context Staff \relative c'' {
1424   c4 << { f d e } \\ { b c2 } >>
1425   c4 << g' \\ b, \\ f' \\ d >>
1426 }
1427 @end lilypond
1428
1429 The separator causes @internalsref{Voice} contexts@footnote{Polyphonic
1430 voices are sometimes called ``layers'' in other notation packages}
1431 @cindex layers
1432 to be instantiated.  They bear the names @code{"1"}, @code{"2"}, etc.  In
1433 each of these contexts, vertical direction of slurs, stems, etc., is set
1434 appropriately.
1435
1436 @cindex @code{\voiceOne}
1437 @cindex @code{\voiceFour}
1438
1439 This can also be done by instantiating @internalsref{Voice} contexts
1440 by hand, and using @code{\voiceOne}, up to @code{\voiceFour} to assign
1441 a stem directions and horizontal shift for each part
1442 @c
1443
1444 @lilypond[quote,raggedright,verbatim]
1445 \relative c''
1446 \context Staff <<
1447   \new Voice { \voiceOne cis2 b }
1448   \new Voice { \voiceThree b4 ais ~ ais4 gis4 }
1449   \new Voice { \voiceTwo fis4~ fis4 f ~ f } >>
1450 @end lilypond
1451
1452 @noindent
1453 The command @code{\oneVoice} will revert back to the normal setting.
1454 @cindex @code{\oneVoice}
1455
1456
1457 Normally, note heads with a different number of dots are not merged, but
1458 when the object property @code{merge-differently-dotted} is set in
1459 the @internalsref{NoteCollision} object, they are merged
1460 @lilypond[quote,verbatim,fragment,raggedright,relative=2]
1461 \context Voice << {
1462   g8 g8
1463   \override Staff.NoteCollision
1464     #'merge-differently-dotted = ##t
1465   g8 g8
1466 } \\ { g8.[ f16] g8.[ f16] } >>
1467 @end lilypond
1468
1469 Similarly, you can merge half note heads with eighth notes, by setting
1470 @code{merge-differently-headed}
1471 @lilypond[quote,raggedright,fragment,relative=2,verbatim]
1472 \context Voice << {
1473   c8 c4.
1474   \override Staff.NoteCollision
1475     #'merge-differently-headed = ##t
1476 c8 c4. } \\ { c2 c2 } >>
1477 @end lilypond
1478
1479 LilyPond also vertically shifts rests that are opposite of a stem,
1480 for example
1481
1482 @lilypond[quote,raggedright,fragment,verbatim]
1483 \context Voice << c''4 \\ r4 >>
1484 @end lilypond
1485
1486
1487 @refcommands
1488
1489
1490
1491 @cindex @code{\oneVoice}
1492 @code{\oneVoice},
1493 @cindex @code{\voiceOne}
1494 @code{\voiceOne},
1495 @cindex @code{\voiceTwo}
1496 @code{\voiceTwo},
1497 @cindex @code{\voiceThree}
1498 @code{\voiceThree},
1499 @cindex @code{\voiceFour}
1500 @code{\voiceFour}.
1501
1502
1503
1504 @cindex @code{\shiftOn}
1505 @code{\shiftOn},
1506 @cindex @code{\shiftOnn}
1507 @code{\shiftOnn},
1508 @cindex @code{\shiftOnnn}
1509 @code{\shiftOnnn},
1510 @cindex @code{\shiftOff}
1511 @code{\shiftOff}: these commands specify in what chords of the current
1512 voice should be shifted.  The outer voices (normally: voice one and
1513 two) have @code{\shiftOff}, while the inner voices (three and four)
1514 have @code{\shiftOn}.  @code{\shiftOnn} and @code{\shiftOnnn} define
1515 further shift levels.
1516
1517
1518 When LilyPond cannot cope, the @code{force-hshift}
1519 property of the @internalsref{NoteColumn} object and pitched rests can
1520 be used to override typesetting decisions.
1521
1522 @lilypond[quote,verbatim,raggedright]
1523 \relative <<
1524 {
1525   <d g>
1526   <d g>
1527 } \\ {
1528   <b f'>
1529   \once \override NoteColumn #'force-hshift = #1.7
1530   <b f'>
1531 } >>
1532 @end lilypond
1533
1534
1535
1536 @seealso
1537
1538 Program reference: the objects responsible for resolving collisions are
1539 @internalsref{NoteCollision} and @internalsref{RestCollision}.
1540
1541 Examples:
1542 @inputfileref{input/@/regression,collision@/-dots@/.ly},
1543 @inputfileref{input/@/regression,collision@/-head-chords@/.ly},
1544 @inputfileref{input/@/regression,collision@/-heads@/.ly},
1545 @inputfileref{input/@/regression,collision@/-mesh@/.ly}, and
1546 @inputfileref{input/@/regression,collisions@/.ly}.
1547
1548
1549 @refbugs
1550
1551
1552 When using @code{merge-differently-headed} with an upstem eighth or a
1553 shorter note, and a downstem half note, the eighth note gets the wrong
1554 offset.
1555
1556 There is no support for clusters where the same note occurs with
1557 different accidentals in the same chord.  In this case, it is
1558 recommended to use enharmonic transcription, or to use special cluster
1559 notation (see @ref{Clusters}).
1560
1561 @node Beaming
1562 @section Beaming
1563
1564 Beams are used to group short notes into chunks that are aligned with
1565 the metrum.  LilyPond normally inserts beams automatically, but if you
1566 wish you may control them manually or changed how beams are automatically
1567 grouped.
1568
1569 @cindex Automatic beams
1570 @menu
1571 * Automatic beams::             
1572 * Manual beams::                
1573 * Setting automatic beam behavior::  
1574 * Beam formatting::             
1575 @end menu
1576
1577 @node Automatic beams
1578 @subsection Automatic beams
1579
1580 LilyPond inserts beams automatically
1581
1582 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
1583 \time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
1584 @end lilypond
1585
1586 When these automatic decisions are not good enough, beaming can be
1587 entered explicitly.  It is also possible to define beaming patterns
1588 that differ from the defaults.
1589
1590 Individual notes may be marked with @code{\noBeam}, to prevent them
1591 from being beamed
1592
1593 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
1594 \time 2/4 c8 c\noBeam c c
1595 @end lilypond
1596
1597
1598 @seealso
1599
1600 Program reference: @internalsref{Beam}.
1601
1602
1603 @node Manual beams
1604 @subsection Manual beams
1605 @cindex beams, manual
1606 @cindex @code{]}
1607 @cindex @code{[}
1608
1609 In some cases it may be necessary to override the automatic beaming
1610 algorithm.  For example, the autobeamer will not put beams over rests
1611 or bar lines.  Such beams are specified manually by marking the begin
1612 and end point with @code{[} and @code{]}
1613
1614 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
1615 {
1616   r4 r8[ g' a r8] r8 g[ | a] r8
1617 }
1618 @end lilypond
1619
1620 @cindex @code{stemLeftBeamCount}
1621
1622 Normally, beaming patterns within a beam are determined automatically.
1623 If necessary, the properties @code{stemLeftBeamCount} and
1624 @code{stemRightBeamCount} can be used to override the defaults.  If
1625 either property is set, its value will be used only once, and then it
1626 is erased
1627
1628 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
1629 {
1630    f8[ r16
1631       f g a]
1632    f8[ r16
1633    \set stemLeftBeamCount = #1
1634       f g a]
1635 }
1636 @end lilypond
1637 @cindex @code{stemRightBeamCount}
1638
1639
1640 The property @code{subdivideBeams} can be set in order to subdivide
1641 all 16th or shorter beams at beat positions, as defined by the
1642 @code{beatLength} property.
1643
1644
1645 @lilypond[fragment,quote,relative=2,verbatim]
1646 c16[ c c c c c c c]
1647 \set subdivideBeams = ##t
1648 c16[ c c c c c c c]
1649 \set Score.beatLength = #(ly:make-moment 1 8)
1650 c16[ c c c c c c c]
1651 @end lilypond
1652 @cindex @code{subdivideBeams}
1653
1654 Normally, line breaks are forbidden when beams cross bar lines.  This
1655 behavior can be changed by setting @code{allowBeamBreak}.
1656
1657 @cindex @code{allowBeamBreak}
1658 @cindex beams and line breaks
1659
1660 @cindex beams, kneed
1661 @cindex kneed beams
1662 @cindex auto-knee-gap
1663
1664
1665 @seealso
1666
1667 User manual: @ref{Changing context properties on the fly} for the
1668 @code{\set} command
1669
1670
1671 @refbugs
1672
1673 @cindex Frenched staves
1674 Kneed beams are inserted automatically, when a large gap is detected
1675 between the note heads.  This behavior can be tuned through the object.
1676
1677
1678 Automatically kneed cross-staff beams cannot be used together with
1679 hidden staves.  See @ref{Hiding staves}.
1680
1681 Beams do not avoid collisions with symbols around the notes, such as
1682 texts and accidentals.
1683
1684 @c FIXME.
1685
1686
1687 @node Setting automatic beam behavior
1688 @subsection Setting automatic beam behavior
1689
1690 @cindex @code{autoBeamSettings}
1691 @cindex @code{(end * * * *)}
1692 @cindex @code{(begin * * * *)}
1693 @cindex automatic beams, tuning
1694 @cindex tuning automatic beaming
1695
1696 @c [TODO: use \applycontext]
1697
1698 In normal time signatures, automatic beams can start on any note but can
1699 only end in a few positions within the measure: beams can end on a beat,
1700 or at durations specified by the properties in
1701 @code{autoBeamSettings}.  The defaults for @code{autoBeamSettings}
1702 are defined in @file{scm/@/auto@/-beam@/.scm}.
1703
1704 The value of @code{autoBeamSettings} is changed with two functions,
1705 @example
1706 #(override-auto-beam-setting
1707    '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
1708    [@var{context}])
1709 #(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m}))
1710 @end example
1711 Here, @var{be} is the symbol @code{begin} or @code{end}, and
1712 @var{context} is an optional context (default: @code{'Voice}).  It
1713 determines whether the rule applies to begin or end-points.  The
1714 quantity @var{p}/@var{q} refers to the length of the beamed notes (and
1715 `@code{* *}' designates notes of any length), @var{n}/@var{M} refers
1716 to a time signature (wildcards `@code{* *}' may be entered to
1717 designate all time signatures), @var{a}/@var{b} is a duration.  By
1718 default, this command changes settings for the current voice.  It is
1719 also possible to adjust settings at higher contexts, by adding a
1720 @var{context} argument.
1721
1722 For example, if automatic beams should end on every quarter note, use
1723 the following
1724 @example
1725 #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
1726 @end example
1727 Since the duration of a quarter note is 1/4 of a whole note, it is
1728 entered as @code{(ly:make-moment 1 4)}.
1729
1730 The same syntax can be used to specify beam starting points.  In this
1731 example, automatic beams can only end on a dotted quarter note
1732 @example
1733 #(override-auto-beam-setting '(end * * * *) 3 8)
1734 @end example
1735 In 4/4 time signature, this means that automatic beams could end only on
1736 3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
1737 3/8, has passed within the measure).
1738
1739 Rules can also be restricted to specific time signatures.  A rule that
1740 should only be applied in @var{N}/@var{M} time signature is formed by
1741 replacing the second asterisks by @var{N} and @var{M}.  For example, a
1742 rule for 6/8 time exclusively looks like
1743 @example
1744 #(override-auto-beam-setting '(begin * * 6 8) @dots{})
1745 @end example
1746
1747 If a rule should be to applied only to certain types of beams, use the
1748 first pair of asterisks.  Beams are classified according to the
1749 shortest note they contain.  For a beam ending rule that only applies
1750 to beams with 32nd notes (and no shorter notes), use @code{(end 1 32 *
1751 *)}.
1752
1753 @cindex automatic beam generation
1754 @cindex autobeam
1755 @cindex @code{autoBeaming}
1756 @cindex lyrics
1757
1758 If beams are used to indicate melismata in songs, then automatic
1759 beaming should be switched off.  This is done by setting
1760 @code{autoBeaming} to @code{#f}.
1761
1762 @refcommands
1763
1764 @cindex @code{\autoBeamOff}
1765 @code{\autoBeamOff},
1766 @cindex @code{\autoBeamOn}
1767 @code{\autoBeamOn}.
1768
1769
1770 @refbugs
1771
1772 If a score ends while an automatic beam has not been ended and is
1773 still accepting notes, this last beam will not be typeset at all.  The
1774 same holds polyphonic voices, entered with @code{<< @dots{} \\ @dots{}
1775 >>}.  If a polyphonic voice ends while an automatic beam is still
1776 accepting notes, it is not typeset.
1777
1778 The rules for ending a beam depend on the shortest note in a beam.
1779 So, while it is possible to have different ending rules for eight
1780 beams and sixteenth beams, a beam that contains both eight and
1781 sixteenth notes will use the rules for the sixteenth beam.
1782
1783 In the example below, the autobeamer makes eighth beams and sixteenth
1784 end at three eighths.  The third beam can only be corrected by
1785 specifying manual beaming.
1786
1787 @lilypond[quote,raggedright,fragment,relative=1]
1788 #(override-auto-beam-setting '(end * * * *) 3 8)
1789 % rather show case where it goes wrong
1790 %\time 12/8 c'8 c c c16 c c c c c c[ c c c] c8[ c] c4
1791 \time 12/8 c'8 c c c16 c c c c c c c c c c8 c c4
1792 @end lilypond
1793 It is not possible to specify beaming parameters that act differently in
1794 different parts of a measure.  This means that it is not possible to use
1795 automatic beaming in irregular meters such as @code{5/8}.
1796
1797 @node Beam formatting
1798 @subsection Beam formatting
1799
1800
1801 When a beam falls in the middle of the staff, the beams point normally
1802 down.  However, this behaviour can be altered with the
1803 @code{neutral-direction} property.
1804
1805
1806 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
1807 {
1808   b8[ b]
1809   \override Beam #'neutral-direction = #-1
1810   b[ b]
1811   \override Beam #'neutral-direction = #1
1812   b[ b]
1813 }
1814 @end lilypond
1815
1816
1817 @node Accidentals
1818 @section Accidentals
1819
1820 This section describes how to change the way that accidentals are
1821 inserted automatically before notes.
1822
1823 @menu
1824 * Automatic accidentals::       
1825 @end menu
1826
1827 @node Automatic accidentals
1828 @subsection Automatic accidentals
1829 @cindex Automatic accidentals
1830
1831 Common rules for typesetting accidentals have been placed in a
1832 function.  This function is called as follows
1833
1834 @cindex @code{set-accidental-style}
1835 @example
1836 #(set-accidental-style 'STYLE #('CONTEXT#))
1837 @end example
1838
1839 The function can take two arguments: the name of the accidental style,
1840 and an optional argument that denotes the context that should be
1841 changed.  If no context name is supplied, @code{Staff} is the default,
1842 but you may wish to apply the accidental style to a single @code{Voice}
1843 instead.
1844
1845 The following accidental styles are supported
1846 @table @code
1847 @item default
1848 This is the default typesetting behavior.  It corresponds
1849 to 18th century common practice: Accidentals are
1850 remembered to the end of the measure in which they occur and
1851 only on their own octave.
1852
1853 @item voice
1854 The normal behavior is to remember the accidentals on
1855 Staff-level.  This variable, however, typesets accidentals
1856 individually for each voice.  Apart from that, the rule is similar to
1857 @code{default}.
1858
1859 As a result, accidentals from one voice do not get canceled in other
1860 voices, which is often an unwanted result
1861
1862 @lilypond[quote,raggedright,relative=1,fragment,verbatim]
1863 \context Staff <<
1864   #(set-accidental-style 'voice)
1865   <<
1866     { es g } \\
1867     { c, e }
1868 >> >>
1869 @end lilypond
1870
1871 The @code{voice} option should be used if the voices
1872 are to be read solely by individual musicians.  If the staff is to be
1873 used by one musician (e.g., a conductor) then
1874 @code{modern} or @code{modern-cautionary}
1875 should be used instead.
1876
1877 @item modern
1878 @cindex @code{modern} style accidentals
1879 This rule corresponds to the common practice in the 20th century.  This rule
1880 prints the same accidentals as @code{default}, but temporary
1881 accidentals also are canceled in other octaves.  Furthermore,
1882 in the same octave, they also get canceled in the following
1883 measure
1884
1885 @lilypond[quote,raggedright,fragment,verbatim]
1886 #(set-accidental-style 'modern)
1887 cis' c'' cis'2 | c'' c'
1888 @end lilypond
1889
1890 @item @code{modern-cautionary}
1891 @cindex @code{modern-cautionary}
1892 This rule is similar to @code{modern}, but the ``extra'' accidentals
1893 (the ones not typeset by @code{default}) are typeset as cautionary
1894 accidentals.  They are printed in reduced size or with parentheses
1895 @lilypond[quote,raggedright,fragment,verbatim]
1896 #(set-accidental-style 'modern-cautionary)
1897 cis' c'' cis'2 | c'' c'
1898 @end lilypond
1899
1900 @cindex @code{modern-voice}
1901 @item modern-voice
1902 This rule is used for multivoice accidentals to be read both by musicians
1903 playing one voice and musicians playing all voices.  Accidentals are
1904 typeset for each voice, but they @emph{are} canceled across voices in
1905 the same @internalsref{Staff}.
1906
1907 @cindex @code{modern-voice-cautionary}
1908 @item modern-voice-cautionary
1909 This rule is the same as @code{modern-voice}, but with the extra
1910 accidentals (the ones not typeset by @code{voice}) typeset
1911 as cautionaries.  Even though all accidentals typeset by
1912 @code{default} @emph{are} typeset by this variable,
1913 some of them are typeset as cautionaries.
1914
1915 @item piano
1916 @cindex @code{piano} accidentals
1917 This rule reflects 20th century practice for piano notation.  Very similar to
1918 @code{modern} but accidentals also get canceled
1919 across the staves in the same @internalsref{GrandStaff} or
1920 @internalsref{PianoStaff}.
1921
1922 @item piano-cautionary
1923 @cindex @code{#(set-accidental-style 'piano-cautionary)}
1924 Same as @code{#(set-accidental-style 'piano)} but with the extra
1925 accidentals typeset as cautionaries.
1926
1927 @item no-reset
1928 @cindex @code{no-reset} accidental style
1929 This is the same as @code{default} but with accidentals lasting
1930 ``forever'' and not only until the next measure
1931 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
1932 #(set-accidental-style 'no-reset)
1933 c1 cis cis c
1934 @end lilypond
1935
1936 @item forget
1937 This is sort of the opposite of @code{no-reset}: Accidentals
1938 are not remembered at all---and hence all accidentals are
1939 typeset relative to the key signature, regardless of what was
1940 before in the music
1941
1942 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
1943 #(set-accidental-style 'forget)
1944 \key d\major c4 c cis cis d d dis dis
1945 @end lilypond
1946 @end table
1947
1948
1949 @seealso
1950
1951 Program reference: @internalsref{Accidental_engraver},
1952 @internalsref{Accidental}, and @internalsref{AccidentalPlacement}.
1953
1954
1955 @refbugs
1956
1957 Simultaneous notes are considered to be entered in sequential
1958 mode.  This means that in a chord the accidentals are typeset as if the
1959 notes in the chord happened once at a time - in the order in which
1960 they appear in the input file.
1961
1962 This is a problem when accidentals in a chord depend on each other,
1963 which does not happen for the default accidental style.  The problem
1964 can be solved by manually inserting @code{!} and @code{?} for the
1965 problematic notes.
1966
1967
1968 @node Expressive marks
1969 @section Expressive marks
1970
1971
1972 @c todo: should change ordering
1973 @c where to put text spanners, metronome marks,
1974 @c fingering?
1975
1976 Expressive marks help musicians to bring more to the music than simple
1977 notes and rhythms.
1978
1979 @menu
1980 * Slurs::                       
1981 * Phrasing slurs::              
1982 * Breath marks::                
1983 * Metronome marks::             
1984 * Text scripts::                
1985 * Text spanners::               
1986 * Analysis brackets::           
1987 * Articulations::               
1988 * Running trills::              
1989 * Fingering instructions::      
1990 * Grace notes::                 
1991 * Glissando::                   
1992 * Dynamics::                    
1993 @end menu
1994
1995 @node Slurs
1996 @subsection Slurs
1997 @cindex Slurs
1998
1999 A slur indicates that notes are to be played bound or @emph{legato}.
2000
2001 They are entered using parentheses
2002 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
2003 f( g a) a8 b( a4 g2 f4)
2004 <c e>2( <b d>2)
2005 @end lilypond
2006
2007 The direction of a slur can be set with the
2008 generic commands
2009
2010 @example
2011 \override Slur #'direction = #UP
2012 \slurUp            % shortcut for the previous line
2013 @end example
2014
2015 @noindent
2016 However, there is a convenient shorthand for forcing slur
2017 directions.  By adding @code{_} or @code{^} before the opening
2018 parentheses, the direction is also set.  For example,
2019
2020 @lilypond[relative=2,raggedright,quote,verbatim,fragment]
2021 c4_( c) c^( c)
2022 @end lilypond
2023
2024 Some composers write two slurs when they want legato chords.  This can
2025 be achieved in LilyPond by setting @code{doubleSlurs},
2026
2027 @lilypond[verbatim,raggedright,relative,fragment,quote]
2028 \set doubleSlurs = ##t
2029 <c e>4 ( <d f> <c e> <d f> )
2030 @end lilypond
2031
2032
2033 @refcommands
2034
2035
2036 @cindex @code{\slurUp}
2037 @code{\slurUp},
2038 @cindex @code{\slurDown}
2039 @code{\slurDown},
2040 @cindex @code{\slurNeutral}
2041 @code{\slurNeutral},
2042 @cindex @code{\slurDotted}
2043 @code{\slurDotted},
2044 @cindex @code{\slurSolid}
2045 @code{\slurSolid}.
2046
2047 @seealso
2048
2049 Program reference: @seeinternals{Slur}, and @internalsref{SlurEvent}.
2050
2051
2052 @node Phrasing slurs
2053 @subsection Phrasing slurs
2054
2055 @cindex phrasing slurs
2056 @cindex phrasing marks
2057
2058 A phrasing slur (or phrasing mark) connects chords and is used to
2059 indicate a musical sentence.  It is written using @code{\(} and @code{\)}
2060 respectively
2061
2062 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
2063 \time 6/4 c'\( d( e) f( e) d\)
2064 @end lilypond
2065
2066 Typographically, the phrasing slur behaves almost exactly like a
2067 normal slur.  However, they are treated as different objects.  A
2068 @code{\slurUp} will have no effect on a phrasing slur; instead, use
2069 @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
2070 @code{\phrasingSlurNeutral}.
2071
2072 The commands @code{\slurUp}, @code{\slurDown}, and @code{\slurNeutral}
2073 will only affect normal slurs and not phrasing slurs.
2074
2075 @refcommands
2076
2077 @cindex @code{\phrasingSlurUp}
2078 @code{\phrasingSlurUp},
2079 @cindex @code{\phrasingSlurDown}
2080 @code{\phrasingSlurDown},
2081 @cindex @code{\phrasingSlurNeutral}
2082 @code{\phrasingSlurNeutral}.
2083
2084 @seealso
2085
2086 Program reference: see also @internalsref{PhrasingSlur}, and
2087 @internalsref{PhrasingSlurEvent}.
2088
2089 @refbugs
2090
2091 Putting phrasing slurs over rests leads to spurious warnings.
2092
2093 @node Breath marks
2094 @subsection Breath marks
2095
2096 Breath marks are entered using @code{\breathe}
2097
2098
2099 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
2100 c'4 \breathe d4
2101 @end lilypond
2102
2103 The glyph of the breath mark can be tuned by overriding the
2104 @code{text} property of the @code{BreathingSign} layout object with
2105 any markup text.  For example,
2106 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
2107 c'4
2108 \override BreathingSign #'text
2109   = #(make-musicglyph-markup "scripts-rvarcomma")
2110 \breathe
2111 d4
2112 @end lilypond
2113
2114 @seealso
2115
2116 Program reference: @internalsref{BreathingSign},
2117 @internalsref{BreathingSignEvent}.
2118
2119 Examples: @inputfileref{input/@/regression,breathing@/-sign@/.ly}.
2120
2121
2122 @node Metronome marks
2123 @subsection Metronome marks
2124
2125 @cindex Tempo
2126 @cindex beats per minute
2127 @cindex metronome marking
2128
2129 Metronome settings can be entered as follows
2130 @example
2131 \tempo @var{duration} = @var{per-minute}
2132 @end example
2133
2134 In the MIDI output, they are interpreted as a tempo change.  In the
2135 layout output, a metronome marking is printed
2136 @cindex @code{\tempo}
2137 @lilypond[quote,raggedright,verbatim,fragment]
2138 \tempo 8.=120 c''1
2139 @end lilypond
2140
2141 @seealso
2142
2143 Program reference: @internalsref{MetronomeChangeEvent}.
2144
2145
2146 @node Text scripts
2147 @subsection Text scripts
2148 @cindex Text scripts
2149
2150 @cindex text items, non-empty
2151 @cindex non-empty texts
2152
2153 It is possible to place arbitrary strings of text or markup text (see
2154 @ref{Text markup}) above or below notes by using a string
2155 @code{c^"text"}.  By default, these indications do not influence the
2156 note spacing, but by using the command @code{\fatText}, the widths
2157 will be taken into account
2158
2159 @lilypond[quote,fragment,raggedright,verbatim,relative=1]
2160 c4^"longtext" \fatText c4_"longlongtext" c4
2161 @end lilypond
2162
2163 More complex formatting may also be added to a note by using the
2164 markup command,
2165 @lilypond[fragment,raggedright,verbatim,quote]
2166 c'4^\markup { bla \bold bla }
2167 @end lilypond
2168
2169 The @code{\markup} is described in more detail in
2170 @ref{Text markup}.
2171
2172
2173 @refcommands
2174
2175 @cindex @code{\fatText}
2176 @code{\fatText},
2177 @cindex @code{\emptyText}
2178 @code{\emptyText}.
2179
2180 @seealso
2181
2182 In this manual: @ref{Text markup}.
2183
2184 Program reference: @internalsref{TextScriptEvent}, @internalsref{TextScript}.
2185
2186
2187 @node Text spanners
2188 @subsection Text spanners
2189 @cindex Text spanners
2190
2191 Some performance indications, e.g., @i{rallentando} or @i{accelerando},
2192 are written as text and are extended over many measures with dotted
2193 lines.  Such texts are created using text spanners; attach
2194 @code{\startTextSpan} and @code{\stopTextSpan} to the first and last
2195 notes of the spanner.
2196
2197 The string to be printed, as well as the style, is set through object
2198 properties
2199
2200 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
2201 c1
2202 \override TextSpanner #'direction = #-1
2203 \override TextSpanner #'edge-text = #'("rall " . "")
2204 c2\startTextSpan b c\stopTextSpan a
2205 @end lilypond
2206
2207
2208 @seealso
2209
2210 Internals @internalsref{TextSpanEvent},
2211 @internalsref{TextSpanner}.
2212
2213 Examples: @inputfileref{input/@/regression,text@/-spanner@/.ly}.
2214
2215
2216 @node Analysis brackets
2217 @subsection Analysis brackets
2218 @cindex brackets
2219 @cindex phrasing brackets
2220 @cindex musicological analysis
2221 @cindex note grouping bracket
2222
2223 Brackets are used in musical analysis to indicate structure in musical
2224 pieces.  LilyPond supports a simple form of nested horizontal
2225 brackets.  To use this, add the @internalsref{Horizontal_bracket_engraver}
2226 to @internalsref{Staff} context.  A bracket is started with
2227 @code{\startGroup} and closed with @code{\stopGroup}
2228
2229 @lilypond[quote,raggedright,verbatim]
2230 \score {
2231   \relative c'' {
2232     c4\startGroup\startGroup
2233     c4\stopGroup
2234     c4\startGroup
2235     c4\stopGroup\stopGroup
2236   }
2237   \layout {
2238     \context {
2239       \Staff \consists "Horizontal_bracket_engraver"
2240 }}}
2241 @end lilypond
2242
2243 @seealso
2244
2245 Program reference: @internalsref{HorizontalBracket},
2246 @internalsref{NoteGroupingEvent}.
2247
2248 Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
2249
2250
2251 @node Articulations
2252 @subsection Articulations
2253 @cindex Articulations
2254
2255 @cindex articulations
2256 @cindex scripts
2257 @cindex ornaments
2258
2259 A variety of symbols can appear above and below notes to indicate
2260 different characteristics of the performance.  They are added to a note
2261 by adding a dash and the character signifying the
2262 articulation.  They are demonstrated here
2263
2264 @lilypondfile[quote,raggedright]{script-abbreviations.ly}
2265
2266 The meanings of these shorthands can be changed.  See
2267 @file{ly/@/script@/-init@/.ly} for examples.
2268
2269
2270 The script is automatically placed, but the direction can be forced as
2271 well.  Like other pieces of LilyPond code, @code{_} will place them
2272 below the staff, and @code{^} will place them above.
2273
2274
2275 @lilypond[quote,raggedright,fragment,verbatim]
2276 c''4^^ c''4_^
2277 @end lilypond
2278
2279 Other symbols can be added using the syntax
2280 @var{note}@code{\}@var{name}.  Again, they
2281 can be forced up or down using @code{^} and @code{_},
2282 e.g.,
2283
2284 @lilypond[quote,raggedright,verbatim,fragment,relative=2]
2285 c\fermata c^\fermata c_\fermata
2286 @end lilypond
2287
2288
2289
2290 @cindex accent
2291 @cindex marcato
2292 @cindex staccatissimo
2293 @cindex espressivo
2294 @cindex fermata
2295 @cindex stopped
2296 @cindex staccato
2297 @cindex portato
2298 @cindex tenuto
2299 @cindex upbow
2300 @cindex downbow
2301 @cindex foot marks
2302 @cindex organ pedal marks
2303 @cindex turn
2304 @cindex open
2305 @cindex flageolet
2306 @cindex reverseturn
2307 @cindex trill
2308 @cindex prall
2309 @cindex mordent
2310 @cindex prallprall
2311 @cindex prallmordent
2312 @cindex prall, up
2313 @cindex prall, down
2314 @cindex mordent
2315 @cindex thumb marking
2316 @cindex segno
2317 @cindex coda
2318 @cindex varcoda
2319
2320 Here is a chart showing all scripts available,
2321
2322 @lilypondfile[raggedright,quote]{script-chart.ly}
2323
2324
2325 The vertical ordering of scripts is controlled with the
2326 @code{script-priority} property.  The lower this number, the closer it
2327 will be put to the note.  In this example, the
2328 @internalsref{TextScript} (the sharp symbol) first has the lowest
2329 priority, so it is put lowest in the first example.  In the second, the
2330 prall trill (the @internalsref{Script}) has the lowest, so it is on the
2331 inside.  When two objects have the same priority, the order in which
2332 they are entered decides which one comes first.
2333
2334
2335 @lilypond[verbatim,relative=3,raggedright,fragment,quote]
2336 \once \override TextScript #'script-priority = #-100
2337 a4^\prall^\markup { \sharp }
2338
2339 \once \override Script #'script-priority = #-100
2340 a4^\prall^\markup { \sharp }
2341 @end lilypond
2342
2343
2344
2345
2346 @seealso
2347
2348 Program reference: @internalsref{ScriptEvent}, and @internalsref{Script}.
2349
2350 @refbugs
2351
2352 These signs appear in the printed output but have no effect on the
2353 MIDI rendering of the music.
2354
2355
2356
2357 @node Running trills
2358 @subsection Running trills
2359
2360 Long running trills are made with @code{\startTrillSpan} and
2361 @code{\stopTrillSpan},
2362
2363
2364 @lilypond[verbatim,raggedright,relative=2,quote,fragment]
2365 \new Voice {
2366   << { c1 \startTrillSpan }
2367      { s2. \grace { d16[\stopTrillSpan e] } } >>
2368   c4 }
2369 @end lilypond
2370
2371 @refcommands
2372
2373 @code{\startTrillSpan},
2374 @cindex @code{\startTrillSpan}
2375 @code{\stopTrillSpan}.
2376 @cindex @code{\stopTrillSpan}
2377
2378 @seealso
2379
2380 Program reference: @internalsref{TrillSpanner},
2381 @internalsref{TrillSpanEvent}.
2382
2383 @node Fingering instructions
2384 @subsection Fingering instructions
2385
2386 @cindex fingering
2387
2388 Fingering instructions can be entered using
2389 @example
2390 @var{note}-@var{digit}
2391 @end example
2392 For finger changes, use markup texts
2393
2394 @lilypond[quote,verbatim,raggedright,fragment,relative=1]
2395 c4-1 c-2 c-3 c-4
2396 c^\markup { \finger "2-3" }
2397 @end lilypond
2398
2399 @cindex finger change
2400 @cindex scripts
2401 @cindex superscript
2402 @cindex subscript
2403
2404 You can use the thumb-script to indicate that a note should be
2405 played with the thumb (e.g., in cello music)
2406 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
2407 <a_\thumb a'-3>8 <b_\thumb b'-3>
2408 @end lilypond
2409
2410 Fingerings for chords can also be added to individual notes
2411 of the chord by adding them after the pitches
2412 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
2413 < c-1 e-2 g-3 b-5 >4
2414 @end lilypond
2415
2416 @noindent
2417 In this case, setting @code{fingeringOrientations} will put fingerings next
2418 to note heads
2419
2420 @lilypond[quote,verbatim,raggedright,fragment,relative=1]
2421 \set fingeringOrientations = #'(left down)
2422 <c-1 es-2 g-4 bes-5 > 4
2423 \set fingeringOrientations = #'(up right down)
2424 <c-1 es-2 g-4 bes-5 > 4
2425 @end lilypond
2426
2427 Using this feature, it is also possible to put fingering instructions
2428 very close to note heads in monophonic music,
2429
2430 @lilypond[verbatim,raggedright,quote,fragment]
2431 \set fingeringOrientations = #'(right)
2432 <es'-2>4
2433 @end lilypond
2434
2435
2436 @seealso
2437
2438 Program reference: @internalsref{FingerEvent}, and @internalsref{Fingering}.
2439
2440 Examples: @inputfileref{input/@/regression,finger@/-chords@/.ly}.
2441
2442
2443
2444
2445 @node Grace notes
2446 @subsection Grace notes
2447
2448
2449 @c should have blurb about accaciatura / appogiatura
2450
2451 @cindex @code{\grace}
2452 @cindex ornaments
2453 @cindex grace notes
2454
2455 Grace notes are ornaments that are written out.  The most common ones
2456 are acciaccatura, which should be played as very short.  It is denoted
2457 by a slurred small note with a slashed stem.  The appoggiatura is a
2458 grace note that takes a fixed fraction of the main note, and is
2459 denoted as a slurred note in small print without a slash.  They
2460 are entered with the commands @code{\acciaccatura} and
2461 @code{\appoggiatura}, as demonstrated in the following example
2462
2463
2464 @cindex appoggiatura
2465 @cindex acciaccatura
2466
2467 @lilypond[quote,raggedright,relative=2,verbatim,fragment]
2468 b4 \acciaccatura d8 c4 \appoggiatura e8 d4
2469 \acciaccatura { g16[ f] } e4
2470 @end lilypond
2471
2472 Both are special forms of the @code{\grace} command.  By prefixing this
2473 keyword to a music expression, a new one is formed, which will be
2474 printed in a smaller font and takes up no logical time in a measure.
2475
2476 @lilypond[quote,raggedright,relative=2,verbatim,fragment]
2477 c4 \grace c16 c4
2478 \grace { c16[ d16] } c2 c4
2479 @end lilypond
2480
2481 @noindent
2482 Unlike @code{\acciaccatura} and @code{\appoggiatura}, the
2483 @code{\grace} command does not start a slur.
2484
2485 Internally, timing for grace notes is done using a second, `grace'
2486 timing.  Every point in time consists of two rational numbers: one
2487 denotes the logical time, one denotes the grace timing.  The above
2488 example is shown here with timing tuples
2489
2490 @lilypond[quote,raggedright]
2491 <<
2492   \relative c''{
2493     c4 \grace c16 c4 \grace {
2494     c16[ d16] } c2 c4
2495   }
2496   \new Lyrics \lyricmode {
2497     \override LyricText #'font-family = #'typewriter
2498
2499     \markup { (0,0) } 4
2500     \grace { \markup {
2501       ( \fraction 1 4 , \fraction -1 16 ) } 16 }
2502     \markup { (\fraction 1 4 , 0 ) } 4
2503     \grace {
2504       \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
2505       \markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16
2506     }
2507     \markup { ( \fraction 2 4 , 0 ) }
2508   }
2509 >>
2510 @end lilypond
2511
2512
2513 The placement of grace notes is synchronized between different staves.
2514 In the following example, there are two sixteenth grace notes for
2515 every eighth grace note
2516
2517 @lilypond[quote,raggedright,relative=2,verbatim,fragment]
2518 << \new Staff { e4 \grace { c16[ d e f] } e4 }
2519    \new Staff { c4 \grace { g8[ b] } c4 } >>
2520 @end lilypond
2521
2522
2523
2524 If you want to end a note with a grace, use the @code{\afterGrace}
2525 command. It takes two arguments: the main note, and the grace notes
2526 following the main note. 
2527
2528 @lilypond[raggedright, verbatim,relative=2,fragment]
2529 c1 \afterGrace d1 { c16[ d] } c4   
2530 @end lilypond
2531
2532 This will put the grace notes after a ``space'' lasting 3/4 of the
2533 length of the main note. The fraction 3/4 can be changed by setting
2534 @code{afterGraceFraction}, ie.
2535
2536 @example
2537 afterGraceFraction = #(cons 7 8) 
2538 @end example
2539
2540 @noindent
2541 will put the grace note at 7/8 of the main note. 
2542
2543
2544 The same effect can be achieved manually by doing
2545
2546
2547 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
2548 \context Voice {
2549   << { d1^\trill_( }
2550      { s2 \grace { c16[ d] } } >>
2551   c4)
2552 }
2553 @end lilypond
2554
2555 @noindent
2556 By adjusting the duration of the skip note (here it is a half-note),
2557 the space between the main-note and the grace is adjusted.
2558
2559
2560
2561
2562 A @code{\grace} section will introduce special typesetting settings,
2563 for example, to produce smaller type, and set directions.  Hence, when
2564 introducing layout tweaks, they should be inside the grace section,
2565 for example,
2566 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
2567 \new Voice {
2568   \acciaccatura {
2569     \stemDown
2570     f16->
2571     \stemNeutral
2572   }
2573   g4
2574 }
2575 @end lilypond
2576
2577 @noindent
2578 The overrides should also be reverted inside the grace section.
2579
2580 The layout of grace sections can be changed throughout the music using
2581 the function @code{add-grace-property}.  The following example
2582 undefines the Stem direction for this grace, so stems do not always
2583 point up.
2584
2585 @example
2586 \new Staff @{
2587   #(add-grace-property 'Voice 'Stem 'direction '())
2588   @dots{}
2589 @}
2590 @end example
2591
2592 @noindent
2593 Another option is to change the variables @code{startGraceMusic},
2594 @code{stopGraceMusic}, @code{startAcciaccaturaMusic},
2595 @code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic},
2596 @code{stopAppoggiaturaMusic}.  More information is in the file
2597 @file{ly/@/grace@/-init@/.ly}.
2598
2599
2600 @seealso
2601
2602 Program reference: @internalsref{GraceMusic}.
2603
2604 @refbugs
2605
2606 A score that starts with a @code{\grace} section needs an explicit
2607 @code{\context Voice} declaration, otherwise the main note and the grace
2608 note end up on different staves.
2609
2610 Grace note synchronization can also lead to surprises.  Staff notation,
2611 such as key signatures, bar lines, etc., are also synchronized.  Take
2612 care when you mix staves with grace notes and staves without, for example,
2613
2614 @lilypond[quote,raggedright,relative=2,verbatim,fragment]
2615 << \new Staff { e4 \bar "|:" \grace c16 d4 }
2616    \new Staff { c4 \bar "|:" d4 } >>
2617 @end lilypond
2618
2619 @noindent
2620 This can be remedied by inserting grace skips, for the above example
2621
2622 @example
2623 \new Staff @{ c4 \bar "|:" \grace s16 d4 @}
2624 @end example
2625
2626 Grace sections should only be used within sequential music
2627 expressions.  Nesting or juxtaposing grace sections is not supported,
2628 and might produce crashes or other errors.
2629
2630
2631 @node Glissando
2632 @subsection Glissando
2633 @cindex Glissando
2634
2635 @cindex @code{\glissando}
2636
2637 A glissando is a smooth change in pitch.  It is denoted by a line or a
2638 wavy line between two notes.  It is requested by attaching
2639 @code{\glissando} to a note
2640
2641 @lilypond[quote,raggedright,fragment,relative=2,verbatim]
2642 c\glissando c'
2643 @end lilypond
2644
2645 @seealso
2646
2647 Program reference: @internalsref{Glissando}, and @internalsref{GlissandoEvent}.
2648
2649 Example files: @file{input/@/regression/@/glissando@/.ly}.
2650
2651
2652
2653 @refbugs
2654
2655 Printing text over the line (such as @emph{gliss.}) is not supported.
2656
2657
2658 @node Dynamics
2659 @subsection Dynamics
2660 @cindex Dynamics
2661
2662
2663
2664 @cindex @code{\ppp}
2665 @cindex @code{\pp}
2666 @cindex @code{\p}
2667 @cindex @code{\mp}
2668 @cindex @code{\mf}
2669 @cindex @code{\f}
2670 @cindex @code{\ff}
2671 @cindex @code{\fff}
2672 @cindex @code{\ffff}
2673 @cindex @code{\fp}
2674 @cindex @code{\sf}
2675 @cindex @code{\sff}
2676 @cindex @code{\sp}
2677 @cindex @code{\spp}
2678 @cindex @code{\sfz}
2679 @cindex @code{\rfz}
2680
2681
2682 Absolute dynamic marks are specified using a command after a note
2683 @code{c4\ff}.  The available dynamic marks are @code{\ppp},
2684 @code{\pp}, @code{\p}, @code{\mp}, @code{\mf}, @code{\f}, @code{\ff},
2685 @code{\fff}, @code{\fff}, @code{\fp}, @code{\sf}, @code{\sff},
2686 @code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}
2687
2688 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
2689 c\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
2690 c2\fp c\sf c\sff c\sp c\spp c\sfz c\rfz
2691 @end lilypond
2692
2693 @cindex @code{\<}
2694 @cindex @code{\>}
2695 @cindex @code{\"!}
2696
2697
2698
2699 A crescendo mark is started with @code{\<} and terminated with
2700 @code{\!}.  A decrescendo is started with @code{\>} and also terminated
2701 with @code{\!}.  Because these marks are bound to notes, you must
2702 use spacer notes if multiple marks are needed during one note
2703
2704 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
2705 c\< c\! d\> e\!
2706 << f1 { s4 s4\< s4\! \> s4\! } >>
2707 @end lilypond
2708 This may give rise to very short hairpins.  Use @code{minimum-length}
2709 in @internalsref{Voice}.@internalsref{Hairpin} to lengthen them, for
2710 example
2711
2712 @example
2713 \override Staff.Hairpin #'minimum-length = #5
2714 @end example
2715
2716 You can also use a text saying @emph{cresc.} instead of hairpins.  Here
2717 is an example how to do it
2718
2719 @lilypond[quote,raggedright,fragment,relative=2,verbatim]
2720 \setTextCresc
2721 c\< d e f\!
2722 \setHairpinCresc
2723 e\> d c b\!
2724 \setTextDecresc
2725 c\> d e f\!
2726 \setTextDim
2727 e\> d c b\!
2728 @end lilypond
2729
2730 @cindex crescendo
2731 @cindex decrescendo
2732
2733 You can also supply your own texts
2734 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
2735 \set crescendoText = \markup { \italic "cresc. poco" }
2736 \set crescendoSpanner = #'dashed-line
2737 a'2\< a a a\!\mf
2738 @end lilypond
2739
2740 @cindex diminuendo
2741
2742 To create new dynamic marks or text that should be aligned
2743 with dynamics, see @ref{New dynamic marks}.
2744
2745
2746 @refcommands
2747
2748 @cindex @code{\dynamicUp}
2749 @code{\dynamicUp},
2750 @cindex @code{\dynamicDown}
2751 @code{\dynamicDown},
2752 @cindex @code{\dynamicNeutral}
2753 @code{\dynamicNeutral}.
2754
2755 @cindex direction, of dynamics
2756
2757 @seealso
2758
2759 Program reference: @internalsref{CrescendoEvent},
2760 @internalsref{DecrescendoEvent}, and
2761 @internalsref{AbsoluteDynamicEvent}.
2762
2763 Dynamics are @internalsref{DynamicText} and @internalsref{Hairpin}
2764 objects.  Vertical positioning of these symbols is handled by the
2765 @internalsref{DynamicLineSpanner} object.
2766
2767
2768 @node Repeats
2769 @section Repeats
2770
2771 Repetition is a central concept in music, and multiple notations exist
2772 for repetitions.
2773
2774 @menu
2775 * Repeat types::                
2776 * Repeat syntax::               
2777 * Repeats and MIDI::            
2778 * Manual repeat commands::      
2779 * Tremolo repeats::             
2780 * Tremolo subdivisions::        
2781 * Measure repeats::             
2782 @end menu
2783
2784 @node Repeat types
2785 @subsection Repeat types
2786
2787 @cindex repeats
2788 @cindex @code{\repeat}
2789
2790 The following types of repetition are supported
2791
2792 @table @code
2793 @item unfold
2794 Repeated music is fully written (played) out.  This is useful when
2795 entering repetitious music.  This is the only kind of repeat that
2796 is included in MIDI output.
2797
2798 @item volta
2799 Repeats are not written out, but alternative endings (volte) are
2800 printed, left to right with brackets.  This is the standard notation
2801 for repeats with alternatives.  These are not played in MIDI output by default.
2802
2803 @ignore
2804 @item fold
2805 Alternative endings are written stacked.  This has limited use but may be
2806 used to typeset two lines of lyrics in songs with repeats, see
2807 @inputfileref{input,star-spangled-banner@/.ly}.
2808 @end ignore
2809
2810 @c tremolo, beamed
2811 @item tremolo
2812 Make tremolo beams.  These are not played in MIDI output by default.
2813
2814 @item percent
2815 Make beat or measure repeats.  These look like percent signs.  These
2816 are not played in MIDI output by default.
2817
2818 @end table
2819
2820 @node Repeat syntax
2821 @subsection Repeat syntax
2822
2823
2824 LilyPond has one syntactic construct for specifying different types of
2825 repeats.  The syntax is
2826
2827 @example
2828 \repeat @var{variant} @var{repeatcount} @var{repeatbody}
2829 @end example
2830
2831 If you have alternative endings, you may add
2832 @cindex @code{\alternative}
2833 @example
2834 \alternative @{ @var{alternative1}
2835                @var{alternative2}
2836                @var{alternative3} @dots{} @}
2837 @end example
2838 where each @var{alternative} is a music expression.  If you do not
2839 give enough alternatives for all of the repeats, the first alternative
2840 is assumed to be played more than once.
2841
2842 Standard repeats are used like this
2843 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
2844 c1
2845 \repeat volta 2 { c4 d e f }
2846 \repeat volta 2 { f e d c }
2847 @end lilypond
2848
2849 With alternative endings
2850 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
2851 c1
2852 \repeat volta 2 {c4 d e f}
2853 \alternative { {d2 d} {f f,} }
2854 @end lilypond
2855
2856
2857 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
2858 \context Staff {
2859   \partial 4
2860   \repeat volta 4 { e | c2 d2 | e2 f2 | }
2861   \alternative { { g4 g g } { a | a a a a | b2. } }
2862 }
2863 @end lilypond
2864
2865 It is possible to shorten volta brackets
2866 by setting @code{voltaSpannerDuration}.  In the next example, the
2867 bracket only lasts one measure, which is a duration of 3/4.
2868
2869
2870
2871 @lilypond[verbatim,raggedright,quote]
2872 \relative c''{
2873   \time 3/4
2874   c c c
2875   \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
2876   \repeat "volta" 5 { d d d }
2877   \alternative { { e e e f f f }
2878   { g g g } }
2879 }
2880 @end lilypond
2881
2882
2883 @seealso
2884
2885 Examples:
2886
2887 Brackets for the repeat are normally only printed over the topmost
2888 staff.  This can be adjusted by setting the @code{voltaOnThisStaff}
2889 property; see @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly}.
2890
2891 @c not necessary
2892 @c @inputfileref{input/@/regression,volta@/-chord@/-names@/.ly}.
2893
2894
2895 @refbugs
2896
2897 A nested repeat like
2898
2899 @example
2900 \repeat @dots{}
2901 \repeat @dots{}
2902 \alternative
2903 @end example
2904
2905 @noindent
2906 is ambiguous, since it is is not clear to which @code{\repeat} the
2907 @code{\alternative} belongs.  This ambiguity is resolved by always
2908 having the @code{\alternative} belong to the inner @code{\repeat}.
2909 For clarity, it is advisable to use braces in such situations.
2910 @cindex ambiguity
2911
2912
2913
2914 Timing information is not remembered at the start of an alternative,
2915 so after a repeat timing information must be reset by hand, for
2916 example by setting @code{Score.measurePosition} or entering
2917 @code{\partial}.  Similarly, slurs or ties are also not repeated.
2918
2919
2920
2921
2922 @node Repeats and MIDI
2923 @subsection Repeats and MIDI
2924
2925 @cindex expanding repeats
2926
2927 With a little bit of tweaking, all types of repeats can be present
2928 in the MIDI output.  This is achieved by applying the
2929 @code{\unfoldrepeats} music function.  This functions changes all
2930 repeats to unfold repeats.
2931
2932 @lilypond[quote,verbatim,fragment,linewidth=8.0\cm]
2933 \unfoldrepeats {
2934   \repeat tremolo 8 {c'32 e' }
2935   \repeat percent 2 { c''8 d'' }
2936   \repeat volta 2 {c'4 d' e' f'}
2937   \alternative {
2938     { g' a' a' g' }
2939     {f' e' d' c' }
2940   }
2941 }
2942 \bar "|."
2943 @end lilypond
2944
2945 When creating a score file using @code{\unfoldrepeats} for midi, then
2946 it is necessary to make two @code{\score} blocks.  One for MIDI (with
2947 unfolded repeats) and one for notation (with volta, tremolo, and
2948 percent repeats).  For example,
2949
2950 @example
2951 \score @{
2952   @var{..music..}
2953   \layout @{ .. @}
2954 @}
2955 \score @{
2956   \unfoldrepeats @var{..music..}
2957   \midi @{ .. @}
2958 @}
2959 @end example
2960
2961 @node Manual repeat commands
2962 @subsection Manual repeat commands
2963
2964 @cindex @code{repeatCommands}
2965
2966 The property @code{repeatCommands} can be used to control the layout of
2967 repeats.  Its value is a Scheme list of repeat commands.
2968
2969 @table @asis
2970 @item @code{start-repeat}
2971 Print a @code{|:} bar line.
2972
2973 @item @code{end-repeat}
2974 Print a @code{:|} bar line.
2975
2976 @item @code{(volta @var{text})}
2977 Print a volta bracket saying @var{text}: The text can be specified as
2978 a text string or as a markup text, see @ref{Text markup}.  Do not
2979 forget to change the font, as the default number font does not contain
2980 alphabetic characters;
2981
2982 @item @code{(volta #f)}
2983 Stop a running volta bracket.
2984 @end table
2985
2986 @lilypond[quote,raggedright,verbatim,fragment,relative=2]
2987 c4
2988   \set Score.repeatCommands = #'((volta "93") end-repeat)
2989 c4 c4
2990   \set Score.repeatCommands = #'((volta #f))
2991 c4 c4
2992 @end lilypond
2993
2994
2995
2996 @seealso
2997
2998 Program reference: @internalsref{VoltaBracket}, @internalsref{RepeatedMusic},
2999 @internalsref{VoltaRepeatedMusic},
3000 @internalsref{UnfoldedRepeatedMusic}, and
3001 @internalsref{FoldedRepeatedMusic}.
3002
3003 @node Tremolo repeats
3004 @subsection Tremolo repeats
3005 @cindex tremolo beams
3006
3007 To place tremolo marks between notes, use @code{\repeat} with tremolo
3008 style
3009 @lilypond[quote,verbatim,raggedright]
3010 \new Voice \relative c' {
3011   \repeat "tremolo" 8 { c16 d16 }
3012   \repeat "tremolo" 4 { c16 d16 }
3013   \repeat "tremolo" 2 { c16 d16 }
3014 }
3015 @end lilypond
3016
3017 Tremolo marks can also be put on a single note.  In this case, the
3018 note should not be surrounded by braces.
3019 @lilypond[quote,verbatim,raggedright]
3020 \repeat "tremolo" 4 c'16
3021 @end lilypond
3022
3023 Similar output is obtained using the tremolo subdivision, described in
3024 @ref{Tremolo subdivisions}.
3025
3026 @seealso
3027
3028 In this manual: @ref{Tremolo subdivisions}, @ref{Repeats}.
3029
3030 Program reference: tremolo beams are @internalsref{Beam} objects.  Single stem
3031 tremolos are @internalsref{StemTremolo} objects.  The music expression is
3032 @internalsref{TremoloEvent}.
3033
3034 Example files: @inputfileref{input/@/regression,chord@/-tremolo@/.ly},
3035 @inputfileref{input/@/regression,stem@/-tremolo@/.ly}.
3036
3037 @node Tremolo subdivisions
3038 @subsection Tremolo subdivisions
3039 @cindex tremolo marks
3040 @cindex @code{tremoloFlags}
3041
3042 Tremolo marks can be printed on a single note by adding
3043 `@code{:}[@var{number}]' after the note.  The number indicates the
3044 duration of the subdivision, and it must be at least 8.  A
3045 @var{length} value of 8 gives one line across the note stem.  If the
3046 length is omitted, the last value (stored in @code{tremoloFlags}) is
3047 used
3048
3049 @lilypond[quote,raggedright,verbatim,fragment]
3050 c'2:8 c':32 | c': c': |
3051 @end lilypond
3052
3053 @c [TODO: stok is te kort bij 32en]
3054 @c   somebody want to translate that into English?
3055 @c   `Stem is too short for 32nds' (wl)
3056
3057 @refbugs
3058
3059 Tremolos entered in this way do not carry over into the MIDI output.
3060
3061 @seealso
3062
3063 In this manual: @ref{Tremolo repeats}.
3064
3065 Elsewhere: @internalsref{StemTremolo}, @internalsref{TremoloEvent}.
3066
3067 @node Measure repeats
3068 @subsection Measure repeats
3069
3070 @cindex percent repeats
3071 @cindex measure repeats
3072
3073 In the @code{percent} style, a note pattern can be repeated.  It is
3074 printed once, and then the pattern is replaced with a special sign.
3075 Patterns of one and two measures are replaced by percent-like signs,
3076 patterns that divide the measure length are replaced by slashes
3077
3078 @lilypond[quote,verbatim,raggedright]
3079 \new Voice \relative c' {
3080   \repeat "percent" 4 { c4 }
3081   \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
3082 }
3083 @end lilypond
3084
3085 @seealso
3086
3087 Program reference: @internalsref{RepeatSlash}, @internalsref{PercentRepeat},
3088 @internalsref{PercentRepeatedMusic}, and
3089 @internalsref{DoublePercentRepeat}.
3090
3091
3092
3093 @node Rhythmic music
3094 @section Rhythmic music
3095
3096 Rhythmic music is primarily used for percussion and drum notation, but it can
3097 also be used to show the rhythms of melodies.
3098
3099 @menu
3100 * Showing melody rhythms::      
3101 * Entering percussion::         
3102 * Percussion staves::           
3103 @end menu
3104
3105
3106 @node Showing melody rhythms
3107 @subsection Showing melody rhythms
3108
3109 Sometimes you might want to show only the rhythm of a melody.  This
3110 can be done with the rhythmic staff.  All pitches of notes on such a
3111 staff are squashed, and the staff itself has a single line
3112
3113 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
3114 \context RhythmicStaff {
3115   \time 4/4
3116   c4 e8 f g2 | r4 g r2 | g1:32 | r1 |
3117 }
3118 @end lilypond
3119
3120 @seealso
3121
3122 Program reference: @internalsref{RhythmicStaff}.
3123
3124 Examples: @inputfileref{input/@/regression,rhythmic@/-staff@/.ly}.
3125
3126
3127 @node Entering percussion
3128 @subsection Entering percussion
3129
3130 @cindex percussion
3131 @cindex drums
3132
3133
3134 Percussion notes may be entered in @code{\drummode} mode, which is
3135 similar to the standard mode for entering notes.  Each piece of
3136 percussion has a full name and an abbreviated name, and both can be used
3137 in input files
3138
3139 @lilypond[quote,raggedright,verbatim]
3140 \drums {
3141   hihat hh bassdrum bd
3142 }
3143 @end lilypond
3144
3145 The complete list of drum names is in the init file
3146 @file{ly/@/drumpitch@/-init@/.ly}.
3147 @c TODO: properly document this.
3148
3149 @seealso
3150
3151 Program reference: @internalsref{DrumNoteEvent}.
3152
3153 @node Percussion staves
3154 @subsection Percussion staves
3155 @cindex percussion
3156 @cindex drums
3157
3158 A percussion part for more than one instrument typically uses a
3159 multiline staff where each position in the staff refers to one piece
3160 of percussion.
3161
3162
3163 To typeset the music, the notes must be interpreted in a
3164 @internalsref{DrumStaff} and @internalsref{DrumVoice} contexts
3165
3166 @lilypond[quote,raggedright,verbatim]
3167 up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
3168 down = \drummode { bassdrum4 snare8 bd r bd sn4 }
3169   \new DrumStaff <<
3170     \new DrumVoice { \voiceOne \up }
3171     \new DrumVoice { \voiceTwo \down }
3172   >>
3173 @end lilypond
3174
3175 The above example shows verbose polyphonic notation.  The short
3176 polyphonic notation, described in @ref{Polyphony}, can also be used if
3177 the @internalsref{DrumVoices} are instantiated by hand first.  For example,
3178
3179 @lilypond[quote,raggedright,fragment,verbatim]
3180 \new DrumStaff <<
3181   \context DrumVoice = "1" { s1 *2 }
3182   \context DrumVoice = "2" { s1 *2 }
3183   \drummode {
3184     bd4 sn4 bd4 sn4
3185     <<
3186       { \repeat unfold 16 hh16 }
3187       \\
3188       { bd4 sn4 bd4 sn4 }
3189     >>
3190   }
3191 >>
3192 @end lilypond
3193
3194
3195 There are also other layout possibilities.  To use these, set the
3196 property @code{drumStyleTable} in context @internalsref{DrumVoice}.
3197 The following variables have been predefined
3198
3199 @table @code
3200 @item drums-style
3201 This is the default.  It typesets a typical drum kit on a five-line staff
3202
3203 @lilypond[quote,linewidth=10.0\cm]
3204 nam = \lyricmode {
3205   cymc cyms cymr hh hhc hho hhho hhp
3206   cb hc bd sn ss tomh tommh tomml toml tomfh tomfl }
3207 mus = \drummode {
3208   cymc cyms cymr hh hhc hho hhho hhp \break
3209   cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 }
3210 \score {
3211   << \new DrumStaff \with {
3212        \remove Bar_engraver
3213        \remove Time_signature_engraver
3214        \override Stem #'transparent = ##t
3215        \override Stem #'Y-extent-callback = ##f
3216        minimumVerticalExtent = #'(-4.0 . 5.0)
3217      } \mus
3218      \context Lyrics \nam
3219   >>
3220   \layout {
3221     \context {
3222       \Score
3223       \override LyricText #'font-family = #'typewriter
3224       \override BarNumber #'transparent =##T
3225     }
3226   }
3227 }
3228 @end lilypond
3229
3230 The drum scheme supports six different toms.  When there are fewer toms,
3231 simply select the toms that produce the desired result, i.e., to get toms
3232 on the three middle lines you use @code{tommh}, @code{tomml}, and
3233 @code{tomfh}.
3234
3235 @item timbales-style
3236 This typesets timbales on a two line staff
3237
3238 @lilypond[quote,raggedright]
3239 nam = \lyricmode { timh ssh timl ssl cb }
3240 mus = \drummode { timh ssh timl ssl cb s16 }
3241
3242 <<
3243   \context DrumStaff \with {
3244     \remove Bar_engraver
3245     \remove Time_signature_engraver
3246     \override Stem #'transparent = ##t
3247     \override Stem #'Y-extent-callback = ##f
3248     \override StaffSymbol #'line-count = #2
3249     \override StaffSymbol #'staff-space = #2
3250     minimumVerticalExtent = #'(-3.0 . 4.0)
3251     drumStyleTable = #timbales-style
3252   } \mus
3253   \context Lyrics {
3254     \override LyricText #'font-family = #'typewriter
3255     \nam
3256   }
3257 >>
3258 @end lilypond
3259
3260 @item congas-style
3261 This typesets congas on a two line staff
3262
3263 @lilypond[quote,raggedright]
3264 nam = \lyricmode { cgh cgho cghm ssh cgl cglo cglm ssl }
3265 mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
3266
3267 <<
3268   \context DrumStaff \with {
3269     \remove Bar_engraver
3270     \remove Time_signature_engraver
3271     drumStyleTable = #congas-style
3272     \override StaffSymbol #'line-count = #2
3273
3274     %% this sucks; it will lengthen stems.
3275     \override StaffSymbol #'staff-space = #2
3276     \override Stem #'transparent = ##t
3277     \override Stem #'Y-extent-callback = ##f
3278   } \mus
3279   \context Lyrics {
3280     \override LyricText #'font-family = #'typewriter
3281     \nam
3282   }
3283 >>
3284 @end lilypond
3285
3286 @item bongos-style
3287 This typesets bongos on a two line staff
3288
3289 @lilypond[quote,raggedright]
3290 nam = \lyricmode { boh boho bohm ssh bol bolo bolm ssl }
3291 mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
3292
3293 <<
3294   \context DrumStaff\with {
3295     \remove Bar_engraver
3296     \remove Time_signature_engraver
3297     \override StaffSymbol #'line-count = #2
3298     drumStyleTable = #bongos-style
3299
3300     %% this sucks; it will lengthen stems.
3301     \override StaffSymbol #'staff-space = #2
3302     \override Stem #'transparent = ##t
3303     \override Stem #'Y-extent-callback = ##f
3304   } \mus
3305   \context Lyrics {
3306     \override LyricText #'font-family = #'typewriter
3307     \nam
3308   }
3309 >>
3310 @end lilypond
3311
3312 @item percussion-style
3313 To typeset all kinds of simple percussion on one line staves.
3314
3315 @lilypond[quote,raggedright]
3316 nam = \lyricmode { tri trio trim gui guis guil cb cl tamb cab mar hc }
3317 mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
3318
3319 <<
3320   \context DrumStaff\with{
3321     \remove Bar_engraver
3322     drumStyleTable = #percussion-style
3323     \override StaffSymbol #'line-count = #1
3324     \remove Time_signature_engraver
3325     \override Stem #'transparent = ##t
3326     \override Stem #'Y-extent-callback = ##f
3327   } \mus
3328   \context Lyrics {
3329     \override LyricText #'font-family = #'typewriter
3330     \nam
3331   }
3332 >>
3333 @end lilypond
3334 @end table
3335
3336 If you do not like any of the predefined lists you can define your own
3337 list at the top of your file
3338
3339 @lilypond[quote,raggedright,verbatim]
3340 #(define mydrums '(
3341          (bassdrum     default   #f         -1)
3342          (snare        default   #f         0)
3343          (hihat        cross     #f         1)
3344          (pedalhihat   xcircle   "stopped"  2)
3345          (lowtom       diamond   #f         3)))
3346 up = \drummode { hh8 hh hh hh hhp4 hhp }
3347 down = \drummode { bd4 sn bd toml8 toml }
3348
3349 \new DrumStaff <<
3350   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
3351   \new DrumVoice { \voiceOne \up }
3352   \new DrumVoice { \voiceTwo \down }
3353 >>
3354 @end lilypond
3355
3356
3357 @seealso
3358
3359 Init files: @file{ly/@/drumpitch@/-init@/.ly}.
3360
3361 Program reference: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
3362
3363 @refbugs
3364
3365 Because general MIDI does not contain rim shots, the sidestick is used
3366 for this purpose instead.
3367
3368 @node Piano music
3369 @section Piano music
3370
3371 Piano staves are two normal staves coupled with a brace.  The staves
3372 are largely independent, but sometimes voices can cross between the
3373 two staves.  The same notation is also used for harps and other key
3374 @c Is this `harp' or `harpsichord'?
3375 instruments.  The @internalsref{PianoStaff} is especially built to
3376 handle this cross-staffing behavior.  In this section we discuss the
3377 @internalsref{PianoStaff} and some other pianistic peculiarities.
3378
3379
3380 @menu
3381 * Automatic staff changes::     
3382 * Manual staff switches::       
3383 * Pedals::                      
3384 * Arpeggio::                    
3385 * Staff switch lines::          
3386 * Cross staff stems::           
3387 @end menu
3388
3389 @refbugs
3390
3391 Dynamics are not centered, but workarounds do exist.  See the
3392 ``piano centered dynamics'' template in @ref{Piano templates}.
3393
3394 @cindex cross staff stem
3395 @cindex stem, cross staff
3396 @cindex distance between staves in piano music
3397
3398 The distance between the two staves is the same for all systems in the
3399 score.  It is possible to override this per system, but it does require
3400 an arcane command incantation.  See
3401 @inputfileref{input/@/test,piano@/-staff@/-distance@/.ly}.
3402
3403
3404 @node Automatic staff changes
3405 @subsection Automatic staff changes
3406 @cindex Automatic staff changes
3407
3408 Voices can be made to switch automatically between the top and the bottom
3409 staff.  The syntax for this is
3410
3411 @quotation
3412 @example
3413 \autochange @dots{}@var{music}@dots{}
3414 @end example
3415 @end quotation
3416
3417 @noindent
3418 This will create two staves inside the current PianoStaff, called
3419 @code{up} and @code{down}.  The lower staff will be in bass clef by
3420 default.
3421
3422 A @code{\relative} section that is outside of @code{\autochange} has
3423 no effect on the pitches of @var{music}, so, if necessary, put
3424 @code{\relative} inside @code{\autochange} like
3425
3426 @quotation
3427 @example
3428 \autochange \relative @dots{} @dots{}
3429 @end example
3430 @end quotation
3431
3432
3433 The autochanger switches on basis of the pitch (middle C is the turning
3434 point), and it looks ahead skipping over rests to switch in
3435 advance.  Here is a practical example
3436
3437 @lilypond[quote,verbatim,raggedright]
3438 \context PianoStaff
3439   \autochange \relative c'
3440   {
3441     g4 a b c d r4 a g
3442   }
3443 @end lilypond
3444
3445
3446 @seealso
3447
3448 In this manual: @ref{Manual staff switches}.
3449
3450 Program reference: @internalsref{AutoChangeMusic}.
3451
3452
3453
3454 @refbugs
3455
3456 The staff switches may not end up in optimal places.  For high
3457 quality output, staff switches should be specified manually.
3458
3459
3460 @code{\autochange} cannot be inside @code{\times}.
3461
3462 Internally, the @code{\partcombine} interprets both arguments as
3463 @code{Voice}s named @code{one} and @code{two}, and then decides when
3464 the parts can be combined.  Consequently, if the arguments switch to
3465 differently named @internalsref{Voice} contexts, the events in those
3466 will be ignored.
3467
3468
3469 @node Manual staff switches
3470 @subsection Manual staff switches
3471
3472 @cindex manual staff switches
3473 @cindex staff switch, manual
3474
3475 Voices can be switched between staves manually, using the command
3476 @example
3477 \change Staff = @var{staffname} @var{music}
3478 @end example
3479
3480 @noindent
3481 The string @var{staffname} is the name of the staff.  It switches the
3482 current voice from its current staff to the Staff called
3483 @var{staffname}.  Typically @var{staffname} is @code{"up"} or
3484 @code{"down"}.  The @context{Staff} referred to must already exist, so
3485 usually the setup for a score will start with a setup of the staves,
3486
3487 @example
3488 <<
3489   \context Staff = up @{
3490     \skip 1 * 10  % @emph{keep staff alive}
3491     @}
3492   \context Staff = down @{
3493     \skip 1 * 10  % @emph{idem}
3494     @}
3495 >>
3496 @end example
3497
3498
3499 and the @context{Voice} is inserted afterwards
3500
3501 @example
3502 \context Staff = down
3503   \new Voice @{ @dots{} \change Staff = up @dots{} @}
3504 @end example
3505
3506
3507 @node Pedals
3508 @subsection Pedals
3509 @cindex Pedals
3510
3511 Pianos have pedals that alter the way sound is produced.  Generally, a
3512 piano has three pedals, sustain, una corda, and sostenuto.
3513
3514
3515 Piano pedal instruction can be expressed by attaching
3516 @code{\sustainDown}, @code{\sustainUp}, @code{\unaCorda},
3517 @code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a
3518 note or chord
3519
3520 @lilypond[quote,raggedright,fragment,verbatim]
3521 c'4\sustainDown c'4\sustainUp
3522 @end lilypond
3523
3524 What is printed can be modified by setting @code{pedal@var{X}Strings},
3525 where @var{X} is one of the pedal types: @code{Sustain},
3526 @code{Sostenuto} or @code{UnaCorda}.  Refer to
3527 @internalsref{SustainPedal} in the program reference for more
3528 information.
3529
3530 Pedals can also be indicated by a sequence of brackets, by setting the
3531 @code{pedalSustainStyle} property to bracket objects
3532
3533 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
3534 \set Staff.pedalSustainStyle = #'bracket
3535 c\sustainDown d e
3536 b\sustainUp\sustainDown
3537 b g \sustainUp a \sustainDown \bar "|."
3538 @end lilypond
3539
3540 A third style of pedal notation is a mixture of text and brackets,
3541 obtained by setting the @code{pedalSustainStyle} property to
3542 @code{mixed}
3543
3544 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
3545 \set Staff.pedalSustainStyle = #'mixed
3546 c\sustainDown d e
3547 b\sustainUp\sustainDown
3548 b g \sustainUp a \sustainDown \bar "|."
3549 @end lilypond
3550
3551 The default `*Ped.' style for sustain and damper pedals corresponds to
3552 style @code{#'text}.  The sostenuto pedal uses @code{mixed} style by
3553 default.
3554
3555 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
3556 c\sostenutoDown d e c, f g a\sostenutoUp
3557 @end lilypond
3558
3559 For fine-tuning the appearance of a pedal bracket, the properties
3560 @code{edge-width}, @code{edge-height}, and @code{shorten-pair} of
3561 @code{PianoPedalBracket} objects (see
3562 @internalsref{PianoPedalBracket} in the Program reference) can be
3563 modified.  For example, the bracket may be extended to the right edge
3564 of the note head
3565
3566 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
3567 \override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
3568 c\sostenutoDown d e c, f g a\sostenutoUp
3569 @end lilypond
3570
3571 @node Arpeggio
3572 @subsection Arpeggio
3573 @cindex Arpeggio
3574
3575 @cindex broken arpeggio
3576 @cindex @code{\arpeggio}
3577
3578 You can specify an arpeggio sign on a chord by attaching an
3579 @code{\arpeggio} to a chord
3580
3581
3582 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
3583 <c e g c>\arpeggio
3584 @end lilypond
3585
3586 When an arpeggio crosses staves, you attach an arpeggio to the chords
3587 in both staves, and set
3588 @internalsref{PianoStaff}.@code{connectArpeggios}
3589
3590 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
3591 \context PianoStaff <<
3592   \set PianoStaff.connectArpeggios = ##t
3593   \new Staff { <c' e g c>\arpeggio }
3594   \new Staff { \clef bass <c,, e g>\arpeggio }
3595 >>
3596 @end lilypond
3597
3598 The direction of the arpeggio is sometimes denoted by adding an
3599 arrowhead to the wiggly line
3600
3601 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
3602 \context Voice {
3603   \arpeggioUp
3604   <c e g c>\arpeggio
3605   \arpeggioDown
3606   <c e g c>\arpeggio
3607 }
3608 @end lilypond
3609
3610 A square bracket on the left indicates that the player should not
3611 arpeggiate the chord
3612
3613 @c todo: ugh, lousy typography.  Look for real example. --hwn
3614
3615 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
3616 \arpeggioBracket
3617 <c' e g c>\arpeggio
3618 @end lilypond
3619
3620 @refcommands
3621
3622 @cindex @code{\arpeggio}
3623 @code{\arpeggio},
3624 @cindex @code{\arpeggioUp}
3625 @code{\arpeggioUp},
3626 @cindex @code{\arpeggioDown}
3627 @code{\arpeggioDown},
3628 @cindex @code{\arpeggioNeutral}
3629 @code{\arpeggioNeutral},
3630 @cindex @code{\arpeggioBracket}
3631 @code{\arpeggioBracket}.
3632
3633 @seealso
3634
3635 Program reference: @internalsref{ArpeggioEvent},
3636 @internalsref{Arpeggio}.
3637
3638 @refbugs
3639
3640 It is not possible to mix connected arpeggios and unconnected
3641 arpeggios in one @internalsref{PianoStaff} at the same point in time.
3642
3643 @node Staff switch lines
3644 @subsection Staff switch lines
3645
3646
3647 @cindex follow voice
3648 @cindex staff switching
3649 @cindex cross staff
3650
3651 @cindex @code{followVoice}
3652
3653 Whenever a voice switches to another staff, a line connecting the notes
3654 can be printed automatically.  This is switched on by setting
3655 @code{PianoStaff.followVoice} to true
3656
3657 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
3658 \context PianoStaff <<
3659   \set PianoStaff.followVoice = ##t
3660   \context Staff \context Voice {
3661     c1
3662     \change Staff=two
3663     b2 a
3664   }
3665  \context Staff=two { \clef bass \skip 1*2 }
3666 >>
3667 @end lilypond
3668
3669 @seealso
3670
3671 Program reference: @internalsref{VoiceFollower}.
3672
3673 @refcommands
3674
3675 @cindex @code{\showStaffSwitch}
3676 @code{\showStaffSwitch},
3677 @cindex @code{\hideStaffSwitch}
3678 @code{\hideStaffSwitch}.
3679
3680
3681 @node Cross staff stems
3682 @subsection Cross staff stems
3683
3684 Chords that cross staves may be produced by increasing the length
3685 of the stem in the lower staff, so it reaches the stem in the upper
3686 staff, or vice versa.
3687
3688 @lilypond[raggedright,verbatim,quote]
3689 stemExtend = \once \override Stem #'length = #22
3690 noFlag = \once \override Stem #'flag-style = #'no-flag
3691 \context PianoStaff <<
3692   \new Staff {
3693     \stemDown \stemExtend
3694     f'4
3695     \stemExtend \noFlag
3696     f'8
3697   }
3698   \new Staff {
3699     \clef bass
3700     a4 a8
3701   }
3702 >>
3703 @end lilypond
3704
3705
3706 @node Vocal music
3707 @section Vocal music
3708
3709 There are three different issues when printing vocal music
3710
3711 @itemize @bullet
3712 @item
3713 Song texts must be entered as text, not notes.  For example, the
3714 input@tie{}@code{d} should be interpreted as a one letter syllable, not the
3715 note@tie{}D.
3716
3717 @item
3718 Song texts must be printed as text, not as notes.
3719
3720 @item
3721 Song texts must be aligned with the notes of their melody.
3722 @end itemize
3723
3724 The simplest solution for printing music uses the @code{\addlyrics}
3725 function to solve all these problems at once.  However, these
3726 three functions can be controlled separately, which is necessary
3727 for complex vocal music.
3728
3729
3730 @menu
3731 * Setting simple songs::        
3732 * Entering lyrics::             
3733 * Hyphens and extenders::       
3734 * The Lyrics context::          
3735 * Flexibility in alignment::    
3736 * More stanzas::                
3737 * Ambitus::                     
3738 @end menu
3739
3740 @node Setting simple songs
3741 @subsection Setting simple songs
3742
3743 The easiest way to add lyrics to a melody is to append
3744 @cindex \addlyrics
3745 @example
3746 \addlyrics @{ @var{the lyrics} @}
3747 @end example
3748
3749 @noindent
3750 to a melody.  Here is an example,
3751
3752 @lilypond[raggedright,verbatim,fragment,quote]
3753 \time 3/4
3754 \relative { c2 e4 g2. }
3755 \addlyrics { play the game }
3756 @end lilypond
3757
3758 More stanzas can be added by adding more
3759 @code{\addlyrics} sections
3760
3761 @lilypond[raggedright,verbatim,fragment,quote]
3762 \time 3/4
3763 \relative { c2 e4 g2. }
3764 \addlyrics { play the game }
3765 \addlyrics { speel het spel }
3766 \addlyrics { joue le jeu }
3767 @end lilypond
3768
3769 @c TODO - this isn't such a great place for this note, but I can't
3770 @c  find a better place without rearranging a lot of lyric stuff.
3771 @c  It's yet another thing to look at post-3.0.
3772
3773 The @code{\addlyrics} command is actually just a convienient way
3774 to write a more complicated LilyPond structure that sets up the
3775 lyrics.  You should use @code{\addlyrics} unless you need to do
3776 fancy things, in which case you should investigate
3777 @code{\lyricsto} or @code{\lyricmode}.
3778
3779 @example
3780 @{ MUSIC @}
3781 \addlyrics @{ LYRICS @}
3782 @end example
3783
3784 @noindent
3785 is the same as
3786
3787 @example
3788 \context Voice = blah @{ music @}
3789 \lyricsto "blah" \new lyrics @{ LYRICS @}
3790 @end example
3791
3792
3793 @node Entering lyrics
3794 @subsection Entering lyrics
3795
3796
3797 @cindex lyrics
3798 @cindex @code{\lyricmode}
3799 @cindex punctuation
3800
3801 Lyrics are entered in a special input mode.  This mode is introduced
3802 by the keyword @code{\lyricmode}, or by using @code{addlyrics} or
3803 @code{lyricsto}.  In this mode you can enter lyrics,
3804 with punctuation and accents, and the input @code{d} is not parsed as
3805 a pitch, but rather as a one letter syllable.  Syllables are entered
3806 like notes, but with pitches replaced by text.  For example,
3807 @example
3808 \lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
3809 @end example
3810
3811
3812 A word lyrics mode begins with an alphabetic character, and ends with
3813 any space or digit.  The following characters can be any character
3814 that is not a digit or white space.  One important consequence of this
3815 is that a word can end with @code{@}}.  The following example is
3816 usually a mistake in the input file.  The syllable includes a @code{@}}, so the
3817 opening brace is not balanced
3818 @example
3819 \lyricmode @{ twinkle@}
3820 @end example
3821
3822 @cindex @code{\property}, in @code{\lyricmode}
3823 @noindent
3824 Similarly, a period which follows an alphabetic sequence is included in
3825 the resulting string.  As a consequence, spaces must be inserted around
3826 property commands
3827 @example
3828 \override Score . LyricText #'font-shape = #'italic
3829 @end example
3830
3831 @cindex @code{_}
3832 @cindex spaces, in lyrics
3833 @cindex quotes, in lyrics
3834
3835 Any @code{_} character that appears in an unquoted word is converted
3836 to a space.  This provides a mechanism for introducing spaces into words
3837 without using quotes.  Quoted words can also be used in Lyrics mode to
3838 specify words that cannot be written with the above rules.  The
3839 following example incorporates double quotes
3840
3841 @example
3842 \lyricmode @{ He said: "\"Let" my peo ple "go\"" @}
3843 @end example
3844
3845 This example is slightly academic, since it gives better looking
3846 results using single quotes, @code{``} and @code{''}
3847 @example
3848 \lyricmode @{ He said: ``Let my peo ple go'' @}
3849 @end example
3850
3851
3852 The full definition of a word start in Lyrics mode is somewhat more
3853 complex.
3854
3855 A word in Lyrics mode begins with: an alphabetic character, @code{_},
3856 @code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A}
3857 through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^},
3858 any 8-bit character with ASCII code over 127, or a two-character
3859 combination of a backslash followed by one of @code{`}, @code{'},
3860 @code{"}, or @code{^}.
3861
3862
3863
3864 @seealso
3865
3866 Program reference: events @internalsref{LyricEvent}, and
3867 @internalsref{LyricText}.
3868
3869 @refbugs
3870
3871 The definition of lyrics mode is too complex.
3872
3873 @node Hyphens and extenders
3874 @subsection Hyphens and extenders
3875
3876 @cindex hyphens
3877
3878 Centered hyphens are entered as `@code{-}@code{-}' between syllables.
3879 The hyphen will have variable length depending on the space between
3880 the syllables and it will be centered between the syllables.
3881
3882 @cindex melisma
3883 @cindex extender
3884
3885 When a lyric is sung over many notes (this is called a melisma), this is
3886 indicated with a horizontal line centered between a syllable and the
3887 next one.  Such a line is called an extender line, and it is entered as
3888 @code{__}.
3889
3890 @ignore
3891 FIXME: check that this compiles and displays correctly.  I don't want
3892 to commit this part blindly.
3893
3894 In tighly engraved music, hyphens can be removed.  In some languages
3895 (e.g. German and Hungarian), hyphens should not disappear, since
3896 spelling depends on hyphenation.  For that purpose, hyphens can be
3897 forced to remain by overriding @code{minimum-length} of
3898 the @code{LyricHyphen} grob.
3899
3900 (code from 2.2)
3901 \score {
3902 <<    \notes \new Staff \relative c'' { \time 1/4 c16[ c c  c]
3903 \time 1/4
3904 c16[ c c c]
3905 \time 1/4
3906 c16[ c c c]
3907
3908 }
3909     \lyrics \new Lyrics \with {
3910         % Otherwise lyrics are so far apart that hyphens don't disappear
3911         \override SeparationItem #'padding = #0.0
3912         }{ bla -- bla -- bla -- bla --
3913            bla -- bla -- bla -- bla --
3914
3915            \override LyricHyphen  #'minimum-length = #0.7
3916            \override LyricHyphen  #'spacing-procedure =
3917                   #Hyphen_spanner::set_spacing_rods
3918
3919            bla -- bla -- bla -- bla 
3920        }>>
3921     \paper   {
3922         indent = 0.0 \cm
3923         linewidth = 3.4 \cm
3924
3925         \context {
3926             \StaffContext \remove "Time_signature_engraver"
3927         }
3928         
3929     }
3930       
3931 }
3932 @end ignore
3933
3934
3935 @seealso
3936
3937 Program reference: @internalsref{HyphenEvent},
3938 @internalsref{ExtenderEvent}, @internalsref{LyricHyphen}, and
3939 @internalsref{LyricExtender}
3940
3941
3942
3943 @node The Lyrics context
3944 @subsection The Lyrics context
3945
3946
3947 Lyrics are printed by interpreting them in a @internalsref{Lyrics} context
3948 @example
3949 \context Lyrics \lyricmode @dots{}
3950 @end example
3951
3952 @cindex automatic syllable durations
3953 @cindex @code{\lyricsto}
3954 @cindex lyrics and melodies
3955
3956 This will place the lyrics according to the durations that were
3957 entered.  The lyrics can also be aligned under a given melody
3958 automatically.  In this case, it is no longer necessary to enter the
3959 correct duration for each syllable.  This is achieved by combining the
3960 melody and the lyrics with the @code{\lyricsto} expression
3961 @example
3962 \lyricsto @var{name} \new Lyrics @dots{}
3963 @end example
3964
3965 This aligns the lyrics to the
3966 notes of the @internalsref{Voice} context called @var{name}, which has
3967 to exist.  Therefore, normally the @code{Voice} is specified first, and
3968 then the lyrics are specified with @code{\lyricsto}.  The command
3969 @code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
3970 @code{\lyricmode} keyword may be omitted.
3971
3972 For different or more complex orderings, the best way is to setup the
3973 hierarchy of staves and lyrics first, e.g.,
3974 @example
3975 \context ChoirStaff <<
3976   \context Lyrics = sopranoLyrics @{ s1 @}
3977   \context Voice = soprano @{ @emph{music} @}
3978   \context Lyrics = tenorLyrics @{ s1 @}
3979   \context Voice = tenor @{ @emph{music} @}
3980 >>
3981 @end example
3982 and then combine the appropriate melodies and lyric lines
3983 @example
3984 \lyricsto "soprano" \context Lyrics = sopranoLyrics
3985   @emph{the lyrics}
3986 @end example
3987
3988 @noindent
3989 The final input would resemble
3990
3991 @example
3992 <<\context ChoirStaff << @emph{setup the music} >>
3993   \lyricsto "soprano" @emph{etc}
3994   \lyricsto "alto" @emph{etc}
3995   @emph{etc}
3996 >>
3997 @end example
3998
3999
4000 The @code{\lyricsto} command detects melismata: it only puts one
4001 syllable under a tied or slurred group of notes.  If you want to force
4002 an unslurred group of notes to be a melisma, insert @code{\melisma}
4003 after the first note of the group, and @code{\melismaEnd} after the
4004 last one, e.g.,
4005
4006 @lilypond[quote,relative=2,raggedright,fragment,verbatim]
4007 <<
4008   \context Voice = "lala" {
4009     \time 3/4
4010     f4 g8
4011     \melisma
4012     f e f
4013     \melismaEnd
4014     e2
4015   }
4016   \lyricsto "lala" \new Lyrics {
4017     la di __ daah
4018   }
4019 >>
4020 @end lilypond
4021
4022 In addition, notes are considered a melisma if they are manually
4023 beamed, and automatic beaming (see @ref{Setting automatic beam
4024 behavior}) is switched off.
4025
4026 @ignore
4027
4028 @c nonformation:
4029
4030 The criteria for deciding melismata can
4031 be tuned with the property @code{melismaBusyProperties}.  See
4032 @internalsref{Melisma_translator} in the program reference for more
4033 information.
4034
4035 @end ignore
4036
4037 Lyrics can also be entered without @code{\lyricsto}.  In this case the
4038 duration of each syllable must be entered explicitly, for example,
4039
4040 @example
4041 play2 the4 game2.
4042 sink2 or4 swim2.
4043 @end example
4044
4045 The alignment to a melody can be specified with the
4046 @code{associatedVoice} property,
4047
4048 @example
4049 \set associatedVoice = #"lala"
4050 @end example
4051
4052 @noindent
4053 The value of the property (here: @code{"lala"}) should be the name of
4054 a @internalsref{Voice} context.  Without this setting, extender lines
4055 will not be formatted properly.
4056
4057 Here is an example demonstrating manual lyric durations,
4058
4059 @lilypond[relative=1,raggedright,verbatim,fragment,quote]
4060 << \context Voice = melody {
4061      \time 3/4
4062      c2 e4 g2.
4063   }
4064   \new Lyrics \lyricmode {
4065     \set associatedVoice = #"melody"
4066     play2 the4 game2.
4067   } >>
4068 @end lilypond
4069
4070 @cindex SATB
4071 @cindex choral score
4072
4073 A complete example of a SATB score setup is in section
4074 @ref{Vocal ensembles}.
4075
4076
4077 @refcommands
4078
4079 @code{\melisma}, @code{\melismaEnd}
4080 @cindex @code{\melismaEnd}
4081 @cindex @code{\melisma}
4082
4083 @seealso
4084
4085 Program reference: @internalsref{LyricCombineMusic},
4086 @internalsref{Lyrics}, @internalsref{Melisma_translator}.
4087
4088
4089 @c link broken:
4090 @c Examples: @ref{Small ensembles},
4091
4092
4093 @inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
4094 @c TODO: make separate section for melismata
4095
4096 @c  I can't find these examples in 2.0 or 2.2; remove. -gp
4097 @c @inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
4098 @c @inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
4099
4100 @refbugs
4101
4102 Melismata are not detected automatically, and extender lines must be
4103 inserted by hand.
4104
4105
4106 @c TODO: document \new Staff << Voice \lyricsto >> bug
4107
4108 @node Flexibility in alignment
4109 @subsection Flexibility in alignment
4110
4111
4112 Often, different stanzas of one song are put to one melody in slightly
4113 differing ways.  Such variations can still be captured with
4114 @code{\lyricsto}.
4115
4116 One possibility is that the text has a melisma in one stanza, but
4117 multiple syllables in another one.  One solution is to make the faster
4118 voice ignore the melisma.  This is done by setting
4119 @code{ignoreMelismata} in the Lyrics context.
4120
4121 There has one tricky aspect.  The setting for @code{ignoreMelismata}
4122 must be set one syllable @emph{before} the non-melismatic syllable
4123 in the text, as shown here,
4124
4125 @lilypond[verbatim,raggedright,quote]
4126 <<
4127   \relative \context Voice = "lahlah" {
4128     \set Staff.autoBeaming = ##f
4129     c4
4130     \slurDotted
4131     f8.[( g16])
4132     a4
4133   }
4134   \new Lyrics \lyricsto "lahlah" {
4135     more slow -- ly
4136   }
4137   \new Lyrics \lyricsto "lahlah" {
4138     \set ignoreMelismata = ##t % applies to "fas"
4139     go fas -- ter
4140     \unset ignoreMelismata
4141     still
4142   }
4143 >>
4144 @end lilypond
4145
4146
4147 The @code{ignoreMelismata} applies to the syllable ``fas'', so it
4148 should be entered before ``go''.
4149
4150 The reverse is also possible: making a lyric line slower than the
4151 standard.  This can be achieved by insert @code{\skip}s into the
4152 lyrics.  For every @code{\skip}, the text will be delayed another note.
4153 For example,
4154
4155 @lilypond[verbatim,raggedright,quote]
4156 \relative { c c g' }
4157 \addlyrics {
4158   twin -- \skip 4
4159   kle
4160 }
4161 @end lilypond
4162
4163 More complex variations in text underlay are possible.  It is possible
4164 to switch the melody for a line of lyrics during the text.  This is
4165 done by setting the @code{associatedVoice} property.  In the example
4166
4167 @lilypond[raggedright,quote]
4168 <<
4169   \relative \context Voice = "lahlah" {
4170     \set Staff.autoBeaming = ##f
4171     c4
4172     <<
4173       \context Voice = alternative {
4174         \voiceOne
4175         \times 2/3 {
4176           % show associations clearly.
4177           \override NoteColumn #'force-hshift = #-3
4178           f8 f g
4179         }
4180       }
4181       {
4182         \voiceTwo
4183         f8.[ g16]
4184         \oneVoice
4185       } >>
4186     a8( b) c
4187   }
4188   \new Lyrics \lyricsto "lahlah" {
4189     Ju -- ras -- sic Park
4190   }
4191   \new Lyrics \lyricsto "lahlah" {
4192     % Tricky: need to set associatedVoice
4193     % one syllable too soon!
4194     \set associatedVoice = alternative % applies to "ran"
4195     Ty --
4196     ran --
4197     no --
4198     \set associatedVoice = lahlah % applies to "rus"
4199     sau -- rus Rex
4200   } >>
4201 @end lilypond
4202
4203 @noindent
4204 the text for the first stanza is set to a melody called ``lahlah'',
4205
4206 @example
4207 \new Lyrics \lyricsto "lahlah" @{
4208   Ju -- ras -- sic Park
4209 @}
4210 @end example
4211
4212
4213 The second stanza initially is set to the @code{lahlah} context, but
4214 for the syllable ``ran'', it switches to a different melody.
4215 This is achieved with
4216 @example
4217 \set associatedVoice = alternative
4218 @end example
4219
4220 @noindent
4221 Here, @code{alternative} is the name of the @code{Voice} context
4222 containing the triplet.
4223
4224 Again, the command must be one syllable too early, before ``Ty'' in
4225 this case.
4226
4227 @example
4228 \new Lyrics \lyricsto "lahlah" @{
4229   \set associatedVoice = alternative % applies to "ran"
4230   Ty --
4231   ran --
4232   no --
4233   \set associatedVoice = lahlah % applies to "rus"
4234   sau -- rus Rex
4235 @}
4236 @end example
4237
4238 @noindent
4239 The underlay is switched back to the starting situation by assigning
4240 @code{lahlah} to @code{associatedVoice}.
4241
4242
4243
4244
4245 @node More stanzas
4246 @subsection More stanzas
4247
4248 @cindex phrasing, in lyrics
4249
4250
4251 @cindex stanza number
4252 @cindex singer's names
4253 @cindex name of singer
4254
4255 Stanza numbers can be added by setting @code{stanza}, e.g.,
4256
4257 @lilypond[quote,raggedright,verbatim,relative=2,fragment]
4258 \new Voice {
4259   \time 3/4 g2 e4 a2 f4 g2.
4260 } \addlyrics {
4261   \set stanza = "1. "
4262   Hi, my name is Bert.
4263 } \addlyrics {
4264   \set stanza = "2. "
4265   Oh, che -- ri, je t'aime
4266 }
4267 @end lilypond
4268
4269 These numbers are put just before the start of first syllable.
4270
4271 Names of singers can also be added.  They are printed at the start of
4272 the line, just like instrument names.  They are created by setting
4273 @code{vocalName}.  A short version may be entered as @code{vocNam}.
4274
4275
4276 @lilypond[fragment,raggedright,quote,verbatim,relative=2]
4277 \new Voice {
4278   \time 3/4 g2 e4 a2 f4 g2.
4279 } \addlyrics {
4280   \set vocalName = "Bert "
4281   Hi, my name is Bert.
4282 } \addlyrics {
4283   \set vocalName = "Ernie "
4284   Oh, che -- ri, je t'aime
4285 }
4286 @end lilypond
4287
4288 @seealso
4289
4290 Program reference: Layout objects @internalsref{LyricText} and
4291 @internalsref{VocalName}.  Music expressions
4292 @internalsref{LyricEvent}.
4293
4294
4295
4296 @node Ambitus
4297 @subsection Ambitus
4298 @cindex ambitus
4299
4300 The term @emph{ambitus} denotes a range of pitches for a given voice
4301 in a part of music.  It may also denote the pitch range that a musical
4302 instrument is capable of playing.  Ambits are printed on vocal parts,
4303 so performers can easily determine it meets their capabilities.
4304
4305 Ambits are denoted at the beginning of a piece near the initial clef.
4306 The range is graphically specified by two note heads that represent the
4307 minimum and maximum pitch.  To print such ambits, add the
4308 @internalsref{Ambitus_engraver} to the @internalsref{Voice} context,
4309 for example,
4310
4311 @example
4312 \layout @{
4313   \context @{
4314     \Voice
4315     \consists Ambitus_engraver
4316   @}
4317 @}
4318 @end example
4319
4320 This results in the following output
4321
4322 @lilypond[quote,raggedright]
4323 \layout {
4324   \context {
4325     \Staff
4326     \consists Ambitus_engraver
4327   }
4328 }
4329
4330 \relative \new Staff {
4331   as'' c e2 cis,2
4332 }
4333 @end lilypond
4334
4335 If you have multiple voices in a single staff and you want a single
4336 ambitus per staff rather than per each voice, add the
4337 @internalsref{Ambitus_engraver} to the @internalsref{Staff} context
4338 rather than to the @internalsref{Voice} context.  Here is an example,
4339
4340 @lilypond[verbatim,raggedright,quote]
4341 \new Staff \with {
4342   \consists "Ambitus_engraver"
4343 }
4344 <<
4345   \new Voice \with {
4346     \remove "Ambitus_engraver"
4347   } \relative c'' {
4348     \override Ambitus #'X-offset-callbacks
4349       = #(list (lambda (grob axis) -1.0))
4350     \voiceOne
4351     c4 a d e f2
4352   }
4353   \new Voice \with {
4354     \remove "Ambitus_engraver"
4355   } \relative c' {
4356     \voiceTwo
4357     es4 f g as b2
4358   }
4359 >>
4360 @end lilypond
4361
4362 @noindent
4363 This example uses one advanced feature,
4364
4365 @example
4366 \override Ambitus #'X-offset-callbacks
4367   = #(list (lambda (grob axis) -1.0))
4368 @end example
4369
4370 @noindent
4371 This code moves the ambitus to the left.  The same effect could have
4372 been achieved with @code{extra-offset}, but then the formatting system
4373 would not reserve space for the moved object.
4374
4375 @seealso
4376
4377 Program reference: @internalsref{Ambitus},
4378 @internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
4379 @internalsref{AmbitusAccidental}.
4380
4381 Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
4382
4383 @refbugs
4384
4385 There is no collision handling in the case of multiple per-voice
4386 ambitus.
4387
4388 @node Other instrument specific notation, Tablatures, Vocal music, Notation manual
4389 @section Other instrument specific notation
4390
4391 This section includes extra information for writing string music, and may
4392 include extra information for other instruments in the future.
4393
4394 @menu
4395 * Harmonic notes::              
4396 @end menu
4397
4398 @node Harmonic notes, , Other instrument specific notation, Other instrument specific notation
4399 @subsection Harmonic notes
4400
4401 @cindex artificial harmonics
4402 @cindex harmonics
4403
4404 Artificial harmonics are notated with a different notehead style.  They
4405 are entered by marking the harmonic pitch with @code{\harmonic}.
4406
4407 @lilypond[raggedright,verbatim,quote,fragment]
4408 <c' g'\harmonic>4
4409 @end lilypond
4410
4411
4412 @node Tablatures, Popular music, Other instrument specific notation, Notation manual
4413 @section Tablatures
4414
4415 @cindex tablature
4416 @cindex guitar tablature
4417
4418 Tablature notation is used for notating music for plucked string
4419 instruments.  Pitches are not denoted with note heads, but by
4420 indicating on which string and fret a note must be played.  LilyPond
4421 offers limited support for tablature.
4422
4423 @menu
4424 * Tablatures basic::            
4425 * Non-guitar tablatures::       
4426 @end menu
4427
4428 @node Tablatures basic, Non-guitar tablatures, Tablatures, Tablatures
4429 @subsection Tablatures basic
4430 @cindex Tablatures basic
4431
4432 The string number associated to a note is given as a backslash
4433 followed by a number, e.g., @code{c4\3} for a C quarter on the third
4434 string.  By default, string 1 is the highest one, and the tuning
4435 defaults to the standard guitar tuning (with 6 strings).  The notes
4436 are printed as tablature, by using @internalsref{TabStaff} and
4437 @internalsref{TabVoice} contexts
4438
4439 @lilypond[quote,raggedright,fragment,verbatim]
4440 \context TabStaff {
4441   a,4\5 c'\2 a\3 e'\1
4442   e\4 c'\2 a\3 e'\1
4443 }
4444 @end lilypond
4445
4446 @cindex @code{minimumFret}
4447 @cindex fret
4448
4449 When no string is specified, the first string that does not give a
4450 fret number less than @code{minimumFret} is selected.  The default
4451 value for @code{minimumFret} is 0
4452
4453
4454 @example
4455 e16 fis gis a b4
4456 \set TabStaff.minimumFret = #8
4457 e16 fis gis a b4
4458 @end example
4459 @lilypond[quote,raggedright]
4460 frag = {
4461   \key e \major
4462   e16 fis gis a b4
4463   \set TabStaff.minimumFret = #8
4464   e16 fis gis a b4
4465 }
4466   \context StaffGroup <<
4467     \context Staff { \clef "G_8" \frag }
4468     \context TabStaff { \frag }
4469   >>
4470 @end lilypond
4471
4472 @seealso
4473
4474 Program reference: @internalsref{TabStaff}, @internalsref{TabVoice}, and
4475 @internalsref{StringNumberEvent}.
4476
4477 @refbugs
4478
4479 Chords are not handled in a special way, and hence the automatic
4480 string selector may easily select the same string to two notes in a
4481 chord.
4482
4483
4484 @node Non-guitar tablatures, , Tablatures basic, Tablatures
4485 @subsection Non-guitar tablatures
4486 @cindex Non-guitar tablatures
4487
4488 You can change the number of strings, by setting the number of lines
4489 in the @internalsref{TabStaff}.
4490
4491 You can change the tuning of the strings.  A string tuning is given as
4492 a Scheme list with one integer number for each string, the number
4493 being the pitch (measured in semitones relative to middle C) of an
4494 open string.  The numbers specified for @code{stringTuning} are the
4495 numbers of semitones to subtract or add, starting the specified pitch
4496 by default middle C, in string order.  In the next example,
4497 @code{stringTunings} is set for the pitches e, a, d, and g
4498
4499 @lilypond[quote,raggedright,fragment,verbatim]
4500 \context TabStaff <<
4501   \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
4502   {
4503     a,4 c' a e' e c' a e'
4504   }
4505 >>
4506 @end lilypond
4507
4508 @refbugs
4509
4510 No guitar special effects have been implemented.
4511
4512 @seealso
4513
4514 Program reference: @internalsref{Tab_note_heads_engraver}.
4515
4516
4517 @node Popular music, Orchestral music, Tablatures, Notation manual
4518 @section Popular music
4519
4520 This section discusses issues that arise when writing popular music.
4521
4522 @menu
4523 * Chord names::                 
4524 * Chords mode::                 
4525 * Printing chord names::        
4526 * Fret diagrams::               
4527 * Improvisation::               
4528 @end menu
4529
4530 @node Chord names, Chords mode, Popular music, Popular music
4531 @subsection Chord names
4532 @cindex Chords
4533
4534 LilyPond has support for printing chord names.  Chords may be entered
4535 in musical chord notation, i.e., @code{< .. >}, but they can also be
4536 entered by name.  Internally, the chords are represented as a set of
4537 pitches, so they can be transposed
4538
4539
4540 @lilypond[quote,raggedright,verbatim,raggedright]
4541 twoWays = \transpose c c' {
4542   \chordmode {
4543     c1 f:sus4 bes/f
4544   }
4545   <c e g>
4546   <f bes c'>
4547   <f bes d'>
4548 }
4549
4550 << \context ChordNames \twoWays
4551    \context Voice \twoWays >>
4552 @end lilypond
4553
4554 This example also shows that the chord printing routines do not try to
4555 be intelligent.  The last chord (@code{f bes d}) is not interpreted as
4556 an inversion.
4557
4558 @c this menu isn't needed.
4559 @ignore
4560 @menu
4561 * Chords mode::
4562 * Printing chord names::
4563 @end menu
4564 @end ignore
4565
4566 @node Chords mode
4567 @subsection Chords mode
4568 @cindex Chords mode
4569
4570 In chord mode sets of pitches (chords) are entered with normal note
4571 names.  A chord is entered by the root, which is entered like a
4572 normal pitch
4573
4574 @lilypond[quote,raggedright,fragment,verbatim]
4575 \chordmode { es4. d8 c2 }
4576 @end lilypond
4577
4578 @noindent
4579 The mode is introduced by the keyword @code{\chordmode}.
4580
4581 @cindex chord entry
4582 @cindex chord mode
4583
4584 Other chords may be entered by suffixing a colon and introducing a
4585 modifier (which may include a number if desired)
4586 @lilypond[quote,fragment,verbatim]
4587 \chordmode { e1:m e1:7 e1:m7 }
4588 @end lilypond
4589 The first number following the root is taken to be the `type' of the
4590 chord, thirds are added to the root until it reaches the specified
4591 number
4592 @lilypond[quote,fragment,verbatim]
4593 \chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
4594 @end lilypond
4595
4596 @cindex root of chord
4597 @cindex additions, in chords
4598 @cindex removals, in chords
4599
4600 More complex chords may also be constructed adding separate steps
4601 to a chord.  Additions are added after the number following
4602 the colon and are separated by dots
4603 @lilypond[quote,verbatim,fragment]
4604 \chordmode { c:5.6 c:3.7.8 c:3.6.13 }
4605 @end lilypond
4606 Chord steps can be altered by suffixing a @code{-} or @code{+} sign
4607 to the number
4608 @lilypond[quote,verbatim,fragment]
4609 \chordmode { c:7+ c:5+.3- c:3-.5-.7- }
4610 @end lilypond
4611 Removals are specified similarly and are introduced by a caret.  They
4612 must come after the additions
4613 @lilypond[quote,verbatim,fragment]
4614 \chordmode { c^3 c:7^5 c:9^3.5 }
4615 @end lilypond
4616
4617 Modifiers can be used to change pitches.  The following modifiers are
4618 supported
4619
4620 @table @code
4621 @item m
4622 The minor chord.  This modifier lowers the 3rd and (if present) the 7th step.
4623
4624 @item dim
4625 The diminished chord.  This modifier lowers the 3rd, 5th and (if present)
4626 the 7th step.
4627
4628 @item aug
4629 The augmented chord.  This modifier raises the 5th step.
4630
4631 @item maj
4632 The major 7th chord.  This modifier raises the 7th step if present.
4633
4634 @item sus
4635 The suspended 4th or 2nd.  This modifier removes the 3rd
4636 step.  Append either @code{2} or @code{4} to add the 2nd or 4th step to
4637 the chord.
4638 @end table
4639
4640 Modifiers can be mixed with additions
4641 @lilypond[quote,verbatim,fragment]
4642   \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
4643 @end lilypond
4644
4645 @cindex modifiers, in chords.
4646 @cindex @code{aug}
4647 @cindex @code{dim}
4648 @cindex @code{maj}
4649 @cindex @code{sus}
4650 @cindex @code{m}
4651
4652 Since an unaltered 11 does not sound good when combined with an
4653 unaltered 3, the 11 is removed in this case (unless it is added
4654 explicitly)
4655 @lilypond[quote,raggedright,fragment,verbatim]
4656 \chordmode { c:13 c:13.11 c:m13 }
4657 @end lilypond
4658
4659 @cindex @code{/}
4660
4661 An inversion (putting one pitch of the chord on the bottom), as well
4662 as bass notes, can be specified by appending
4663 @code{/}@var{pitch} to the chord
4664 @lilypond[quote,raggedright,fragment,verbatim]
4665 \chordmode { c1 c/g c/f }
4666 @end lilypond
4667 @cindex @code{/+}
4668
4669 A bass note can be added instead transposed out of the chord,
4670 by using @code{/+}@var{pitch}.
4671
4672 @lilypond[quote,raggedright,fragment,verbatim]
4673 \chordmode { c1 c/+g c/+f }
4674 @end lilypond
4675
4676 Chords is a mode similar to @code{\lyricmode}, etc.  Most
4677 of the commands continue to work, for example, @code{r} and
4678 @code{\skip} can be used to insert rests and spaces, and property
4679 commands may be used to change various settings.
4680
4681
4682
4683 @refbugs
4684
4685 Each step can only be present in a chord once.  The following
4686 simply produces the augmented chord, since @code{5+} is interpreted
4687 last
4688 @cindex clusters
4689 @lilypond[quote,raggedright,verbatim,fragment]
4690 \chordmode { c:5.5-.5+ }
4691 @end lilypond
4692
4693
4694 @node Printing chord names
4695 @subsection Printing chord names
4696
4697 @cindex printing chord names
4698 @cindex chord names
4699 @cindex chords
4700
4701 For displaying printed chord names, use the @internalsref{ChordNames} context.
4702 The chords may be entered either using the notation
4703 described above, or directly using @code{<} and @code{>}
4704
4705 @lilypond[quote,verbatim,raggedright]
4706 harmonies = {
4707   \chordmode {a1 b c} <d' f' a'> <e' g' b'>
4708 }
4709 <<
4710   \context ChordNames \harmonies
4711   \context Staff \harmonies
4712 >>
4713 @end lilypond
4714
4715 You can make the chord changes stand out by setting
4716 @internalsref{ChordNames}.@code{chordChanges} to true.  This will only
4717 display chord names when there is a change in the chords scheme and at
4718 the start of a new line
4719
4720 @lilypond[quote,verbatim,raggedright]
4721 harmonies = \chordmode {
4722   c1:m c:m \break c:m c:m d
4723 }
4724 <<
4725   \context ChordNames {
4726     \set chordChanges = ##t
4727     \harmonies }
4728   \context Staff \transpose c c' \harmonies
4729 >>
4730 @end lilypond
4731
4732 The previous examples all show chords over a staff.  This is not
4733 necessary.  Chords may also be printed separately.  It may be necessary
4734 to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver}
4735 for showing repeats.
4736
4737 @lilypond[raggedright,verbatim]
4738 \new ChordNames \with {
4739   \override BarLine #'bar-size = #4
4740   voltaOnThisStaff = ##t
4741   \consists Bar_engraver
4742   \consists "Volta_engraver"
4743 }
4744 \repeat volta 2 \chordmode {
4745   f1:maj f:7 bes:7
4746   c:maj
4747 } \alternative {
4748   es e
4749 }
4750 @end lilypond
4751
4752
4753 The default chord name layout is a system for Jazz music, proposed by
4754 Klaus Ignatzek (see @ref{Literature list}).  It can be tuned through the
4755 following properties
4756
4757 @table @code
4758 @cindex @code{chordNameExceptions}
4759 @item chordNameExceptions
4760 This is a list that contains the chords that have special formatting.
4761
4762 The exceptions list should be encoded as
4763 @example
4764 @{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
4765 @end example
4766
4767 To get this information into @code{chordNameExceptions} takes a little
4768 manoeuvring.  The following code transforms @code{chExceptionMusic}
4769 (which is a sequential music) into a list of exceptions.
4770 @example
4771 (sequential-music-to-chord-exceptions chExceptionMusic #t)
4772 @end example
4773 Then,
4774 @example
4775 (append
4776  (sequential-music-to-chord-exceptions chExceptionMusic #t)
4777  ignatzekExceptions)
4778 @end example
4779 adds the new exceptions to the default ones, which are defined in
4780 @file{ly/@/chord@/-modifier@/-init@/.ly}.
4781
4782 For an example of tuning this property, see also
4783 @inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly}.
4784 @cindex exceptions, chord names.
4785
4786
4787 @cindex @code{majorSevenSymbol}
4788 @item majorSevenSymbol
4789 This property contains the markup object used for the 7th step, when
4790 it is major.  Predefined options are @code{whiteTriangleMarkup} and
4791 @code{blackTriangleMarkup}.  See
4792 @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly} for an example.
4793
4794 @cindex @code{chordNameSeparator}
4795 @item chordNameSeparator
4796 Different parts of a chord name are normally separated by a
4797 slash.  By setting @code{chordNameSeparator}, you can specify other
4798 separators, e.g.,
4799 @lilypond[quote,raggedright,fragment,verbatim]
4800 \context ChordNames \chordmode {
4801   c:7sus4
4802   \set chordNameSeparator
4803     = \markup { \typewriter "|" }
4804   c:7sus4
4805 }
4806 @end lilypond
4807
4808 @cindex @code{chordRootNamer}
4809 @item chordRootNamer
4810 The root of a chord is usually printed as a letter with an optional
4811 alteration.  The transformation from pitch to letter is done by this
4812 function.  Special note names (for example, the German ``H'' for a
4813 B-chord) can be produced by storing a new function in this property.
4814
4815 @cindex @code{chordNoteNamer}
4816 @item chordNoteNamer
4817 The default is to print single pitch, e.g., the bass note, using the
4818 @code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
4819 to a specialized function to change this behavior.  For example, the
4820 base can be printed in lower case.
4821
4822 @end table
4823
4824 The predefined variables @code{\germanChords},
4825 @code{\semiGermanChords} set these variables.  The effect is
4826 demonstrated here,
4827
4828 @lilypondfile[raggedright]{chord-names-german.ly}
4829
4830 There are also two other chord name schemes implemented: an alternate
4831 Jazz chord notation, and a systematic scheme called Banter chords.  The
4832 alternate Jazz notation is also shown on the chart in @ref{Chord name
4833 chart}.  Turning on these styles is described in the input file
4834 @inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
4835
4836 @cindex Banter
4837 @cindex jazz chords
4838 @cindex chords, jazz
4839
4840
4841 @refcommands
4842
4843 @cindex @code{\germanChords}
4844 @code{\germanChords},
4845 @cindex @code{\semiGermanChords}
4846 @code{\semiGermanChords}.
4847
4848
4849
4850
4851 @seealso
4852
4853 Examples: @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly},
4854 @inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly},
4855 @inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
4856
4857
4858 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
4859 @file{scm/@/chord@/-entry@/.scm}.
4860
4861
4862 @refbugs
4863
4864 Chord names are determined solely from the list of pitches.  Chord
4865 inversions are not identified, and neither are added bass notes.  This
4866 may result in strange chord names when chords are entered with the
4867 @code{< .. >} syntax.
4868
4869
4870 @node Fret diagrams
4871 @subsection Fret diagrams
4872 @cindex fret diagrams
4873 @cindex chord diagrams
4874
4875 Fret diagrams can be added to music as a markup to the desired note.  The
4876 markup contains information about the desired fret diagram, as shown in the
4877 following example
4878
4879 @lilypond[verbatim, raggedright, quote]
4880 \context Voice {
4881   d' ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
4882   d' d' d'
4883   fis' ^\markup \override #'(size . 0.75) {
4884     \override #'(finger-code . below-string) {
4885       \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
4886                                (place-fret 5 4 3) (place-fret 4 4 4)
4887                                (place-fret 3 3 2) (place-fret 2 2 1)
4888                                (place-fret 1 2 1))
4889     }
4890   }
4891   fis' fis' fis'
4892   c' ^\markup \override #'(dot-radius . 0.35) {
4893     \override #'(finger-code . in-dot) {
4894       \override #'(dot-color . white) {
4895         \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
4896       }
4897     }
4898   }
4899   c' c' c'
4900 }
4901 @end lilypond
4902
4903
4904 There are three different fret-diagram markup interfaces: standard, terse,
4905 and verbose.  The three interfaces produce equivalent markups, but have
4906 varying amounts of information in the markup string.  Details about the
4907 markup interfaces are found at @ref{Overview of text markup commands}.
4908
4909 You can set a number of graphical properties according to your preference.
4910 Details about the property interface to fret diagrams are found at
4911 @internalsref{fret-diagram-interface}.
4912
4913
4914 @seealso
4915
4916 Examples: @inputfileref{input/@/test,fret@/-diagram@/.ly}
4917
4918
4919 @node Improvisation
4920 @subsection Improvisation
4921
4922 Improvisation is sometimes denoted with slashed note heads.  Such note
4923 heads can be created by adding a @internalsref{Pitch_squash_engraver}
4924 to the @internalsref{Staff} or @internalsref{Voice} context.  Then, the
4925 following command
4926
4927 @example
4928 \set squashedPosition = #0
4929 \override NoteHead #'style = #'slash
4930 @end example
4931
4932 @noindent
4933 switches on the slashes.
4934
4935 There are shortcuts @code{\improvisationOn} (and an accompanying
4936 @code{\improvisationOff}) for this command sequence.  They are used in
4937 the following example
4938
4939 @lilypond[verbatim,raggedright,quote]
4940 \new Staff \with {
4941   \consists Pitch_squash_engraver
4942 } \transpose c c' {
4943   e8 e g a a16(bes)(a8) g \improvisationOn
4944   e8
4945   ~e2~e8 f4 fis8
4946   ~fis2 \improvisationOff a16(bes) a8 g e
4947 }
4948 @end lilypond
4949
4950
4951
4952 @node Orchestral music
4953 @section Orchestral music
4954
4955 @cindex Writing parts
4956
4957 Orchestral music involves some special notation, both in the full
4958 score and the individual parts.  This section explains how to tackle
4959 some common problems in orchestral music.
4960
4961
4962
4963 @menu
4964 * System start delimiters::     
4965 * Aligning to cadenzas::        
4966 * Rehearsal marks::             
4967 * Bar numbers::                 
4968 * Instrument names::            
4969 * Transpose::                   
4970 * Instrument transpositions::   
4971 * Multi measure rests::         
4972 * Automatic part combining::    
4973 * Hiding staves::               
4974 * Different editions from one source::  
4975 * Quoting other voices::        
4976 * Formatting cue notes::        
4977 @end menu
4978
4979 @node System start delimiters
4980 @subsection System start delimiters
4981
4982 Polyphonic scores consist of many staves.  These staves can be
4983 constructed in three different ways
4984 @itemize @bullet
4985 @item The group is started with a brace at the left, and bar lines are
4986 connected.  This is done with the @internalsref{GrandStaff} context.
4987
4988 @lilypond[verbatim,raggedright,quote]
4989 \new GrandStaff
4990 \relative <<
4991   \new Staff { c1 c }
4992   \new Staff { c c }
4993 >>
4994 @end lilypond
4995
4996
4997 @item The group is started with a bracket, and bar lines are connected.
4998 This is done with the
4999 @internalsref{StaffGroup} context
5000
5001 @lilypond[verbatim,raggedright,quote]
5002 \new StaffGroup
5003 \relative <<
5004   \new Staff { c1 c }
5005   \new Staff { c c }
5006 >>
5007 @end lilypond
5008
5009
5010 @item The group is started with a vertical line.  Bar lines are not
5011 connected.  This is the default for the score.
5012
5013 @lilypond[verbatim,raggedright,quote]
5014 \relative <<
5015   \new Staff { c1 c }
5016   \new Staff { c c }
5017 >>
5018 @end lilypond
5019
5020 @end itemize
5021
5022 @cindex Staff, multiple
5023 @cindex bracket, vertical
5024 @cindex brace, vertical
5025 @cindex grand staff
5026 @cindex staff group
5027
5028
5029 @seealso
5030
5031 The bar lines at the start of each system are
5032 @internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, and
5033 @internalsref{SystemStartBracket}.  Only one of these types is created
5034 in every context, and that type is determined by the property
5035 @code{systemStartDelimiter}.
5036
5037 @node Aligning to cadenzas
5038 @subsection Aligning to cadenzas
5039
5040
5041 In an orchestral context, cadenzas present a special problem:
5042 when constructing a score that includes a cadenza, all other
5043 instruments should skip just as many notes as the length of the
5044 cadenza, otherwise they will start too soon or too late.
5045
5046 A solution to this problem are the functions @code{mmrest-of-length}
5047 and @code{skip-of-length}.  These Scheme functions take a piece of music
5048 as argument, and generate a @code{\skip} or multi-rest, exactly as
5049 long as the piece.  The use of @code{mmrest-of-length} is demonstrated
5050 in the following example.
5051
5052 @lilypond[verbatim,raggedright,quote]
5053 cadenza = \relative c' {
5054   c4 d8 << { e f g } \\ { d4. } >>
5055   g4 f2 g4 g
5056 }
5057
5058 \new GrandStaff <<
5059   \new Staff { \cadenza c'4 }
5060   \new Staff {
5061     #(ly:export (mmrest-of-length cadenza))
5062     c'4
5063   }
5064 >>
5065 @end lilypond
5066
5067
5068
5069
5070
5071 @node Rehearsal marks
5072 @subsection Rehearsal marks
5073 @cindex Rehearsal marks
5074 @cindex mark
5075 @cindex @code{\mark}
5076
5077 To print a rehearsal mark, use the @code{\mark} command
5078
5079 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
5080 c1 \mark \default
5081 c1 \mark \default
5082 c1 \mark #8
5083 c1 \mark \default
5084 c1 \mark \default
5085 @end lilypond
5086
5087 @noindent
5088 (The letter@tie{}`I' is skipped in accordance with engraving traditions.)
5089 @c umm, is the manual the right place for feature requests?  :)  -gp
5090 @c FIXME - should make that tunable.
5091
5092 The mark is incremented automatically if you use @code{\mark
5093 \default}, but you can also use an integer argument to set the mark
5094 manually.  The value to use is stored in the property
5095 @code{rehearsalMark}.
5096
5097 The style is defined by the property @code{markFormatter}.  It is a
5098 function taking the current mark (an integer) and the current context
5099 as argument.  It should return a markup object.  In the following
5100 example, @code{markFormatter} is set to a canned procedure.  After a
5101 few measures, it is set to function that produces a boxed number.
5102
5103 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
5104 \set Score.markFormatter = #format-mark-numbers
5105 c1 \mark \default
5106 c1 \mark \default
5107 \set Score.markFormatter = #format-mark-box-numbers
5108 c1 \mark \default
5109 c1 \mark \default
5110 c1
5111 @end lilypond
5112
5113 The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
5114 of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
5115 @code{format-mark-letters} and @code{format-mark-box-letters}.
5116 These can be used as inspiration for other formatting functions.
5117
5118
5119 @cindex coda on bar line
5120 @cindex segno on bar line
5121 @cindex fermata on bar line
5122 @cindex bar lines, symbols on
5123
5124 The @code{\mark} command can also be used to put signs like coda,
5125 segno, and fermata on a bar line.  Use @code{\markup} to
5126 access the appropriate symbol
5127
5128 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
5129 c1 \mark \markup { \musicglyph #"scripts-ufermata" }
5130 c1
5131 @end lilypond
5132
5133 In the case of a line break, marks must also be printed at the end of
5134 the line, and not at the beginning.  Use the following to force that
5135 behavior
5136 @example
5137 \override Score.RehearsalMark
5138   #'break-visibility = #begin-of-line-invisible
5139 @end example
5140
5141 @cindex fermatas
5142 @cindex coda
5143 @cindex segno
5144 @cindex bar lines, putting symbols on
5145
5146 @seealso
5147
5148 Program reference: @internalsref{MarkEvent}, @internalsref{RehearsalMark}.
5149
5150 Init files: @file{scm/@/translation@/-functions@/.scm} contains the
5151 definition of @code{format-mark-numbers} and
5152 @code{format-mark-letters}.  They can be used as inspiration for other
5153 formatting functions.
5154
5155 Examples: @inputfileref{input/@/regression,rehearsal@/-mark@/-letter@/.ly},
5156
5157 @inputfileref{input/@/regression,rehearsal@/-mark@/-number@/.ly}.
5158
5159
5160 @node Bar numbers
5161 @subsection Bar numbers
5162
5163
5164 @cindex Bar numbers
5165 @cindex measure numbers
5166 @cindex @code{currentBarNumber}
5167
5168 Bar numbers are printed by default at the start of the line.  The
5169 number itself is stored in the @code{currentBarNumber} property, which
5170 is normally updated automatically for every measure.
5171
5172 Bar numbers can be typeset at regular intervals instead of at the
5173 beginning of each line.  This is illustrated in the following example,
5174 whose source is available as
5175 @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}
5176
5177 @lilypondfile[raggedright,quote]{bar-number-regular-interval.ly}
5178
5179 Bar numbers can be typeset manually by tweaking the
5180 @code{markFormatter} property
5181
5182 @lilypond[verbatim,raggedright,quote]
5183 \relative c' {
5184   \set Score.markFormatter
5185     = #(lambda (mark context)
5186       (make-bold-markup
5187         (make-box-markup
5188           (number->string (ly:context-property context
5189                                                'currentBarNumber)))))
5190
5191   c1 \bar "||" \mark \default c1 c1 \mark \default c1 \bar "|."
5192 }
5193 @end lilypond
5194
5195 Bar numbers can be manually changed by setting the
5196 @code{Staff.currentBarNumber} property
5197
5198 @lilypond[verbatim,raggedright,quote]
5199 \relative c' {
5200   \repeat unfold 4 {c4 c c c} \break
5201   \set Score.currentBarNumber = #50
5202   \repeat unfold 4 {c4 c c c}
5203 }
5204 @end lilypond
5205
5206 @seealso
5207
5208 Program reference: @internalsref{BarNumber}.
5209
5210 Examples:
5211 @inputfileref{input/@/test,bar@/-number@/-every@/-five@/-reset@/.ly},
5212 and @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}.
5213
5214 @refbugs
5215
5216 Bar numbers can collide with the @internalsref{StaffGroup} bracket, if
5217 there is one at the top.  To solve this, the
5218 @code{padding} property of @internalsref{BarNumber} can be
5219 used to position the number correctly.
5220
5221 @node Instrument names
5222 @subsection Instrument names
5223
5224 In an orchestral score, instrument names are printed at the left side
5225 of the staves.
5226
5227 This can be achieved by setting @internalsref{Staff}.@code{instrument}
5228 and @internalsref{Staff}.@code{instr}.  This will print a string before
5229 the start of the staff.  For the first staff, @code{instrument} is
5230 used, for the following ones, @code{instr} is used.
5231
5232 @lilypond[quote,verbatim,raggedright,relative=1,fragment]
5233 \set Staff.instrument = "Ploink "
5234 \set Staff.instr = "Plk "
5235 c1
5236 \break
5237 c''
5238 @end lilypond
5239
5240 You can also use markup texts to construct more complicated instrument
5241 names, for example
5242
5243 @lilypond[quote,fragment,verbatim,raggedright]
5244 \set Staff.instrument = \markup {
5245   \column { "Clarinetti"
5246             \line { "in B" \smaller \flat } } }
5247 c''1
5248 @end lilypond
5249
5250 For longer instrument names, it may be useful to increase the
5251 @code{indent} setting in the @code{\layout} block.
5252
5253 @seealso
5254
5255 Program reference: @internalsref{InstrumentName}.
5256
5257 @refbugs
5258
5259 When you put a name on a grand staff or piano staff, the width of the
5260 brace is not taken into account.  You must add extra spaces to the end of
5261 the name to avoid a collision.
5262
5263 @node Transpose
5264 @subsection Transpose
5265 @cindex Transpose
5266 @cindex transposition of pitches
5267 @cindex @code{\transpose}
5268
5269 A music expression can be transposed with @code{\transpose}.  The
5270 syntax is
5271 @example
5272 \transpose @var{from} @var{to} @var{musicexpr}
5273 @end example
5274
5275 This means that @var{musicexpr} is transposed by the interval between
5276 the pitches @var{from} and @var{to}: any note with pitch @code{from}
5277 is changed to @code{to}.
5278
5279
5280 For example, consider a piece written in the key of D-major.  If
5281 this piece is a little too low for its performer, it can be
5282 transposed up to E-major with
5283 @example
5284 \transpose d e @dots{}
5285 @end example
5286
5287 Consider a part written for violin (a C instrument).  If
5288 this part is to be played on the A clarinet, the following
5289 transposition will produce the appropriate part
5290
5291 @example
5292 \transpose a c @dots{}
5293 @end example
5294
5295 @code{\transpose} distinguishes between enharmonic pitches: both
5296 @code{\transpose c cis} or @code{\transpose c des} will transpose up
5297 half a tone.  The first version will print sharps and the second
5298 version will print flats
5299
5300 @lilypond[quote,raggedright,verbatim]
5301 mus = { \key d \major cis d fis g }
5302 \context Staff {
5303   \clef "F" \mus
5304   \clef "G"
5305   \transpose c g' \mus
5306   \transpose c f' \mus
5307 }
5308 @end lilypond
5309
5310
5311 @seealso
5312
5313 Program reference: @internalsref{TransposedMusic}, and
5314 @internalsref{UntransposableMusic}.
5315
5316 @refbugs
5317
5318 If you want to use both @code{\transpose} and @code{\relative},
5319 you must put @code{\transpose} outside of @code{\relative}, since
5320 @code{\relative} will have no effect music that appears inside a
5321 @code{\transpose}.
5322
5323 @node Instrument transpositions
5324 @subsection Instrument transpositions
5325
5326 The key of a transposing instrument can also be specified.  This
5327 applies to many wind instruments, for example, clarinets (B-flat, A, and
5328 E-flat), horn (F) and trumpet (B-flat, C, D, and E-flat).
5329
5330 The transposition is entered after the keyword @code{\transposition}
5331
5332 @example
5333 \transposition bes   %% B-flat clarinet
5334 @end example
5335
5336 @noindent
5337 This command sets the property @code{instrumentTransposition}.  The value of
5338 this property is used for MIDI output and quotations.  It does not
5339 affect how notes are printed in the current staff.
5340
5341 The pitch to use for @code{\transposition} should correspond to the
5342 transposition of the notes.  For example, when entering a score in
5343 concert pitch, typically all voices are entered in C, so
5344 they should be entered as
5345
5346 @example
5347 clarinet = @{
5348   \transposition c'
5349   ...
5350 @}
5351 saxophone = @{
5352   \transposition c'
5353   ...
5354 @}
5355 @end example
5356
5357 The command @code{\transposition} should be used when the music is
5358 entered from a (transposed) orchestral part.  For example, in
5359 classical horn parts, the tuning of the instrument is often changed
5360 during a piece.  When copying the notes from the part, use
5361 @code{\transposition}, e.g.,
5362
5363 @example
5364 \transposition d'
5365 c'4^"in D"
5366 ...
5367 \transposition g'
5368 c'4^"in G"
5369 ...
5370 @end example
5371
5372
5373
5374 @cindex transposition, MIDI
5375 @cindex transposition, instrument
5376
5377
5378 @node Multi measure rests
5379 @subsection Multi measure rests
5380 @cindex multi measure rests
5381 @cindex Rests, multi measure
5382
5383 @cindex @code{R}
5384
5385 Multi-measure rests are entered using `@code{R}'.  It is specifically
5386 meant for full bar rests and for entering parts: the rest can expand
5387 to fill a score with rests, or it can be printed as a single
5388 multi-measure rest.  This expansion is controlled by the property
5389 @code{Score.skipBars}.  If this is set to true, empty measures will not
5390 be expanded, and the appropriate number is added automatically
5391
5392 @lilypond[quote,raggedright,fragment,verbatim]
5393 \time 4/4 r1 | R1 | R1*2
5394 \set Score.skipBars = ##t R1*17 R1*4
5395 @end lilypond
5396
5397 The @code{1} in @code{R1} is similar to the duration notation used for
5398 notes.  Hence, for time signatures other than 4/4, you must enter other
5399 durations.  This can be done with augmentation dots or fractions
5400
5401 @lilypond[quote,raggedright,fragment,verbatim]
5402 \set Score.skipBars = ##t
5403 \time 3/4
5404 R2. | R2.*2
5405 \time 13/8
5406 R1*13/8
5407 R1*13/8*12 |
5408 \time 10/8 R4*5*4 |
5409 @end lilypond
5410
5411 An @code{R} spanning a single measure is printed as either a whole rest
5412 or a breve, centered in the measure regardless of the time signature.
5413
5414 If there are only a few measures of rest, LilyPond prints ``church rests''
5415 (a series of rectangles) in the staff.  To replace that with a simple
5416 rest, use @code{MultiMeasureRest.expand-limit}.
5417
5418 @lilypond[quote,raggedright,fragment,verbatim]
5419 \set Score.skipBars = ##t
5420 R1*2 | R1*5 | R1*9
5421 \override MultiMeasureRest #'expand-limit = 1
5422 R1*2 | R1*5 | R1*9
5423 @end lilypond
5424
5425
5426 @cindex text on multi-measure rest
5427 @cindex script on multi-measure rest
5428 @cindex fermata on multi-measure rest
5429
5430 Texts can be added to multi-measure rests by using the
5431 @var{note}-@code{markup} syntax (see @ref{Text markup}).
5432 A variable (@code{\fermataMarkup}) is provided for
5433 adding fermatas
5434
5435 @lilypond[quote,raggedright,verbatim,fragment]
5436 \set Score.skipBars = ##t
5437 \time 3/4
5438 R2.*10^\markup { \italic "ad lib." }
5439 R2.^\fermataMarkup
5440 @end lilypond
5441
5442 If you want to have text on the left end of a multi-measure rest,
5443 attach the text to a zero-length skip note, i.e.,
5444
5445 @example
5446 s1*0^"Allegro"
5447 R1*4
5448 @end example
5449
5450
5451 @cindex whole rests for a full measure
5452
5453 @seealso
5454
5455 Program reference: @internalsref{MultiMeasureRestEvent},
5456 @internalsref{MultiMeasureTextEvent},
5457 @internalsref{MultiMeasureRestMusicGroup}, and
5458 @internalsref{MultiMeasureRest}.
5459
5460 The layout object @internalsref{MultiMeasureRestNumber} is for the
5461 default number, and @internalsref{MultiMeasureRestText} for user
5462 specified texts.
5463
5464 @refbugs
5465
5466 It is not possible to use fingerings (e.g., @code{R1-4}) to put numbers
5467 over multi-measure rests.  And the pitch of multi-measure rests (or
5468 staff-centered rests) can not be influenced.
5469
5470 @cindex condensing rests
5471
5472 There is no way to automatically condense multiple rests into a single
5473 multi-measure rest.  Multi-measure rests do not take part in rest
5474 collisions.
5475
5476 Be careful when entering multi-measure rests followed by whole
5477 notes.  The following will enter two notes lasting four measures each
5478 @example
5479 R1*4 cis cis
5480 @end example
5481 When @code{skipBars} is set, the result will look OK, but the bar
5482 numbering will be off.
5483
5484 @node Automatic part combining
5485 @subsection Automatic part combining
5486 @cindex automatic part combining
5487 @cindex part combiner
5488
5489
5490 Automatic part combining is used to merge two parts of music onto a
5491 staff.  It is aimed at typesetting orchestral scores.  When the two
5492 parts are identical for a period of time, only one is shown.  In
5493 places where the two parts differ, they are typeset as separate
5494 voices, and stem directions are set automatically.  Also, solo and
5495 @emph{a due} parts are identified and can be marked.
5496
5497 The syntax for part combining is
5498
5499 @example
5500 \partcombine @var{musicexpr1} @var{musicexpr2}
5501 @end example
5502
5503
5504
5505 The following example demonstrates the basic functionality of the part
5506 combiner: putting parts on one staff, and setting stem directions and
5507 polyphony
5508
5509 @lilypond[quote,verbatim,raggedright,fragment]
5510 \new Staff \partcombine
5511   \relative g' { g g a( b) c c r r }
5512   \relative g' { g g r4 r e e g g }
5513 @end lilypond
5514
5515 The first @code{g} appears only once, although it was
5516 specified twice (once in each part).  Stem, slur, and tie directions are
5517 set automatically, depending whether there is a solo or unisono.  The
5518 first part (with context called @code{one}) always gets up stems, and
5519 `solo', while the second (called @code{two}) always gets down stems and
5520 `Solo II'.
5521
5522 If you just want the merging parts, and not the textual markings, you
5523 may set the property @code{printPartCombineTexts} to false
5524
5525 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
5526 \new Staff <<
5527   \set Staff.printPartCombineTexts = ##f
5528   \partcombine
5529     \relative g' { g a( b) r }
5530     \relative g' { g r4 r f }
5531 >>
5532 @end lilypond
5533
5534
5535 Both arguments to @code{\partcombine} will be interpreted as
5536 @internalsref{Voice} contexts.  If using relative octaves,
5537 @code{\relative} should be specified for both music expressions, i.e.,
5538
5539 @example
5540 \partcombine
5541   \relative @dots{} @var{musicexpr1}
5542   \relative @dots{} @var{musicexpr2}
5543 @end example
5544
5545 @noindent
5546 A @code{\relative} section that is outside of @code{\partcombine} has
5547 no effect on the pitches of @var{musicexpr1} and @var{musicexpr2}.
5548
5549 @seealso
5550
5551 Program reference: @internalsref{PartCombineMusic},
5552 @internalsref{SoloOneEvent}, and
5553 @internalsref{SoloTwoEvent}, and
5554 @internalsref{UnisonoEvent}.
5555
5556 @refbugs
5557
5558 When @code{printPartCombineTexts} is set, when the two voices play the
5559 same notes on and off, the part combiner may typeset @code{a2} more
5560 than once in a measure.
5561
5562 @code{\partcombine} cannot be inside @code{\times}.
5563
5564 @code{\partcombine} cannot be inside @code{\relative}.
5565
5566 Internally, the @code{\partcombine} interprets both arguments as
5567 @code{Voice}s named @code{one} and @code{two}, and then decides when
5568 the parts can be combined.  Consequently, if the arguments switch to
5569 differently named @internalsref{Voice} contexts, the events in those
5570 will be ignored.
5571
5572 @node Hiding staves
5573 @subsection Hiding staves
5574
5575 @cindex Frenched scores
5576 @cindex Hiding staves
5577
5578 In orchestral scores, staff lines that only have rests are usually
5579 removed.  This saves some space.  This style is called `French Score'.
5580 For @internalsref{Lyrics},
5581 @internalsref{ChordNames} and @internalsref{FiguredBass}, this is
5582 switched on by default.  When the lines of these contexts turn out
5583 empty after the line-breaking process, they are removed.
5584
5585 For normal staves, a specialized @internalsref{Staff} context is
5586 available, which does the same: staves containing nothing (or only
5587 multi-measure rests) are removed.  The context definition is stored in
5588 @code{\RemoveEmptyStaffContext} variable.  Observe how the second staff
5589 in this example disappears in the second line
5590
5591 @lilypond[quote,raggedright,verbatim]
5592 \layout {
5593   \context { \RemoveEmptyStaffContext }
5594 }
5595
5596 {
5597   \relative c' <<
5598     \new Staff { e4 f g a \break c1 }
5599     \new Staff { c4 d e f \break R1 }
5600   >>
5601 }
5602 @end lilypond
5603
5604 The first system shows all staves in full.  If empty staves should be
5605 removed from the first system too, set @code{remove-first} to false in
5606 @internalsref{RemoveEmptyVerticalGroup}.
5607
5608 Another application is making ossia sections, i.e., alternative
5609 melodies on a separate piece of staff, with help of a Frenched
5610 staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
5611
5612
5613 @node Different editions from one source
5614 @subsection Different editions from one source
5615
5616 @cindex tag
5617 The @code{\tag} command marks music expressions with a name.  These
5618 tagged expressions can be filtered out later.  With this mechanism it
5619 is possible to make different versions of the same music source.
5620
5621 In the following example, we see two versions of a piece of music, one
5622 for the full score, and one with cue notes for the instrumental part
5623
5624 @example
5625 c1
5626 <<
5627   \tag #'part <<
5628     R1 \\
5629     @{
5630       \set fontSize = #-1
5631       c4_"cue" f2 g4 @}
5632   >>
5633   \tag #'score R1
5634 >>
5635 c1
5636 @end example
5637
5638 The same can be applied to articulations, texts, etc.: they are
5639 made by prepending
5640 @example
5641 -\tag #@var{your-tag}
5642 @end example
5643 to an articulation, for example,
5644 @example
5645 c1-\tag #'part ^4
5646 @end example
5647
5648 This defines a note with a conditional fingering indication.
5649
5650 @cindex keepWithTag
5651 @cindex removeWithTag
5652 By applying the @code{\keepWithTag} and @code{\removeWithTag}
5653 commands, tagged expressions can be filtered.  For example,
5654 @example
5655 <<
5656   @var{the music}
5657   \keepWithTag #'score @var{the music}
5658   \keepWithTag #'part @var{the music}
5659 >>
5660 @end example
5661 would yield
5662
5663 @lilypondfile[raggedright,quote]{tag-filter.ly}
5664
5665
5666 The argument of the @code{\tag} command should be a symbol, or a list
5667 of symbols, for example,
5668 @example
5669 \tag #'(original-part transposed-part) @dots{}
5670 @end example
5671
5672
5673
5674 @seealso
5675
5676 Examples: @inputfileref{input/@/regression,tag@/-filter@/.ly}.
5677
5678 @refbugs
5679
5680 Multiple rests are not merged if you create the score with both tagged
5681 sections.
5682  
5683
5684 @node Quoting other voices
5685 @subsection Quoting other voices
5686
5687 With quotations, fragments of other parts can be inserted into a part
5688 directly.  Before a part can be quoted, it must be marked especially as
5689 quotable.  This is done with the @code{\addquote} command.
5690
5691 @example
5692 \addquote @var{name} @var{music}
5693 @end example
5694
5695
5696 @noindent
5697 Here, @var{name} is an identifying string.  The @var{music} is any kind
5698 of music.  Here is an example of @code{\addquote}
5699
5700 @example
5701 \addquote clarinet \relative c' @{
5702   f4 fis g gis
5703 @}
5704 @end example
5705
5706 This command must be entered at toplevel, i.e., outside any music
5707 blocks.
5708
5709 After calling @code{\addquote}, the quotation may then be done with
5710 @code{\quoteDuring} or @code{\cueDuring},
5711
5712 @example
5713 \quoteDuring #@var{name} @var{music}
5714 @end example
5715
5716 During a part, a piece of music can be quoted with the @code{\quoteDuring}
5717 command.
5718
5719 @example
5720 \quoteDuring #"clarinet" @{ s2. @}
5721 @end example
5722
5723 This would cite three quarter notes (the duration of @code{s2.})  of
5724 the previously added @code{clarinet} voice.
5725
5726
5727 More precisely, it takes the current time-step of the part being
5728 printed, and extracts the notes at the corresponding point of the
5729 @code{\addquote}d voice.  Therefore, the argument to @code{\addquote}
5730 should be the entire part of the voice to be quoted, including any
5731 rests at the beginning.
5732
5733 Quotations take into account the transposition of both source and target
5734 instruments, if they are specified using the @code{\transposition} command.
5735
5736 @lilypond[quote,raggedright,verbatim]
5737 \addquote clarinet \relative c' {
5738   \transposition bes
5739   f4 fis g gis
5740 }
5741
5742 {
5743   e'8 f'8 \quoteDuring #"clarinet" { s2 }
5744 }
5745 @end lilypond
5746
5747 The type of events that are present in cue notes can be trimmed with
5748 the @code{quotedEventTypes} property.  The default value is
5749 @code{(note-event rest-event)}, which means that only notes and
5750 rests of the cued voice end up in the @code{\quoteDuring}.
5751 Setting
5752
5753 @example
5754 \set Staff.quotedEventTypes =
5755        #'(note-event articulation-event dynamic-event)
5756 @end example
5757
5758 @noindent
5759 will quote notes (but no rests), together with scripts and dynamics.
5760
5761 @refbugs
5762
5763 Only the contents of the first @internalsref{Voice} occurring in an
5764 @code{\addquote} command will be considered for quotation, so
5765 @var{music} can not contain @code{\new} and @code{\context Voice}
5766 statements that would switch to a different Voice.
5767
5768 Quoting grace notes is broken and can even cause LilyPond to crash.
5769
5770 @seealso
5771
5772 In this manual: @ref{Instrument transpositions}.
5773
5774 Examples: @inputfileref{input/@/regression,quote@/.ly}
5775 @inputfileref{input/@/regression,quote@/-transposition@/.ly}
5776
5777 Program reference: @internalsref{QuoteMusic}.
5778
5779 @node Formatting cue notes
5780 @subsection Formatting cue notes
5781
5782 The previous section deals with inserting notes from another voice.
5783 There is a more advanced music function called @code{\cueDuring},
5784 which makes formatting cue notes easier.
5785
5786 The syntax is
5787
5788 @example
5789   \cueDuring #@var{name} #@var{updown} @var{music}
5790 @end example
5791
5792 This will insert notes from the part @var{name} into a
5793 @internalsref{Voice} called @code{cue}. This happens simultaneously
5794 with @var{music}, which usually is a rest.  When the cue notes start,
5795 the staff in effect becomes polyphonic for a moment. The argument
5796 @var{updown} determines whether the cue notes should be notated as a
5797 first or second voice.
5798
5799
5800 @lilypond[verbatim,raggedright]
5801 smaller = {
5802   \set fontSize = #-2
5803   \override Stem #'length = #5.5
5804   \override Beam #'thickness = #0.384
5805   \override Beam #'space-function =
5806     #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
5807 }
5808
5809 \addquote clarinet \relative {
5810   R1*20
5811   r2 r8 c f f
5812
5813
5814 \new Staff \relative  <<
5815
5816   % setup a context for  cue  notes.
5817   \context Voice = cue { \smaller \skip 1*21 }
5818   
5819   \set Score.skipBars = ##t
5820   
5821   \new Voice {
5822     R1*20
5823     \cueDuring #"clarinet" #1 {
5824       R1
5825     }
5826     g4 g2. 
5827   }
5828 >>
5829 @end lilypond 
5830
5831
5832 Here are a couple of hints for successful cue notes
5833
5834 @itemize @bullet
5835 @item
5836 Cue notes have smaller font sizes.
5837 @item
5838  the cued part is marked with the instrument playing the cue.
5839 @item
5840  when the original part takes over again, this should be marked with
5841  the name of the original instrument.
5842
5843  @c really?  Are you sure about that last point?  I'll check after 3.0 -gp
5844
5845 @c Yes, this is good practice. Otherwise, the start of the original
5846 @c part can only be seen from the font size. This is not good enough
5847 @c for sight-reading. It is possilbe to use other
5848 @c markers (eg. a big close-bracket over the staff) to indicate the cue notes are
5849 @c finished.
5850 @c -hwn
5851
5852
5853  any other changes introduced by the cued part should also be
5854 undone. For example, if the cued instrument plays in a different clef,
5855 the original clef should be stated once again.
5856
5857 @end itemize
5858
5859
5860
5861
5862
5863 @node Ancient notation
5864 @section Ancient notation
5865
5866 @cindex Vaticana, Editio
5867 @cindex Medicaea, Editio
5868 @cindex hufnagel
5869 @cindex Petrucci
5870 @cindex mensural
5871
5872 Support for ancient notation includes features for mensural notation
5873 and Gregorian Chant notation.  There is also limited support for
5874 figured bass notation.
5875
5876 Many graphical objects provide a @code{style} property, see
5877 @itemize @bullet
5878 @item
5879 @ref{Ancient note heads},
5880 @item
5881 @ref{Ancient accidentals},
5882 @item
5883 @ref{Ancient rests},
5884 @item
5885 @ref{Ancient clefs},
5886 @item
5887 @ref{Ancient flags},
5888 @item
5889 @ref{Ancient time signatures}.
5890 @end itemize
5891
5892 By manipulating such a grob property, the typographical appearance of
5893 the affected graphical objects can be accommodated for a specific
5894 notation flavor without the need for introducing any new notational
5895 concept.
5896
5897 In addition to the standard articulation signs described in section
5898 @ref{Articulations}, specific articulation signs for ancient notation
5899 are provided.
5900
5901 @itemize @bullet
5902 @item
5903 @ref{Ancient articulations}
5904 @end itemize
5905
5906 Other aspects of ancient notation can not that easily be expressed
5907 in terms of just changing a style property of a graphical object or
5908 adding articulation signs.  Some notational concepts are introduced
5909 specifically for ancient notation,
5910
5911 @itemize @bullet
5912 @item
5913 @ref{Custodes},
5914 @item
5915 @ref{Divisiones},
5916 @item
5917 @ref{Ligatures}.
5918 @end itemize
5919
5920 If this all is too much of documentation for you, and you just want to
5921 dive into typesetting without worrying too much about the details on
5922 how to customize a context, you may have a look at the predefined
5923 contexts.  Use them to set up predefined style-specific voice and
5924 staff contexts, and directly go ahead with the note entry,
5925
5926 @itemize @bullet
5927 @item
5928 @ref{Gregorian Chant contexts},
5929 @item
5930 @ref{Mensural contexts}.
5931 @end itemize
5932
5933 There is limited support for figured bass notation which came
5934 up during the baroque period.
5935
5936 @itemize @bullet
5937 @item
5938 @ref{Figured bass}
5939 @end itemize
5940
5941 Here are all suptopics at a glance:
5942
5943 @menu
5944 * Ancient note heads::          
5945 * Ancient accidentals::         
5946 * Ancient rests::               
5947 * Ancient clefs::               
5948 * Ancient flags::               
5949 * Ancient time signatures::     
5950 * Ancient articulations::       
5951 * Custodes::                    
5952 * Divisiones::                  
5953 * Ligatures::                   
5954 * Gregorian Chant contexts::    
5955 * Mensural contexts::           
5956 * Figured bass::                
5957 @end menu
5958
5959
5960 @node Ancient note heads
5961 @subsection Ancient note heads
5962
5963 @cindex note heads
5964
5965
5966 For ancient notation, a note head style other than the @code{default}
5967 style may be chosen.  This is accomplished by setting the @code{style}
5968 property of the @internalsref{NoteHead} object to @code{baroque},
5969 @code{neomensural} or @code{mensural}.  The @code{baroque} style
5970 differs from the @code{default} style only in using a square shape
5971 for @code{\breve} note heads.  The @code{neomensural} style differs from
5972 the @code{baroque} style in that it uses rhomboidal heads for whole notes
5973 and all smaller durations.  Stems are centered on the note heads.
5974 This style is particularly useful when transcribing mensural music,
5975 e.g., for the incipit.  The @code{mensural} style finally produces note
5976 heads that mimic the look of note heads in historic printings of the
5977 16th century.
5978
5979 The following example demonstrates the @code{neomensural} style
5980
5981 @lilypond[quote,fragment,raggedright,verbatim]
5982 \set Score.skipBars = ##t
5983 \override NoteHead #'style = #'neomensural
5984 a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
5985 @end lilypond
5986
5987 When typesetting a piece in Gregorian Chant notation, the
5988 @internalsref{Gregorian_ligature_engraver} will automatically select
5989 the proper note heads, so there is no need to explicitly set the
5990 note head style.  Still, the note head style can be set, e.g., to
5991 @code{vaticana_punctum} to produce punctum neumes.  Similarly, a
5992 @internalsref{Mensural_ligature_engraver} is used to automatically
5993 assemble mensural ligatures.  See @ref{Ligatures} for how ligature
5994 engravers work.
5995
5996 @seealso
5997
5998 Examples: @inputfileref{input/@/regression,note@/-head@/-style@/.ly} gives an
5999 overview over all available note head styles.
6000
6001
6002 @node Ancient accidentals
6003 @subsection Ancient accidentals
6004
6005 @cindex accidentals
6006
6007
6008 Use the @code{style} property of grob @internalsref{Accidental} to
6009 select ancient accidentals.   Supported styles are
6010 @code{mensural}, @code{vaticana}, @code{hufnagel}, and @code{medicaea}.
6011
6012 @lilypond[quote,raggedright,staffsize=26]
6013 \score {
6014 {
6015   \fatText
6016   s^\markup {
6017     \column {
6018       "vaticana"
6019       \line { " " \musicglyph #"accidentals-vaticana-1"
6020         " " \musicglyph #"accidentals-vaticana0" }
6021     }
6022     \column {
6023       "medicaea"
6024       \line { " " \musicglyph #"accidentals-medicaea-1" }
6025     }
6026     \column {
6027       "hufnagel"
6028       \line { " " \musicglyph #"accidentals-hufnagel-1" }
6029     }
6030     \column {
6031       "mensural"
6032       \line { " " \musicglyph #"accidentals-mensural-1"
6033         " " \musicglyph #"accidentals-mensural1" }
6034     }
6035   }
6036 }
6037 \layout {
6038   interscoreline = 1
6039   \context { \Score \remove "Bar_number_engraver" }
6040   \context { \Staff
6041       \remove "Clef_engraver"
6042       \remove "Key_engraver"
6043       \remove "Time_signature_engraver"
6044       \remove "Staff_symbol_engraver"
6045       minimumVerticalExtent = ##f
6046     }
6047   }
6048 }
6049 @end lilypond
6050
6051 As shown, not all accidentals are supported by each style.  When
6052 trying to access an unsupported accidental, LilyPond will switch to a
6053 different style, as demonstrated in
6054 @inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
6055
6056 Similarly to local accidentals, the style of the key signature can be
6057 controlled by the @code{style} property of the
6058 @internalsref{KeySignature} grob.
6059
6060 @seealso
6061
6062 In this manual: @ref{Pitches}, @ref{Chromatic alterations} and
6063 @ref{Accidentals} give a general introduction of the use of
6064 accidentals.  @ref{Key signature} gives a general introduction of
6065 the use of key signatures.
6066
6067 Program reference: @internalsref{KeySignature}.
6068
6069 Examples: @inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
6070
6071 @node Ancient rests
6072 @subsection Ancient rests
6073
6074 @cindex rests
6075
6076
6077 Use the @code{style} property of grob @internalsref{Rest} to select
6078 ancient accidentals.   Supported styles are @code{classical},
6079 @code{neomensural}, and @code{mensural}.  @code{classical} differs
6080 from the @code{default} style only in that the quarter rest looks like
6081 a horizontally mirrored 8th rest.  The @code{neomensural} style suits
6082 well for, e.g., the incipit of a transcribed mensural piece of music.
6083 The @code{mensural} style finally mimics the appearance of rests as
6084 in historic prints of the 16th century.
6085
6086 The following example demonstrates the @code{neomensural} style
6087
6088 @lilypond[quote,fragment,raggedright,verbatim]
6089 \set Score.skipBars = ##t
6090 \override Rest #'style = #'neomensural
6091 r\longa r\breve r1 r2 r4 r8 r16
6092 @end lilypond
6093
6094 There are no 32th and 64th rests specifically for the mensural or
6095 neo-mensural style.  Instead, the rests from the default style will be
6096 taken.  See @inputfileref{input/@/test,rests@/.ly} for a chart of all
6097 rests.
6098
6099 There are no rests in Gregorian Chant notation; instead, it uses
6100 @ref{Divisiones}.
6101
6102 @seealso
6103
6104 In this manual: @ref{Rests} gives a general introduction into the use of rests.
6105
6106
6107 @node Ancient clefs
6108 @subsection Ancient clefs
6109
6110 @cindex clefs
6111
6112
6113 LilyPond supports a variety of clefs, many of them ancient.
6114
6115 The following table shows all ancient clefs that are supported via the
6116 @code{\clef} command.  Some of the clefs use the same glyph, but
6117 differ only with respect to the line they are printed on.  In such
6118 cases, a trailing number in the name is used to enumerate these clefs.
6119 Still, you can manually force a clef glyph to be typeset on an
6120 arbitrary line, as described in @ref{Clef}.  The note printed to the
6121 right side of each clef in the example column denotes the @code{c'}
6122 with respect to that clef.
6123
6124 @multitable @columnfractions .4 .4 .2
6125 @item
6126 @b{Description}
6127 @tab
6128 @b{Supported Clefs}
6129 @tab
6130 @b{Example}
6131
6132 @item
6133 modern style mensural C clef
6134 @tab
6135 @code{neomensural-c1}, @code{neomensural-c2},@*
6136 @code{neomensural-c3}, @code{neomensural-c4}
6137 @tab
6138 @lilypond[fragment,relative=1,notime]
6139   \clef "neomensural-c2" c
6140 @end lilypond
6141
6142 @item
6143 petrucci style mensural C clefs, for use on different staff lines
6144 (the examples show the 2nd staff line C clef)
6145 @tab
6146 @code{petrucci-c1}, @code{petrucci-c2},@*
6147 @code{petrucci-c3}, @code{petrucci-c4},@*
6148 @code{petrucci-c5}
6149 @tab
6150 @lilypond[fragment,relative=1,notime]
6151   \clef "petrucci-c2" c
6152 @end lilypond
6153
6154 @item
6155 petrucci style mensural F clef
6156 @tab
6157 @code{petrucci-f}
6158 @tab
6159 @lilypond[fragment,relative=1,notime]
6160   \clef "petrucci-f" c
6161 @end lilypond
6162
6163 @item
6164 petrucci style mensural G clef
6165 @tab
6166 @code{petrucci-g}
6167 @tab
6168 @lilypond[fragment,relative=1,notime]
6169   \clef "petrucci-g" c
6170 @end lilypond
6171
6172 @item
6173 historic style mensural C clef
6174 @tab
6175 @code{mensural-c1}, @code{mensural-c2},@*
6176 @code{mensural-c3}, @code{mensural-c4}
6177 @tab
6178 @lilypond[fragment,relative=1,notime]
6179   \clef "mensural-c2" c
6180 @end lilypond
6181
6182 @item
6183 historic style mensural F clef
6184 @tab
6185 @code{mensural-f}
6186 @tab
6187 @lilypond[fragment,relative=1,notime]
6188   \clef "mensural-f" c
6189 @end lilypond
6190
6191 @item
6192 historic style mensural G clef
6193 @tab
6194 @code{mensural-g}
6195 @tab
6196 @lilypond[fragment,relative=1,notime]
6197   \clef "mensural-g" c
6198 @end lilypond
6199
6200 @item
6201 Editio Vaticana style do clef
6202 @tab
6203 @code{vaticana-do1}, @code{vaticana-do2},@*
6204 @code{vaticana-do3}
6205 @tab
6206 @lilypond[fragment,relative=1,notime]
6207   \override Staff.StaffSymbol #'line-count = #4
6208   \clef "vaticana-do2" c
6209 @end lilypond
6210
6211 @item
6212 Editio Vaticana style fa clef
6213 @tab
6214 @code{vaticana-fa1}, @code{vaticana-fa2}
6215 @tab
6216 @lilypond[fragment,relative=1,notime]
6217   \override Staff.StaffSymbol #'line-count = #4
6218   \clef "vaticana-fa2" c
6219 @end lilypond
6220
6221 @item
6222 Editio Medicaea style do clef
6223 @tab
6224 @code{medicaea-do1}, @code{medicaea-do2},@*
6225 @code{medicaea-do3}
6226 @tab
6227 @lilypond[fragment,relative=1,notime]
6228   \override Staff.StaffSymbol #'line-count = #4
6229   \clef "medicaea-do2" c
6230 @end lilypond
6231
6232 @item
6233 Editio Medicaea style fa clef
6234 @tab
6235 @code{medicaea-fa1}, @code{medicaea-fa2}
6236 @tab
6237 @lilypond[fragment,relative=1,notime]
6238   \override Staff.StaffSymbol #'line-count = #4
6239   \clef "medicaea-fa2" c
6240 @end lilypond
6241
6242 @item
6243 historic style hufnagel do clef
6244 @tab
6245 @code{hufnagel-do1}, @code{hufnagel-do2},@*
6246 @code{hufnagel-do3}
6247 @tab
6248 @lilypond[fragment,relative=1,notime]
6249   \override Staff.StaffSymbol #'line-count = #4
6250   \clef "hufnagel-do2" c
6251 @end lilypond
6252
6253 @item
6254 historic style hufnagel fa clef
6255 @tab
6256 @code{hufnagel-fa1}, @code{hufnagel-fa2}
6257 @tab
6258 @lilypond[fragment,relative=1,notime]
6259   \override Staff.StaffSymbol #'line-count = #4
6260   \clef "hufnagel-fa2" c
6261 @end lilypond
6262
6263 @item
6264 historic style hufnagel combined do/fa clef
6265 @tab
6266 @code{hufnagel-do-fa}
6267 @tab
6268 @lilypond[fragment,relative=1,notime]
6269   \clef "hufnagel-do-fa" c
6270 @end lilypond
6271 @end multitable
6272
6273
6274
6275 @emph{Modern style} means ``as is typeset in contemporary editions of
6276 transcribed mensural music''.
6277
6278 @emph{Petrucci style} means ``inspired by printings published by the
6279 famous engraver Petrucci (1466-1539)''.
6280
6281 @emph{Historic style} means ``as was typeset or written in historic
6282 editions (other than those of Petrucci)''.
6283
6284 @emph{Editio XXX style} means ``as is/was printed in Editio XXX''.
6285
6286 Petrucci used C clefs with differently balanced left-side vertical
6287 beams, depending on which staff line it is printed.
6288
6289 @seealso
6290
6291 In this manual: see @ref{Clef}.
6292
6293 @refbugs
6294
6295 The mensural g clef is mapped to the Petrucci g clef.
6296
6297
6298
6299 @node Ancient flags
6300 @subsection Ancient flags
6301
6302 @cindex flags
6303
6304
6305 Use the @code{flag-style} property of grob @internalsref{Stem} to
6306 select ancient flags.  Besides the @code{default} flag style,
6307 only the @code{mensural} style is supported
6308
6309 @lilypond[quote,fragment,raggedright,verbatim]
6310 \override Stem #'flag-style = #'mensural
6311 \override Stem #'thickness = #1.0
6312 \override NoteHead #'style = #'mensural
6313 \autoBeamOff
6314 c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
6315 c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
6316 @end lilypond
6317
6318 Note that the innermost flare of each mensural flag always is
6319 vertically aligned with a staff line.
6320
6321 There is no particular flag style for neo-mensural notation.  Hence,
6322 when typesetting the incipit of a transcribed piece of mensural
6323 music, the default flag style should be used.  There are no flags in
6324 Gregorian Chant notation.
6325
6326 @refbugs
6327
6328 The attachment of ancient flags to stems is slightly off due to a
6329 change in early 2.3.x.
6330
6331 Vertically aligning each flag with a staff line assumes that stems
6332 always end either exactly on or exactly in the middle between two
6333 staff lines.  This may not always be true when using advanced layout
6334 features of classical notation (which however are typically out of
6335 scope for mensural notation).
6336
6337 @node Ancient time signatures
6338 @subsection Ancient time signatures
6339
6340 @cindex time signatures
6341
6342
6343 There is limited support for mensural time signatures.   The
6344 glyphs are hard-wired to particular time fractions.  In other words,
6345 to get a particular mensural signature glyph with the @code{\time n/m}
6346 command, @code{n} and @code{m} have to be chosen according to the
6347 following table
6348
6349 @lilypond[quote,raggedright]
6350 \layout {
6351   indent = 0.0
6352   \context { \Staff
6353     \remove Staff_symbol_engraver
6354     \remove Clef_engraver
6355     \remove Time_signature_engraver
6356   }
6357 } {
6358   \set Score.timing = ##f
6359   \set Score.barAlways = ##t
6360   s_\markup { "$\\backslash$time 4/4" }
6361   ^\markup { "       " \musicglyph #"timesig-neomensural4/4" }
6362   s
6363   s_\markup { "$\\backslash$time 2/2" }
6364   ^\markup { "       " \musicglyph #"timesig-neomensural2/2" }
6365   s
6366   s_\markup { "$\\backslash$time 6/4" }
6367   ^\markup { "       " \musicglyph #"timesig-neomensural6/4" }
6368   s
6369   s_\markup { "$\\backslash$time 6/8" }
6370   ^\markup { "       " \musicglyph #"timesig-neomensural6/8" }
6371   \break
6372   s_\markup { "$\\backslash$time 3/2" }
6373   ^\markup { "       " \musicglyph #"timesig-neomensural3/2" }
6374   s
6375   s_\markup { "$\\backslash$time 3/4" }
6376   ^\markup { "       " \musicglyph #"timesig-neomensural3/4" }
6377   s
6378   s_\markup { "$\\backslash$time 9/4" }
6379   ^\markup { "       " \musicglyph #"timesig-neomensural9/4" }
6380   s
6381   s_\markup { "$\\backslash$time 9/8" }
6382   ^\markup { "       " \musicglyph #"timesig-neomensural9/8" }
6383   \break
6384   s_\markup { "$\\backslash$time 4/8" }
6385   ^\markup { "       " \musicglyph #"timesig-neomensural4/8" }
6386   s
6387   s_\markup { "$\\backslash$time 2/4" }
6388   ^\markup { "       " \musicglyph #"timesig-neomensural2/4" }
6389 }
6390 @end lilypond
6391
6392 Use the @code{style} property of grob @internalsref{TimeSignature} to
6393 select ancient time signatures.  Supported styles are
6394 @code{neomensural} and @code{mensural}.  The above table uses the
6395 @code{neomensural} style.  This style is appropriate for the
6396 incipit of transcriptions of mensural pieces.  The @code{mensural}
6397 style mimics the look of historical printings of the 16th century.
6398
6399 The following examples show the differences in style,
6400
6401 @lilypond[raggedright,fragment,relative=1,quote]
6402 {
6403   \fatText
6404   \time 2/2
6405   c1^\markup { \hspace #-2.0 \typewriter default }
6406
6407   \override Staff.TimeSignature #'style = #'numbered
6408   \time 2/2
6409   c1^\markup { \hspace #-2.0 \typewriter numbered }
6410
6411   \override Staff.TimeSignature #'style = #'mensural
6412   \time 2/2
6413   c1^\markup { \hspace #-2.0 \typewriter mensural }
6414
6415   \override Staff.TimeSignature #'style = #'neomensural
6416   \time 2/2
6417   c1^\markup { \hspace #-2.0 \typewriter neomensural }
6418   \override Staff.TimeSignature #'style = #'single-digit
6419   \time 2/2
6420   c1^\markup { \hspace #-2.0 \typewriter single-digit }
6421 }
6422 @end lilypond
6423
6424 @seealso
6425
6426 This manual: @ref{Time signature} gives a general introduction to
6427 the use of time signatures.
6428
6429 @refbugs
6430
6431 Ratios of note durations do not change with the time signature.  For
6432 example, the ratio of 1 brevis = 3 semibrevis (tempus perfectum) must
6433 be made by hand, by setting
6434
6435 @example
6436 breveTP = #(ly:make-duration -1 0 3 2)
6437 @dots{}
6438 @{ c\breveTP f1 @}
6439 @end example
6440
6441 @noindent
6442 This sets @code{breveTP} to 3/2 times 2 = 3 times a whole note.
6443
6444 The @code{old6/8alt} symbol (an alternate symbol for 6/8) is not
6445 addressable with @code{\time}.  Use a @code{\markup} instead
6446
6447 @node Ancient articulations
6448 @subsection Ancient articulations
6449
6450 @cindex articulations
6451
6452 In addition to the standard articulation signs described in section
6453 @ref{Articulations}, articulation signs for ancient notation are
6454 provided.  These are specifically designed for use with notation in
6455 Editio Vaticana style.
6456
6457 @lilypond[quote,raggedright,verbatim]
6458 \include "gregorian-init.ly"
6459 \score {
6460   \context VaticanaVoice {
6461     \override TextScript #'font-family = #'typewriter
6462     \override TextScript #'font-shape = #'upright
6463     \override Script #'padding = #-0.1
6464     a4\ictus_"ictus" s1
6465     a4\circulus_"circulus" s1
6466     a4\semicirculus_"semicirculus" s1 s
6467     a4\accentus_"accentus" s1
6468     \[ a4_"episem" \episemInitium \pes b \flexa a \episemFinis \]
6469   }
6470 }
6471 @end lilypond
6472
6473 @refbugs
6474
6475 Some articulations are vertically placed too closely to the
6476 correpsonding note heads.
6477
6478 @node Custodes
6479 @subsection Custodes
6480
6481 @cindex custos
6482 @cindex custodes
6483
6484 A @emph{custos} (plural: @emph{custodes}; Latin word for `guard') is a
6485 symbol that appears at the end of a staff.  It anticipates the pitch
6486 of the first note(s) of the following line thus helping the performer
6487 to manage line breaks during performance.
6488
6489 Custodes were frequently used in music notation until the 17th
6490 century.  Nowadays, they have survived only in a few particular forms
6491 of musical notation such as contemporary editions of Gregorian chant
6492 like the @emph{editio vaticana}.  There are different custos glyphs
6493 used in different flavors of notational style.
6494
6495 For typesetting custodes, just put a @internalsref{Custos_engraver} into the
6496 @internalsref{Staff} context when declaring the @code{\layout} block,
6497 as shown in the following example
6498
6499 @example
6500 \layout @{
6501   \context @{
6502     \Staff
6503     \consists Custos_engraver
6504     Custos \override #'style = #'mensural
6505   @}
6506 @}
6507 @end example
6508
6509 The result looks like this
6510
6511 @lilypond[quote,raggedright]
6512 \score {
6513 {
6514   a'1
6515   \override Staff.Custos #'style = #'mensural
6516   \break
6517   g'
6518 }
6519 \layout {
6520   \context { \Staff \consists Custos_engraver }
6521   }
6522 }
6523 @end lilypond
6524
6525 The custos glyph is selected by the @code{style} property.  The styles
6526 supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
6527 @code{mensural}.  They are demonstrated in the following fragment
6528
6529 @lilypond[quote,raggedright,fragment]
6530 \new Lyrics \lyricmode {
6531   \markup { \column {
6532     \typewriter "vaticana"
6533     \line { " " \musicglyph #"custodes-vaticana-u0" }
6534   } }
6535   \markup { \column {
6536     \typewriter "medicaea"
6537     \line { " " \musicglyph #"custodes-medicaea-u0" }
6538   }}
6539   \markup { \column {
6540     \typewriter "hufnagel"
6541     \line { " " \musicglyph #"custodes-hufnagel-u0" }
6542   }}
6543   \markup { \column {
6544     \typewriter "mensural"
6545     \line { " " \musicglyph #"custodes-mensural-u0" }
6546   }}
6547 }
6548 @end lilypond
6549
6550 @seealso
6551
6552 Program reference: @internalsref{Custos}.
6553
6554 Examples: @inputfileref{input/@/regression,custos@/.ly}.
6555
6556
6557 @node Divisiones
6558 @subsection Divisiones
6559
6560 @cindex divisio
6561 @cindex divisiones
6562 @cindex finalis
6563
6564 A @emph{divisio} (plural: @emph{divisiones}; Latin word for
6565 `division') is a staff context symbol that is used to structure
6566 Gregorian music into phrases and sections.  The musical meaning of
6567 @emph{divisio minima}, @emph{divisio maior}, and @emph{divisio maxima}
6568 can be characterized as short, medium, and long pause, somewhat like
6569 the breathmarks from @ref{Breath marks}.  The @emph{finalis} sign not
6570 only marks the end of a chant, but is also frequently used within a
6571 single antiphonal/responsorial chant to mark the end of each section.
6572
6573
6574 To use divisiones, include the file @file{gregorian@/-init@/.ly}.  It
6575 contains definitions that you can apply by just inserting
6576 @code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima},
6577 and @code{\finalis} at proper places in the input.  Some editions use
6578 @emph{virgula} or @emph{caesura} instead of divisio minima.
6579 Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
6580 @code{\caesura}
6581
6582 @lilypondfile[quote,raggedright]{divisiones.ly}
6583
6584 @refcommands
6585
6586 @cindex @code{\virgula}
6587 @code{\virgula},
6588 @cindex @code{\caesura}
6589 @code{\caesura},
6590 @cindex @code{\divisioMinima}
6591 @code{\divisioMinima},
6592 @cindex @code{\divisioMaior}
6593 @code{\divisioMaior},
6594 @cindex @code{\divisioMaxima}
6595 @code{\divisioMaxima},
6596 @cindex @code{\finalis}
6597 @code{\finalis}.
6598
6599 @seealso
6600
6601 In this manual: @ref{Breath marks}.
6602
6603 Program reference: @internalsref{BreathingSign}, @internalsref{BreathingSignEvent}.
6604
6605 Examples: @inputfileref{input/@/test,divisiones@/.ly}.
6606
6607 @node Ligatures
6608 @subsection Ligatures
6609
6610 @cindex Ligatures
6611
6612 @c TODO: Should double check if I recalled things correctly when I wrote
6613 @c down the following paragraph by heart.
6614
6615 A ligature is a graphical symbol that represents at least two distinct
6616 notes.  Ligatures originally appeared in the manuscripts of Gregorian
6617 chant notation to denote ascending or descending sequences of notes.
6618
6619 Ligatures are entered by enclosing them in @code{\[} and @code{\]}.
6620 Some ligature styles may need additional input syntax specific for
6621 this particular type of ligature.  By default, the
6622 @internalsref{LigatureBracket} engraver just puts a square bracket
6623 above the ligature
6624
6625 @lilypond[quote,raggedright,verbatim]
6626 \transpose c c' {
6627   \[ g c a f d' \]
6628   a g f
6629   \[ e f a g \]
6630 }
6631 @end lilypond
6632
6633 To select a specific style of ligatures, a proper ligature engraver
6634 has to be added to the @internalsref{Voice} context, as explained in
6635 the following subsections.   Only white mensural ligatures
6636 are supported with certain limitations.
6637
6638
6639
6640 @refbugs
6641
6642 Ligatures need special spacing that has not yet been implemented.  As
6643 a result, there is too much space between ligatures most of the time,
6644 and line breaking often is unsatisfactory.  Also, lyrics do not
6645 correctly align with ligatures.
6646
6647 Accidentals must not be printed within a ligature, but instead need to
6648 be collected and printed in front of it.
6649
6650 Augmentum dots within ligatures are not handled correctly.
6651
6652
6653 @menu
6654 * White mensural ligatures::    
6655 * Gregorian square neumes ligatures::  
6656 @end menu
6657
6658 @node White mensural ligatures
6659 @subsubsection White mensural ligatures
6660
6661 @cindex Mensural ligatures
6662 @cindex White mensural ligatures
6663
6664 There is limited support for white mensural ligatures.
6665
6666 To engrave white mensural ligatures, in the layout block put the
6667 @internalsref{Mensural_ligature_engraver} into the
6668 @internalsref{Voice} context, and remove the
6669 @internalsref{Ligature_bracket_engraver}, like this
6670
6671 @example
6672 \layout @{
6673   \context @{
6674     \Voice
6675     \remove Ligature_bracket_engraver
6676     \consists Mensural_ligature_engraver
6677   @}
6678 @}
6679 @end example
6680
6681 There is no additional input language to describe the shape of a
6682 white mensural ligature.  The shape is rather determined solely from
6683 the pitch and duration of the enclosed notes.  While this approach may
6684 take a new user a while to get accustomed to, it has the great advantage
6685 that the full musical information of the ligature is known internally.
6686 This is not only required for correct MIDI output, but also allows for
6687 automatic transcription of the ligatures.
6688
6689 For example,
6690
6691 @example
6692 \set Score.timing = ##f
6693 \set Score.defaultBarType = "empty"
6694 \override NoteHead #'style = #'neomensural
6695 \override Staff.TimeSignature #'style = #'neomensural
6696 \clef "petrucci-g"
6697 \[ g\longa c\breve a\breve f\breve d'\longa \]
6698 s4
6699 \[ e1 f1 a\breve g\longa \]
6700 @end example
6701 @lilypond[quote,raggedright]
6702 \score {
6703   \transpose c c' {
6704     \set Score.timing = ##f
6705     \set Score.defaultBarType = "empty"
6706     \override NoteHead #'style = #'neomensural
6707     \override Staff.TimeSignature #'style = #'neomensural
6708     \clef "petrucci-g"
6709     \[ g\longa c\breve a\breve f\breve d'\longa \]
6710     s4
6711     \[ e1 f1 a\breve g\longa \]
6712   }
6713   \layout {
6714     \context {
6715       \Voice
6716       \remove Ligature_bracket_engraver
6717       \consists Mensural_ligature_engraver
6718     }
6719   }
6720 }
6721 @end lilypond
6722
6723 Without replacing @internalsref{Ligature_bracket_engraver} with
6724 @internalsref{Mensural_ligature_engraver}, the same music transcribes
6725 to the following
6726
6727 @lilypond[quote,raggedright]
6728 \transpose c c' {
6729   \set Score.timing = ##f
6730   \set Score.defaultBarType = "empty"
6731   \override NoteHead #'style = #'neomensural
6732   \override Staff.TimeSignature #'style = #'neomensural
6733   \clef "petrucci-g"
6734   \[ g\longa c\breve a\breve f\breve d'\longa \]
6735   s4
6736   \[ e1 f1 a\breve g\longa \]
6737 }
6738 @end lilypond
6739
6740 @refbugs
6741
6742 The implementation is experimental.  It may output strange warnings,
6743 incorrect results, and might even crash on more complex ligatures.
6744
6745 @node Gregorian square neumes ligatures
6746 @subsubsection Gregorian square neumes ligatures
6747
6748 @cindex Square neumes ligatures
6749 @cindex Gregorian square neumes ligatures
6750
6751 There is limited support for Gregorian square neumes notation
6752 (following the style of the Editio Vaticana).  Core ligatures can
6753 already be typeset, but essential issues for serious typesetting are
6754 still lacking, such as (among others) horizontal alignment of multiple
6755 ligatures, lyrics alignment and proper handling of accidentals.
6756
6757
6758 The following table contains the extended neumes table of the 2nd
6759 volume of the Antiphonale Romanum (@emph{Liber Hymnarius}), published
6760 1983 by the monks of Solesmes.
6761
6762 @multitable @columnfractions .4 .2 .2 .2
6763
6764 @item
6765 @b{Neuma aut@*
6766 Neumarum Elementa}
6767 @tab
6768 @b{Figurae@*
6769 Rectae}
6770 @tab
6771 @b{Figurae@*
6772 Liquescentes@*
6773 Auctae}
6774 @tab
6775 @b{Figurae@*
6776 Liquescentes@*
6777 Deminutae}
6778
6779 @c TODO: \layout block is identical in all of the below examples.
6780 @c Therefore, it should somehow be included rather than duplicated all
6781 @c the time. --jr
6782
6783 @c why not make identifiers in ly/engraver-init.ly? --hwn
6784
6785 @c Because it's just used to typeset plain notes without
6786 @c a staff for demonstration purposes rather than something
6787 @c special of Gregorian chant notation. --jr
6788
6789 @item
6790 @code{1. Punctum}
6791 @tab
6792 @lilypond[staffsize=26,linewidth=1.5\cm]
6793 \include "gregorian-init.ly"
6794 \score {
6795   \transpose c c' {
6796     % Punctum
6797     \[ b \]
6798     \noBreak s^\markup {"a"} \noBreak
6799
6800     % Punctum Inclinatum
6801     \[ \inclinatum b \]
6802     \noBreak s^\markup {"b"}
6803   }
6804 \layout { \neumeDemoLayout }}
6805 @end lilypond
6806 @tab
6807 @lilypond[staffsize=26,linewidth=2.5\cm]
6808 \include "gregorian-init.ly"
6809 \score {
6810   \transpose c c' {
6811     % Punctum Auctum Ascendens
6812     \[ \auctum \ascendens b \]
6813     \noBreak s^\markup {"c"} \noBreak
6814
6815     % Punctum Auctum Descendens
6816     \[ \auctum \descendens b \]
6817     \noBreak s^\markup {"d"} \noBreak
6818
6819     % Punctum Inclinatum Auctum
6820     \[ \inclinatum \auctum b \]
6821     \noBreak s^\markup {"e"}
6822   }
6823 \layout { \neumeDemoLayout }}
6824 @end lilypond
6825 @tab
6826 @lilypond[staffsize=26,linewidth=1.0\cm]
6827 \include "gregorian-init.ly"
6828 \score {
6829   \transpose c c' {
6830     % Punctum Inclinatum Parvum
6831     \[ \inclinatum \deminutum b \]
6832     \noBreak s^\markup {"f"}
6833   }
6834 \layout { \neumeDemoLayout }}
6835 @end lilypond
6836
6837 @item
6838 @code{2. Virga}
6839 @tab
6840 @lilypond[staffsize=26,linewidth=1.0\cm]
6841 \include "gregorian-init.ly"
6842 \score {
6843   \transpose c c' {
6844     % Virga
6845     \[ \virga b \]
6846     \noBreak s^\markup {"g"}
6847   }
6848 \layout { \neumeDemoLayout }}
6849 @end lilypond
6850 @tab
6851 @tab
6852
6853 @item
6854 @code{3. Apostropha vel Stropha}
6855 @tab
6856 @lilypond[staffsize=26,linewidth=1.0\cm]
6857 \include "gregorian-init.ly"
6858 \score {
6859   \transpose c c' {
6860     % Stropha
6861     \[ \stropha b \]
6862     \noBreak s^\markup {"h"}
6863   }
6864 \layout { \neumeDemoLayout }}
6865 @end lilypond
6866 @tab
6867 @lilypond[staffsize=26,linewidth=1.0\cm]
6868 \include "gregorian-init.ly"
6869 \score {
6870   \transpose c c' {
6871     % Stropha Aucta
6872     \[ \stropha \auctum b \]
6873     \noBreak s^\markup {"i"}
6874   }
6875 \layout { \neumeDemoLayout }}
6876 @end lilypond
6877 @tab
6878
6879 @item
6880 @code{4. Oriscus}
6881 @tab
6882 @lilypond[staffsize=26,linewidth=1.0\cm]
6883 \include "gregorian-init.ly"
6884 \score {
6885   \transpose c c' {
6886     % Oriscus
6887     \[ \oriscus b \]
6888     \noBreak s^\markup {"j"}
6889   }
6890 \layout { \neumeDemoLayout }}
6891 @end lilypond
6892 @tab
6893 @tab
6894
6895 @item
6896 @code{5. Clivis vel Flexa}
6897 @tab
6898 @lilypond[staffsize=26,linewidth=1.0\cm]
6899 \include "gregorian-init.ly"
6900 \score {
6901   \transpose c c' {
6902     % Clivis vel Flexa
6903     \[ b \flexa g \]
6904     s^\markup {"k"}
6905   }
6906 \layout { \neumeDemoLayout }}
6907 @end lilypond
6908 @tab
6909 @lilypond[staffsize=26,linewidth=2.0\cm]
6910 \include "gregorian-init.ly"
6911 \score {
6912   \transpose c c' {
6913     % Clivis Aucta Descendens
6914     \[ b \flexa \auctum \descendens g \]
6915     \noBreak s^\markup {"l"} \noBreak
6916
6917     % Clivis Aucta Ascendens
6918     \[ b \flexa \auctum \ascendens g \]
6919     \noBreak s^\markup {"m"}
6920   }
6921 \layout { \neumeDemoLayout }}
6922 @end lilypond
6923 @tab
6924 @lilypond[staffsize=26,linewidth=1.0\cm]
6925 \include "gregorian-init.ly"
6926 \score {
6927   \transpose c c' {
6928     % Cephalicus
6929     \[ b \flexa \deminutum g \]
6930     s^\markup {"n"}
6931   }
6932 \layout { \neumeDemoLayout }}
6933 @end lilypond
6934
6935 @item
6936 @code{6. Podatus vel Pes}
6937 @tab
6938 @lilypond[staffsize=26,linewidth=1.0\cm]
6939 \include "gregorian-init.ly"
6940 \score {
6941   \transpose c c' {
6942     % Podatus vel Pes
6943     \[ g \pes b \]
6944     s^\markup {"o"}
6945   }
6946 \layout { \neumeDemoLayout }}
6947 @end lilypond
6948 @tab
6949 @lilypond[staffsize=26,linewidth=2.0\cm]
6950 \include "gregorian-init.ly"
6951 \score {
6952   \transpose c c' {
6953     % Pes Auctus Descendens
6954     \[ g \pes \auctum \descendens b \]
6955     \noBreak s^\markup {"p"} \noBreak
6956
6957     % Pes Auctus Ascendens
6958     \[ g \pes \auctum \ascendens b \]
6959     \noBreak s^\markup {"q"}
6960   }
6961 \layout { \neumeDemoLayout }}
6962 @end lilypond
6963 @tab
6964 @lilypond[staffsize=26,linewidth=1.0\cm]
6965 \include "gregorian-init.ly"
6966 \score {
6967   \transpose c c' {
6968     % Epiphonus
6969     \[ g \pes \deminutum b \]
6970     s^\markup {"r"}
6971   }
6972 \layout { \neumeDemoLayout }}
6973 @end lilypond
6974
6975 @item
6976 @code{7. Pes Quassus}
6977 @tab
6978 @lilypond[staffsize=26,linewidth=1.0\cm]
6979 \include "gregorian-init.ly"
6980 \score {
6981   \transpose c c' {
6982     % Pes Quassus
6983     \[ \oriscus g \pes \virga b \]
6984     s^\markup {"s"}
6985   }
6986 \layout { \neumeDemoLayout }}
6987 @end lilypond
6988 @tab
6989 @lilypond[staffsize=26,linewidth=1.0\cm]
6990 \include "gregorian-init.ly"
6991 \score {
6992   \transpose c c' {
6993     % Pes Quassus Auctus Descendens
6994     \[ \oriscus g \pes \auctum \descendens b \]
6995     s^\markup {"t"}
6996   }
6997 \layout { \neumeDemoLayout }}
6998 @end lilypond
6999 @tab
7000
7001 @item
7002 @code{8. Quilisma Pes}
7003 @tab
7004 @lilypond[staffsize=26,linewidth=1.0\cm]
7005 \include "gregorian-init.ly"
7006 \score {
7007   \transpose c c' {
7008     % Quilisma Pes
7009     \[ \quilisma g \pes b \]
7010     s^\markup {"u"}
7011   }
7012 \layout { \neumeDemoLayout }}
7013 @end lilypond
7014 @tab
7015 @lilypond[staffsize=26,linewidth=1.0\cm]
7016 \include "gregorian-init.ly"
7017 \score {
7018   \transpose c c' {
7019     % Quilisma Pes Auctus Descendens
7020     \[ \quilisma g \pes \auctum \descendens b \]
7021     s^\markup {"v"}
7022   }
7023 \layout { \neumeDemoLayout }}
7024 @end lilypond
7025 @tab
7026
7027 @item
7028 @code{9. Podatus Initio Debilis}
7029 @tab
7030 @lilypond[staffsize=26,linewidth=1.0\cm]
7031 \include "gregorian-init.ly"
7032 \score {
7033   \transpose c c' {
7034     % Pes Initio Debilis
7035     \[ \deminutum g \pes b \]
7036     s^\markup {"w"}
7037   }
7038 \layout { \neumeDemoLayout }}
7039 @end lilypond
7040 @tab
7041 @lilypond[staffsize=26,linewidth=1.0\cm]
7042 \include "gregorian-init.ly"
7043 \score {
7044   \transpose c c' {
7045     % Pes Auctus Descendens Initio Debilis
7046     \[ \deminutum g \pes \auctum \descendens b \]
7047     s^\markup {"x"}
7048   }
7049 \layout { \neumeDemoLayout }}
7050 @end lilypond
7051 @tab
7052
7053 @item
7054 @code{10. Torculus}
7055 @tab
7056 @lilypond[staffsize=26,linewidth=1.0\cm]
7057 \include "gregorian-init.ly"
7058 \score {
7059   \transpose c c' {
7060     % Torculus
7061     \[ a \pes b \flexa g \]
7062     s^\markup {"y"}
7063   }
7064 \layout { \neumeDemoLayout }}
7065 @end lilypond
7066 @tab
7067 @lilypond[staffsize=26,linewidth=1.0\cm]
7068 \include "gregorian-init.ly"
7069 \score {
7070   \transpose c c' {
7071     % Torculus Auctus Descendens
7072     \[ a \pes b \flexa \auctum \descendens g \]
7073     s^\markup {"z"}
7074   }
7075 \layout { \neumeDemoLayout }}
7076 @end lilypond
7077 @tab
7078 @lilypond[staffsize=26,linewidth=1.0\cm]
7079 \include "gregorian-init.ly"
7080 \score {
7081   \transpose c c' {
7082     % Torculus Deminutus
7083     \[ a \pes b \flexa \deminutum g \]
7084     s^\markup {"A"}
7085   }
7086 \layout { \neumeDemoLayout }}
7087 @end lilypond
7088
7089 @item
7090 @code{11. Torculus Initio Debilis}
7091 @tab
7092 @lilypond[staffsize=26,linewidth=1.0\cm]
7093 \include "gregorian-init.ly"
7094 \score {
7095   \transpose c c' {
7096     % Torculus Initio Debilis
7097     \[ \deminutum a \pes b \flexa g \]
7098     s^\markup {"B"}
7099   }
7100 \layout { \neumeDemoLayout }}
7101 @end lilypond
7102 @tab
7103 @lilypond[staffsize=26,linewidth=1.0\cm]
7104 \include "gregorian-init.ly"
7105 \score {
7106   \transpose c c' {
7107     % Torculus Auctus Descendens Initio Debilis
7108     \[ \deminutum a \pes b \flexa \auctum \descendens g \]
7109     s^\markup {"C"}
7110   }
7111 \layout { \neumeDemoLayout }}
7112 @end lilypond
7113 @tab
7114 @lilypond[staffsize=26,linewidth=1.0\cm]
7115 \include "gregorian-init.ly"
7116 \score {
7117   \transpose c c' {
7118     % Torculus Deminutus Initio Debilis
7119     \[ \deminutum a \pes b \flexa \deminutum g \]
7120     s^\markup {"D"}
7121   }
7122 \layout { \neumeDemoLayout }}
7123 @end lilypond
7124
7125 @item
7126 @code{12. Porrectus}
7127 @tab
7128 @lilypond[staffsize=26,linewidth=1.0\cm]
7129 \include "gregorian-init.ly"
7130 \score {
7131   \transpose c c' {
7132     % Porrectus
7133     \[ a \flexa g \pes b \]
7134     s^\markup {"E"}
7135   }
7136 \layout { \neumeDemoLayout }}
7137 @end lilypond
7138 @tab
7139 @lilypond[staffsize=26,linewidth=1.0\cm]
7140 \include "gregorian-init.ly"
7141 \score {
7142   \transpose c c' {
7143     % Porrectus Auctus Descendens
7144     \[ a \flexa g \pes \auctum \descendens b \]
7145     s^\markup {"F"}
7146   }
7147 \layout { \neumeDemoLayout }}
7148 @end lilypond
7149 @tab
7150 @lilypond[staffsize=26,linewidth=1.0\cm]
7151 \include "gregorian-init.ly"
7152 \score {
7153   \transpose c c' {
7154     % Porrectus Deminutus
7155     \[ a \flexa g \pes \deminutum b \]
7156     s^\markup {"G"}
7157   }
7158 \layout { \neumeDemoLayout }}
7159 @end lilypond
7160
7161 @item
7162 @code{13. Climacus}
7163 @tab
7164 @lilypond[staffsize=26,linewidth=1.0\cm]
7165 \include "gregorian-init.ly"
7166 \score {
7167   \transpose c c' {
7168     % Climacus
7169     \[ \virga b \inclinatum a \inclinatum g \]
7170     s^\markup {"H"}
7171   }
7172   \layout { \neumeDemoLayout }
7173 }
7174 @end lilypond
7175 @tab
7176 @lilypond[staffsize=26,linewidth=1.0\cm]
7177 \include "gregorian-init.ly"
7178 \score {
7179   \transpose c c' {
7180     % Climacus Auctus
7181     \[ \virga b \inclinatum a \inclinatum \auctum g \]
7182     s^\markup {"I"}
7183   }
7184 \layout { \neumeDemoLayout }}
7185 @end lilypond
7186 @tab
7187 @lilypond[staffsize=26,linewidth=1.0\cm]
7188 \include "gregorian-init.ly"
7189 \score {
7190   \transpose c c' {
7191     % Climacus Deminutus
7192     \[ \virga b \inclinatum a \inclinatum \deminutum g \]
7193     s^\markup {"J"}
7194   }
7195 \layout { \neumeDemoLayout }}
7196 @end lilypond
7197
7198 @item
7199 @code{14. Scandicus}
7200 @tab
7201 @lilypond[staffsize=26,linewidth=1.0\cm]
7202 \include "gregorian-init.ly"
7203 \score {
7204   \transpose c c' {
7205     % Scandicus
7206     \[ g \pes a \virga b \]
7207     s^\markup {"K"}
7208   }
7209 \layout { \neumeDemoLayout }}
7210 @end lilypond
7211 @tab
7212 @lilypond[staffsize=26,linewidth=1.0\cm]
7213 \include "gregorian-init.ly"
7214 \score {
7215   \transpose c c' {
7216     % Scandicus Auctus Descendens
7217     \[ g \pes a \pes \auctum \descendens b \]
7218     s^\markup {"L"}
7219   }
7220 \layout { \neumeDemoLayout }}
7221 @end lilypond
7222 @tab
7223 @lilypond[staffsize=26,linewidth=1.0\cm]
7224 \include "gregorian-init.ly"
7225 \score {
7226   \transpose c c' {
7227     % Scandicus Deminutus
7228     \[ g \pes a \pes \deminutum b \]
7229     s^\markup {"M"}
7230   }
7231 \layout { \neumeDemoLayout }}
7232 @end lilypond
7233
7234 @item
7235 @code{15. Salicus}
7236 @tab
7237 @lilypond[staffsize=26,linewidth=1.0\cm]
7238 \include "gregorian-init.ly"
7239 \score {
7240   \transpose c c' {
7241     % Salicus
7242     \[ g \oriscus a \pes \virga b \]
7243     s^\markup {"N"}
7244   }
7245 \layout { \neumeDemoLayout }}
7246 @end lilypond
7247 @tab
7248 @lilypond[staffsize=26,linewidth=1.0\cm]
7249 \include "gregorian-init.ly"
7250 \score {
7251   \transpose c c' {
7252     % Salicus Auctus Descendens
7253     \[ g \oriscus a \pes \auctum \descendens b \]
7254     s^\markup {"O"}
7255   }
7256 \layout { \neumeDemoLayout }}
7257 @end lilypond
7258 @tab
7259
7260 @item
7261 @code{16. Trigonus}
7262 @tab
7263 @lilypond[staffsize=26,linewidth=1.0\cm]
7264 \include "gregorian-init.ly"
7265 \score {
7266   \transpose c c' {
7267     % Trigonus
7268     \[ \stropha b \stropha b \stropha a \]
7269     s^\markup {"P"}
7270   }
7271   \layout { \neumeDemoLayout }
7272 }
7273 @end lilypond
7274 @tab
7275 @tab
7276
7277 @end multitable
7278
7279
7280 Unlike most other neumes notation systems, the input language for
7281 neumes does not reflect the typographical appearance, but is designed
7282 to focus on musical meaning.  For example, @code{\[ a \pes b
7283 \flexa g \]} produces a Torculus consisting of three Punctum heads,
7284 while @code{\[ a \flexa g \pes b \]} produces a Porrectus with a
7285 curved flexa shape and only a single Punctum head.  There is no
7286 command to explicitly typeset the curved flexa shape; the decision of
7287 when to typeset a curved flexa shape is based on the musical
7288 input.  The idea of this approach is to separate the musical aspects
7289 of the input from the notation style of the output.  This way, the
7290 same input can be reused to typeset the same music in a different
7291 style of Gregorian chant notation.
7292
7293 The following table shows the code fragments that produce the
7294 ligatures in the above neumes table.  The letter in the first column
7295 in each line of the below table indicates to which ligature in the
7296 above table it refers.  The second column gives the name of the
7297 ligature.  The third column shows the code fragment that produces this
7298 ligature, using @code{g}, @code{a}, and @code{b} as example pitches.
7299
7300 @multitable @columnfractions .02 .31 .67
7301 @item
7302 @b{#}
7303 @tab
7304 @b{Name}
7305 @tab
7306 @b{Input Language}
7307
7308 @item
7309 a
7310 @tab
7311 Punctum
7312 @tab
7313 @code{\[ b \]}
7314
7315 @item
7316 b
7317 @tab
7318 Punctum Inclinatum
7319 @tab
7320 @code{\[ \inclinatum b \]}
7321
7322 @item
7323 c
7324 @tab
7325 Punctum Auctum@*
7326 Ascendens
7327 @tab
7328 @code{\[ \auctum \ascendens b \]}
7329
7330 @item
7331 d
7332 @tab
7333 Punctum Auctum@*
7334 Descendens
7335 @tab
7336 @code{\[ \auctum \descendens b \]}
7337
7338 @item
7339 e
7340 @tab
7341 Punctum Inclinatum@*
7342 Auctum
7343 @tab
7344 @code{\[ \inclinatum \auctum b \]}
7345
7346 @item
7347 f
7348 @tab
7349 Punctum Inclinatum@*
7350 Parvum @tab
7351 @code{\[ \inclinatum \deminutum b \]}
7352
7353 @item
7354 g
7355 @tab
7356 Virga
7357 @tab
7358 @code{\[ \virga b \]}
7359
7360 @item
7361 h
7362 @tab
7363 Stropha
7364 @tab
7365 @code{\[ \stropha b \]}
7366
7367 @item
7368 i
7369 @tab
7370 Stropha Aucta
7371 @tab
7372 @code{\[ \stropha \auctum b \]}
7373
7374 @item
7375 j
7376 @tab
7377 Oriscus
7378 @tab
7379 @code{\[ \oriscus b \]}
7380
7381 @item
7382 k
7383 @tab
7384 Clivis vel Flexa
7385 @tab
7386 @code{\[ b \flexa g \]}
7387
7388 @item
7389 l
7390 @tab
7391 Clivis Aucta@*
7392 Descendens
7393 @tab
7394 @code{\[ b \flexa \auctum \descendens g \]}
7395
7396 @item
7397 m
7398 @tab
7399 Clivis Aucta@*
7400 Ascendens
7401 @tab
7402 @code{\[ b \flexa \auctum \ascendens g \]}
7403
7404 @item
7405 n
7406 @tab
7407 Cephalicus
7408 @tab
7409 @code{\[ b \flexa \deminutum g \]}
7410
7411 @item
7412 o
7413 @tab
7414 Podatus vel Pes
7415 @tab
7416 @code{\[ g \pes b \]}
7417
7418 @item
7419 p
7420 @tab
7421 Pes Auctus@*
7422 Descendens
7423 @tab
7424 @code{\[ g \pes \auctum \descendens b \]}
7425
7426 @item
7427 q
7428 @tab
7429 Pes Auctus@*
7430 Ascendens
7431 @tab
7432 @code{\[ g \pes \auctum \ascendens b \]}
7433
7434 @item
7435 r
7436 @tab
7437 Epiphonus
7438 @tab
7439 @code{\[ g \pes \deminutum b \]}
7440
7441 @item
7442 s
7443 @tab
7444 Pes Quassus
7445 @tab
7446 @code{\[ \oriscus g \pes \virga b \]}
7447
7448 @item
7449 t
7450 @tab
7451 Pes Quassus@*
7452 Auctus Descendens @tab
7453 @code{\[ \oriscus g \pes \auctum \descendens b \]}
7454
7455 @item
7456 u
7457 @tab
7458 Quilisma Pes
7459 @tab
7460 @code{\[ \quilisma g \pes b \]}
7461
7462 @item
7463 v
7464 @tab
7465 Quilisma Pes@*
7466 Auctus Descendens
7467 @tab
7468 @code{\[ \quilisma g \pes \auctum \descendens b \]}
7469
7470 @item
7471 w
7472 @tab
7473 Pes Initio Debilis
7474 @tab
7475 @code{\[ \deminutum g \pes b \]}
7476
7477 @item
7478 x
7479 @tab
7480 Pes Auctus Descendens@*
7481 Initio Debilis
7482 @tab
7483 @code{\[ \deminutum g \pes \auctum \descendens b \]}
7484
7485 @item
7486 y
7487 @tab
7488 Torculus
7489 @tab
7490 @code{\[ a \pes b \flexa g \]}
7491
7492 @item
7493 z
7494 @tab
7495 Torculus Auctus@*
7496 Descendens
7497 @tab
7498 @code{\[ a \pes b \flexa \auctum \descendens g \]}
7499
7500 @item
7501 A
7502 @tab
7503 Torculus Deminutus
7504 @tab
7505 @code{\[ a \pes b \flexa \deminutum g \]}
7506
7507 @item
7508 B
7509 @tab
7510 Torculus Initio Debilis
7511 @tab
7512 @code{\[ \deminutum a \pes b \flexa g \]}
7513
7514 @item
7515 C
7516 @tab
7517 Torculus Auctus@*
7518 Descendens Initio Debilis
7519 @tab
7520 @code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]}
7521
7522 @item
7523 D
7524 @tab
7525 Torculus Deminutus@*
7526 Initio Debilis
7527 @tab
7528 @code{\[ \deminutum a \pes b \flexa \deminutum g \]}
7529
7530 @item
7531 E
7532 @tab
7533 Porrectus
7534 @tab
7535 @code{\[ a \flexa g \pes b \]}
7536
7537 @item
7538 F
7539 @tab
7540 Porrectus Auctus@*
7541 Descendens
7542 @tab
7543 @code{\[ a \flexa g \pes \auctum \descendens b \]}
7544
7545 @item
7546 G
7547 @tab
7548 Porrectus Deminutus
7549 @tab
7550 @code{\[ a \flexa g \pes \deminutum b \]}
7551
7552 @item
7553 H
7554 @tab
7555 Climacus
7556 @tab
7557 @code{\[ \virga b \inclinatum a \inclinatum g \]}
7558
7559 @item
7560 I
7561 @tab
7562 Climacus Auctus
7563 @tab
7564 @code{\[ \virga b \inclinatum a \inclinatum \auctum g \]}
7565
7566 @item
7567 J
7568 @tab
7569 Climacus Deminutus
7570 @tab
7571 @code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]}
7572
7573 @item
7574 K
7575 @tab
7576 Scandicus
7577 @tab
7578 @code{\[ g \pes a \virga b \]}
7579
7580 @item
7581 L
7582 @tab
7583 Scandicus Auctus@*
7584 Descendens
7585 @tab
7586 @code{\[ g \pes a \pes \auctum \descendens b \]}
7587
7588 @item
7589 M
7590 @tab
7591 Scandicus Deminutus
7592 @tab
7593 @code{\[ g \pes a \pes \deminutum b \]}
7594
7595 @item
7596 N
7597 @tab
7598 Salicus
7599 @tab
7600 @code{\[ g \oriscus a \pes \virga b \]}
7601
7602 @item
7603 O
7604 @tab
7605 Salicus Auctus Descendens
7606 @tab
7607 @code{\[ g \oriscus a \pes \auctum \descendens b \]}
7608
7609 @item
7610 P
7611 @tab
7612 Trigonus
7613 @tab
7614 @code{\[ \stropha b \stropha b \stropha a \]}
7615 @end multitable
7616
7617 @refcommands
7618
7619 The following head prefixes are supported
7620
7621 @cindex @code{\virga}
7622 @code{\virga},
7623 @cindex @code{\stropha}
7624 @code{\stropha},
7625 @cindex @code{\inclinatum}
7626 @code{\inclinatum},
7627 @cindex @code{\auctum}
7628 @code{\auctum},
7629 @cindex @code{\descendens}
7630 @code{\descendens},
7631 @cindex @code{\ascendens}
7632 @code{\ascendens},
7633 @cindex @code{\oriscus}
7634 @code{\oriscus},
7635 @cindex @code{\quilisma}
7636 @code{\quilisma},
7637 @cindex @code{\deminutum}
7638 @code{\deminutum}.
7639
7640 Head prefixes can be accumulated, though restrictions apply.  For
7641 example, either @code{\descendens} or @code{\ascendens} can be applied
7642 to a head, but not both to the same head.
7643
7644 @cindex @code{\pes}
7645 @cindex @code{\flexa}
7646 Two adjacent heads can be tied together with the @code{\pes} and
7647 @code{\flexa} infix commands for a rising and falling line of melody,
7648 respectively.
7649
7650
7651
7652 @node Gregorian Chant contexts
7653 @subsection Gregorian Chant contexts
7654
7655 @cindex VaticanaVoiceContext
7656 @cindex VaticanaStaffContext
7657
7658 The predefined @code{VaticanaVoiceContext} and
7659 @code{VaticanaStaffContext} can be used to engrave a piece of
7660 Gregorian Chant in the style of the Editio Vaticana.  These contexts
7661 initialize all relevant context properties and grob properties to
7662 proper values, so you can immediately go ahead entering the chant, as
7663 the following excerpt demonstrates
7664
7665 @lilypond[quote,raggedright,verbatim]
7666 \include "gregorian-init.ly"
7667 \score {
7668   <<
7669     \context VaticanaVoice = "cantus" {
7670       \override Score.BarNumber #'transparent = ##t {
7671         \[ c'\melisma c' \flexa a \]
7672         \[ a \flexa \deminutum g\melismaEnd \]
7673         f \divisioMinima
7674         \[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
7675         c' \divisioMinima \break
7676         \[ c'\melisma c' \flexa a \]
7677         \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
7678       }
7679     }
7680     \lyricsto "cantus" \new Lyrics {
7681       San- ctus, San- ctus, San- ctus
7682     }
7683   >>
7684 }
7685 @end lilypond
7686
7687
7688 @node Mensural contexts
7689 @subsection Mensural contexts
7690
7691 @cindex MensuralVoiceContext
7692 @cindex MensuralStaffContext
7693
7694 The predefined @code{MensuralVoiceContext} and
7695 @code{MensuralStaffContext} can be used to engrave a piece in mensural
7696 style.  These contexts initialize all relevant context properties and
7697 grob properties to proper values, so you can immediately go ahead
7698 entering the chant, as the following excerpt demonstrates
7699
7700 @lilypond[quote,raggedright,verbatim]
7701 \score {
7702   <<
7703     \context MensuralVoice = "discantus" \transpose c c' {
7704       \override Score.BarNumber #'transparent = ##t {
7705         c'1\melisma bes a g\melismaEnd
7706         f\breve
7707         \[ f1\melisma a c'\breve d'\melismaEnd \]
7708         c'\longa
7709         c'\breve\melisma a1 g1\melismaEnd
7710         fis\longa^\signumcongruentiae
7711       }
7712     }
7713     \lyricsto "discantus" \new Lyrics {
7714       San -- ctus, San -- ctus, San -- ctus
7715     }
7716   >>
7717 }
7718 @end lilypond
7719
7720
7721 @node Figured bass
7722 @subsection Figured bass
7723
7724 @cindex Basso continuo
7725
7726 @c TODO: musicological blurb about FB
7727
7728
7729 LilyPond has limited support for figured bass
7730
7731 @lilypond[quote,raggedright,verbatim,fragment]
7732 <<
7733   \context Voice { \clef bass dis4 c d ais g fis}
7734   \context FiguredBass \figuremode {
7735     < 6 >4 < 7 >8 < 6+ [_!] >
7736     < 6 >4 <6 5 [3+] >
7737     < _ >4 < 6 >4
7738   }
7739 >>
7740 @end lilypond
7741
7742 The support for figured bass consists of two parts: there is an input
7743 mode, introduced by @code{\figuremode}, where you can enter bass figures
7744 as numbers, and there is a context called @internalsref{FiguredBass} that
7745 takes care of making @internalsref{BassFigure} objects.
7746
7747 In figures input mode, a group of bass figures is delimited by
7748 @code{<} and @code{>}.  The duration is entered after the @code{>}
7749 @example
7750 <4 6>
7751 @end example
7752 @lilypond[quote,raggedright,fragment]
7753 \context FiguredBass
7754 \figuremode { <4 6> }
7755 @end lilypond
7756
7757 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
7758 to the numbers
7759
7760 @example
7761 <4- 6+ 7!>
7762 @end example
7763 @lilypond[quote,raggedright,fragment]
7764 \context FiguredBass
7765 \figuremode { <4- 6+ 7!> }
7766 @end lilypond
7767
7768 Spaces or dashes may be inserted by using @code{_}.  Brackets are
7769 introduced with @code{[} and @code{]}
7770
7771 @example
7772 < [4 6] 8 [_! 12] >
7773 @end example
7774 @lilypond[quote,raggedright,fragment]
7775 \context FiguredBass
7776 \figuremode { < [4 6] 8 [_! 12] > }
7777 @end lilypond
7778
7779 Although the support for figured bass may superficially resemble chord
7780 support, it works much simpler.  The @code{\figuremode} mode simply
7781 stores the numbers and @internalsref{FiguredBass} context prints
7782 them as entered.  There is no conversion to pitches and no
7783 realizations of the bass are played in the MIDI file.
7784
7785 Internally, the code produces markup texts.  You can use any of the
7786 markup text properties to override formatting.  For example, the
7787 vertical spacing of the figures may be set with @code{baseline-skip}.
7788
7789 @seealso
7790
7791 Program reference: @internalsref{BassFigureEvent} music,
7792 @internalsref{BassFigure} object, and @internalsref{FiguredBass} context.
7793
7794 @refbugs
7795
7796 Slash notation for alterations is not supported.
7797
7798 @node Contemporary notation
7799 @section Contemporary notation
7800
7801 In the 20th century, composers have greatly expanded the musical
7802 vocabulary.  With this expansion, many innovations in musical notation
7803 have been tried.  The book ``Music Notation in the 20th century'' by
7804 Kurt Stone gives a comprehensive overview (see @ref{Literature
7805 list}).  In general, the use of new, innovative notation makes a piece
7806 harder to understand and perform and its use should therefore be
7807 avoided.  For this reason, support for contemporary notation in
7808 LilyPond is limited.
7809
7810
7811 @menu
7812 * Polymetric notation::         
7813 * Clusters::                    
7814 * Special fermatas::            
7815 * Feathered beams::             
7816 @end menu
7817
7818 @node Polymetric notation
7819 @subsection Polymetric notation
7820
7821 Double time signatures are not supported explicitly, but they can be
7822 faked.  In the next example, the markup for the time signature is
7823 created with a markup text.  This markup text is inserted in the
7824 @internalsref{TimeSignature} grob.
7825
7826 @lilypond[verbatim,raggedright]
7827 % create 2/4 + 5/8
7828 tsMarkup =\markup {
7829   \number {
7830     \column { "2" "4" }
7831     \musicglyph #"scripts-stopped"
7832     \bracket \column { "5" "8" }
7833   }
7834 }
7835
7836 {
7837   \override Staff.TimeSignature #'print-function = #Text_interface::print
7838   \override Staff.TimeSignature #'text = #tsMarkup
7839   \time 3/2
7840   c'2 \bar ":" c'4 c'4.
7841 }
7842 @end lilypond
7843
7844 Each staff can also have its own time signature.  This is done by
7845 moving the @internalsref{Timing_engraver} to the @internalsref{Staff}
7846 context.
7847
7848 @example
7849 \layout @{
7850   \context @{ \Score \remove "Timing_engraver" @}
7851   \context @{ \Staff \consists "Timing_engraver" @}
7852 @}
7853 @end example
7854
7855
7856 Now, each staff has its own time signature.
7857 @example
7858 <<
7859   \new Staff @{
7860     \time 3/4
7861     c4 c c | c c c |
7862   @}
7863   \new Staff @{
7864     \time 2/4
7865     c4 c | c c | c c
7866   @}
7867   \new Staff @{
7868     \time 3/8
7869     c4. c8 c c c4. c8 c c
7870   @}
7871 >>
7872 @end example
7873
7874 @lilypond[quote,raggedright]
7875 \layout{
7876   \context{ \Score \remove "Timing_engraver" }
7877   \context{ \Staff \consists "Timing_engraver" }
7878 }
7879
7880 \relative c' <<
7881   \new Staff {
7882     \time 3/4
7883     c4 c c | c c c |
7884   }
7885   \new Staff {
7886     \time 2/4
7887     c4 c | c c | c c
7888   }
7889   \new Staff {
7890     \time 3/8
7891     c4. c8 c c c4. c8 c c
7892   }
7893 >>
7894 @end lilypond
7895
7896
7897 A different form of polymetric notation is where note lengths have
7898 different values across staves.
7899
7900 This notation can be created by setting a common time signature for
7901 each staff but replacing it manually using
7902 @code{timeSignatureFraction} to the desired fraction.  Then the printed
7903 durations in each staff are scaled to the common time signature.
7904 The latter is done with @code{\compressmusic}, which is similar to
7905 @code{\times}, but does not create a tuplet bracket.
7906
7907
7908 In this example, music with the time signatures of 3/4, 9/8, and 10/8 are
7909 used in parallel.  In the second staff, shown durations are multiplied by
7910 2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
7911 multiplied by 3/5, so that 3/5 * 10/8 = 3/4.
7912
7913 @lilypond[quote,raggedright,verbatim,fragment]
7914 \relative c' { <<
7915   \new Staff {
7916     \time 3/4
7917     c4 c c | c c c |
7918   }
7919   \new Staff {
7920     \time 3/4
7921     \set Staff.timeSignatureFraction = #'(9 . 8)
7922     \compressmusic #'(2 . 3)
7923       \repeat unfold 6 { c8[ c c] }
7924   }
7925   \new Staff {
7926     \time 3/4
7927     \set Staff.timeSignatureFraction = #'(10 . 8)
7928     \compressmusic #'(3 . 5) {
7929       \repeat unfold 2 { c8[ c c] }
7930       \repeat unfold 2 { c8[ c] }
7931       | c4. c4. \times 2/3 { c8 c c } c4
7932     }
7933   }
7934 >> }
7935 @end lilypond
7936
7937
7938
7939
7940 @refbugs
7941
7942 When using different time signatures in parallel, the spacing is
7943 aligned vertically, but bar lines distort the regular spacing.
7944
7945
7946
7947 @node Clusters
7948 @subsection Clusters
7949
7950 @cindex cluster
7951
7952 A cluster indicates a continuous range of pitches to be played.  They
7953 can be denoted as the envelope of a set of notes.  They are entered by
7954 applying the function @code{makeClusters} to a sequence of
7955 chords, e.g.,
7956 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
7957 \makeClusters { <c e > <b f'> }
7958 @end lilypond
7959
7960 The following example (from
7961 @inputfileref{input/@/regression,cluster@/.ly}) shows what the result
7962 looks like
7963
7964 @lilypondfile[raggedright,quote]{cluster.ly}
7965
7966 Ordinary notes and clusters can be put together in the same staff,
7967 even simultaneously.  In such a case no attempt is made to
7968 automatically avoid collisions between ordinary notes and clusters.
7969
7970 @seealso
7971
7972 Program reference: @internalsref{ClusterSpanner},
7973 @internalsref{ClusterSpannerBeacon},
7974 @internalsref{Cluster_spanner_engraver}, and
7975 @internalsref{ClusterNoteEvent}.
7976
7977 Examples: @inputfileref{input/@/regression,cluster@/.ly}.
7978
7979 @refbugs
7980
7981 Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
7982 accurately.  Use @code{<g a>8 <e a>8} instead.
7983
7984
7985
7986 @node Special fermatas
7987 @subsection Special fermatas
7988
7989 @cindex fermatas, special
7990
7991 In contemporary music notation, special fermata symbols denote breaks
7992 of differing lengths.  The following fermatas are supported
7993
7994 @lilypond[quote,raggedright]
7995 <<
7996   \oldaddlyrics {
7997     b'2
7998     ^\shortfermata
7999     _\shortfermata
8000     r
8001
8002     b'
8003     ^\fermata
8004     _\fermata
8005     r
8006
8007     b'
8008     ^\longfermata
8009     _\longfermata
8010     r
8011
8012     b'
8013     ^\verylongfermata
8014     _\verylongfermata
8015     r
8016   }
8017   \context Lyrics \lyricmode {
8018     \override LyricText #'font-family = #'typewriter
8019     "shortfermata" "fermata" "longfermata" "verylongfermata"
8020   }
8021 >>
8022 @end lilypond
8023
8024 See @ref{Articulations} for general instructions how to apply scripts
8025 such as fermatas to notes.
8026
8027 @node Feathered beams
8028 @subsection Feathered beams
8029
8030 Feathered beams are not supported natively, but they can be faked by
8031 forcing two beams to overlap.  Here is an example,
8032
8033 @c don't change relative setting witout changing positions!
8034 @lilypond[raggedright,relative=1,fragment,verbatim]
8035 \new Staff <<
8036   \new Voice
8037   {
8038     \stemUp
8039     \once \override Voice.Beam #'positions = #'(0 . 0.5)
8040     c8[ c c c c ]
8041   }
8042   \new Voice {
8043     \stemUp
8044     \once \override Voice.Beam #'positions = #'(0 . -0.5)
8045     c[ c c c c]
8046   }
8047 >>
8048 @end lilypond
8049
8050
8051
8052 @node Educational use
8053 @section Educational use
8054
8055 With the amount of control that LilyPond offers, one can make great
8056 teaching tools in addition to great musical scores.
8057
8058 @menu
8059 * Balloon help::                
8060 * Blank music sheet::           
8061 * Hidden notes::                
8062 * Shaped note heads ::          
8063 * Easy Notation note heads::    
8064 @end menu
8065
8066 @node Balloon help
8067 @subsection Balloon help
8068
8069 Elements of notation can be marked and named with the help of a square
8070 balloon.  The primary purpose of this feature is to explain notation.
8071
8072 The following example demonstrates its use.
8073
8074 @lilypond[quote,verbatim,fragment,raggedright,relative=2]
8075 \context Voice {
8076   \applyoutput
8077     #(add-balloon-text 'NoteHead "heads, or tails?"
8078     '(1 . -3))
8079   c8
8080 }
8081 @end lilypond
8082
8083 @noindent
8084 The function @code{add-balloon-text} takes the name of a grob, the
8085 label to print, and the position where to put the label relative to
8086 the object.  In the above example, the text ``heads or tails?'' ends
8087 3 spaces below and 1 space to the right of the marked head.
8088
8089 @cindex balloon
8090 @cindex notation, explaining
8091
8092 @seealso
8093
8094 Program reference: @internalsref{text-balloon-interface}.
8095
8096 Examples: @inputfileref{input/@/regression,balloon@/.ly}.
8097
8098
8099
8100
8101 @node Blank music sheet
8102 @subsection Blank music sheet
8103
8104 A blank music sheet can be produced also by using invisible notes, and
8105 removing @code{Bar_number_engraver}.
8106
8107
8108 @lilypond[quote,verbatim]
8109 emptymusic = {
8110   \repeat unfold 2 % Change this for more lines.
8111   { s1\break }
8112   \bar "|."
8113 }
8114 \new Score \with {
8115   \override TimeSignature #'transparent = ##t
8116   defaultBarType = #""
8117   \remove Bar_number_engraver
8118 } <<
8119   \context Staff \emptymusic
8120   \context TabStaff \emptymusic
8121 >>
8122 @end lilypond
8123
8124
8125 @node Hidden notes
8126 @subsection Hidden notes
8127
8128 @cindex Hidden notes
8129 @cindex Invisible notes
8130 @cindex Transparent notes
8131
8132 Hidden (or invisible or transparent) notes can be useful in preparing theory
8133 or composition exercises.
8134
8135 @lilypond[quote,raggedright,verbatim,relative=2,fragment]
8136 c4 d4
8137 \hideNotes
8138 e4 f4
8139 \unHideNotes
8140 g4 a
8141 @end lilypond
8142
8143 Hidden notes are also great for performing weird tricks.  For example,
8144 slurs cannot be attached to rests or spacer rests, but you may wish
8145 to include that in your score -- string instruments use this notation
8146 when doing pizzicato to indicate that the note should ring for as long
8147 as possible.
8148
8149 @lilypond[quote,raggedright,verbatim,relative=0,fragment]
8150 \clef bass
8151 << {
8152   c4^"pizz"( \hideNotes c)
8153   \unHideNotes c( \hideNotes c)
8154 } {
8155   s4 r s r
8156 } >>
8157 @end lilypond
8158
8159
8160 @node Shaped note heads 
8161 @subsection Shaped note heads 
8162
8163 In shaped note head notation, the shape of the note head corresponds
8164 to the harmonic function of a note in the scale. This notation was
8165 popular in the 19th century American song books.
8166
8167 Shaped note heads can be produced by setting @code{\aikenHeads} or
8168 @code{\sacredHarpHeads}, depending on the style desired.
8169
8170 @lilypond[verbatim,relative=1,fragment]
8171   \aikenHeads
8172   c8 d4 e8 a2 g1
8173   \sacredHarpHeads
8174   c8 d4. e8 a2 g1
8175 @end lilypond
8176
8177 Shapes are determined on the step in the scale, where the base of the
8178 scale is determined by  the @code{\key} command
8179
8180 @findex \key
8181 @findex shapeNoteStyles
8182 @findex \aikenHeads
8183 @findex \sacredHarpHeads
8184
8185 Shaped note heads are implemented through the @code{shapeNoteStyles}
8186 property. Its value is a vector of symbols. The k-th element indicates
8187 the style to use for the k-th step of the scale. Arbitrary
8188 combinations  are possible, eg.,
8189
8190
8191 @lilypond[verbatim,relative=1,fragment]
8192   \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
8193   c8 d4. e8 a2 g1
8194 @end lilypond
8195
8196
8197 @node Easy Notation note heads
8198 @subsection Easy Notation note heads
8199
8200 @cindex easy notation
8201 @cindex Hal Leonard
8202
8203 The `easy play' note head includes a note name inside the head.  It is
8204 used in music for beginners
8205
8206 @lilypond[quote,raggedright,verbatim,fragment,staffsize=26]
8207   \setEasyHeads
8208   c'2 e'4 f' | g'1
8209 @end lilypond
8210
8211 The command @code{\setEasyHeads} overrides settings for the
8212 @internalsref{NoteHead} object.  To make the letters readable, it has
8213 to be printed in a large font size.  To print with a larger font, see
8214 @ref{Setting global staff size}.
8215
8216 @refcommands
8217
8218 @cindex @code{\setEasyHeads}
8219 @code{\setEasyHeads}
8220