]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/notation.itely
Minor fixes.
[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 @inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
4090 @c TODO: make separate section for melismata
4091
4092 @c  I can't find these examples in 2.0 or 2.2; remove. -gp
4093 @c @inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
4094 @c @inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
4095
4096 @refbugs
4097
4098 Melismata are not detected automatically, and extender lines must be
4099 inserted by hand.
4100
4101
4102 @c TODO: document \new Staff << Voice \lyricsto >> bug
4103
4104 @node Flexibility in alignment
4105 @subsection Flexibility in alignment
4106
4107
4108 Often, different stanzas of one song are put to one melody in slightly
4109 differing ways.  Such variations can still be captured with
4110 @code{\lyricsto}.
4111
4112 One possibility is that the text has a melisma in one stanza, but
4113 multiple syllables in another one.  One solution is to make the faster
4114 voice ignore the melisma.  This is done by setting
4115 @code{ignoreMelismata} in the Lyrics context.
4116
4117 There has one tricky aspect.  The setting for @code{ignoreMelismata}
4118 must be set one syllable @emph{before} the non-melismatic syllable
4119 in the text, as shown here,
4120
4121 @lilypond[verbatim,raggedright,quote]
4122 <<
4123   \relative \context Voice = "lahlah" {
4124     \set Staff.autoBeaming = ##f
4125     c4
4126     \slurDotted
4127     f8.[( g16])
4128     a4
4129   }
4130   \new Lyrics \lyricsto "lahlah" {
4131     more slow -- ly
4132   }
4133   \new Lyrics \lyricsto "lahlah" {
4134     \set ignoreMelismata = ##t % applies to "fas"
4135     go fas -- ter
4136     \unset ignoreMelismata
4137     still
4138   }
4139 >>
4140 @end lilypond
4141
4142
4143 The @code{ignoreMelismata} applies to the syllable ``fas'', so it
4144 should be entered before ``go''.
4145
4146 The reverse is also possible: making a lyric line slower than the
4147 standard.  This can be achieved by insert @code{\skip}s into the
4148 lyrics.  For every @code{\skip}, the text will be delayed another note.
4149 For example,
4150
4151 @lilypond[verbatim,raggedright,quote]
4152 \relative { c c g' }
4153 \addlyrics {
4154   twin -- \skip 4
4155   kle
4156 }
4157 @end lilypond
4158
4159 More complex variations in text underlay are possible.  It is possible
4160 to switch the melody for a line of lyrics during the text.  This is
4161 done by setting the @code{associatedVoice} property.  In the example
4162
4163 @lilypond[raggedright,quote]
4164 <<
4165   \relative \context Voice = "lahlah" {
4166     \set Staff.autoBeaming = ##f
4167     c4
4168     <<
4169       \context Voice = alternative {
4170         \voiceOne
4171         \times 2/3 {
4172           % show associations clearly.
4173           \override NoteColumn #'force-hshift = #-3
4174           f8 f g
4175         }
4176       }
4177       {
4178         \voiceTwo
4179         f8.[ g16]
4180         \oneVoice
4181       } >>
4182     a8( b) c
4183   }
4184   \new Lyrics \lyricsto "lahlah" {
4185     Ju -- ras -- sic Park
4186   }
4187   \new Lyrics \lyricsto "lahlah" {
4188     % Tricky: need to set associatedVoice
4189     % one syllable too soon!
4190     \set associatedVoice = alternative % applies to "ran"
4191     Ty --
4192     ran --
4193     no --
4194     \set associatedVoice = lahlah % applies to "rus"
4195     sau -- rus Rex
4196   } >>
4197 @end lilypond
4198
4199 @noindent
4200 the text for the first stanza is set to a melody called ``lahlah'',
4201
4202 @example
4203 \new Lyrics \lyricsto "lahlah" @{
4204   Ju -- ras -- sic Park
4205 @}
4206 @end example
4207
4208
4209 The second stanza initially is set to the @code{lahlah} context, but
4210 for the syllable ``ran'', it switches to a different melody.
4211 This is achieved with
4212 @example
4213 \set associatedVoice = alternative
4214 @end example
4215
4216 @noindent
4217 Here, @code{alternative} is the name of the @code{Voice} context
4218 containing the triplet.
4219
4220 Again, the command must be one syllable too early, before ``Ty'' in
4221 this case.
4222
4223 @example
4224 \new Lyrics \lyricsto "lahlah" @{
4225   \set associatedVoice = alternative % applies to "ran"
4226   Ty --
4227   ran --
4228   no --
4229   \set associatedVoice = lahlah % applies to "rus"
4230   sau -- rus Rex
4231 @}
4232 @end example
4233
4234 @noindent
4235 The underlay is switched back to the starting situation by assigning
4236 @code{lahlah} to @code{associatedVoice}.
4237
4238
4239
4240
4241 @node More stanzas
4242 @subsection More stanzas
4243
4244 @cindex phrasing, in lyrics
4245
4246
4247 @cindex stanza number
4248 @cindex singer's names
4249 @cindex name of singer
4250
4251 Stanza numbers can be added by setting @code{stanza}, e.g.,
4252
4253 @lilypond[quote,raggedright,verbatim,relative=2,fragment]
4254 \new Voice {
4255   \time 3/4 g2 e4 a2 f4 g2.
4256 } \addlyrics {
4257   \set stanza = "1. "
4258   Hi, my name is Bert.
4259 } \addlyrics {
4260   \set stanza = "2. "
4261   Oh, che -- ri, je t'aime
4262 }
4263 @end lilypond
4264
4265 These numbers are put just before the start of first syllable.
4266
4267 Names of singers can also be added.  They are printed at the start of
4268 the line, just like instrument names.  They are created by setting
4269 @code{vocalName}.  A short version may be entered as @code{vocNam}.
4270
4271
4272 @lilypond[fragment,raggedright,quote,verbatim,relative=2]
4273 \new Voice {
4274   \time 3/4 g2 e4 a2 f4 g2.
4275 } \addlyrics {
4276   \set vocalName = "Bert "
4277   Hi, my name is Bert.
4278 } \addlyrics {
4279   \set vocalName = "Ernie "
4280   Oh, che -- ri, je t'aime
4281 }
4282 @end lilypond
4283
4284 @seealso
4285
4286 Program reference: Layout objects @internalsref{LyricText} and
4287 @internalsref{VocalName}.  Music expressions
4288 @internalsref{LyricEvent}.
4289
4290
4291
4292 @node Ambitus
4293 @subsection Ambitus
4294 @cindex ambitus
4295
4296 The term @emph{ambitus} denotes a range of pitches for a given voice
4297 in a part of music.  It may also denote the pitch range that a musical
4298 instrument is capable of playing.  Ambits are printed on vocal parts,
4299 so performers can easily determine it meets their capabilities.
4300
4301 Ambits are denoted at the beginning of a piece near the initial clef.
4302 The range is graphically specified by two note heads that represent the
4303 minimum and maximum pitch.  To print such ambits, add the
4304 @internalsref{Ambitus_engraver} to the @internalsref{Voice} context,
4305 for example,
4306
4307 @example
4308 \layout @{
4309   \context @{
4310     \Voice
4311     \consists Ambitus_engraver
4312   @}
4313 @}
4314 @end example
4315
4316 This results in the following output
4317
4318 @lilypond[quote,raggedright]
4319 \layout {
4320   \context {
4321     \Staff
4322     \consists Ambitus_engraver
4323   }
4324 }
4325
4326 \relative \new Staff {
4327   as'' c e2 cis,2
4328 }
4329 @end lilypond
4330
4331 If you have multiple voices in a single staff and you want a single
4332 ambitus per staff rather than per each voice, add the
4333 @internalsref{Ambitus_engraver} to the @internalsref{Staff} context
4334 rather than to the @internalsref{Voice} context.  Here is an example,
4335
4336 @lilypond[verbatim,raggedright,quote]
4337 \new Staff \with {
4338   \consists "Ambitus_engraver"
4339 }
4340 <<
4341   \new Voice \with {
4342     \remove "Ambitus_engraver"
4343   } \relative c'' {
4344     \override Ambitus #'X-offset-callbacks
4345       = #(list (lambda (grob axis) -1.0))
4346     \voiceOne
4347     c4 a d e f2
4348   }
4349   \new Voice \with {
4350     \remove "Ambitus_engraver"
4351   } \relative c' {
4352     \voiceTwo
4353     es4 f g as b2
4354   }
4355 >>
4356 @end lilypond
4357
4358 @noindent
4359 This example uses one advanced feature,
4360
4361 @example
4362 \override Ambitus #'X-offset-callbacks
4363   = #(list (lambda (grob axis) -1.0))
4364 @end example
4365
4366 @noindent
4367 This code moves the ambitus to the left.  The same effect could have
4368 been achieved with @code{extra-offset}, but then the formatting system
4369 would not reserve space for the moved object.
4370
4371 @seealso
4372
4373 Program reference: @internalsref{Ambitus},
4374 @internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
4375 @internalsref{AmbitusAccidental}.
4376
4377 Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
4378
4379 @refbugs
4380
4381 There is no collision handling in the case of multiple per-voice
4382 ambitus.
4383
4384 @node Other instrument specific notation, Tablatures, Vocal music, Notation manual
4385 @section Other instrument specific notation
4386
4387 This section includes extra information for writing string music, and may
4388 include extra information for other instruments in the future.
4389
4390 @menu
4391 * Harmonic notes::              
4392 @end menu
4393
4394 @node Harmonic notes, , Other instrument specific notation, Other instrument specific notation
4395 @subsection Harmonic notes
4396
4397 @cindex artificial harmonics
4398 @cindex harmonics
4399
4400 Artificial harmonics are notated with a different notehead style.  They
4401 are entered by marking the harmonic pitch with @code{\harmonic}.
4402
4403 @lilypond[raggedright,verbatim,quote,fragment]
4404 <c' g'\harmonic>4
4405 @end lilypond
4406
4407
4408 @node Tablatures, Popular music, Other instrument specific notation, Notation manual
4409 @section Tablatures
4410
4411 @cindex tablature
4412 @cindex guitar tablature
4413
4414 Tablature notation is used for notating music for plucked string
4415 instruments.  Pitches are not denoted with note heads, but by
4416 indicating on which string and fret a note must be played.  LilyPond
4417 offers limited support for tablature.
4418
4419 @menu
4420 * Tablatures basic::            
4421 * Non-guitar tablatures::       
4422 @end menu
4423
4424 @node Tablatures basic, Non-guitar tablatures, Tablatures, Tablatures
4425 @subsection Tablatures basic
4426 @cindex Tablatures basic
4427
4428 The string number associated to a note is given as a backslash
4429 followed by a number, e.g., @code{c4\3} for a C quarter on the third
4430 string.  By default, string 1 is the highest one, and the tuning
4431 defaults to the standard guitar tuning (with 6 strings).  The notes
4432 are printed as tablature, by using @internalsref{TabStaff} and
4433 @internalsref{TabVoice} contexts
4434
4435 @lilypond[quote,raggedright,fragment,verbatim]
4436 \context TabStaff {
4437   a,4\5 c'\2 a\3 e'\1
4438   e\4 c'\2 a\3 e'\1
4439 }
4440 @end lilypond
4441
4442 @cindex @code{minimumFret}
4443 @cindex fret
4444
4445 When no string is specified, the first string that does not give a
4446 fret number less than @code{minimumFret} is selected.  The default
4447 value for @code{minimumFret} is 0
4448
4449
4450 @example
4451 e16 fis gis a b4
4452 \set TabStaff.minimumFret = #8
4453 e16 fis gis a b4
4454 @end example
4455 @lilypond[quote,raggedright]
4456 frag = {
4457   \key e \major
4458   e16 fis gis a b4
4459   \set TabStaff.minimumFret = #8
4460   e16 fis gis a b4
4461 }
4462   \context StaffGroup <<
4463     \context Staff { \clef "G_8" \frag }
4464     \context TabStaff { \frag }
4465   >>
4466 @end lilypond
4467
4468 @seealso
4469
4470 Program reference: @internalsref{TabStaff}, @internalsref{TabVoice}, and
4471 @internalsref{StringNumberEvent}.
4472
4473 @refbugs
4474
4475 Chords are not handled in a special way, and hence the automatic
4476 string selector may easily select the same string to two notes in a
4477 chord.
4478
4479
4480 @node Non-guitar tablatures, , Tablatures basic, Tablatures
4481 @subsection Non-guitar tablatures
4482 @cindex Non-guitar tablatures
4483
4484 You can change the number of strings, by setting the number of lines
4485 in the @internalsref{TabStaff}.
4486
4487 You can change the tuning of the strings.  A string tuning is given as
4488 a Scheme list with one integer number for each string, the number
4489 being the pitch (measured in semitones relative to middle C) of an
4490 open string.  The numbers specified for @code{stringTuning} are the
4491 numbers of semitones to subtract or add, starting the specified pitch
4492 by default middle C, in string order.  In the next example,
4493 @code{stringTunings} is set for the pitches e, a, d, and g
4494
4495 @lilypond[quote,raggedright,fragment,verbatim]
4496 \context TabStaff <<
4497   \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
4498   {
4499     a,4 c' a e' e c' a e'
4500   }
4501 >>
4502 @end lilypond
4503
4504 @refbugs
4505
4506 No guitar special effects have been implemented.
4507
4508 @seealso
4509
4510 Program reference: @internalsref{Tab_note_heads_engraver}.
4511
4512
4513 @node Popular music, Orchestral music, Tablatures, Notation manual
4514 @section Popular music
4515
4516 This section discusses issues that arise when writing popular music.
4517
4518 @menu
4519 * Chord names::                 
4520 * Chords mode::                 
4521 * Printing chord names::        
4522 * Fret diagrams::               
4523 * Improvisation::               
4524 @end menu
4525
4526 @node Chord names, Chords mode, Popular music, Popular music
4527 @subsection Chord names
4528 @cindex Chords
4529
4530 LilyPond has support for printing chord names.  Chords may be entered
4531 in musical chord notation, i.e., @code{< .. >}, but they can also be
4532 entered by name.  Internally, the chords are represented as a set of
4533 pitches, so they can be transposed
4534
4535
4536 @lilypond[quote,raggedright,verbatim,raggedright]
4537 twoWays = \transpose c c' {
4538   \chordmode {
4539     c1 f:sus4 bes/f
4540   }
4541   <c e g>
4542   <f bes c'>
4543   <f bes d'>
4544 }
4545
4546 << \context ChordNames \twoWays
4547    \context Voice \twoWays >>
4548 @end lilypond
4549
4550 This example also shows that the chord printing routines do not try to
4551 be intelligent.  The last chord (@code{f bes d}) is not interpreted as
4552 an inversion.
4553
4554 @c this menu isn't needed.
4555 @ignore
4556 @menu
4557 * Chords mode::
4558 * Printing chord names::
4559 @end menu
4560 @end ignore
4561
4562 @node Chords mode
4563 @subsection Chords mode
4564 @cindex Chords mode
4565
4566 In chord mode sets of pitches (chords) are entered with normal note
4567 names.  A chord is entered by the root, which is entered like a
4568 normal pitch
4569
4570 @lilypond[quote,raggedright,fragment,verbatim]
4571 \chordmode { es4. d8 c2 }
4572 @end lilypond
4573
4574 @noindent
4575 The mode is introduced by the keyword @code{\chordmode}.
4576
4577 @cindex chord entry
4578 @cindex chord mode
4579
4580 Other chords may be entered by suffixing a colon and introducing a
4581 modifier (which may include a number if desired)
4582 @lilypond[quote,fragment,verbatim]
4583 \chordmode { e1:m e1:7 e1:m7 }
4584 @end lilypond
4585 The first number following the root is taken to be the `type' of the
4586 chord, thirds are added to the root until it reaches the specified
4587 number
4588 @lilypond[quote,fragment,verbatim]
4589 \chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
4590 @end lilypond
4591
4592 @cindex root of chord
4593 @cindex additions, in chords
4594 @cindex removals, in chords
4595
4596 More complex chords may also be constructed adding separate steps
4597 to a chord.  Additions are added after the number following
4598 the colon and are separated by dots
4599 @lilypond[quote,verbatim,fragment]
4600 \chordmode { c:5.6 c:3.7.8 c:3.6.13 }
4601 @end lilypond
4602 Chord steps can be altered by suffixing a @code{-} or @code{+} sign
4603 to the number
4604 @lilypond[quote,verbatim,fragment]
4605 \chordmode { c:7+ c:5+.3- c:3-.5-.7- }
4606 @end lilypond
4607 Removals are specified similarly and are introduced by a caret.  They
4608 must come after the additions
4609 @lilypond[quote,verbatim,fragment]
4610 \chordmode { c^3 c:7^5 c:9^3.5 }
4611 @end lilypond
4612
4613 Modifiers can be used to change pitches.  The following modifiers are
4614 supported
4615
4616 @table @code
4617 @item m
4618 The minor chord.  This modifier lowers the 3rd and (if present) the 7th step.
4619
4620 @item dim
4621 The diminished chord.  This modifier lowers the 3rd, 5th and (if present)
4622 the 7th step.
4623
4624 @item aug
4625 The augmented chord.  This modifier raises the 5th step.
4626
4627 @item maj
4628 The major 7th chord.  This modifier raises the 7th step if present.
4629
4630 @item sus
4631 The suspended 4th or 2nd.  This modifier removes the 3rd
4632 step.  Append either @code{2} or @code{4} to add the 2nd or 4th step to
4633 the chord.
4634 @end table
4635
4636 Modifiers can be mixed with additions
4637 @lilypond[quote,verbatim,fragment]
4638   \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
4639 @end lilypond
4640
4641 @cindex modifiers, in chords.
4642 @cindex @code{aug}
4643 @cindex @code{dim}
4644 @cindex @code{maj}
4645 @cindex @code{sus}
4646 @cindex @code{m}
4647
4648 Since an unaltered 11 does not sound good when combined with an
4649 unaltered 3, the 11 is removed in this case (unless it is added
4650 explicitly)
4651 @lilypond[quote,raggedright,fragment,verbatim]
4652 \chordmode { c:13 c:13.11 c:m13 }
4653 @end lilypond
4654
4655 @cindex @code{/}
4656
4657 An inversion (putting one pitch of the chord on the bottom), as well
4658 as bass notes, can be specified by appending
4659 @code{/}@var{pitch} to the chord
4660 @lilypond[quote,raggedright,fragment,verbatim]
4661 \chordmode { c1 c/g c/f }
4662 @end lilypond
4663 @cindex @code{/+}
4664
4665 A bass note can be added instead transposed out of the chord,
4666 by using @code{/+}@var{pitch}.
4667
4668 @lilypond[quote,raggedright,fragment,verbatim]
4669 \chordmode { c1 c/+g c/+f }
4670 @end lilypond
4671
4672 Chords is a mode similar to @code{\lyricmode}, etc.  Most
4673 of the commands continue to work, for example, @code{r} and
4674 @code{\skip} can be used to insert rests and spaces, and property
4675 commands may be used to change various settings.
4676
4677
4678
4679 @refbugs
4680
4681 Each step can only be present in a chord once.  The following
4682 simply produces the augmented chord, since @code{5+} is interpreted
4683 last
4684 @cindex clusters
4685 @lilypond[quote,raggedright,verbatim,fragment]
4686 \chordmode { c:5.5-.5+ }
4687 @end lilypond
4688
4689
4690 @node Printing chord names
4691 @subsection Printing chord names
4692
4693 @cindex printing chord names
4694 @cindex chord names
4695 @cindex chords
4696
4697 For displaying printed chord names, use the @internalsref{ChordNames} context.
4698 The chords may be entered either using the notation
4699 described above, or directly using @code{<} and @code{>}
4700
4701 @lilypond[quote,verbatim,raggedright]
4702 harmonies = {
4703   \chordmode {a1 b c} <d' f' a'> <e' g' b'>
4704 }
4705 <<
4706   \context ChordNames \harmonies
4707   \context Staff \harmonies
4708 >>
4709 @end lilypond
4710
4711 You can make the chord changes stand out by setting
4712 @internalsref{ChordNames}.@code{chordChanges} to true.  This will only
4713 display chord names when there is a change in the chords scheme and at
4714 the start of a new line
4715
4716 @lilypond[quote,verbatim,raggedright]
4717 harmonies = \chordmode {
4718   c1:m c:m \break c:m c:m d
4719 }
4720 <<
4721   \context ChordNames {
4722     \set chordChanges = ##t
4723     \harmonies }
4724   \context Staff \transpose c c' \harmonies
4725 >>
4726 @end lilypond
4727
4728 The previous examples all show chords over a staff.  This is not
4729 necessary.  Chords may also be printed separately.  It may be necessary
4730 to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver}
4731 for showing repeats.
4732
4733 @lilypond[raggedright,verbatim]
4734 \new ChordNames \with {
4735   \override BarLine #'bar-size = #4
4736   voltaOnThisStaff = ##t
4737   \consists Bar_engraver
4738   \consists "Volta_engraver"
4739 }
4740 \repeat volta 2 \chordmode {
4741   f1:maj f:7 bes:7
4742   c:maj
4743 } \alternative {
4744   es e
4745 }
4746 @end lilypond
4747
4748
4749 The default chord name layout is a system for Jazz music, proposed by
4750 Klaus Ignatzek (see @ref{Literature list}).  It can be tuned through the
4751 following properties
4752
4753 @table @code
4754 @cindex @code{chordNameExceptions}
4755 @item chordNameExceptions
4756 This is a list that contains the chords that have special formatting.
4757
4758 The exceptions list should be encoded as
4759 @example
4760 @{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
4761 @end example
4762
4763 To get this information into @code{chordNameExceptions} takes a little
4764 manoeuvring.  The following code transforms @code{chExceptionMusic}
4765 (which is a sequential music) into a list of exceptions.
4766 @example
4767 (sequential-music-to-chord-exceptions chExceptionMusic #t)
4768 @end example
4769 Then,
4770 @example
4771 (append
4772  (sequential-music-to-chord-exceptions chExceptionMusic #t)
4773  ignatzekExceptions)
4774 @end example
4775 adds the new exceptions to the default ones, which are defined in
4776 @file{ly/@/chord@/-modifier@/-init@/.ly}.
4777
4778 For an example of tuning this property, see also
4779 @inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly}.
4780 @cindex exceptions, chord names.
4781
4782
4783 @cindex @code{majorSevenSymbol}
4784 @item majorSevenSymbol
4785 This property contains the markup object used for the 7th step, when
4786 it is major.  Predefined options are @code{whiteTriangleMarkup} and
4787 @code{blackTriangleMarkup}.  See
4788 @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly} for an example.
4789
4790 @cindex @code{chordNameSeparator}
4791 @item chordNameSeparator
4792 Different parts of a chord name are normally separated by a
4793 slash.  By setting @code{chordNameSeparator}, you can specify other
4794 separators, e.g.,
4795 @lilypond[quote,raggedright,fragment,verbatim]
4796 \context ChordNames \chordmode {
4797   c:7sus4
4798   \set chordNameSeparator
4799     = \markup { \typewriter "|" }
4800   c:7sus4
4801 }
4802 @end lilypond
4803
4804 @cindex @code{chordRootNamer}
4805 @item chordRootNamer
4806 The root of a chord is usually printed as a letter with an optional
4807 alteration.  The transformation from pitch to letter is done by this
4808 function.  Special note names (for example, the German ``H'' for a
4809 B-chord) can be produced by storing a new function in this property.
4810
4811 @cindex @code{chordNoteNamer}
4812 @item chordNoteNamer
4813 The default is to print single pitch, e.g., the bass note, using the
4814 @code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
4815 to a specialized function to change this behavior.  For example, the
4816 base can be printed in lower case.
4817
4818 @end table
4819
4820 The predefined variables @code{\germanChords},
4821 @code{\semiGermanChords} set these variables.  The effect is
4822 demonstrated here,
4823
4824 @lilypondfile[raggedright]{chord-names-german.ly}
4825
4826 There are also two other chord name schemes implemented: an alternate
4827 Jazz chord notation, and a systematic scheme called Banter chords.  The
4828 alternate Jazz notation is also shown on the chart in @ref{Chord name
4829 chart}.  Turning on these styles is described in the input file
4830 @inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
4831
4832 @cindex Banter
4833 @cindex jazz chords
4834 @cindex chords, jazz
4835
4836
4837 @refcommands
4838
4839 @cindex @code{\germanChords}
4840 @code{\germanChords},
4841 @cindex @code{\semiGermanChords}
4842 @code{\semiGermanChords}.
4843
4844
4845
4846
4847 @seealso
4848
4849 Examples: @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly},
4850 @inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly},
4851 @inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
4852
4853
4854 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
4855 @file{scm/@/chord@/-entry@/.scm}.
4856
4857
4858 @refbugs
4859
4860 Chord names are determined solely from the list of pitches.  Chord
4861 inversions are not identified, and neither are added bass notes.  This
4862 may result in strange chord names when chords are entered with the
4863 @code{< .. >} syntax.
4864
4865
4866 @node Fret diagrams
4867 @subsection Fret diagrams
4868 @cindex fret diagrams
4869 @cindex chord diagrams
4870
4871 Fret diagrams can be added to music as a markup to the desired note.  The
4872 markup contains information about the desired fret diagram, as shown in the
4873 following example
4874
4875 @lilypond[verbatim, raggedright, quote]
4876 \context Voice {
4877   d' ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
4878   d' d' d'
4879   fis' ^\markup \override #'(size . 0.75) {
4880     \override #'(finger-code . below-string) {
4881       \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
4882                                (place-fret 5 4 3) (place-fret 4 4 4)
4883                                (place-fret 3 3 2) (place-fret 2 2 1)
4884                                (place-fret 1 2 1))
4885     }
4886   }
4887   fis' fis' fis'
4888   c' ^\markup \override #'(dot-radius . 0.35) {
4889     \override #'(finger-code . in-dot) {
4890       \override #'(dot-color . white) {
4891         \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
4892       }
4893     }
4894   }
4895   c' c' c'
4896 }
4897 @end lilypond
4898
4899
4900 There are three different fret-diagram markup interfaces: standard, terse,
4901 and verbose.  The three interfaces produce equivalent markups, but have
4902 varying amounts of information in the markup string.  Details about the
4903 markup interfaces are found at @ref{Overview of text markup commands}.
4904
4905 You can set a number of graphical properties according to your preference.
4906 Details about the property interface to fret diagrams are found at
4907 @internalsref{fret-diagram-interface}.
4908
4909
4910 @seealso
4911
4912 Examples: @inputfileref{input/@/test,fret@/-diagram@/.ly}
4913
4914
4915 @node Improvisation
4916 @subsection Improvisation
4917
4918 Improvisation is sometimes denoted with slashed note heads.  Such note
4919 heads can be created by adding a @internalsref{Pitch_squash_engraver}
4920 to the @internalsref{Staff} or @internalsref{Voice} context.  Then, the
4921 following command
4922
4923 @example
4924 \set squashedPosition = #0
4925 \override NoteHead #'style = #'slash
4926 @end example
4927
4928 @noindent
4929 switches on the slashes.
4930
4931 There are shortcuts @code{\improvisationOn} (and an accompanying
4932 @code{\improvisationOff}) for this command sequence.  They are used in
4933 the following example
4934
4935 @lilypond[verbatim,raggedright,quote]
4936 \new Staff \with {
4937   \consists Pitch_squash_engraver
4938 } \transpose c c' {
4939   e8 e g a a16(bes)(a8) g \improvisationOn
4940   e8
4941   ~e2~e8 f4 fis8
4942   ~fis2 \improvisationOff a16(bes) a8 g e
4943 }
4944 @end lilypond
4945
4946
4947
4948 @node Orchestral music
4949 @section Orchestral music
4950
4951 @cindex Writing parts
4952
4953 Orchestral music involves some special notation, both in the full
4954 score and the individual parts.  This section explains how to tackle
4955 some common problems in orchestral music.
4956
4957
4958
4959 @menu
4960 * System start delimiters::     
4961 * Aligning to cadenzas::        
4962 * Rehearsal marks::             
4963 * Bar numbers::                 
4964 * Instrument names::            
4965 * Transpose::                   
4966 * Instrument transpositions::   
4967 * Multi measure rests::         
4968 * Automatic part combining::    
4969 * Hiding staves::               
4970 * Different editions from one source::  
4971 * Quoting other voices::        
4972 * Formatting cue notes::        
4973 @end menu
4974
4975 @node System start delimiters
4976 @subsection System start delimiters
4977
4978 Polyphonic scores consist of many staves.  These staves can be
4979 constructed in three different ways
4980 @itemize @bullet
4981 @item The group is started with a brace at the left, and bar lines are
4982 connected.  This is done with the @internalsref{GrandStaff} context.
4983
4984 @lilypond[verbatim,raggedright,quote]
4985 \new GrandStaff
4986 \relative <<
4987   \new Staff { c1 c }
4988   \new Staff { c c }
4989 >>
4990 @end lilypond
4991
4992
4993 @item The group is started with a bracket, and bar lines are connected.
4994 This is done with the
4995 @internalsref{StaffGroup} context
4996
4997 @lilypond[verbatim,raggedright,quote]
4998 \new StaffGroup
4999 \relative <<
5000   \new Staff { c1 c }
5001   \new Staff { c c }
5002 >>
5003 @end lilypond
5004
5005
5006 @item The group is started with a vertical line.  Bar lines are not
5007 connected.  This is the default for the score.
5008
5009 @lilypond[verbatim,raggedright,quote]
5010 \relative <<
5011   \new Staff { c1 c }
5012   \new Staff { c c }
5013 >>
5014 @end lilypond
5015
5016 @end itemize
5017
5018 @cindex Staff, multiple
5019 @cindex bracket, vertical
5020 @cindex brace, vertical
5021 @cindex grand staff
5022 @cindex staff group
5023
5024
5025 @seealso
5026
5027 The bar lines at the start of each system are
5028 @internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, and
5029 @internalsref{SystemStartBracket}.  Only one of these types is created
5030 in every context, and that type is determined by the property
5031 @code{systemStartDelimiter}.
5032
5033 @node Aligning to cadenzas
5034 @subsection Aligning to cadenzas
5035
5036
5037 In an orchestral context, cadenzas present a special problem:
5038 when constructing a score that includes a cadenza, all other
5039 instruments should skip just as many notes as the length of the
5040 cadenza, otherwise they will start too soon or too late.
5041
5042 A solution to this problem are the functions @code{mmrest-of-length}
5043 and @code{skip-of-length}.  These Scheme functions take a piece of music
5044 as argument, and generate a @code{\skip} or multi-rest, exactly as
5045 long as the piece.  The use of @code{mmrest-of-length} is demonstrated
5046 in the following example.
5047
5048 @lilypond[verbatim,raggedright,quote]
5049 cadenza = \relative c' {
5050   c4 d8 << { e f g } \\ { d4. } >>
5051   g4 f2 g4 g
5052 }
5053
5054 \new GrandStaff <<
5055   \new Staff { \cadenza c'4 }
5056   \new Staff {
5057     #(ly:export (mmrest-of-length cadenza))
5058     c'4
5059   }
5060 >>
5061 @end lilypond
5062
5063
5064
5065
5066
5067 @node Rehearsal marks
5068 @subsection Rehearsal marks
5069 @cindex Rehearsal marks
5070 @cindex mark
5071 @cindex @code{\mark}
5072
5073 To print a rehearsal mark, use the @code{\mark} command
5074
5075 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
5076 c1 \mark \default
5077 c1 \mark \default
5078 c1 \mark #8
5079 c1 \mark \default
5080 c1 \mark \default
5081 @end lilypond
5082
5083 @noindent
5084 (The letter@tie{}`I' is skipped in accordance with engraving traditions.)
5085 @c umm, is the manual the right place for feature requests?  :)  -gp
5086 @c FIXME - should make that tunable.
5087
5088 The mark is incremented automatically if you use @code{\mark
5089 \default}, but you can also use an integer argument to set the mark
5090 manually.  The value to use is stored in the property
5091 @code{rehearsalMark}.
5092
5093 The style is defined by the property @code{markFormatter}.  It is a
5094 function taking the current mark (an integer) and the current context
5095 as argument.  It should return a markup object.  In the following
5096 example, @code{markFormatter} is set to a canned procedure.  After a
5097 few measures, it is set to function that produces a boxed number.
5098
5099 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
5100 \set Score.markFormatter = #format-mark-numbers
5101 c1 \mark \default
5102 c1 \mark \default
5103 \set Score.markFormatter = #format-mark-box-numbers
5104 c1 \mark \default
5105 c1 \mark \default
5106 c1
5107 @end lilypond
5108
5109 The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
5110 of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
5111 @code{format-mark-letters} and @code{format-mark-box-letters}.
5112 These can be used as inspiration for other formatting functions.
5113
5114
5115 @cindex coda on bar line
5116 @cindex segno on bar line
5117 @cindex fermata on bar line
5118 @cindex bar lines, symbols on
5119
5120 The @code{\mark} command can also be used to put signs like coda,
5121 segno, and fermata on a bar line.  Use @code{\markup} to
5122 access the appropriate symbol
5123
5124 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
5125 c1 \mark \markup { \musicglyph #"scripts-ufermata" }
5126 c1
5127 @end lilypond
5128
5129 In the case of a line break, marks must also be printed at the end of
5130 the line, and not at the beginning.  Use the following to force that
5131 behavior
5132 @example
5133 \override Score.RehearsalMark
5134   #'break-visibility = #begin-of-line-invisible
5135 @end example
5136
5137 @cindex fermatas
5138 @cindex coda
5139 @cindex segno
5140 @cindex bar lines, putting symbols on
5141
5142 @seealso
5143
5144 Program reference: @internalsref{MarkEvent}, @internalsref{RehearsalMark}.
5145
5146 Init files: @file{scm/@/translation@/-functions@/.scm} contains the
5147 definition of @code{format-mark-numbers} and
5148 @code{format-mark-letters}.  They can be used as inspiration for other
5149 formatting functions.
5150
5151 Examples: @inputfileref{input/@/regression,rehearsal@/-mark@/-letter@/.ly},
5152
5153 @inputfileref{input/@/regression,rehearsal@/-mark@/-number@/.ly}.
5154
5155
5156 @node Bar numbers
5157 @subsection Bar numbers
5158
5159
5160 @cindex Bar numbers
5161 @cindex measure numbers
5162 @cindex @code{currentBarNumber}
5163
5164 Bar numbers are printed by default at the start of the line.  The
5165 number itself is stored in the @code{currentBarNumber} property, which
5166 is normally updated automatically for every measure.
5167
5168 Bar numbers can be typeset at regular intervals instead of at the
5169 beginning of each line.  This is illustrated in the following example,
5170 whose source is available as
5171 @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}
5172
5173 @lilypondfile[raggedright,quote]{bar-number-regular-interval.ly}
5174
5175 Bar numbers can be typeset manually by tweaking the
5176 @code{markFormatter} property
5177
5178 @lilypond[verbatim,raggedright,quote]
5179 \relative c' {
5180   \set Score.markFormatter
5181     = #(lambda (mark context)
5182       (make-bold-markup
5183         (make-box-markup
5184           (number->string (ly:context-property context
5185                                                'currentBarNumber)))))
5186
5187   c1 \bar "||" \mark \default c1 c1 \mark \default c1 \bar "|."
5188 }
5189 @end lilypond
5190
5191 Bar numbers can be manually changed by setting the
5192 @code{Staff.currentBarNumber} property
5193
5194 @lilypond[verbatim,raggedright,quote]
5195 \relative c' {
5196   \repeat unfold 4 {c4 c c c} \break
5197   \set Score.currentBarNumber = #50
5198   \repeat unfold 4 {c4 c c c}
5199 }
5200 @end lilypond
5201
5202 @seealso
5203
5204 Program reference: @internalsref{BarNumber}.
5205
5206 Examples:
5207 @inputfileref{input/@/test,bar@/-number@/-every@/-five@/-reset@/.ly},
5208 and @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}.
5209
5210 @refbugs
5211
5212 Bar numbers can collide with the @internalsref{StaffGroup} bracket, if
5213 there is one at the top.  To solve this, the
5214 @code{padding} property of @internalsref{BarNumber} can be
5215 used to position the number correctly.
5216
5217 @node Instrument names
5218 @subsection Instrument names
5219
5220 In an orchestral score, instrument names are printed at the left side
5221 of the staves.
5222
5223 This can be achieved by setting @internalsref{Staff}.@code{instrument}
5224 and @internalsref{Staff}.@code{instr}.  This will print a string before
5225 the start of the staff.  For the first staff, @code{instrument} is
5226 used, for the following ones, @code{instr} is used.
5227
5228 @lilypond[quote,verbatim,raggedright,relative=1,fragment]
5229 \set Staff.instrument = "Ploink "
5230 \set Staff.instr = "Plk "
5231 c1
5232 \break
5233 c''
5234 @end lilypond
5235
5236 You can also use markup texts to construct more complicated instrument
5237 names, for example
5238
5239 @lilypond[quote,fragment,verbatim,raggedright]
5240 \set Staff.instrument = \markup {
5241   \column { "Clarinetti"
5242             \line { "in B" \smaller \flat } } }
5243 c''1
5244 @end lilypond
5245
5246 For longer instrument names, it may be useful to increase the
5247 @code{indent} setting in the @code{\layout} block.
5248
5249 @seealso
5250
5251 Program reference: @internalsref{InstrumentName}.
5252
5253 @refbugs
5254
5255 When you put a name on a grand staff or piano staff, the width of the
5256 brace is not taken into account.  You must add extra spaces to the end of
5257 the name to avoid a collision.
5258
5259 @node Transpose
5260 @subsection Transpose
5261 @cindex Transpose
5262 @cindex transposition of pitches
5263 @cindex @code{\transpose}
5264
5265 A music expression can be transposed with @code{\transpose}.  The
5266 syntax is
5267 @example
5268 \transpose @var{from} @var{to} @var{musicexpr}
5269 @end example
5270
5271 This means that @var{musicexpr} is transposed by the interval between
5272 the pitches @var{from} and @var{to}: any note with pitch @code{from}
5273 is changed to @code{to}.
5274
5275
5276 For example, consider a piece written in the key of D-major.  If
5277 this piece is a little too low for its performer, it can be
5278 transposed up to E-major with
5279 @example
5280 \transpose d e @dots{}
5281 @end example
5282
5283 Consider a part written for violin (a C instrument).  If
5284 this part is to be played on the A clarinet, the following
5285 transposition will produce the appropriate part
5286
5287 @example
5288 \transpose a c @dots{}
5289 @end example
5290
5291 @code{\transpose} distinguishes between enharmonic pitches: both
5292 @code{\transpose c cis} or @code{\transpose c des} will transpose up
5293 half a tone.  The first version will print sharps and the second
5294 version will print flats
5295
5296 @lilypond[quote,raggedright,verbatim]
5297 mus = { \key d \major cis d fis g }
5298 \context Staff {
5299   \clef "F" \mus
5300   \clef "G"
5301   \transpose c g' \mus
5302   \transpose c f' \mus
5303 }
5304 @end lilypond
5305
5306
5307 @seealso
5308
5309 Program reference: @internalsref{TransposedMusic}, and
5310 @internalsref{UntransposableMusic}.
5311
5312 @refbugs
5313
5314 If you want to use both @code{\transpose} and @code{\relative},
5315 you must put @code{\transpose} outside of @code{\relative}, since
5316 @code{\relative} will have no effect music that appears inside a
5317 @code{\transpose}.
5318
5319 @node Instrument transpositions
5320 @subsection Instrument transpositions
5321
5322 The key of a transposing instrument can also be specified.  This
5323 applies to many wind instruments, for example, clarinets (B-flat, A, and
5324 E-flat), horn (F) and trumpet (B-flat, C, D, and E-flat).
5325
5326 The transposition is entered after the keyword @code{\transposition}
5327
5328 @example
5329 \transposition bes   %% B-flat clarinet
5330 @end example
5331
5332 @noindent
5333 This command sets the property @code{instrumentTransposition}.  The value of
5334 this property is used for MIDI output and quotations.  It does not
5335 affect how notes are printed in the current staff.
5336
5337 The pitch to use for @code{\transposition} should correspond to the
5338 transposition of the notes.  For example, when entering a score in
5339 concert pitch, typically all voices are entered in C, so
5340 they should be entered as
5341
5342 @example
5343 clarinet = @{
5344   \transposition c'
5345   ...
5346 @}
5347 saxophone = @{
5348   \transposition c'
5349   ...
5350 @}
5351 @end example
5352
5353 The command @code{\transposition} should be used when the music is
5354 entered from a (transposed) orchestral part.  For example, in
5355 classical horn parts, the tuning of the instrument is often changed
5356 during a piece.  When copying the notes from the part, use
5357 @code{\transposition}, e.g.,
5358
5359 @example
5360 \transposition d'
5361 c'4^"in D"
5362 ...
5363 \transposition g'
5364 c'4^"in G"
5365 ...
5366 @end example
5367
5368
5369
5370 @cindex transposition, MIDI
5371 @cindex transposition, instrument
5372
5373
5374 @node Multi measure rests
5375 @subsection Multi measure rests
5376 @cindex multi measure rests
5377 @cindex Rests, multi measure
5378
5379 @cindex @code{R}
5380
5381 Multi-measure rests are entered using `@code{R}'.  It is specifically
5382 meant for full bar rests and for entering parts: the rest can expand
5383 to fill a score with rests, or it can be printed as a single
5384 multi-measure rest.  This expansion is controlled by the property
5385 @code{Score.skipBars}.  If this is set to true, empty measures will not
5386 be expanded, and the appropriate number is added automatically
5387
5388 @lilypond[quote,raggedright,fragment,verbatim]
5389 \time 4/4 r1 | R1 | R1*2
5390 \set Score.skipBars = ##t R1*17 R1*4
5391 @end lilypond
5392
5393 The @code{1} in @code{R1} is similar to the duration notation used for
5394 notes.  Hence, for time signatures other than 4/4, you must enter other
5395 durations.  This can be done with augmentation dots or fractions
5396
5397 @lilypond[quote,raggedright,fragment,verbatim]
5398 \set Score.skipBars = ##t
5399 \time 3/4
5400 R2. | R2.*2
5401 \time 13/8
5402 R1*13/8
5403 R1*13/8*12 |
5404 \time 10/8 R4*5*4 |
5405 @end lilypond
5406
5407 An @code{R} spanning a single measure is printed as either a whole rest
5408 or a breve, centered in the measure regardless of the time signature.
5409
5410 If there are only a few measures of rest, LilyPond prints ``church rests''
5411 (a series of rectangles) in the staff.  To replace that with a simple
5412 rest, use @code{MultiMeasureRest.expand-limit}.
5413
5414 @lilypond[quote,raggedright,fragment,verbatim]
5415 \set Score.skipBars = ##t
5416 R1*2 | R1*5 | R1*9
5417 \override MultiMeasureRest #'expand-limit = 1
5418 R1*2 | R1*5 | R1*9
5419 @end lilypond
5420
5421
5422 @cindex text on multi-measure rest
5423 @cindex script on multi-measure rest
5424 @cindex fermata on multi-measure rest
5425
5426 Texts can be added to multi-measure rests by using the
5427 @var{note}-@code{markup} syntax (see @ref{Text markup}).
5428 A variable (@code{\fermataMarkup}) is provided for
5429 adding fermatas
5430
5431 @lilypond[quote,raggedright,verbatim,fragment]
5432 \set Score.skipBars = ##t
5433 \time 3/4
5434 R2.*10^\markup { \italic "ad lib." }
5435 R2.^\fermataMarkup
5436 @end lilypond
5437
5438 If you want to have text on the left end of a multi-measure rest,
5439 attach the text to a zero-length skip note, i.e.,
5440
5441 @example
5442 s1*0^"Allegro"
5443 R1*4
5444 @end example
5445
5446
5447 @cindex whole rests for a full measure
5448
5449 @seealso
5450
5451 Program reference: @internalsref{MultiMeasureRestEvent},
5452 @internalsref{MultiMeasureTextEvent},
5453 @internalsref{MultiMeasureRestMusicGroup}, and
5454 @internalsref{MultiMeasureRest}.
5455
5456 The layout object @internalsref{MultiMeasureRestNumber} is for the
5457 default number, and @internalsref{MultiMeasureRestText} for user
5458 specified texts.
5459
5460 @refbugs
5461
5462 It is not possible to use fingerings (e.g., @code{R1-4}) to put numbers
5463 over multi-measure rests.  And the pitch of multi-measure rests (or
5464 staff-centered rests) can not be influenced.
5465
5466 @cindex condensing rests
5467
5468 There is no way to automatically condense multiple rests into a single
5469 multi-measure rest.  Multi-measure rests do not take part in rest
5470 collisions.
5471
5472 Be careful when entering multi-measure rests followed by whole
5473 notes.  The following will enter two notes lasting four measures each
5474 @example
5475 R1*4 cis cis
5476 @end example
5477 When @code{skipBars} is set, the result will look OK, but the bar
5478 numbering will be off.
5479
5480 @node Automatic part combining
5481 @subsection Automatic part combining
5482 @cindex automatic part combining
5483 @cindex part combiner
5484
5485
5486 Automatic part combining is used to merge two parts of music onto a
5487 staff.  It is aimed at typesetting orchestral scores.  When the two
5488 parts are identical for a period of time, only one is shown.  In
5489 places where the two parts differ, they are typeset as separate
5490 voices, and stem directions are set automatically.  Also, solo and
5491 @emph{a due} parts are identified and can be marked.
5492
5493 The syntax for part combining is
5494
5495 @example
5496 \partcombine @var{musicexpr1} @var{musicexpr2}
5497 @end example
5498
5499
5500
5501 The following example demonstrates the basic functionality of the part
5502 combiner: putting parts on one staff, and setting stem directions and
5503 polyphony
5504
5505 @lilypond[quote,verbatim,raggedright,fragment]
5506 \new Staff \partcombine
5507   \relative g' { g g a( b) c c r r }
5508   \relative g' { g g r4 r e e g g }
5509 @end lilypond
5510
5511 The first @code{g} appears only once, although it was
5512 specified twice (once in each part).  Stem, slur, and tie directions are
5513 set automatically, depending whether there is a solo or unisono.  The
5514 first part (with context called @code{one}) always gets up stems, and
5515 `solo', while the second (called @code{two}) always gets down stems and
5516 `Solo II'.
5517
5518 If you just want the merging parts, and not the textual markings, you
5519 may set the property @code{printPartCombineTexts} to false
5520
5521 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
5522 \new Staff <<
5523   \set Staff.printPartCombineTexts = ##f
5524   \partcombine
5525     \relative g' { g a( b) r }
5526     \relative g' { g r4 r f }
5527 >>
5528 @end lilypond
5529
5530
5531 Both arguments to @code{\partcombine} will be interpreted as
5532 @internalsref{Voice} contexts.  If using relative octaves,
5533 @code{\relative} should be specified for both music expressions, i.e.,
5534
5535 @example
5536 \partcombine
5537   \relative @dots{} @var{musicexpr1}
5538   \relative @dots{} @var{musicexpr2}
5539 @end example
5540
5541 @noindent
5542 A @code{\relative} section that is outside of @code{\partcombine} has
5543 no effect on the pitches of @var{musicexpr1} and @var{musicexpr2}.
5544
5545 @seealso
5546
5547 Program reference: @internalsref{PartCombineMusic},
5548 @internalsref{SoloOneEvent}, and
5549 @internalsref{SoloTwoEvent}, and
5550 @internalsref{UnisonoEvent}.
5551
5552 @refbugs
5553
5554 When @code{printPartCombineTexts} is set, when the two voices play the
5555 same notes on and off, the part combiner may typeset @code{a2} more
5556 than once in a measure.
5557
5558 @code{\partcombine} cannot be inside @code{\times}.
5559
5560 @code{\partcombine} cannot be inside @code{\relative}.
5561
5562 Internally, the @code{\partcombine} interprets both arguments as
5563 @code{Voice}s named @code{one} and @code{two}, and then decides when
5564 the parts can be combined.  Consequently, if the arguments switch to
5565 differently named @internalsref{Voice} contexts, the events in those
5566 will be ignored.
5567
5568 @node Hiding staves
5569 @subsection Hiding staves
5570
5571 @cindex Frenched scores
5572 @cindex Hiding staves
5573
5574 In orchestral scores, staff lines that only have rests are usually
5575 removed.  This saves some space.  This style is called `French Score'.
5576 For @internalsref{Lyrics},
5577 @internalsref{ChordNames} and @internalsref{FiguredBass}, this is
5578 switched on by default.  When the lines of these contexts turn out
5579 empty after the line-breaking process, they are removed.
5580
5581 For normal staves, a specialized @internalsref{Staff} context is
5582 available, which does the same: staves containing nothing (or only
5583 multi-measure rests) are removed.  The context definition is stored in
5584 @code{\RemoveEmptyStaffContext} variable.  Observe how the second staff
5585 in this example disappears in the second line
5586
5587 @lilypond[quote,raggedright,verbatim]
5588 \layout {
5589   \context { \RemoveEmptyStaffContext }
5590 }
5591
5592 {
5593   \relative c' <<
5594     \new Staff { e4 f g a \break c1 }
5595     \new Staff { c4 d e f \break R1 }
5596   >>
5597 }
5598 @end lilypond
5599
5600 The first system shows all staves in full.  If empty staves should be
5601 removed from the first system too, set @code{remove-first} to false in
5602 @internalsref{RemoveEmptyVerticalGroup}.
5603
5604 Another application is making ossia sections, i.e., alternative
5605 melodies on a separate piece of staff, with help of a Frenched
5606 staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
5607
5608
5609 @node Different editions from one source
5610 @subsection Different editions from one source
5611
5612 @cindex tag
5613 The @code{\tag} command marks music expressions with a name.  These
5614 tagged expressions can be filtered out later.  With this mechanism it
5615 is possible to make different versions of the same music source.
5616
5617 In the following example, we see two versions of a piece of music, one
5618 for the full score, and one with cue notes for the instrumental part
5619
5620 @example
5621 c1
5622 <<
5623   \tag #'part <<
5624     R1 \\
5625     @{
5626       \set fontSize = #-1
5627       c4_"cue" f2 g4 @}
5628   >>
5629   \tag #'score R1
5630 >>
5631 c1
5632 @end example
5633
5634 The same can be applied to articulations, texts, etc.: they are
5635 made by prepending
5636 @example
5637 -\tag #@var{your-tag}
5638 @end example
5639 to an articulation, for example,
5640 @example
5641 c1-\tag #'part ^4
5642 @end example
5643
5644 This defines a note with a conditional fingering indication.
5645
5646 @cindex keepWithTag
5647 @cindex removeWithTag
5648 By applying the @code{\keepWithTag} and @code{\removeWithTag}
5649 commands, tagged expressions can be filtered.  For example,
5650 @example
5651 <<
5652   @var{the music}
5653   \keepWithTag #'score @var{the music}
5654   \keepWithTag #'part @var{the music}
5655 >>
5656 @end example
5657 would yield
5658
5659 @lilypondfile[raggedright,quote]{tag-filter.ly}
5660
5661
5662 The argument of the @code{\tag} command should be a symbol, or a list
5663 of symbols, for example,
5664 @example
5665 \tag #'(original-part transposed-part) @dots{}
5666 @end example
5667
5668
5669
5670 @seealso
5671
5672 Examples: @inputfileref{input/@/regression,tag@/-filter@/.ly}.
5673
5674 @refbugs
5675
5676 Multiple rests are not merged if you create the score with both tagged
5677 sections.
5678  
5679
5680 @node Quoting other voices
5681 @subsection Quoting other voices
5682
5683 With quotations, fragments of other parts can be inserted into a part
5684 directly.  Before a part can be quoted, it must be marked especially as
5685 quotable.  This is done with the @code{\addquote} command.
5686
5687 @example
5688 \addquote @var{name} @var{music}
5689 @end example
5690
5691
5692 @noindent
5693 Here, @var{name} is an identifying string.  The @var{music} is any kind
5694 of music.  Here is an example of @code{\addquote}
5695
5696 @example
5697 \addquote clarinet \relative c' @{
5698   f4 fis g gis
5699 @}
5700 @end example
5701
5702 This command must be entered at toplevel, i.e., outside any music
5703 blocks.
5704
5705 After calling @code{\addquote}, the quotation may then be done with
5706 @code{\quoteDuring} or @code{\cueDuring},
5707
5708 @example
5709 \quoteDuring #@var{name} @var{music}
5710 @end example
5711
5712 During a part, a piece of music can be quoted with the @code{\quoteDuring}
5713 command.
5714
5715 @example
5716 \quoteDuring #"clarinet" @{ s2. @}
5717 @end example
5718
5719 This would cite three quarter notes (the duration of @code{s2.})  of
5720 the previously added @code{clarinet} voice.
5721
5722
5723 More precisely, it takes the current time-step of the part being
5724 printed, and extracts the notes at the corresponding point of the
5725 @code{\addquote}d voice.  Therefore, the argument to @code{\addquote}
5726 should be the entire part of the voice to be quoted, including any
5727 rests at the beginning.
5728
5729 Quotations take into account the transposition of both source and target
5730 instruments, if they are specified using the @code{\transposition} command.
5731
5732 @lilypond[quote,raggedright,verbatim]
5733 \addquote clarinet \relative c' {
5734   \transposition bes
5735   f4 fis g gis
5736 }
5737
5738 {
5739   e'8 f'8 \quoteDuring #"clarinet" { s2 }
5740 }
5741 @end lilypond
5742
5743 The type of events that are present in cue notes can be trimmed with
5744 the @code{quotedEventTypes} property.  The default value is
5745 @code{(note-event rest-event)}, which means that only notes and
5746 rests of the cued voice end up in the @code{\quoteDuring}.
5747 Setting
5748
5749 @example
5750 \set Staff.quotedEventTypes =
5751        #'(note-event articulation-event dynamic-event)
5752 @end example
5753
5754 @noindent
5755 will quote notes (but no rests), together with scripts and dynamics.
5756
5757 @refbugs
5758
5759 Only the contents of the first @internalsref{Voice} occurring in an
5760 @code{\addquote} command will be considered for quotation, so
5761 @var{music} can not contain @code{\new} and @code{\context Voice}
5762 statements that would switch to a different Voice.
5763
5764 Quoting grace notes is broken and can even cause LilyPond to crash.
5765
5766 @seealso
5767
5768 In this manual: @ref{Instrument transpositions}.
5769
5770 Examples: @inputfileref{input/@/regression,quote@/.ly}
5771 @inputfileref{input/@/regression,quote@/-transposition@/.ly}
5772
5773 Program reference: @internalsref{QuoteMusic}.
5774
5775 @node Formatting cue notes
5776 @subsection Formatting cue notes
5777
5778 The previous section deals with inserting notes from another voice.
5779 There is a more advanced music function called @code{\cueDuring},
5780 which makes formatting cue notes easier.
5781
5782 The syntax is
5783
5784 @example
5785   \cueDuring #@var{name} #@var{updown} @var{music}
5786 @end example
5787
5788 This will insert notes from the part @var{name} into a
5789 @internalsref{Voice} called @code{cue}. This happens simultaneously
5790 with @var{music}, which usually is a rest.  When the cue notes start,
5791 the staff in effect becomes polyphonic for a moment. The argument
5792 @var{updown} determines whether the cue notes should be notated as a
5793 first or second voice.
5794
5795
5796 @lilypond[verbatim,raggedright]
5797 smaller = {
5798   \set fontSize = #-2
5799   \override Stem #'length = #5.5
5800   \override Beam #'thickness = #0.384
5801   \override Beam #'space-function =
5802     #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
5803 }
5804
5805 \addquote clarinet \relative {
5806   R1*20
5807   r2 r8 c f f
5808
5809
5810 \new Staff \relative  <<
5811
5812   % setup a context for  cue  notes.
5813   \context Voice = cue { \smaller \skip 1*21 }
5814   
5815   \set Score.skipBars = ##t
5816   
5817   \new Voice {
5818     R1*20
5819     \cueDuring #"clarinet" #1 {
5820       R1
5821     }
5822     g4 g2. 
5823   }
5824 >>
5825 @end lilypond 
5826
5827
5828 Here are a couple of hints for successful cue notes
5829
5830 @itemize @bullet
5831 @item
5832 Cue notes have smaller font sizes.
5833 @item
5834  the cued part is marked with the instrument playing the cue.
5835 @item
5836  when the original part takes over again, this should be marked with
5837  the name of the original instrument.
5838
5839  @c really?  Are you sure about that last point?  I'll check after 3.0 -gp
5840
5841 @c Yes, this is good practice. Otherwise, the start of the original
5842 @c part can only be seen from the font size. This is not good enough
5843 @c for sight-reading. It is possilbe to use other
5844 @c markers (eg. a big close-bracket over the staff) to indicate the cue notes are
5845 @c finished.
5846 @c -hwn
5847
5848
5849  any other changes introduced by the cued part should also be
5850 undone. For example, if the cued instrument plays in a different clef,
5851 the original clef should be stated once again.
5852
5853 @end itemize
5854
5855
5856
5857
5858
5859 @node Ancient notation
5860 @section Ancient notation
5861
5862 @cindex Vaticana, Editio
5863 @cindex Medicaea, Editio
5864 @cindex hufnagel
5865 @cindex Petrucci
5866 @cindex mensural
5867
5868 Support for ancient notation includes features for mensural notation
5869 and Gregorian Chant notation.  There is also limited support for
5870 figured bass notation.
5871
5872 Many graphical objects provide a @code{style} property, see
5873 @itemize @bullet
5874 @item
5875 @ref{Ancient note heads},
5876 @item
5877 @ref{Ancient accidentals},
5878 @item
5879 @ref{Ancient rests},
5880 @item
5881 @ref{Ancient clefs},
5882 @item
5883 @ref{Ancient flags},
5884 @item
5885 @ref{Ancient time signatures}.
5886 @end itemize
5887
5888 By manipulating such a grob property, the typographical appearance of
5889 the affected graphical objects can be accommodated for a specific
5890 notation flavor without the need for introducing any new notational
5891 concept.
5892
5893 In addition to the standard articulation signs described in section
5894 @ref{Articulations}, specific articulation signs for ancient notation
5895 are provided.
5896
5897 @itemize @bullet
5898 @item
5899 @ref{Ancient articulations}
5900 @end itemize
5901
5902 Other aspects of ancient notation can not that easily be expressed
5903 in terms of just changing a style property of a graphical object or
5904 adding articulation signs.  Some notational concepts are introduced
5905 specifically for ancient notation,
5906
5907 @itemize @bullet
5908 @item
5909 @ref{Custodes},
5910 @item
5911 @ref{Divisiones},
5912 @item
5913 @ref{Ligatures}.
5914 @end itemize
5915
5916 If this all is too much of documentation for you, and you just want to
5917 dive into typesetting without worrying too much about the details on
5918 how to customize a context, you may have a look at the predefined
5919 contexts.  Use them to set up predefined style-specific voice and
5920 staff contexts, and directly go ahead with the note entry,
5921
5922 @itemize @bullet
5923 @item
5924 @ref{Gregorian Chant contexts},
5925 @item
5926 @ref{Mensural contexts}.
5927 @end itemize
5928
5929 There is limited support for figured bass notation which came
5930 up during the baroque period.
5931
5932 @itemize @bullet
5933 @item
5934 @ref{Figured bass}
5935 @end itemize
5936
5937 Here are all suptopics at a glance:
5938
5939 @menu
5940 * Ancient note heads::          
5941 * Ancient accidentals::         
5942 * Ancient rests::               
5943 * Ancient clefs::               
5944 * Ancient flags::               
5945 * Ancient time signatures::     
5946 * Ancient articulations::       
5947 * Custodes::                    
5948 * Divisiones::                  
5949 * Ligatures::                   
5950 * Gregorian Chant contexts::    
5951 * Mensural contexts::           
5952 * Figured bass::                
5953 @end menu
5954
5955
5956 @node Ancient note heads
5957 @subsection Ancient note heads
5958
5959 @cindex note heads
5960
5961
5962 For ancient notation, a note head style other than the @code{default}
5963 style may be chosen.  This is accomplished by setting the @code{style}
5964 property of the @internalsref{NoteHead} object to @code{baroque},
5965 @code{neomensural} or @code{mensural}.  The @code{baroque} style
5966 differs from the @code{default} style only in using a square shape
5967 for @code{\breve} note heads.  The @code{neomensural} style differs from
5968 the @code{baroque} style in that it uses rhomboidal heads for whole notes
5969 and all smaller durations.  Stems are centered on the note heads.
5970 This style is particularly useful when transcribing mensural music,
5971 e.g., for the incipit.  The @code{mensural} style finally produces note
5972 heads that mimic the look of note heads in historic printings of the
5973 16th century.
5974
5975 The following example demonstrates the @code{neomensural} style
5976
5977 @lilypond[quote,fragment,raggedright,verbatim]
5978 \set Score.skipBars = ##t
5979 \override NoteHead #'style = #'neomensural
5980 a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
5981 @end lilypond
5982
5983 When typesetting a piece in Gregorian Chant notation, the
5984 @internalsref{Gregorian_ligature_engraver} will automatically select
5985 the proper note heads, so there is no need to explicitly set the
5986 note head style.  Still, the note head style can be set, e.g., to
5987 @code{vaticana_punctum} to produce punctum neumes.  Similarly, a
5988 @internalsref{Mensural_ligature_engraver} is used to automatically
5989 assemble mensural ligatures.  See @ref{Ligatures} for how ligature
5990 engravers work.
5991
5992 @seealso
5993
5994 Examples: @inputfileref{input/@/regression,note@/-head@/-style@/.ly} gives an
5995 overview over all available note head styles.
5996
5997
5998 @node Ancient accidentals
5999 @subsection Ancient accidentals
6000
6001 @cindex accidentals
6002
6003
6004 Use the @code{style} property of grob @internalsref{Accidental} to
6005 select ancient accidentals.   Supported styles are
6006 @code{mensural}, @code{vaticana}, @code{hufnagel}, and @code{medicaea}.
6007
6008 @lilypond[quote,raggedright,staffsize=26]
6009 \score {
6010 {
6011   \fatText
6012   s^\markup {
6013     \column {
6014       "vaticana"
6015       \line { " " \musicglyph #"accidentals-vaticana-1"
6016         " " \musicglyph #"accidentals-vaticana0" }
6017     }
6018     \column {
6019       "medicaea"
6020       \line { " " \musicglyph #"accidentals-medicaea-1" }
6021     }
6022     \column {
6023       "hufnagel"
6024       \line { " " \musicglyph #"accidentals-hufnagel-1" }
6025     }
6026     \column {
6027       "mensural"
6028       \line { " " \musicglyph #"accidentals-mensural-1"
6029         " " \musicglyph #"accidentals-mensural1" }
6030     }
6031   }
6032 }
6033 \layout {
6034   interscoreline = 1
6035   \context { \Score \remove "Bar_number_engraver" }
6036   \context { \Staff
6037       \remove "Clef_engraver"
6038       \remove "Key_engraver"
6039       \remove "Time_signature_engraver"
6040       \remove "Staff_symbol_engraver"
6041       minimumVerticalExtent = ##f
6042     }
6043   }
6044 }
6045 @end lilypond
6046
6047 As shown, not all accidentals are supported by each style.  When
6048 trying to access an unsupported accidental, LilyPond will switch to a
6049 different style, as demonstrated in
6050 @inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
6051
6052 Similarly to local accidentals, the style of the key signature can be
6053 controlled by the @code{style} property of the
6054 @internalsref{KeySignature} grob.
6055
6056 @seealso
6057
6058 In this manual: @ref{Pitches}, @ref{Chromatic alterations} and
6059 @ref{Accidentals} give a general introduction of the use of
6060 accidentals.  @ref{Key signature} gives a general introduction of
6061 the use of key signatures.
6062
6063 Program reference: @internalsref{KeySignature}.
6064
6065 Examples: @inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
6066
6067 @node Ancient rests
6068 @subsection Ancient rests
6069
6070 @cindex rests
6071
6072
6073 Use the @code{style} property of grob @internalsref{Rest} to select
6074 ancient accidentals.   Supported styles are @code{classical},
6075 @code{neomensural}, and @code{mensural}.  @code{classical} differs
6076 from the @code{default} style only in that the quarter rest looks like
6077 a horizontally mirrored 8th rest.  The @code{neomensural} style suits
6078 well for, e.g., the incipit of a transcribed mensural piece of music.
6079 The @code{mensural} style finally mimics the appearance of rests as
6080 in historic prints of the 16th century.
6081
6082 The following example demonstrates the @code{neomensural} style
6083
6084 @lilypond[quote,fragment,raggedright,verbatim]
6085 \set Score.skipBars = ##t
6086 \override Rest #'style = #'neomensural
6087 r\longa r\breve r1 r2 r4 r8 r16
6088 @end lilypond
6089
6090 There are no 32th and 64th rests specifically for the mensural or
6091 neo-mensural style.  Instead, the rests from the default style will be
6092 taken.  See @inputfileref{input/@/test,rests@/.ly} for a chart of all
6093 rests.
6094
6095 There are no rests in Gregorian Chant notation; instead, it uses
6096 @ref{Divisiones}.
6097
6098 @seealso
6099
6100 In this manual: @ref{Rests} gives a general introduction into the use of rests.
6101
6102
6103 @node Ancient clefs
6104 @subsection Ancient clefs
6105
6106 @cindex clefs
6107
6108
6109 LilyPond supports a variety of clefs, many of them ancient.
6110
6111 The following table shows all ancient clefs that are supported via the
6112 @code{\clef} command.  Some of the clefs use the same glyph, but
6113 differ only with respect to the line they are printed on.  In such
6114 cases, a trailing number in the name is used to enumerate these clefs.
6115 Still, you can manually force a clef glyph to be typeset on an
6116 arbitrary line, as described in @ref{Clef}.  The note printed to the
6117 right side of each clef in the example column denotes the @code{c'}
6118 with respect to that clef.
6119
6120 @multitable @columnfractions .4 .4 .2
6121 @item
6122 @b{Description}
6123 @tab
6124 @b{Supported Clefs}
6125 @tab
6126 @b{Example}
6127
6128 @item
6129 modern style mensural C clef
6130 @tab
6131 @code{neomensural-c1}, @code{neomensural-c2},@*
6132 @code{neomensural-c3}, @code{neomensural-c4}
6133 @tab
6134 @lilypond[fragment,relative=1,notime]
6135   \clef "neomensural-c2" c
6136 @end lilypond
6137
6138 @item
6139 petrucci style mensural C clefs, for use on different staff lines
6140 (the examples show the 2nd staff line C clef)
6141 @tab
6142 @code{petrucci-c1}, @code{petrucci-c2},@*
6143 @code{petrucci-c3}, @code{petrucci-c4},@*
6144 @code{petrucci-c5}
6145 @tab
6146 @lilypond[fragment,relative=1,notime]
6147   \clef "petrucci-c2" c
6148 @end lilypond
6149
6150 @item
6151 petrucci style mensural F clef
6152 @tab
6153 @code{petrucci-f}
6154 @tab
6155 @lilypond[fragment,relative=1,notime]
6156   \clef "petrucci-f" c
6157 @end lilypond
6158
6159 @item
6160 petrucci style mensural G clef
6161 @tab
6162 @code{petrucci-g}
6163 @tab
6164 @lilypond[fragment,relative=1,notime]
6165   \clef "petrucci-g" c
6166 @end lilypond
6167
6168 @item
6169 historic style mensural C clef
6170 @tab
6171 @code{mensural-c1}, @code{mensural-c2},@*
6172 @code{mensural-c3}, @code{mensural-c4}
6173 @tab
6174 @lilypond[fragment,relative=1,notime]
6175   \clef "mensural-c2" c
6176 @end lilypond
6177
6178 @item
6179 historic style mensural F clef
6180 @tab
6181 @code{mensural-f}
6182 @tab
6183 @lilypond[fragment,relative=1,notime]
6184   \clef "mensural-f" c
6185 @end lilypond
6186
6187 @item
6188 historic style mensural G clef
6189 @tab
6190 @code{mensural-g}
6191 @tab
6192 @lilypond[fragment,relative=1,notime]
6193   \clef "mensural-g" c
6194 @end lilypond
6195
6196 @item
6197 Editio Vaticana style do clef
6198 @tab
6199 @code{vaticana-do1}, @code{vaticana-do2},@*
6200 @code{vaticana-do3}
6201 @tab
6202 @lilypond[fragment,relative=1,notime]
6203   \override Staff.StaffSymbol #'line-count = #4
6204   \clef "vaticana-do2" c
6205 @end lilypond
6206
6207 @item
6208 Editio Vaticana style fa clef
6209 @tab
6210 @code{vaticana-fa1}, @code{vaticana-fa2}
6211 @tab
6212 @lilypond[fragment,relative=1,notime]
6213   \override Staff.StaffSymbol #'line-count = #4
6214   \clef "vaticana-fa2" c
6215 @end lilypond
6216
6217 @item
6218 Editio Medicaea style do clef
6219 @tab
6220 @code{medicaea-do1}, @code{medicaea-do2},@*
6221 @code{medicaea-do3}
6222 @tab
6223 @lilypond[fragment,relative=1,notime]
6224   \override Staff.StaffSymbol #'line-count = #4
6225   \clef "medicaea-do2" c
6226 @end lilypond
6227
6228 @item
6229 Editio Medicaea style fa clef
6230 @tab
6231 @code{medicaea-fa1}, @code{medicaea-fa2}
6232 @tab
6233 @lilypond[fragment,relative=1,notime]
6234   \override Staff.StaffSymbol #'line-count = #4
6235   \clef "medicaea-fa2" c
6236 @end lilypond
6237
6238 @item
6239 historic style hufnagel do clef
6240 @tab
6241 @code{hufnagel-do1}, @code{hufnagel-do2},@*
6242 @code{hufnagel-do3}
6243 @tab
6244 @lilypond[fragment,relative=1,notime]
6245   \override Staff.StaffSymbol #'line-count = #4
6246   \clef "hufnagel-do2" c
6247 @end lilypond
6248
6249 @item
6250 historic style hufnagel fa clef
6251 @tab
6252 @code{hufnagel-fa1}, @code{hufnagel-fa2}
6253 @tab
6254 @lilypond[fragment,relative=1,notime]
6255   \override Staff.StaffSymbol #'line-count = #4
6256   \clef "hufnagel-fa2" c
6257 @end lilypond
6258
6259 @item
6260 historic style hufnagel combined do/fa clef
6261 @tab
6262 @code{hufnagel-do-fa}
6263 @tab
6264 @lilypond[fragment,relative=1,notime]
6265   \clef "hufnagel-do-fa" c
6266 @end lilypond
6267 @end multitable
6268
6269
6270
6271 @emph{Modern style} means ``as is typeset in contemporary editions of
6272 transcribed mensural music''.
6273
6274 @emph{Petrucci style} means ``inspired by printings published by the
6275 famous engraver Petrucci (1466-1539)''.
6276
6277 @emph{Historic style} means ``as was typeset or written in historic
6278 editions (other than those of Petrucci)''.
6279
6280 @emph{Editio XXX style} means ``as is/was printed in Editio XXX''.
6281
6282 Petrucci used C clefs with differently balanced left-side vertical
6283 beams, depending on which staff line it is printed.
6284
6285 @seealso
6286
6287 In this manual: see @ref{Clef}.
6288
6289 @refbugs
6290
6291 The mensural g clef is mapped to the Petrucci g clef.
6292
6293
6294
6295 @node Ancient flags
6296 @subsection Ancient flags
6297
6298 @cindex flags
6299
6300
6301 Use the @code{flag-style} property of grob @internalsref{Stem} to
6302 select ancient flags.  Besides the @code{default} flag style,
6303 only the @code{mensural} style is supported
6304
6305 @lilypond[quote,fragment,raggedright,verbatim]
6306 \override Stem #'flag-style = #'mensural
6307 \override Stem #'thickness = #1.0
6308 \override NoteHead #'style = #'mensural
6309 \autoBeamOff
6310 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
6311 c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
6312 @end lilypond
6313
6314 Note that the innermost flare of each mensural flag always is
6315 vertically aligned with a staff line.
6316
6317 There is no particular flag style for neo-mensural notation.  Hence,
6318 when typesetting the incipit of a transcribed piece of mensural
6319 music, the default flag style should be used.  There are no flags in
6320 Gregorian Chant notation.
6321
6322 @refbugs
6323
6324 The attachment of ancient flags to stems is slightly off due to a
6325 change in early 2.3.x.
6326
6327 Vertically aligning each flag with a staff line assumes that stems
6328 always end either exactly on or exactly in the middle between two
6329 staff lines.  This may not always be true when using advanced layout
6330 features of classical notation (which however are typically out of
6331 scope for mensural notation).
6332
6333 @node Ancient time signatures
6334 @subsection Ancient time signatures
6335
6336 @cindex time signatures
6337
6338
6339 There is limited support for mensural time signatures.   The
6340 glyphs are hard-wired to particular time fractions.  In other words,
6341 to get a particular mensural signature glyph with the @code{\time n/m}
6342 command, @code{n} and @code{m} have to be chosen according to the
6343 following table
6344
6345 @lilypond[quote,raggedright]
6346 \layout {
6347   indent = 0.0
6348   \context { \Staff
6349     \remove Staff_symbol_engraver
6350     \remove Clef_engraver
6351     \remove Time_signature_engraver
6352   }
6353 } {
6354   \set Score.timing = ##f
6355   \set Score.barAlways = ##t
6356   s_\markup { "$\\backslash$time 4/4" }
6357   ^\markup { "       " \musicglyph #"timesig-neomensural4/4" }
6358   s
6359   s_\markup { "$\\backslash$time 2/2" }
6360   ^\markup { "       " \musicglyph #"timesig-neomensural2/2" }
6361   s
6362   s_\markup { "$\\backslash$time 6/4" }
6363   ^\markup { "       " \musicglyph #"timesig-neomensural6/4" }
6364   s
6365   s_\markup { "$\\backslash$time 6/8" }
6366   ^\markup { "       " \musicglyph #"timesig-neomensural6/8" }
6367   \break
6368   s_\markup { "$\\backslash$time 3/2" }
6369   ^\markup { "       " \musicglyph #"timesig-neomensural3/2" }
6370   s
6371   s_\markup { "$\\backslash$time 3/4" }
6372   ^\markup { "       " \musicglyph #"timesig-neomensural3/4" }
6373   s
6374   s_\markup { "$\\backslash$time 9/4" }
6375   ^\markup { "       " \musicglyph #"timesig-neomensural9/4" }
6376   s
6377   s_\markup { "$\\backslash$time 9/8" }
6378   ^\markup { "       " \musicglyph #"timesig-neomensural9/8" }
6379   \break
6380   s_\markup { "$\\backslash$time 4/8" }
6381   ^\markup { "       " \musicglyph #"timesig-neomensural4/8" }
6382   s
6383   s_\markup { "$\\backslash$time 2/4" }
6384   ^\markup { "       " \musicglyph #"timesig-neomensural2/4" }
6385 }
6386 @end lilypond
6387
6388 Use the @code{style} property of grob @internalsref{TimeSignature} to
6389 select ancient time signatures.  Supported styles are
6390 @code{neomensural} and @code{mensural}.  The above table uses the
6391 @code{neomensural} style.  This style is appropriate for the
6392 incipit of transcriptions of mensural pieces.  The @code{mensural}
6393 style mimics the look of historical printings of the 16th century.
6394
6395 The following examples show the differences in style,
6396
6397 @lilypond[raggedright,fragment,relative=1,quote]
6398 {
6399   \fatText
6400   \time 2/2
6401   c1^\markup { \hspace #-2.0 \typewriter default }
6402
6403   \override Staff.TimeSignature #'style = #'numbered
6404   \time 2/2
6405   c1^\markup { \hspace #-2.0 \typewriter numbered }
6406
6407   \override Staff.TimeSignature #'style = #'mensural
6408   \time 2/2
6409   c1^\markup { \hspace #-2.0 \typewriter mensural }
6410
6411   \override Staff.TimeSignature #'style = #'neomensural
6412   \time 2/2
6413   c1^\markup { \hspace #-2.0 \typewriter neomensural }
6414   \override Staff.TimeSignature #'style = #'single-digit
6415   \time 2/2
6416   c1^\markup { \hspace #-2.0 \typewriter single-digit }
6417 }
6418 @end lilypond
6419
6420 @seealso
6421
6422 This manual: @ref{Time signature} gives a general introduction to
6423 the use of time signatures.
6424
6425 @refbugs
6426
6427 Ratios of note durations do not change with the time signature.  For
6428 example, the ratio of 1 brevis = 3 semibrevis (tempus perfectum) must
6429 be made by hand, by setting
6430
6431 @example
6432 breveTP = #(ly:make-duration -1 0 3 2)
6433 @dots{}
6434 @{ c\breveTP f1 @}
6435 @end example
6436
6437 @noindent
6438 This sets @code{breveTP} to 3/2 times 2 = 3 times a whole note.
6439
6440 The @code{old6/8alt} symbol (an alternate symbol for 6/8) is not
6441 addressable with @code{\time}.  Use a @code{\markup} instead
6442
6443 @node Ancient articulations
6444 @subsection Ancient articulations
6445
6446 @cindex articulations
6447
6448 In addition to the standard articulation signs described in section
6449 @ref{Articulations}, articulation signs for ancient notation are
6450 provided.  These are specifically designed for use with notation in
6451 Editio Vaticana style.
6452
6453 @lilypond[quote,raggedright,verbatim]
6454 \include "gregorian-init.ly"
6455 \score {
6456   \context VaticanaVoice {
6457     \override TextScript #'font-family = #'typewriter
6458     \override TextScript #'font-shape = #'upright
6459     \override Script #'padding = #-0.1
6460     a4\ictus_"ictus" s1
6461     a4\circulus_"circulus" s1
6462     a4\semicirculus_"semicirculus" s1 s
6463     a4\accentus_"accentus" s1
6464     \[ a4_"episem" \episemInitium \pes b \flexa a \episemFinis \]
6465   }
6466 }
6467 @end lilypond
6468
6469 @refbugs
6470
6471 Some articulations are vertically placed too closely to the
6472 correpsonding note heads.
6473
6474 @node Custodes
6475 @subsection Custodes
6476
6477 @cindex custos
6478 @cindex custodes
6479
6480 A @emph{custos} (plural: @emph{custodes}; Latin word for `guard') is a
6481 symbol that appears at the end of a staff.  It anticipates the pitch
6482 of the first note(s) of the following line thus helping the performer
6483 to manage line breaks during performance.
6484
6485 Custodes were frequently used in music notation until the 17th
6486 century.  Nowadays, they have survived only in a few particular forms
6487 of musical notation such as contemporary editions of Gregorian chant
6488 like the @emph{editio vaticana}.  There are different custos glyphs
6489 used in different flavors of notational style.
6490
6491 For typesetting custodes, just put a @internalsref{Custos_engraver} into the
6492 @internalsref{Staff} context when declaring the @code{\layout} block,
6493 as shown in the following example
6494
6495 @example
6496 \layout @{
6497   \context @{
6498     \Staff
6499     \consists Custos_engraver
6500     Custos \override #'style = #'mensural
6501   @}
6502 @}
6503 @end example
6504
6505 The result looks like this
6506
6507 @lilypond[quote,raggedright]
6508 \score {
6509 {
6510   a'1
6511   \override Staff.Custos #'style = #'mensural
6512   \break
6513   g'
6514 }
6515 \layout {
6516   \context { \Staff \consists Custos_engraver }
6517   }
6518 }
6519 @end lilypond
6520
6521 The custos glyph is selected by the @code{style} property.  The styles
6522 supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
6523 @code{mensural}.  They are demonstrated in the following fragment
6524
6525 @lilypond[quote,raggedright,fragment]
6526 \new Lyrics \lyricmode {
6527   \markup { \column {
6528     \typewriter "vaticana"
6529     \line { " " \musicglyph #"custodes-vaticana-u0" }
6530   } }
6531   \markup { \column {
6532     \typewriter "medicaea"
6533     \line { " " \musicglyph #"custodes-medicaea-u0" }
6534   }}
6535   \markup { \column {
6536     \typewriter "hufnagel"
6537     \line { " " \musicglyph #"custodes-hufnagel-u0" }
6538   }}
6539   \markup { \column {
6540     \typewriter "mensural"
6541     \line { " " \musicglyph #"custodes-mensural-u0" }
6542   }}
6543 }
6544 @end lilypond
6545
6546 @seealso
6547
6548 Program reference: @internalsref{Custos}.
6549
6550 Examples: @inputfileref{input/@/regression,custos@/.ly}.
6551
6552
6553 @node Divisiones
6554 @subsection Divisiones
6555
6556 @cindex divisio
6557 @cindex divisiones
6558 @cindex finalis
6559
6560 A @emph{divisio} (plural: @emph{divisiones}; Latin word for
6561 `division') is a staff context symbol that is used to structure
6562 Gregorian music into phrases and sections.  The musical meaning of
6563 @emph{divisio minima}, @emph{divisio maior}, and @emph{divisio maxima}
6564 can be characterized as short, medium, and long pause, somewhat like
6565 the breathmarks from @ref{Breath marks}.  The @emph{finalis} sign not
6566 only marks the end of a chant, but is also frequently used within a
6567 single antiphonal/responsorial chant to mark the end of each section.
6568
6569
6570 To use divisiones, include the file @file{gregorian@/-init@/.ly}.  It
6571 contains definitions that you can apply by just inserting
6572 @code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima},
6573 and @code{\finalis} at proper places in the input.  Some editions use
6574 @emph{virgula} or @emph{caesura} instead of divisio minima.
6575 Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
6576 @code{\caesura}
6577
6578 @lilypondfile[quote,raggedright]{divisiones.ly}
6579
6580 @refcommands
6581
6582 @cindex @code{\virgula}
6583 @code{\virgula},
6584 @cindex @code{\caesura}
6585 @code{\caesura},
6586 @cindex @code{\divisioMinima}
6587 @code{\divisioMinima},
6588 @cindex @code{\divisioMaior}
6589 @code{\divisioMaior},
6590 @cindex @code{\divisioMaxima}
6591 @code{\divisioMaxima},
6592 @cindex @code{\finalis}
6593 @code{\finalis}.
6594
6595 @seealso
6596
6597 In this manual: @ref{Breath marks}.
6598
6599 Program reference: @internalsref{BreathingSign}, @internalsref{BreathingSignEvent}.
6600
6601 Examples: @inputfileref{input/@/test,divisiones@/.ly}.
6602
6603 @node Ligatures
6604 @subsection Ligatures
6605
6606 @cindex Ligatures
6607
6608 @c TODO: Should double check if I recalled things correctly when I wrote
6609 @c down the following paragraph by heart.
6610
6611 A ligature is a graphical symbol that represents at least two distinct
6612 notes.  Ligatures originally appeared in the manuscripts of Gregorian
6613 chant notation to denote ascending or descending sequences of notes.
6614
6615 Ligatures are entered by enclosing them in @code{\[} and @code{\]}.
6616 Some ligature styles may need additional input syntax specific for
6617 this particular type of ligature.  By default, the
6618 @internalsref{LigatureBracket} engraver just puts a square bracket
6619 above the ligature
6620
6621 @lilypond[quote,raggedright,verbatim]
6622 \transpose c c' {
6623   \[ g c a f d' \]
6624   a g f
6625   \[ e f a g \]
6626 }
6627 @end lilypond
6628
6629 To select a specific style of ligatures, a proper ligature engraver
6630 has to be added to the @internalsref{Voice} context, as explained in
6631 the following subsections.   Only white mensural ligatures
6632 are supported with certain limitations.
6633
6634
6635
6636 @refbugs
6637
6638 Ligatures need special spacing that has not yet been implemented.  As
6639 a result, there is too much space between ligatures most of the time,
6640 and line breaking often is unsatisfactory.  Also, lyrics do not
6641 correctly align with ligatures.
6642
6643 Accidentals must not be printed within a ligature, but instead need to
6644 be collected and printed in front of it.
6645
6646 Augmentum dots within ligatures are not handled correctly.
6647
6648
6649 @menu
6650 * White mensural ligatures::    
6651 * Gregorian square neumes ligatures::  
6652 @end menu
6653
6654 @node White mensural ligatures
6655 @subsubsection White mensural ligatures
6656
6657 @cindex Mensural ligatures
6658 @cindex White mensural ligatures
6659
6660 There is limited support for white mensural ligatures.
6661
6662 To engrave white mensural ligatures, in the layout block put the
6663 @internalsref{Mensural_ligature_engraver} into the
6664 @internalsref{Voice} context, and remove the
6665 @internalsref{Ligature_bracket_engraver}, like this
6666
6667 @example
6668 \layout @{
6669   \context @{
6670     \Voice
6671     \remove Ligature_bracket_engraver
6672     \consists Mensural_ligature_engraver
6673   @}
6674 @}
6675 @end example
6676
6677 There is no additional input language to describe the shape of a
6678 white mensural ligature.  The shape is rather determined solely from
6679 the pitch and duration of the enclosed notes.  While this approach may
6680 take a new user a while to get accustomed to, it has the great advantage
6681 that the full musical information of the ligature is known internally.
6682 This is not only required for correct MIDI output, but also allows for
6683 automatic transcription of the ligatures.
6684
6685 For example,
6686
6687 @example
6688 \set Score.timing = ##f
6689 \set Score.defaultBarType = "empty"
6690 \override NoteHead #'style = #'neomensural
6691 \override Staff.TimeSignature #'style = #'neomensural
6692 \clef "petrucci-g"
6693 \[ g\longa c\breve a\breve f\breve d'\longa \]
6694 s4
6695 \[ e1 f1 a\breve g\longa \]
6696 @end example
6697 @lilypond[quote,raggedright]
6698 \score {
6699   \transpose c c' {
6700     \set Score.timing = ##f
6701     \set Score.defaultBarType = "empty"
6702     \override NoteHead #'style = #'neomensural
6703     \override Staff.TimeSignature #'style = #'neomensural
6704     \clef "petrucci-g"
6705     \[ g\longa c\breve a\breve f\breve d'\longa \]
6706     s4
6707     \[ e1 f1 a\breve g\longa \]
6708   }
6709   \layout {
6710     \context {
6711       \Voice
6712       \remove Ligature_bracket_engraver
6713       \consists Mensural_ligature_engraver
6714     }
6715   }
6716 }
6717 @end lilypond
6718
6719 Without replacing @internalsref{Ligature_bracket_engraver} with
6720 @internalsref{Mensural_ligature_engraver}, the same music transcribes
6721 to the following
6722
6723 @lilypond[quote,raggedright]
6724 \transpose c c' {
6725   \set Score.timing = ##f
6726   \set Score.defaultBarType = "empty"
6727   \override NoteHead #'style = #'neomensural
6728   \override Staff.TimeSignature #'style = #'neomensural
6729   \clef "petrucci-g"
6730   \[ g\longa c\breve a\breve f\breve d'\longa \]
6731   s4
6732   \[ e1 f1 a\breve g\longa \]
6733 }
6734 @end lilypond
6735
6736 @refbugs
6737
6738 The implementation is experimental.  It may output strange warnings,
6739 incorrect results, and might even crash on more complex ligatures.
6740
6741 @node Gregorian square neumes ligatures
6742 @subsubsection Gregorian square neumes ligatures
6743
6744 @cindex Square neumes ligatures
6745 @cindex Gregorian square neumes ligatures
6746
6747 There is limited support for Gregorian square neumes notation
6748 (following the style of the Editio Vaticana).  Core ligatures can
6749 already be typeset, but essential issues for serious typesetting are
6750 still lacking, such as (among others) horizontal alignment of multiple
6751 ligatures, lyrics alignment and proper handling of accidentals.
6752
6753
6754 The following table contains the extended neumes table of the 2nd
6755 volume of the Antiphonale Romanum (@emph{Liber Hymnarius}), published
6756 1983 by the monks of Solesmes.
6757
6758 @multitable @columnfractions .4 .2 .2 .2
6759
6760 @item
6761 @b{Neuma aut@*
6762 Neumarum Elementa}
6763 @tab
6764 @b{Figurae@*
6765 Rectae}
6766 @tab
6767 @b{Figurae@*
6768 Liquescentes@*
6769 Auctae}
6770 @tab
6771 @b{Figurae@*
6772 Liquescentes@*
6773 Deminutae}
6774
6775 @c TODO: \layout block is identical in all of the below examples.
6776 @c Therefore, it should somehow be included rather than duplicated all
6777 @c the time. --jr
6778
6779 @c why not make identifiers in ly/engraver-init.ly? --hwn
6780
6781 @c Because it's just used to typeset plain notes without
6782 @c a staff for demonstration purposes rather than something
6783 @c special of Gregorian chant notation. --jr
6784
6785 @item
6786 @code{1. Punctum}
6787 @tab
6788 @lilypond[staffsize=26,linewidth=1.5\cm]
6789 \include "gregorian-init.ly"
6790 \score {
6791   \transpose c c' {
6792     % Punctum
6793     \[ b \]
6794     \noBreak s^\markup {"a"} \noBreak
6795
6796     % Punctum Inclinatum
6797     \[ \inclinatum b \]
6798     \noBreak s^\markup {"b"}
6799   }
6800 \layout { \neumeDemoLayout }}
6801 @end lilypond
6802 @tab
6803 @lilypond[staffsize=26,linewidth=2.5\cm]
6804 \include "gregorian-init.ly"
6805 \score {
6806   \transpose c c' {
6807     % Punctum Auctum Ascendens
6808     \[ \auctum \ascendens b \]
6809     \noBreak s^\markup {"c"} \noBreak
6810
6811     % Punctum Auctum Descendens
6812     \[ \auctum \descendens b \]
6813     \noBreak s^\markup {"d"} \noBreak
6814
6815     % Punctum Inclinatum Auctum
6816     \[ \inclinatum \auctum b \]
6817     \noBreak s^\markup {"e"}
6818   }
6819 \layout { \neumeDemoLayout }}
6820 @end lilypond
6821 @tab
6822 @lilypond[staffsize=26,linewidth=1.0\cm]
6823 \include "gregorian-init.ly"
6824 \score {
6825   \transpose c c' {
6826     % Punctum Inclinatum Parvum
6827     \[ \inclinatum \deminutum b \]
6828     \noBreak s^\markup {"f"}
6829   }
6830 \layout { \neumeDemoLayout }}
6831 @end lilypond
6832
6833 @item
6834 @code{2. Virga}
6835 @tab
6836 @lilypond[staffsize=26,linewidth=1.0\cm]
6837 \include "gregorian-init.ly"
6838 \score {
6839   \transpose c c' {
6840     % Virga
6841     \[ \virga b \]
6842     \noBreak s^\markup {"g"}
6843   }
6844 \layout { \neumeDemoLayout }}
6845 @end lilypond
6846 @tab
6847 @tab
6848
6849 @item
6850 @code{3. Apostropha vel Stropha}
6851 @tab
6852 @lilypond[staffsize=26,linewidth=1.0\cm]
6853 \include "gregorian-init.ly"
6854 \score {
6855   \transpose c c' {
6856     % Stropha
6857     \[ \stropha b \]
6858     \noBreak s^\markup {"h"}
6859   }
6860 \layout { \neumeDemoLayout }}
6861 @end lilypond
6862 @tab
6863 @lilypond[staffsize=26,linewidth=1.0\cm]
6864 \include "gregorian-init.ly"
6865 \score {
6866   \transpose c c' {
6867     % Stropha Aucta
6868     \[ \stropha \auctum b \]
6869     \noBreak s^\markup {"i"}
6870   }
6871 \layout { \neumeDemoLayout }}
6872 @end lilypond
6873 @tab
6874
6875 @item
6876 @code{4. Oriscus}
6877 @tab
6878 @lilypond[staffsize=26,linewidth=1.0\cm]
6879 \include "gregorian-init.ly"
6880 \score {
6881   \transpose c c' {
6882     % Oriscus
6883     \[ \oriscus b \]
6884     \noBreak s^\markup {"j"}
6885   }
6886 \layout { \neumeDemoLayout }}
6887 @end lilypond
6888 @tab
6889 @tab
6890
6891 @item
6892 @code{5. Clivis vel Flexa}
6893 @tab
6894 @lilypond[staffsize=26,linewidth=1.0\cm]
6895 \include "gregorian-init.ly"
6896 \score {
6897   \transpose c c' {
6898     % Clivis vel Flexa
6899     \[ b \flexa g \]
6900     s^\markup {"k"}
6901   }
6902 \layout { \neumeDemoLayout }}
6903 @end lilypond
6904 @tab
6905 @lilypond[staffsize=26,linewidth=2.0\cm]
6906 \include "gregorian-init.ly"
6907 \score {
6908   \transpose c c' {
6909     % Clivis Aucta Descendens
6910     \[ b \flexa \auctum \descendens g \]
6911     \noBreak s^\markup {"l"} \noBreak
6912
6913     % Clivis Aucta Ascendens
6914     \[ b \flexa \auctum \ascendens g \]
6915     \noBreak s^\markup {"m"}
6916   }
6917 \layout { \neumeDemoLayout }}
6918 @end lilypond
6919 @tab
6920 @lilypond[staffsize=26,linewidth=1.0\cm]
6921 \include "gregorian-init.ly"
6922 \score {
6923   \transpose c c' {
6924     % Cephalicus
6925     \[ b \flexa \deminutum g \]
6926     s^\markup {"n"}
6927   }
6928 \layout { \neumeDemoLayout }}
6929 @end lilypond
6930
6931 @item
6932 @code{6. Podatus vel Pes}
6933 @tab
6934 @lilypond[staffsize=26,linewidth=1.0\cm]
6935 \include "gregorian-init.ly"
6936 \score {
6937   \transpose c c' {
6938     % Podatus vel Pes
6939     \[ g \pes b \]
6940     s^\markup {"o"}
6941   }
6942 \layout { \neumeDemoLayout }}
6943 @end lilypond
6944 @tab
6945 @lilypond[staffsize=26,linewidth=2.0\cm]
6946 \include "gregorian-init.ly"
6947 \score {
6948   \transpose c c' {
6949     % Pes Auctus Descendens
6950     \[ g \pes \auctum \descendens b \]
6951     \noBreak s^\markup {"p"} \noBreak
6952
6953     % Pes Auctus Ascendens
6954     \[ g \pes \auctum \ascendens b \]
6955     \noBreak s^\markup {"q"}
6956   }
6957 \layout { \neumeDemoLayout }}
6958 @end lilypond
6959 @tab
6960 @lilypond[staffsize=26,linewidth=1.0\cm]
6961 \include "gregorian-init.ly"
6962 \score {
6963   \transpose c c' {
6964     % Epiphonus
6965     \[ g \pes \deminutum b \]
6966     s^\markup {"r"}
6967   }
6968 \layout { \neumeDemoLayout }}
6969 @end lilypond
6970
6971 @item
6972 @code{7. Pes Quassus}
6973 @tab
6974 @lilypond[staffsize=26,linewidth=1.0\cm]
6975 \include "gregorian-init.ly"
6976 \score {
6977   \transpose c c' {
6978     % Pes Quassus
6979     \[ \oriscus g \pes \virga b \]
6980     s^\markup {"s"}
6981   }
6982 \layout { \neumeDemoLayout }}
6983 @end lilypond
6984 @tab
6985 @lilypond[staffsize=26,linewidth=1.0\cm]
6986 \include "gregorian-init.ly"
6987 \score {
6988   \transpose c c' {
6989     % Pes Quassus Auctus Descendens
6990     \[ \oriscus g \pes \auctum \descendens b \]
6991     s^\markup {"t"}
6992   }
6993 \layout { \neumeDemoLayout }}
6994 @end lilypond
6995 @tab
6996
6997 @item
6998 @code{8. Quilisma Pes}
6999 @tab
7000 @lilypond[staffsize=26,linewidth=1.0\cm]
7001 \include "gregorian-init.ly"
7002 \score {
7003   \transpose c c' {
7004     % Quilisma Pes
7005     \[ \quilisma g \pes b \]
7006     s^\markup {"u"}
7007   }
7008 \layout { \neumeDemoLayout }}
7009 @end lilypond
7010 @tab
7011 @lilypond[staffsize=26,linewidth=1.0\cm]
7012 \include "gregorian-init.ly"
7013 \score {
7014   \transpose c c' {
7015     % Quilisma Pes Auctus Descendens
7016     \[ \quilisma g \pes \auctum \descendens b \]
7017     s^\markup {"v"}
7018   }
7019 \layout { \neumeDemoLayout }}
7020 @end lilypond
7021 @tab
7022
7023 @item
7024 @code{9. Podatus Initio Debilis}
7025 @tab
7026 @lilypond[staffsize=26,linewidth=1.0\cm]
7027 \include "gregorian-init.ly"
7028 \score {
7029   \transpose c c' {
7030     % Pes Initio Debilis
7031     \[ \deminutum g \pes b \]
7032     s^\markup {"w"}
7033   }
7034 \layout { \neumeDemoLayout }}
7035 @end lilypond
7036 @tab
7037 @lilypond[staffsize=26,linewidth=1.0\cm]
7038 \include "gregorian-init.ly"
7039 \score {
7040   \transpose c c' {
7041     % Pes Auctus Descendens Initio Debilis
7042     \[ \deminutum g \pes \auctum \descendens b \]
7043     s^\markup {"x"}
7044   }
7045 \layout { \neumeDemoLayout }}
7046 @end lilypond
7047 @tab
7048
7049 @item
7050 @code{10. Torculus}
7051 @tab
7052 @lilypond[staffsize=26,linewidth=1.0\cm]
7053 \include "gregorian-init.ly"
7054 \score {
7055   \transpose c c' {
7056     % Torculus
7057     \[ a \pes b \flexa g \]
7058     s^\markup {"y"}
7059   }
7060 \layout { \neumeDemoLayout }}
7061 @end lilypond
7062 @tab
7063 @lilypond[staffsize=26,linewidth=1.0\cm]
7064 \include "gregorian-init.ly"
7065 \score {
7066   \transpose c c' {
7067     % Torculus Auctus Descendens
7068     \[ a \pes b \flexa \auctum \descendens g \]
7069     s^\markup {"z"}
7070   }
7071 \layout { \neumeDemoLayout }}
7072 @end lilypond
7073 @tab
7074 @lilypond[staffsize=26,linewidth=1.0\cm]
7075 \include "gregorian-init.ly"
7076 \score {
7077   \transpose c c' {
7078     % Torculus Deminutus
7079     \[ a \pes b \flexa \deminutum g \]
7080     s^\markup {"A"}
7081   }
7082 \layout { \neumeDemoLayout }}
7083 @end lilypond
7084
7085 @item
7086 @code{11. Torculus Initio Debilis}
7087 @tab
7088 @lilypond[staffsize=26,linewidth=1.0\cm]
7089 \include "gregorian-init.ly"
7090 \score {
7091   \transpose c c' {
7092     % Torculus Initio Debilis
7093     \[ \deminutum a \pes b \flexa g \]
7094     s^\markup {"B"}
7095   }
7096 \layout { \neumeDemoLayout }}
7097 @end lilypond
7098 @tab
7099 @lilypond[staffsize=26,linewidth=1.0\cm]
7100 \include "gregorian-init.ly"
7101 \score {
7102   \transpose c c' {
7103     % Torculus Auctus Descendens Initio Debilis
7104     \[ \deminutum a \pes b \flexa \auctum \descendens g \]
7105     s^\markup {"C"}
7106   }
7107 \layout { \neumeDemoLayout }}
7108 @end lilypond
7109 @tab
7110 @lilypond[staffsize=26,linewidth=1.0\cm]
7111 \include "gregorian-init.ly"
7112 \score {
7113   \transpose c c' {
7114     % Torculus Deminutus Initio Debilis
7115     \[ \deminutum a \pes b \flexa \deminutum g \]
7116     s^\markup {"D"}
7117   }
7118 \layout { \neumeDemoLayout }}
7119 @end lilypond
7120
7121 @item
7122 @code{12. Porrectus}
7123 @tab
7124 @lilypond[staffsize=26,linewidth=1.0\cm]
7125 \include "gregorian-init.ly"
7126 \score {
7127   \transpose c c' {
7128     % Porrectus
7129     \[ a \flexa g \pes b \]
7130     s^\markup {"E"}
7131   }
7132 \layout { \neumeDemoLayout }}
7133 @end lilypond
7134 @tab
7135 @lilypond[staffsize=26,linewidth=1.0\cm]
7136 \include "gregorian-init.ly"
7137 \score {
7138   \transpose c c' {
7139     % Porrectus Auctus Descendens
7140     \[ a \flexa g \pes \auctum \descendens b \]
7141     s^\markup {"F"}
7142   }
7143 \layout { \neumeDemoLayout }}
7144 @end lilypond
7145 @tab
7146 @lilypond[staffsize=26,linewidth=1.0\cm]
7147 \include "gregorian-init.ly"
7148 \score {
7149   \transpose c c' {
7150     % Porrectus Deminutus
7151     \[ a \flexa g \pes \deminutum b \]
7152     s^\markup {"G"}
7153   }
7154 \layout { \neumeDemoLayout }}
7155 @end lilypond
7156
7157 @item
7158 @code{13. Climacus}
7159 @tab
7160 @lilypond[staffsize=26,linewidth=1.0\cm]
7161 \include "gregorian-init.ly"
7162 \score {
7163   \transpose c c' {
7164     % Climacus
7165     \[ \virga b \inclinatum a \inclinatum g \]
7166     s^\markup {"H"}
7167   }
7168   \layout { \neumeDemoLayout }
7169 }
7170 @end lilypond
7171 @tab
7172 @lilypond[staffsize=26,linewidth=1.0\cm]
7173 \include "gregorian-init.ly"
7174 \score {
7175   \transpose c c' {
7176     % Climacus Auctus
7177     \[ \virga b \inclinatum a \inclinatum \auctum g \]
7178     s^\markup {"I"}
7179   }
7180 \layout { \neumeDemoLayout }}
7181 @end lilypond
7182 @tab
7183 @lilypond[staffsize=26,linewidth=1.0\cm]
7184 \include "gregorian-init.ly"
7185 \score {
7186   \transpose c c' {
7187     % Climacus Deminutus
7188     \[ \virga b \inclinatum a \inclinatum \deminutum g \]
7189     s^\markup {"J"}
7190   }
7191 \layout { \neumeDemoLayout }}
7192 @end lilypond
7193
7194 @item
7195 @code{14. Scandicus}
7196 @tab
7197 @lilypond[staffsize=26,linewidth=1.0\cm]
7198 \include "gregorian-init.ly"
7199 \score {
7200   \transpose c c' {
7201     % Scandicus
7202     \[ g \pes a \virga b \]
7203     s^\markup {"K"}
7204   }
7205 \layout { \neumeDemoLayout }}
7206 @end lilypond
7207 @tab
7208 @lilypond[staffsize=26,linewidth=1.0\cm]
7209 \include "gregorian-init.ly"
7210 \score {
7211   \transpose c c' {
7212     % Scandicus Auctus Descendens
7213     \[ g \pes a \pes \auctum \descendens b \]
7214     s^\markup {"L"}
7215   }
7216 \layout { \neumeDemoLayout }}
7217 @end lilypond
7218 @tab
7219 @lilypond[staffsize=26,linewidth=1.0\cm]
7220 \include "gregorian-init.ly"
7221 \score {
7222   \transpose c c' {
7223     % Scandicus Deminutus
7224     \[ g \pes a \pes \deminutum b \]
7225     s^\markup {"M"}
7226   }
7227 \layout { \neumeDemoLayout }}
7228 @end lilypond
7229
7230 @item
7231 @code{15. Salicus}
7232 @tab
7233 @lilypond[staffsize=26,linewidth=1.0\cm]
7234 \include "gregorian-init.ly"
7235 \score {
7236   \transpose c c' {
7237     % Salicus
7238     \[ g \oriscus a \pes \virga b \]
7239     s^\markup {"N"}
7240   }
7241 \layout { \neumeDemoLayout }}
7242 @end lilypond
7243 @tab
7244 @lilypond[staffsize=26,linewidth=1.0\cm]
7245 \include "gregorian-init.ly"
7246 \score {
7247   \transpose c c' {
7248     % Salicus Auctus Descendens
7249     \[ g \oriscus a \pes \auctum \descendens b \]
7250     s^\markup {"O"}
7251   }
7252 \layout { \neumeDemoLayout }}
7253 @end lilypond
7254 @tab
7255
7256 @item
7257 @code{16. Trigonus}
7258 @tab
7259 @lilypond[staffsize=26,linewidth=1.0\cm]
7260 \include "gregorian-init.ly"
7261 \score {
7262   \transpose c c' {
7263     % Trigonus
7264     \[ \stropha b \stropha b \stropha a \]
7265     s^\markup {"P"}
7266   }
7267   \layout { \neumeDemoLayout }
7268 }
7269 @end lilypond
7270 @tab
7271 @tab
7272
7273 @end multitable
7274
7275
7276 Unlike most other neumes notation systems, the input language for
7277 neumes does not reflect the typographical appearance, but is designed
7278 to focus on musical meaning.  For example, @code{\[ a \pes b
7279 \flexa g \]} produces a Torculus consisting of three Punctum heads,
7280 while @code{\[ a \flexa g \pes b \]} produces a Porrectus with a
7281 curved flexa shape and only a single Punctum head.  There is no
7282 command to explicitly typeset the curved flexa shape; the decision of
7283 when to typeset a curved flexa shape is based on the musical
7284 input.  The idea of this approach is to separate the musical aspects
7285 of the input from the notation style of the output.  This way, the
7286 same input can be reused to typeset the same music in a different
7287 style of Gregorian chant notation.
7288
7289 The following table shows the code fragments that produce the
7290 ligatures in the above neumes table.  The letter in the first column
7291 in each line of the below table indicates to which ligature in the
7292 above table it refers.  The second column gives the name of the
7293 ligature.  The third column shows the code fragment that produces this
7294 ligature, using @code{g}, @code{a}, and @code{b} as example pitches.
7295
7296 @multitable @columnfractions .02 .31 .67
7297 @item
7298 @b{#}
7299 @tab
7300 @b{Name}
7301 @tab
7302 @b{Input Language}
7303
7304 @item
7305 a
7306 @tab
7307 Punctum
7308 @tab
7309 @code{\[ b \]}
7310
7311 @item
7312 b
7313 @tab
7314 Punctum Inclinatum
7315 @tab
7316 @code{\[ \inclinatum b \]}
7317
7318 @item
7319 c
7320 @tab
7321 Punctum Auctum@*
7322 Ascendens
7323 @tab
7324 @code{\[ \auctum \ascendens b \]}
7325
7326 @item
7327 d
7328 @tab
7329 Punctum Auctum@*
7330 Descendens
7331 @tab
7332 @code{\[ \auctum \descendens b \]}
7333
7334 @item
7335 e
7336 @tab
7337 Punctum Inclinatum@*
7338 Auctum
7339 @tab
7340 @code{\[ \inclinatum \auctum b \]}
7341
7342 @item
7343 f
7344 @tab
7345 Punctum Inclinatum@*
7346 Parvum @tab
7347 @code{\[ \inclinatum \deminutum b \]}
7348
7349 @item
7350 g
7351 @tab
7352 Virga
7353 @tab
7354 @code{\[ \virga b \]}
7355
7356 @item
7357 h
7358 @tab
7359 Stropha
7360 @tab
7361 @code{\[ \stropha b \]}
7362
7363 @item
7364 i
7365 @tab
7366 Stropha Aucta
7367 @tab
7368 @code{\[ \stropha \auctum b \]}
7369
7370 @item
7371 j
7372 @tab
7373 Oriscus
7374 @tab
7375 @code{\[ \oriscus b \]}
7376
7377 @item
7378 k
7379 @tab
7380 Clivis vel Flexa
7381 @tab
7382 @code{\[ b \flexa g \]}
7383
7384 @item
7385 l
7386 @tab
7387 Clivis Aucta@*
7388 Descendens
7389 @tab
7390 @code{\[ b \flexa \auctum \descendens g \]}
7391
7392 @item
7393 m
7394 @tab
7395 Clivis Aucta@*
7396 Ascendens
7397 @tab
7398 @code{\[ b \flexa \auctum \ascendens g \]}
7399
7400 @item
7401 n
7402 @tab
7403 Cephalicus
7404 @tab
7405 @code{\[ b \flexa \deminutum g \]}
7406
7407 @item
7408 o
7409 @tab
7410 Podatus vel Pes
7411 @tab
7412 @code{\[ g \pes b \]}
7413
7414 @item
7415 p
7416 @tab
7417 Pes Auctus@*
7418 Descendens
7419 @tab
7420 @code{\[ g \pes \auctum \descendens b \]}
7421
7422 @item
7423 q
7424 @tab
7425 Pes Auctus@*
7426 Ascendens
7427 @tab
7428 @code{\[ g \pes \auctum \ascendens b \]}
7429
7430 @item
7431 r
7432 @tab
7433 Epiphonus
7434 @tab
7435 @code{\[ g \pes \deminutum b \]}
7436
7437 @item
7438 s
7439 @tab
7440 Pes Quassus
7441 @tab
7442 @code{\[ \oriscus g \pes \virga b \]}
7443
7444 @item
7445 t
7446 @tab
7447 Pes Quassus@*
7448 Auctus Descendens @tab
7449 @code{\[ \oriscus g \pes \auctum \descendens b \]}
7450
7451 @item
7452 u
7453 @tab
7454 Quilisma Pes
7455 @tab
7456 @code{\[ \quilisma g \pes b \]}
7457
7458 @item
7459 v
7460 @tab
7461 Quilisma Pes@*
7462 Auctus Descendens
7463 @tab
7464 @code{\[ \quilisma g \pes \auctum \descendens b \]}
7465
7466 @item
7467 w
7468 @tab
7469 Pes Initio Debilis
7470 @tab
7471 @code{\[ \deminutum g \pes b \]}
7472
7473 @item
7474 x
7475 @tab
7476 Pes Auctus Descendens@*
7477 Initio Debilis
7478 @tab
7479 @code{\[ \deminutum g \pes \auctum \descendens b \]}
7480
7481 @item
7482 y
7483 @tab
7484 Torculus
7485 @tab
7486 @code{\[ a \pes b \flexa g \]}
7487
7488 @item
7489 z
7490 @tab
7491 Torculus Auctus@*
7492 Descendens
7493 @tab
7494 @code{\[ a \pes b \flexa \auctum \descendens g \]}
7495
7496 @item
7497 A
7498 @tab
7499 Torculus Deminutus
7500 @tab
7501 @code{\[ a \pes b \flexa \deminutum g \]}
7502
7503 @item
7504 B
7505 @tab
7506 Torculus Initio Debilis
7507 @tab
7508 @code{\[ \deminutum a \pes b \flexa g \]}
7509
7510 @item
7511 C
7512 @tab
7513 Torculus Auctus@*
7514 Descendens Initio Debilis
7515 @tab
7516 @code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]}
7517
7518 @item
7519 D
7520 @tab
7521 Torculus Deminutus@*
7522 Initio Debilis
7523 @tab
7524 @code{\[ \deminutum a \pes b \flexa \deminutum g \]}
7525
7526 @item
7527 E
7528 @tab
7529 Porrectus
7530 @tab
7531 @code{\[ a \flexa g \pes b \]}
7532
7533 @item
7534 F
7535 @tab
7536 Porrectus Auctus@*
7537 Descendens
7538 @tab
7539 @code{\[ a \flexa g \pes \auctum \descendens b \]}
7540
7541 @item
7542 G
7543 @tab
7544 Porrectus Deminutus
7545 @tab
7546 @code{\[ a \flexa g \pes \deminutum b \]}
7547
7548 @item
7549 H
7550 @tab
7551 Climacus
7552 @tab
7553 @code{\[ \virga b \inclinatum a \inclinatum g \]}
7554
7555 @item
7556 I
7557 @tab
7558 Climacus Auctus
7559 @tab
7560 @code{\[ \virga b \inclinatum a \inclinatum \auctum g \]}
7561
7562 @item
7563 J
7564 @tab
7565 Climacus Deminutus
7566 @tab
7567 @code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]}
7568
7569 @item
7570 K
7571 @tab
7572 Scandicus
7573 @tab
7574 @code{\[ g \pes a \virga b \]}
7575
7576 @item
7577 L
7578 @tab
7579 Scandicus Auctus@*
7580 Descendens
7581 @tab
7582 @code{\[ g \pes a \pes \auctum \descendens b \]}
7583
7584 @item
7585 M
7586 @tab
7587 Scandicus Deminutus
7588 @tab
7589 @code{\[ g \pes a \pes \deminutum b \]}
7590
7591 @item
7592 N
7593 @tab
7594 Salicus
7595 @tab
7596 @code{\[ g \oriscus a \pes \virga b \]}
7597
7598 @item
7599 O
7600 @tab
7601 Salicus Auctus Descendens
7602 @tab
7603 @code{\[ g \oriscus a \pes \auctum \descendens b \]}
7604
7605 @item
7606 P
7607 @tab
7608 Trigonus
7609 @tab
7610 @code{\[ \stropha b \stropha b \stropha a \]}
7611 @end multitable
7612
7613 @refcommands
7614
7615 The following head prefixes are supported
7616
7617 @cindex @code{\virga}
7618 @code{\virga},
7619 @cindex @code{\stropha}
7620 @code{\stropha},
7621 @cindex @code{\inclinatum}
7622 @code{\inclinatum},
7623 @cindex @code{\auctum}
7624 @code{\auctum},
7625 @cindex @code{\descendens}
7626 @code{\descendens},
7627 @cindex @code{\ascendens}
7628 @code{\ascendens},
7629 @cindex @code{\oriscus}
7630 @code{\oriscus},
7631 @cindex @code{\quilisma}
7632 @code{\quilisma},
7633 @cindex @code{\deminutum}
7634 @code{\deminutum}.
7635
7636 Head prefixes can be accumulated, though restrictions apply.  For
7637 example, either @code{\descendens} or @code{\ascendens} can be applied
7638 to a head, but not both to the same head.
7639
7640 @cindex @code{\pes}
7641 @cindex @code{\flexa}
7642 Two adjacent heads can be tied together with the @code{\pes} and
7643 @code{\flexa} infix commands for a rising and falling line of melody,
7644 respectively.
7645
7646
7647
7648 @node Gregorian Chant contexts
7649 @subsection Gregorian Chant contexts
7650
7651 @cindex VaticanaVoiceContext
7652 @cindex VaticanaStaffContext
7653
7654 The predefined @code{VaticanaVoiceContext} and
7655 @code{VaticanaStaffContext} can be used to engrave a piece of
7656 Gregorian Chant in the style of the Editio Vaticana.  These contexts
7657 initialize all relevant context properties and grob properties to
7658 proper values, so you can immediately go ahead entering the chant, as
7659 the following excerpt demonstrates
7660
7661 @lilypond[quote,raggedright,verbatim]
7662 \include "gregorian-init.ly"
7663 \score {
7664   <<
7665     \context VaticanaVoice = "cantus" {
7666       \override Score.BarNumber #'transparent = ##t {
7667         \[ c'\melisma c' \flexa a \]
7668         \[ a \flexa \deminutum g\melismaEnd \]
7669         f \divisioMinima
7670         \[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
7671         c' \divisioMinima \break
7672         \[ c'\melisma c' \flexa a \]
7673         \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
7674       }
7675     }
7676     \lyricsto "cantus" \new Lyrics {
7677       San- ctus, San- ctus, San- ctus
7678     }
7679   >>
7680 }
7681 @end lilypond
7682
7683
7684 @node Mensural contexts
7685 @subsection Mensural contexts
7686
7687 @cindex MensuralVoiceContext
7688 @cindex MensuralStaffContext
7689
7690 The predefined @code{MensuralVoiceContext} and
7691 @code{MensuralStaffContext} can be used to engrave a piece in mensural
7692 style.  These contexts initialize all relevant context properties and
7693 grob properties to proper values, so you can immediately go ahead
7694 entering the chant, as the following excerpt demonstrates
7695
7696 @lilypond[quote,raggedright,verbatim]
7697 \score {
7698   <<
7699     \context MensuralVoice = "discantus" \transpose c c' {
7700       \override Score.BarNumber #'transparent = ##t {
7701         c'1\melisma bes a g\melismaEnd
7702         f\breve
7703         \[ f1\melisma a c'\breve d'\melismaEnd \]
7704         c'\longa
7705         c'\breve\melisma a1 g1\melismaEnd
7706         fis\longa^\signumcongruentiae
7707       }
7708     }
7709     \lyricsto "discantus" \new Lyrics {
7710       San -- ctus, San -- ctus, San -- ctus
7711     }
7712   >>
7713 }
7714 @end lilypond
7715
7716
7717 @node Figured bass
7718 @subsection Figured bass
7719
7720 @cindex Basso continuo
7721
7722 @c TODO: musicological blurb about FB
7723
7724
7725 LilyPond has limited support for figured bass
7726
7727 @lilypond[quote,raggedright,verbatim,fragment]
7728 <<
7729   \context Voice { \clef bass dis4 c d ais g fis}
7730   \context FiguredBass \figuremode {
7731     < 6 >4 < 7 >8 < 6+ [_!] >
7732     < 6 >4 <6 5 [3+] >
7733     < _ >4 < 6 >4
7734   }
7735 >>
7736 @end lilypond
7737
7738 The support for figured bass consists of two parts: there is an input
7739 mode, introduced by @code{\figuremode}, where you can enter bass figures
7740 as numbers, and there is a context called @internalsref{FiguredBass} that
7741 takes care of making @internalsref{BassFigure} objects.
7742
7743 In figures input mode, a group of bass figures is delimited by
7744 @code{<} and @code{>}.  The duration is entered after the @code{>}
7745 @example
7746 <4 6>
7747 @end example
7748 @lilypond[quote,raggedright,fragment]
7749 \context FiguredBass
7750 \figuremode { <4 6> }
7751 @end lilypond
7752
7753 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
7754 to the numbers
7755
7756 @example
7757 <4- 6+ 7!>
7758 @end example
7759 @lilypond[quote,raggedright,fragment]
7760 \context FiguredBass
7761 \figuremode { <4- 6+ 7!> }
7762 @end lilypond
7763
7764 Spaces or dashes may be inserted by using @code{_}.  Brackets are
7765 introduced with @code{[} and @code{]}
7766
7767 @example
7768 < [4 6] 8 [_! 12] >
7769 @end example
7770 @lilypond[quote,raggedright,fragment]
7771 \context FiguredBass
7772 \figuremode { < [4 6] 8 [_! 12] > }
7773 @end lilypond
7774
7775 Although the support for figured bass may superficially resemble chord
7776 support, it works much simpler.  The @code{\figuremode} mode simply
7777 stores the numbers and @internalsref{FiguredBass} context prints
7778 them as entered.  There is no conversion to pitches and no
7779 realizations of the bass are played in the MIDI file.
7780
7781 Internally, the code produces markup texts.  You can use any of the
7782 markup text properties to override formatting.  For example, the
7783 vertical spacing of the figures may be set with @code{baseline-skip}.
7784
7785 @seealso
7786
7787 Program reference: @internalsref{BassFigureEvent} music,
7788 @internalsref{BassFigure} object, and @internalsref{FiguredBass} context.
7789
7790 @refbugs
7791
7792 Slash notation for alterations is not supported.
7793
7794 @node Contemporary notation
7795 @section Contemporary notation
7796
7797 In the 20th century, composers have greatly expanded the musical
7798 vocabulary.  With this expansion, many innovations in musical notation
7799 have been tried.  The book ``Music Notation in the 20th century'' by
7800 Kurt Stone gives a comprehensive overview (see @ref{Literature
7801 list}).  In general, the use of new, innovative notation makes a piece
7802 harder to understand and perform and its use should therefore be
7803 avoided.  For this reason, support for contemporary notation in
7804 LilyPond is limited.
7805
7806
7807 @menu
7808 * Polymetric notation::         
7809 * Clusters::                    
7810 * Special fermatas::            
7811 * Feathered beams::             
7812 @end menu
7813
7814 @node Polymetric notation
7815 @subsection Polymetric notation
7816
7817 Double time signatures are not supported explicitly, but they can be
7818 faked.  In the next example, the markup for the time signature is
7819 created with a markup text.  This markup text is inserted in the
7820 @internalsref{TimeSignature} grob.
7821
7822 @lilypond[verbatim,raggedright]
7823 % create 2/4 + 5/8
7824 tsMarkup =\markup {
7825   \number {
7826     \column { "2" "4" }
7827     \musicglyph #"scripts-stopped"
7828     \bracket \column { "5" "8" }
7829   }
7830 }
7831
7832 {
7833   \override Staff.TimeSignature #'print-function = #Text_interface::print
7834   \override Staff.TimeSignature #'text = #tsMarkup
7835   \time 3/2
7836   c'2 \bar ":" c'4 c'4.
7837 }
7838 @end lilypond
7839
7840 Each staff can also have its own time signature.  This is done by
7841 moving the @internalsref{Timing_engraver} to the @internalsref{Staff}
7842 context.
7843
7844 @example
7845 \layout @{
7846   \context @{ \Score \remove "Timing_engraver" @}
7847   \context @{ \Staff \consists "Timing_engraver" @}
7848 @}
7849 @end example
7850
7851
7852 Now, each staff has its own time signature.
7853 @example
7854 <<
7855   \new Staff @{
7856     \time 3/4
7857     c4 c c | c c c |
7858   @}
7859   \new Staff @{
7860     \time 2/4
7861     c4 c | c c | c c
7862   @}
7863   \new Staff @{
7864     \time 3/8
7865     c4. c8 c c c4. c8 c c
7866   @}
7867 >>
7868 @end example
7869
7870 @lilypond[quote,raggedright]
7871 \layout{
7872   \context{ \Score \remove "Timing_engraver" }
7873   \context{ \Staff \consists "Timing_engraver" }
7874 }
7875
7876 \relative c' <<
7877   \new Staff {
7878     \time 3/4
7879     c4 c c | c c c |
7880   }
7881   \new Staff {
7882     \time 2/4
7883     c4 c | c c | c c
7884   }
7885   \new Staff {
7886     \time 3/8
7887     c4. c8 c c c4. c8 c c
7888   }
7889 >>
7890 @end lilypond
7891
7892
7893 A different form of polymetric notation is where note lengths have
7894 different values across staves.
7895
7896 This notation can be created by setting a common time signature for
7897 each staff but replacing it manually using
7898 @code{timeSignatureFraction} to the desired fraction.  Then the printed
7899 durations in each staff are scaled to the common time signature.
7900 The latter is done with @code{\compressmusic}, which is similar to
7901 @code{\times}, but does not create a tuplet bracket.
7902
7903
7904 In this example, music with the time signatures of 3/4, 9/8, and 10/8 are
7905 used in parallel.  In the second staff, shown durations are multiplied by
7906 2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
7907 multiplied by 3/5, so that 3/5 * 10/8 = 3/4.
7908
7909 @lilypond[quote,raggedright,verbatim,fragment]
7910 \relative c' { <<
7911   \new Staff {
7912     \time 3/4
7913     c4 c c | c c c |
7914   }
7915   \new Staff {
7916     \time 3/4
7917     \set Staff.timeSignatureFraction = #'(9 . 8)
7918     \compressmusic #'(2 . 3)
7919       \repeat unfold 6 { c8[ c c] }
7920   }
7921   \new Staff {
7922     \time 3/4
7923     \set Staff.timeSignatureFraction = #'(10 . 8)
7924     \compressmusic #'(3 . 5) {
7925       \repeat unfold 2 { c8[ c c] }
7926       \repeat unfold 2 { c8[ c] }
7927       | c4. c4. \times 2/3 { c8 c c } c4
7928     }
7929   }
7930 >> }
7931 @end lilypond
7932
7933
7934
7935
7936 @refbugs
7937
7938 When using different time signatures in parallel, the spacing is
7939 aligned vertically, but bar lines distort the regular spacing.
7940
7941
7942
7943 @node Clusters
7944 @subsection Clusters
7945
7946 @cindex cluster
7947
7948 A cluster indicates a continuous range of pitches to be played.  They
7949 can be denoted as the envelope of a set of notes.  They are entered by
7950 applying the function @code{makeClusters} to a sequence of
7951 chords, e.g.,
7952 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
7953 \makeClusters { <c e > <b f'> }
7954 @end lilypond
7955
7956 The following example (from
7957 @inputfileref{input/@/regression,cluster@/.ly}) shows what the result
7958 looks like
7959
7960 @lilypondfile[raggedright,quote]{cluster.ly}
7961
7962 Ordinary notes and clusters can be put together in the same staff,
7963 even simultaneously.  In such a case no attempt is made to
7964 automatically avoid collisions between ordinary notes and clusters.
7965
7966 @seealso
7967
7968 Program reference: @internalsref{ClusterSpanner},
7969 @internalsref{ClusterSpannerBeacon},
7970 @internalsref{Cluster_spanner_engraver}, and
7971 @internalsref{ClusterNoteEvent}.
7972
7973 Examples: @inputfileref{input/@/regression,cluster@/.ly}.
7974
7975 @refbugs
7976
7977 Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
7978 accurately.  Use @code{<g a>8 <e a>8} instead.
7979
7980
7981
7982 @node Special fermatas
7983 @subsection Special fermatas
7984
7985 @cindex fermatas, special
7986
7987 In contemporary music notation, special fermata symbols denote breaks
7988 of differing lengths.  The following fermatas are supported
7989
7990 @lilypond[quote,raggedright]
7991 <<
7992   \oldaddlyrics {
7993     b'2
7994     ^\shortfermata
7995     _\shortfermata
7996     r
7997
7998     b'
7999     ^\fermata
8000     _\fermata
8001     r
8002
8003     b'
8004     ^\longfermata
8005     _\longfermata
8006     r
8007
8008     b'
8009     ^\verylongfermata
8010     _\verylongfermata
8011     r
8012   }
8013   \context Lyrics \lyricmode {
8014     \override LyricText #'font-family = #'typewriter
8015     "shortfermata" "fermata" "longfermata" "verylongfermata"
8016   }
8017 >>
8018 @end lilypond
8019
8020 See @ref{Articulations} for general instructions how to apply scripts
8021 such as fermatas to notes.
8022
8023 @node Feathered beams
8024 @subsection Feathered beams
8025
8026 Feathered beams are not supported natively, but they can be faked by
8027 forcing two beams to overlap.  Here is an example,
8028
8029 @c don't change relative setting witout changing positions!
8030 @lilypond[raggedright,relative=1,fragment,verbatim]
8031 \new Staff <<
8032   \new Voice
8033   {
8034     \stemUp
8035     \once \override Voice.Beam #'positions = #'(0 . 0.5)
8036     c8[ c c c c ]
8037   }
8038   \new Voice {
8039     \stemUp
8040     \once \override Voice.Beam #'positions = #'(0 . -0.5)
8041     c[ c c c c]
8042   }
8043 >>
8044 @end lilypond
8045
8046
8047
8048 @node Educational use
8049 @section Educational use
8050
8051 With the amount of control that LilyPond offers, one can make great
8052 teaching tools in addition to great musical scores.
8053
8054 @menu
8055 * Balloon help::                
8056 * Blank music sheet::           
8057 * Hidden notes::                
8058 * Shaped note heads ::          
8059 * Easy Notation note heads::    
8060 @end menu
8061
8062 @node Balloon help
8063 @subsection Balloon help
8064
8065 Elements of notation can be marked and named with the help of a square
8066 balloon.  The primary purpose of this feature is to explain notation.
8067
8068 The following example demonstrates its use.
8069
8070 @lilypond[quote,verbatim,fragment,raggedright,relative=2]
8071 \context Voice {
8072   \applyoutput
8073     #(add-balloon-text 'NoteHead "heads, or tails?"
8074     '(1 . -3))
8075   c8
8076 }
8077 @end lilypond
8078
8079 @noindent
8080 The function @code{add-balloon-text} takes the name of a grob, the
8081 label to print, and the position where to put the label relative to
8082 the object.  In the above example, the text ``heads or tails?'' ends
8083 3 spaces below and 1 space to the right of the marked head.
8084
8085 @cindex balloon
8086 @cindex notation, explaining
8087
8088 @seealso
8089
8090 Program reference: @internalsref{text-balloon-interface}.
8091
8092 Examples: @inputfileref{input/@/regression,balloon@/.ly}.
8093
8094
8095
8096
8097 @node Blank music sheet
8098 @subsection Blank music sheet
8099
8100 A blank music sheet can be produced also by using invisible notes, and
8101 removing @code{Bar_number_engraver}.
8102
8103
8104 @lilypond[quote,verbatim]
8105 emptymusic = {
8106   \repeat unfold 2 % Change this for more lines.
8107   { s1\break }
8108   \bar "|."
8109 }
8110 \new Score \with {
8111   \override TimeSignature #'transparent = ##t
8112   defaultBarType = #""
8113   \remove Bar_number_engraver
8114 } <<
8115   \context Staff \emptymusic
8116   \context TabStaff \emptymusic
8117 >>
8118 @end lilypond
8119
8120
8121 @node Hidden notes
8122 @subsection Hidden notes
8123
8124 @cindex Hidden notes
8125 @cindex Invisible notes
8126 @cindex Transparent notes
8127
8128 Hidden (or invisible or transparent) notes can be useful in preparing theory
8129 or composition exercises.
8130
8131 @lilypond[quote,raggedright,verbatim,relative=2,fragment]
8132 c4 d4
8133 \hideNotes
8134 e4 f4
8135 \unHideNotes
8136 g4 a
8137 @end lilypond
8138
8139 Hidden notes are also great for performing weird tricks.  For example,
8140 slurs cannot be attached to rests or spacer rests, but you may wish
8141 to include that in your score -- string instruments use this notation
8142 when doing pizzicato to indicate that the note should ring for as long
8143 as possible.
8144
8145 @lilypond[quote,raggedright,verbatim,relative=0,fragment]
8146 \clef bass
8147 << {
8148   c4^"pizz"( \hideNotes c)
8149   \unHideNotes c( \hideNotes c)
8150 } {
8151   s4 r s r
8152 } >>
8153 @end lilypond
8154
8155
8156 @node Shaped note heads 
8157 @subsection Shaped note heads 
8158
8159 In shaped note head notation, the shape of the note head corresponds
8160 to the harmonic function of a note in the scale. This notation was
8161 popular in the 19th century American song books.
8162
8163 Shaped note heads can be produced by setting @code{\aikenHeads} or
8164 @code{\sacredHarpHeads}, depending on the style desired.
8165
8166 @lilypond[verbatim,relative=1,fragment]
8167   \aikenHeads
8168   c8 d4 e8 a2 g1
8169   \sacredHarpHeads
8170   c8 d4. e8 a2 g1
8171 @end lilypond
8172
8173 Shapes are determined on the step in the scale, where the base of the
8174 scale is determined by  the @code{\key} command
8175
8176 @findex \key
8177 @findex shapeNoteStyles
8178 @findex \aikenHeads
8179 @findex \sacredHarpHeads
8180
8181 Shaped note heads are implemented through the @code{shapeNoteStyles}
8182 property. Its value is a vector of symbols. The k-th element indicates
8183 the style to use for the k-th step of the scale. Arbitrary
8184 combinations  are possible, eg.,
8185
8186
8187 @lilypond[verbatim,relative=1,fragment]
8188   \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
8189   c8 d4. e8 a2 g1
8190 @end lilypond
8191
8192
8193 @node Easy Notation note heads
8194 @subsection Easy Notation note heads
8195
8196 @cindex easy notation
8197 @cindex Hal Leonard
8198
8199 The `easy play' note head includes a note name inside the head.  It is
8200 used in music for beginners
8201
8202 @lilypond[quote,raggedright,verbatim,fragment,staffsize=26]
8203   \setEasyHeads
8204   c'2 e'4 f' | g'1
8205 @end lilypond
8206
8207 The command @code{\setEasyHeads} overrides settings for the
8208 @internalsref{NoteHead} object.  To make the letters readable, it has
8209 to be printed in a large font size.  To print with a larger font, see
8210 @ref{Setting global staff size}.
8211
8212 @refcommands
8213
8214 @cindex @code{\setEasyHeads}
8215 @code{\setEasyHeads}
8216