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