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