]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/advanced-notation.itely
74b1457d374912964a2eaa26cea58894703c71aa
[lilypond.git] / Documentation / user / advanced-notation.itely
1 @c -*- coding: latin-1; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3
4 @c A menu is needed before every deeper *section nesting of @node's; run 
5 @c     M-x texinfo-all-menus-update
6 @c to automatically fill in these menus before saving changes
7
8
9 @node Advanced notation
10 @chapter Advanced notation
11
12 This chapter deals with rarely-used and advanced notation.
13
14 @menu
15 * Text::                        
16 * Preparing parts::             
17 * Orchestral music::            
18 * Contemporary notation::       
19 * Educational use::             
20 * Automatic notation::          
21 * Other::                       
22 @end menu
23
24
25
26 @node Text
27 @section Text
28
29 This section explains how to include text (with various formatting) in
30 your scores.
31
32 @menu
33 * Text scripts::                
34 * Text spanners::               
35 * Text marks::                  
36 * Text markup::                 
37 * Text encoding::               
38 * Nested scores::               
39 * Overview of text markup commands::  
40 * New dynamic marks::           
41 * Other text markup issues::    
42 @end menu
43
44
45 @node Text scripts
46 @subsection Text scripts
47
48 @cindex Text scripts
49 @cindex text items, non-empty
50 @cindex non-empty texts
51
52 It is possible to place arbitrary strings of text or
53 @internalsref{Text markup} above or below notes by using a string
54 @code{c^"text"}.  By default, these indications do not influence the
55 note spacing, but by using the command @code{\fatText}, the widths
56 will be taken into account
57
58 @lilypond[quote,fragment,raggedright,verbatim,relative=1]
59 c4^"longtext" \fatText c4_"longlongtext" c4
60 @end lilypond
61
62 More complex formatting may also be added to a note by using the
63 markup command,
64 @lilypond[fragment,raggedright,verbatim,quote]
65 c'4^\markup { bla \bold bla }
66 @end lilypond
67
68 The @code{\markup} is described in more detail in
69 @internalsref{Text markup}.
70
71
72 @refcommands
73
74 @cindex @code{\fatText}
75 @code{\fatText},
76 @cindex @code{\emptyText}
77 @code{\emptyText}.
78
79
80 @seealso
81
82 In this manual: @ref{Text markup}.
83
84 Program reference: @internalsref{TextScript}.
85
86
87 @node Text spanners
88 @subsection Text spanners
89
90 @cindex Text spanners
91
92 Some performance indications, e.g., @i{rallentando} or @i{accelerando},
93 are written as text and are extended over many measures with dotted
94 lines.  Such texts are created using text spanners; attach
95 @code{\startTextSpan} and @code{\stopTextSpan} to the first and last
96 notes of the spanner.
97
98 The string to be printed, as well as the style, is set through object
99 properties
100
101 @lilypond[quote,raggedright,fragment,relative=1,verbatim]
102 c1
103 \textSpannerDown
104 \override TextSpanner #'edge-text = #'("rall " . "")
105 c2\startTextSpan b c\stopTextSpan a
106 @end lilypond
107
108 @refcommands
109
110 @cindex textSpannerUp
111 @code{textSpannerUp},
112 @cindex textSpannerDown 
113 @code{textSpannerDown},
114 @cindex textSpannerNeutral
115 @code{textSpannerNeutral}.
116
117
118 @seealso
119
120 Program reference: @internalsref{TextSpanner}.
121
122 Examples: @inputfileref{input/@/regression,text@/-spanner@/.ly}.
123
124
125 @node Text marks
126 @subsection Text marks
127
128 @cindex coda on bar line
129 @cindex segno on bar line
130 @cindex fermata on bar line
131 @cindex bar lines, symbols on
132 @cindex @code{\mark}
133
134 The @code{\mark} command is primarily used for
135 @internalsref{Rehearsal marks},
136 but it can also be used to put signs like coda,
137 segno, and fermata on a bar line.  Use @code{\markup} to
138 access the appropriate symbol
139
140 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
141 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
142 c1
143 @end lilypond
144
145 @noindent
146 @code{\mark} is only typeset above the top stave of the score.  If
147 you specify the @code{\mark} command at a bar line, the resulting
148 mark is placed above the bar line.  If you specify it in the middle
149 of a bar, the resulting mark is positioned between notes.  If it is
150 specified before the beginning of a score line, it is placed
151 before the first note of the line.  Finally, if the mark occurs at
152 a line break, the mark will be printed at the
153 beginning of the next line.
154 @c  IMO this is a bug; hopefully it'll be fixed soon, so I can
155 @c  delete this sentence.   -gp
156 If there is no next line, then the mark will not be printed at all.
157
158
159 @commonprop
160
161 To print the mark at the end of the current line, use
162
163 @example
164 \override Score.RehearsalMark
165   #'break-visibility = #begin-of-line-invisible
166 @end example
167
168 @code{\mark} is often useful for adding text to the end of bar.  In
169 such cases, changing the @code{#'self-alignment} is very useful
170
171 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
172 \override Score.RehearsalMark
173   #'break-visibility = #begin-of-line-invisible
174 c1 c c c4 c c c
175 \once \override Score.RehearsalMark #'self-alignment-X = #right
176 \mark "D.S. al Fine "
177 @end lilypond
178
179
180 @seealso
181
182 Program reference: @internalsref{RehearsalMark}.
183
184
185 @node Text markup
186 @subsection Text markup
187
188 @cindex markup
189 @cindex text markup
190 @cindex markup text
191 @cindex typeset text
192
193 Use @code{\markup} to typeset text.  Commands are entered with the
194 backslash @code{\}.
195
196 @lilypond[quote,verbatim,fragment,relative=1]
197 c1^\markup { hello }
198 c1_\markup { hi there }
199 c1^\markup { hi \bold there, is \italic anyone home? }
200 @end lilypond
201
202 @noindent
203 @code{\markup} is primarily used for @internalsref{Text scripts},
204 but it can also be used anywhere text is called in lilypond
205
206 @lilypond[quote,verbatim]
207 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
208 \score{
209   \relative c'' {
210     \override Score.RehearsalMark
211       #'break-visibility = #begin-of-line-invisible
212     \override Score.RehearsalMark #'self-alignment-X = #right
213
214     \set Staff.instrument = \markup{ \column{ Alto solo } }
215     c2^\markup{ don't be \flat }
216     b2
217     a2\mark \markup{ \large \bold Fine }
218     r2
219     \bar "||"
220   }
221   \addlyrics { bar, foo \markup{ \italic bar! } }
222 }
223 @end lilypond
224
225 @cindex font switching
226
227 The markup in the example demonstrates font switching commands.  The
228 command @code{\bold} and @code{\italic} apply to the first following 
229 word only; to apply a command to more than one word, enclose the
230 words with braces,
231
232 @example
233 \markup @{ \bold @{ hi there @} @}
234 @end example
235
236 @noindent
237 For clarity, you can also do this for single arguments, e.g.,
238
239 @example
240 \markup @{ is \italic @{ anyone @} home @}
241 @end example
242
243 @cindex font size, texts
244
245 In markup mode you can compose expressions, similar to mathematical
246 expressions, XML documents, and music expressions.  You can stack
247 expressions grouped vertically with the command @code{\column}.
248 Similarly, @code{\center-align} aligns texts by their center lines:
249
250 @lilypond[quote,verbatim,fragment,relative=1]
251 c1^\markup { \column { a bbbb \line { c d } } }
252 c1^\markup { \center-align { a bbbb c } }
253 c1^\markup { \line { a b c } }
254 @end lilypond
255
256 Markups can be stored in variables and these variables
257 may be attached to notes, like
258 @example
259 allegro = \markup @{ \bold \large @{ Allegro @} @}
260  @{ a^\allegro b c d @}
261 @end example
262
263 Some objects have alignment procedures of their own, which cancel out
264 any effects of alignments applied to their markup arguments as a
265 whole.  For example, the @internalsref{RehearsalMark} is horizontally
266 centered, so using @code{\mark \markup @{ \left-align .. @}} has no
267 effect.
268
269
270 @seealso
271
272 Program reference: @internalsref{TextScript}.
273
274 Init files: @file{scm/@/new@/-markup@/.scm}.
275
276
277 @refbugs
278
279 Kerning or generation of ligatures is only done when the @TeX{}
280 backend is used.  In this case, LilyPond does not account for them so
281 texts will be spaced slightly too wide.
282
283 Syntax errors for markup mode are confusing.
284
285
286 @node Text encoding
287 @subsection Text encoding
288
289 LilyPond uses the Pango library to format multi-lingual texts, and
290 does not perform any input-encoding conversions.  This means that any
291 text, be it title, lyric text, or musical instruction containing
292 non-ASCII characters, must be utf-8.  Easiest to enter such texts is
293 by using a Unicode-aware editor, and save using utf-8 encoding.  Most
294 popular modern editors have utf-8 support, for example, vim, Emacs,
295 jEdit, and GEdit do.
296
297 Depending on the fonts installed, the following fragment shows Hebrew
298 and Cyrillic lyrics,
299
300 @cindex Cyrillic
301 @cindex Hebrew
302 @cindex ASCII, non
303
304 @lilypondfile[fontload]{utf-8.ly}
305
306 The @TeX{} backend does not handle encoding specially at all.  Strings
307 in the input are put in the output as-is.  Extents of text items in the
308 @TeX{} backend, are determined by reading a file created via the
309 @file{texstr} backend,
310
311 @example
312 lilypond -b texstr input/les-nereides.ly
313 latex les-nereides.texstr
314 @end example
315
316 The last command produces @file{les-nereides.textmetrics}, which is
317 read when you execute
318
319 @example
320 lilypond -b tex input/les-nereides.ly
321 @end example
322
323 Both @file{les-nereides.texstr} and @file{les-nereides.tex} need
324 suitable LaTeX wrappers to load appropriate La@TeX{} packages for
325 interpreting non-ASCII strings.
326
327
328 @seealso
329
330 @inputfileref{input/regression,utf-8.ly}
331
332
333 @node Nested scores
334 @subsection Nested scores
335
336 It is possible to nest music inside markups, by adding a @code{\score}
337 block to a markup expression.  Such a score must contain a @code{\layout}
338 block.
339
340 @lilypond[quote,verbatim,raggedright]
341 \relative {
342   c4 d^\markup {
343     \score {
344       \relative { c4 d e f }
345       \layout { }
346     }
347   }
348   e f
349 }
350 @end lilypond
351
352
353 @node Overview of text markup commands
354 @subsection Overview of text markup commands
355
356 The following commands can all be used inside @code{\markup @{ @}}.
357
358 @include markup-commands.tely
359
360
361 @node New dynamic marks
362 @subsection New dynamic marks
363
364 It is possible to print new dynamic marks or text that should be aligned
365 with dynamics.  Use @code{make-dynamic-script} to create these marks.
366
367 @cindex make-dynamic-script
368
369 @lilypond[quote,verbatim,raggedright]
370 sfzp = #(make-dynamic-script "sfzp")
371 \relative c' {
372   c4 c c\sfzp c
373 }
374 @end lilypond
375
376 @cindex Dynamics, editorial
377 @cindex Dynamics, parenthesis
378
379 It is also possible to print dynamics in round parenthesis or square
380 brackets.  These are often used for adding editorial dynamics.
381
382 @lilypond[quote,verbatim,raggedright]
383 rndf = \markup{ \center-align {\line { \bold{\italic (}
384   \dynamic f \bold{\italic )} }} }
385 boxf = \markup{ \bracket { \dynamic f } }
386 { c'1_\rndf c'1_\boxf }
387 @end lilypond
388
389
390 @node Other text markup issues
391 @subsection Other text markup issues
392
393 To use a normal font within a title, you must define it manually
394
395 @example
396 #(def-markup-command (normal-font layout props arg) (markup?)
397   "Switch to normal text font"
398   (interpret-markup layout (cons '((font-series . 'medium) (font-shape . 'upright)) props) arg))
399
400 \header@{
401   title = \markup@{ ABCD \normal-font ABCD @}
402 @}
403 @end example
404
405
406 @node Preparing parts
407 @section Preparing parts
408
409 This section describes various notation that are useful for preparing
410 individual parts.
411
412 @menu
413 * Multi measure rests::         
414 * Metronome marks::             
415 * Rehearsal marks::             
416 * Bar numbers::                 
417 * Instrument names::            
418 * Instrument transpositions::   
419 * Ottava brackets::             
420 * Different editions from one source::  
421 @end menu
422
423
424 @node Multi measure rests
425 @subsection Multi measure rests
426
427 @cindex multi measure rests
428 @cindex Rests, multi measure
429 @cindex whole rests for a full measure
430 @cindex @code{R}
431
432 Multi-measure rests are entered using `@code{R}'.  It is specifically
433 meant for full bar rests and for entering parts: the rest can expand
434 to fill a score with rests, or it can be printed as a single
435 multi-measure rest.  This expansion is controlled by the property
436 @code{Score.skipBars}.  If this is set to true, empty measures will not
437 be expanded, and the appropriate number is added automatically
438
439 @lilypond[quote,raggedright,fragment,verbatim]
440 \time 4/4 r1 | R1 | R1*2
441 \set Score.skipBars = ##t R1*17 R1*4
442 @end lilypond
443
444 The @code{1} in @code{R1} is similar to the duration notation used for
445 notes.  Hence, for time signatures other than 4/4, you must enter other
446 durations.  This can be done with augmentation dots or fractions
447
448 @lilypond[quote,raggedright,fragment,verbatim]
449 \set Score.skipBars = ##t
450 \time 3/4
451 R2. | R2.*2
452 \time 13/8
453 R1*13/8
454 R1*13/8*12 |
455 \time 10/8 R4*5*4 |
456 @end lilypond
457
458 An @code{R} spanning a single measure is printed as either a whole rest
459 or a breve, centered in the measure regardless of the time signature.
460
461 If there are only a few measures of rest, LilyPond prints ``church rests''
462 (a series of rectangles) in the staff.  To replace that with a simple
463 rest, use @code{MultiMeasureRest.expand-limit}.
464
465 @lilypond[quote,raggedright,fragment,verbatim]
466 \set Score.skipBars = ##t
467 R1*2 | R1*5 | R1*9
468 \override MultiMeasureRest #'expand-limit = 1
469 R1*2 | R1*5 | R1*9
470 @end lilypond
471
472 @cindex text on multi-measure rest
473 @cindex script on multi-measure rest
474 @cindex fermata on multi-measure rest
475
476 Texts can be added to multi-measure rests by using the
477 @var{note}-@code{markup} syntax @internalsref{Text markup}.
478 A variable (@code{\fermataMarkup}) is provided for
479 adding fermatas
480
481 @lilypond[quote,raggedright,verbatim,fragment]
482 \set Score.skipBars = ##t
483 \time 3/4
484 R2.*10^\markup { \italic "ad lib." }
485 R2.^\fermataMarkup
486 @end lilypond
487
488 If you want to have text on the left end of a multi-measure rest,
489 attach the text to a zero-length skip note, i.e.,
490
491 @example
492 s1*0^"Allegro"
493 R1*4
494 @end example
495
496
497 @seealso
498
499 Program reference: @internalsref{MultiMeasureRestMusicGroup},
500 @internalsref{MultiMeasureRest}.
501
502 The layout object @internalsref{MultiMeasureRestNumber} is for the
503 default number, and @internalsref{MultiMeasureRestText} for user
504 specified texts.
505
506
507 @refbugs
508
509 It is not possible to use fingerings (e.g., @code{R1-4}) to put numbers
510 over multi-measure rests.  And the pitch of multi-measure rests (or
511 staff-centered rests) can not be influenced.
512
513 @cindex condensing rests
514
515 There is no way to automatically condense multiple rests into a single
516 multi-measure rest.  Multi-measure rests do not take part in rest
517 collisions.
518
519 Be careful when entering multi-measure rests followed by whole
520 notes.  The following will enter two notes lasting four measures each
521 @example
522 R1*4 cis cis
523 @end example
524 When @code{skipBars} is set, the result will look OK, but the bar
525 numbering will be off.
526
527
528 @node Metronome marks
529 @subsection Metronome marks
530
531 @cindex Tempo
532 @cindex beats per minute
533 @cindex metronome marking
534
535 Metronome settings can be entered as follows
536 @example
537 \tempo @var{duration} = @var{per-minute}
538 @end example
539
540 In the MIDI output, they are interpreted as a tempo change.  In the
541 layout output, a metronome marking is printed
542 @cindex @code{\tempo}
543 @lilypond[quote,raggedright,verbatim,fragment]
544 \tempo 8.=120 c''1
545 @end lilypond
546
547
548 @commonprop
549
550 To change the tempo in the MIDI output without printing anything, make
551 the metronome marking invisible
552 @example
553 \once \override Score.MetronomeMark #'transparent = ##t
554 @end example
555
556 To print other metronome markings, use these markup commands
557 @lilypond[quote,raggedright,verbatim,relative,fragment]
558 c4^\markup {
559   "("
560   \smaller \general-align #Y #DOWN \note #"16." #1
561   "="
562   \smaller \general-align #Y #DOWN \note #"8" #1"
563   ")" }
564 @end lilypond
565
566 @noindent
567 See @ref{Text markup} for more details.
568
569
570 @seealso
571
572 Program reference: @internalsref{MetronomeMark}.
573
574
575 @refbugs
576
577 Collisions are not checked.  If you have notes above the top line of
578 the staff (or notes with articulations, slurs, text, etc), then the
579 metronome marking may be printed on top of musical symbols.  If this
580 occurs, increase the padding of the metronome mark to place it 
581 further away from the staff.
582
583 @example
584 \override Score.MetronomeMark #'padding = #2.5
585 @end example
586
587
588 @node Rehearsal marks
589 @subsection Rehearsal marks
590
591 @cindex Rehearsal marks
592 @cindex @code{\mark}
593
594 To print a rehearsal mark, use the @code{\mark} command
595
596 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
597 c1 \mark \default
598 c1 \mark \default
599 c1 \mark #8
600 c1 \mark \default
601 c1 \mark \default
602 @end lilypond
603
604 @noindent
605 (The letter@tie{}`I' is skipped in accordance with engraving traditions.)
606
607 The mark is incremented automatically if you use @code{\mark
608 \default}, but you can also use an integer argument to set the mark
609 manually.  The value to use is stored in the property
610 @code{rehearsalMark}.
611
612 The style is defined by the property @code{markFormatter}.  It is a
613 function taking the current mark (an integer) and the current context
614 as argument.  It should return a markup object.  In the following
615 example, @code{markFormatter} is set to a canned procedure.  After a
616 few measures, it is set to function that produces a boxed number.
617
618 @lilypond[fragment,quote,raggedright,verbatim,relative=2]
619 \set Score.markFormatter = #format-mark-numbers
620 c1 \mark \default
621 c1 \mark \default
622 \set Score.markFormatter = #format-mark-box-numbers
623 c1 \mark \default
624 c1 \mark \default
625 c1
626 @end lilypond
627
628 The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
629 of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
630 @code{format-mark-letters} and @code{format-mark-box-letters}.
631 These can be used as inspiration for other formatting functions.
632
633
634 @seealso
635
636 Program reference: @internalsref{RehearsalMark}.
637
638 Init files: @file{scm/@/translation@/-functions@/.scm} contains the
639 definition of @code{format-mark-numbers} and
640 @code{format-mark-letters}.  They can be used as inspiration for other
641 formatting functions.
642
643 Examples: @inputfileref{input/@/regression,rehearsal@/-mark@/-letter@/.ly},
644
645 @inputfileref{input/@/regression,rehearsal@/-mark@/-number@/.ly}.
646
647
648 @node Bar numbers
649 @subsection Bar numbers
650
651 @cindex Bar numbers
652 @cindex measure numbers
653 @cindex @code{currentBarNumber}
654
655 Bar numbers are printed by default at the start of the line.  The
656 number itself is stored in the @code{currentBarNumber} property, which
657 is normally updated automatically for every measure.
658
659 Bar numbers can be typeset at regular intervals instead of at the
660 beginning of each line.  This is illustrated in the following example,
661 whose source is available as
662 @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}
663
664 @lilypondfile[raggedright,quote]{bar-number-regular-interval.ly}
665
666 Bar numbers can be typeset manually by tweaking the
667 @code{markFormatter} property
668
669 @lilypond[verbatim,raggedright,quote]
670 \relative c' {
671   \set Score.markFormatter
672     = #(lambda (mark context)
673       (make-bold-markup
674         (make-box-markup
675           (number->string (ly:context-property context
676                                                'currentBarNumber)))))
677
678   c1 \bar "||" \mark \default c1 c1 \mark \default c1 \bar "|."
679 }
680 @end lilypond
681
682 Bar numbers can be manually changed by setting the
683 @code{Staff.currentBarNumber} property
684
685 @lilypond[verbatim,raggedright,quote]
686 \relative c' {
687   \repeat unfold 4 {c4 c c c} \break
688   \set Score.currentBarNumber = #50
689   \repeat unfold 4 {c4 c c c}
690 }
691 @end lilypond
692
693
694 @seealso
695
696 Program reference: @internalsref{BarNumber}.
697
698 Examples:
699 @inputfileref{input/@/test,bar@/-number@/-every@/-five@/-reset@/.ly},
700 and @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}.
701
702
703 @refbugs
704
705 Bar numbers can collide with the @internalsref{StaffGroup} bracket, if
706 there is one at the top.  To solve this, the
707 @code{padding} property of @internalsref{BarNumber} can be
708 used to position the number correctly.
709
710
711 @node Instrument names
712 @subsection Instrument names
713
714 In an orchestral score, instrument names are printed at the left side
715 of the staves.
716
717 This can be achieved by setting @internalsref{Staff}.@code{instrument}
718 and @internalsref{Staff}.@code{instr}.  This will print a string before
719 the start of the staff.  For the first staff, @code{instrument} is
720 used, for the following ones, @code{instr} is used.
721
722 @lilypond[quote,verbatim,raggedright,relative=1,fragment]
723 \set Staff.instrument = "Ploink "
724 \set Staff.instr = "Plk "
725 c1
726 \break
727 c''
728 @end lilypond
729
730 You can also use markup texts to construct more complicated instrument
731 names, for example
732
733 @lilypond[quote,fragment,verbatim,raggedright]
734 \set Staff.instrument = \markup {
735   \column { "Clarinetti"
736             \line { "in B" \smaller \flat } } }
737 c''1
738 @end lilypond
739
740 For longer instrument names, it may be useful to increase the
741 @code{indent} setting in the @code{\layout} block.
742
743 @seealso
744
745 Program reference: @internalsref{InstrumentName}.
746
747 @refbugs
748
749 When you put a name on a grand staff or piano staff, the width of the
750 brace is not taken into account.  You must add extra spaces to the end of
751 the name to avoid a collision.
752
753
754 @node Instrument transpositions
755 @subsection Instrument transpositions
756
757 @cindex transposition, MIDI
758 @cindex transposition, instrument
759
760 The key of a transposing instrument can also be specified.  This
761 applies to many wind instruments, for example, clarinets (B-flat, A, and
762 E-flat), horn (F) and trumpet (B-flat, C, D, and E-flat).
763
764 The transposition is entered after the keyword @code{\transposition}
765
766 @example
767 \transposition bes   %% B-flat clarinet
768 @end example
769
770 @noindent
771 This command sets the property @code{instrumentTransposition}.  The value of
772 this property is used for MIDI output and quotations.  It does not
773 affect how notes are printed in the current staff.  To change the printed
774 output, see @ref{Transpose}.
775
776 The pitch to use for @code{\transposition} should correspond to the
777 transposition of the notes.  For example, when entering a score in
778 concert pitch, typically all voices are entered in C, so
779 they should be entered as
780
781 @example
782 clarinet = @{
783   \transposition c'
784   ...
785 @}
786 saxophone = @{
787   \transposition c'
788   ...
789 @}
790 @end example
791
792 The command @code{\transposition} should be used when the music is
793 entered from a (transposed) orchestral part.  For example, in
794 classical horn parts, the tuning of the instrument is often changed
795 during a piece.  When copying the notes from the part, use
796 @code{\transposition}, e.g.,
797
798 @example
799 \transposition d'
800 c'4^"in D"
801 ...
802 \transposition g'
803 c'4^"in G"
804 ...
805 @end example
806
807
808 @node Ottava brackets
809 @subsection Ottava brackets
810
811 `Ottava' brackets introduce an extra transposition of an octave for
812 the staff.  They are created by invoking the function
813 @code{set-octavation}
814
815 @cindex ottava
816 @cindex 15ma
817 @cindex octavation
818
819 @lilypond[quote,raggedright,verbatim,fragment]
820 \relative c''' {
821   a2 b
822   #(set-octavation 1)
823   a b
824   #(set-octavation 0)
825   a b
826 }
827 @end lilypond
828
829 The @code{set-octavation} function also takes -1 (for 8va bassa) and 2
830 (for 15ma) as arguments.  Internally the function sets the properties
831 @code{ottavation} (e.g., to @code{"8va"}) and
832 @code{centralCPosition}.  For overriding the text of the bracket, set
833 @code{ottavation} after invoking @code{set-octavation}, i.e.,
834
835 @lilypond[quote,raggedright,verbatim]
836 {
837   #(set-octavation 1)
838   \set Staff.ottavation = #"8"
839   c'''
840 }
841 @end lilypond
842
843
844 @seealso
845
846 Program reference: @internalsref{OttavaBracket}.
847
848 Examples: @inputfileref{input/@/regression,ottava@/.ly},
849 @inputfileref{input/@/regression,ottava@/-broken@/.ly}.
850
851
852 @refbugs
853
854 @code{set-octavation} will get confused when clef changes happen
855 during an octavation bracket.
856
857
858 @node Different editions from one source
859 @subsection Different editions from one source
860
861 @cindex @code{\tag}
862 @cindex tag
863
864 The @code{\tag} command marks music expressions with a name.  These
865 tagged expressions can be filtered out later.  With this mechanism it
866 is possible to make different versions of the same music source.
867
868 In the following example, we see two versions of a piece of music, one
869 for the full score, and one with cue notes for the instrumental part
870
871 @example
872 c1
873 <<
874   \tag #'part <<
875     R1 \\
876     @{
877       \set fontSize = #-1
878       c4_"cue" f2 g4 @}
879   >>
880   \tag #'score R1
881 >>
882 c1
883 @end example
884
885 The same can be applied to articulations, texts, etc.: they are
886 made by prepending
887 @example
888 -\tag #@var{your-tag}
889 @end example
890 to an articulation, for example,
891 @example
892 c1-\tag #'part ^4
893 @end example
894
895 This defines a note with a conditional fingering indication.
896
897 @cindex keepWithTag
898 @cindex removeWithTag
899 By applying the @code{\keepWithTag} and @code{\removeWithTag}
900 commands, tagged expressions can be filtered.  For example,
901 @example
902 <<
903   @var{the music}
904   \keepWithTag #'score @var{the music}
905   \keepWithTag #'part @var{the music}
906 >>
907 @end example
908 would yield
909
910 @lilypondfile[raggedright,quote]{tag-filter.ly}
911
912 The argument of the @code{\tag} command should be a symbol, or a list
913 of symbols, for example,
914 @example
915 \tag #'(original-part transposed-part) @dots{}
916 @end example
917
918
919 @seealso
920
921 Examples: @inputfileref{input/@/regression,tag@/-filter@/.ly}.
922
923
924 @refbugs
925
926 Multiple rests are not merged if you create the score with both tagged
927 sections.
928  
929
930
931 @node Orchestral music
932 @section Orchestral music
933
934 Orchestral music involves some special notation, both in the full
935 score and the individual parts.  This section explains how to tackle
936 some common problems in orchestral music.
937
938 @menu
939 * Automatic part combining::    
940 * Hiding staves::               
941 * Quoting other voices::        
942 * Formatting cue notes::        
943 * Aligning to cadenzas::        
944 @end menu
945
946
947 @node Automatic part combining
948 @subsection Automatic part combining
949 @cindex automatic part combining
950 @cindex part combiner
951
952 Automatic part combining is used to merge two parts of music onto a
953 staff.  It is aimed at typesetting orchestral scores.  When the two
954 parts are identical for a period of time, only one is shown.  In
955 places where the two parts differ, they are typeset as separate
956 voices, and stem directions are set automatically.  Also, solo and
957 @emph{a due} parts are identified and can be marked.
958
959 The syntax for part combining is
960
961 @example
962 \partcombine @var{musicexpr1} @var{musicexpr2}
963 @end example
964
965
966 The following example demonstrates the basic functionality of the part
967 combiner: putting parts on one staff, and setting stem directions and
968 polyphony
969
970 @lilypond[quote,verbatim,raggedright,fragment]
971 \new Staff \partcombine
972   \relative g' { g g a( b) c c r r }
973   \relative g' { g g r4 r e e g g }
974 @end lilypond
975
976 The first @code{g} appears only once, although it was
977 specified twice (once in each part).  Stem, slur, and tie directions are
978 set automatically, depending whether there is a solo or unisono.  The
979 first part (with context called @code{one}) always gets up stems, and
980 `Solo', while the second (called @code{two}) always gets down stems and
981 `Solo II'.
982
983 If you just want the merging parts, and not the textual markings, you
984 may set the property @code{printPartCombineTexts} to false
985
986 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
987 \new Staff <<
988   \set Staff.printPartCombineTexts = ##f
989   \partcombine
990     \relative g' { g a( b) r }
991     \relative g' { g r4 r f }
992 >>
993 @end lilypond
994
995 To change the text that is printed for solos or merging, you may
996 set the @code{soloText}, @code{soloIIText}, and @code{aDueText}
997 properties.
998
999 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
1000 \new Staff <<
1001   \set Score.soloText = #"ichi"
1002   \set Score.soloIIText = #"ni"
1003   \set Score.aDueText = #"tachi"
1004   \partcombine
1005     \relative g' { g4 g a( b) r }
1006     \relative g' { g4 g r r f }
1007 >>
1008 @end lilypond
1009
1010 Both arguments to @code{\partcombine} will be interpreted as
1011 @internalsref{Voice} contexts.  If using relative octaves,
1012 @code{\relative} should be specified for both music expressions, i.e.,
1013
1014 @example
1015 \partcombine
1016   \relative @dots{} @var{musicexpr1}
1017   \relative @dots{} @var{musicexpr2}
1018 @end example
1019
1020 @noindent
1021 A @code{\relative} section that is outside of @code{\partcombine} has
1022 no effect on the pitches of @var{musicexpr1} and @var{musicexpr2}.
1023
1024 @seealso
1025
1026 Program reference: @internalsref{PartCombineMusic}.
1027
1028 @refbugs
1029
1030 When @code{printPartCombineTexts} is set, when the two voices play the
1031 same notes on and off, the part combiner may typeset @code{a2} more
1032 than once in a measure.
1033
1034 @code{\partcombine} cannot be inside @code{\times}.
1035
1036 @code{\partcombine} cannot be inside @code{\relative}.
1037
1038 Internally, the @code{\partcombine} interprets both arguments as
1039 @code{Voice}s named @code{one} and @code{two}, and then decides when
1040 the parts can be combined.  Consequently, if the arguments switch to
1041 differently named @internalsref{Voice} contexts, the events in those
1042 will be ignored.
1043
1044
1045 @node Hiding staves
1046 @subsection Hiding staves
1047
1048 @cindex Frenched scores
1049 @cindex Hiding staves
1050
1051 In orchestral scores, staff lines that only have rests are usually
1052 removed; this saves some space.  This style is called `French Score'.
1053 For @internalsref{Lyrics},
1054 @internalsref{ChordNames} and @internalsref{FiguredBass}, this is
1055 switched on by default.  When the lines of these contexts turn out
1056 empty after the line-breaking process, they are removed.
1057
1058 For normal staves, a specialized @internalsref{Staff} context is
1059 available, which does the same: staves containing nothing (or only
1060 multi-measure rests) are removed.  The context definition is stored in
1061 @code{\RemoveEmptyStaffContext} variable.  Observe how the second staff
1062 in this example disappears in the second line
1063
1064 @lilypond[quote,raggedright,verbatim]
1065 \layout {
1066   \context { \RemoveEmptyStaffContext }
1067 }
1068
1069 {
1070   \relative c' <<
1071     \new Staff { e4 f g a \break c1 }
1072     \new Staff { c4 d e f \break R1 }
1073   >>
1074 }
1075 @end lilypond
1076
1077 The first system shows all staves in full.  If empty staves should be
1078 removed from the first system too, set @code{remove-first} to true in
1079 @internalsref{RemoveEmptyVerticalGroup}.
1080
1081 @example
1082 \override Score.RemoveEmptyVerticalGroup #'remove-first = ##t
1083 @end example
1084
1085 To remove other types of contexts, use @code{\AncientRemoveEmptyStaffContext}
1086 or @code{\RemoveEmptyRhythmicStaffContext}.
1087
1088 Another application is making ossia sections, i.e., alternative
1089 melodies on a separate piece of staff, with help of a Frenched
1090 staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
1091
1092
1093 @node Quoting other voices
1094 @subsection Quoting other voices
1095
1096 With quotations, fragments of other parts can be inserted into a part
1097 directly.  Before a part can be quoted, it must be marked especially as
1098 quotable.  This is done with the @code{\addquote} command.
1099
1100 @example
1101 \addquote @var{name} @var{music}
1102 @end example
1103
1104
1105 @noindent
1106 Here, @var{name} is an identifying string.  The @var{music} is any kind
1107 of music.  Here is an example of @code{\addquote}
1108
1109 @example
1110 \addquote clarinet \relative c' @{
1111   f4 fis g gis
1112 @}
1113 @end example
1114
1115 This command must be entered at toplevel, i.e., outside any music
1116 blocks.
1117
1118 After calling @code{\addquote}, the quotation may then be done with
1119 @code{\quoteDuring} or @code{\cueDuring},
1120
1121 @example
1122 \quoteDuring #@var{name} @var{music}
1123 @end example
1124
1125 During a part, a piece of music can be quoted with the @code{\quoteDuring}
1126 command.
1127
1128 @example
1129 \quoteDuring #"clarinet" @{ s2. @}
1130 @end example
1131
1132 This would cite three quarter notes (the duration of @code{s2.})  of
1133 the previously added @code{clarinet} voice.
1134
1135
1136 More precisely, it takes the current time-step of the part being
1137 printed, and extracts the notes at the corresponding point of the
1138 @code{\addquote}d voice.  Therefore, the argument to @code{\addquote}
1139 should be the entire part of the voice to be quoted, including any
1140 rests at the beginning.
1141
1142 Quotations take into account the transposition of both source and target
1143 instruments, if they are specified using the @code{\transposition} command.
1144
1145 @lilypond[quote,raggedright,verbatim]
1146 \addquote clarinet \relative c' {
1147   \transposition bes
1148   f4 fis g gis
1149 }
1150
1151 {
1152   e'8 f'8 \quoteDuring #"clarinet" { s2 }
1153 }
1154 @end lilypond
1155
1156 The type of events that are present in cue notes can be trimmed with
1157 the @code{quotedEventTypes} property.  The default value is
1158 @code{(note-event rest-event)}, which means that only notes and
1159 rests of the cued voice end up in the @code{\quoteDuring}.
1160 Setting
1161
1162 @example
1163 \set Staff.quotedEventTypes =
1164        #'(note-event articulation-event dynamic-event)
1165 @end example
1166
1167 @noindent
1168 will quote notes (but no rests), together with scripts and dynamics.
1169
1170 @refbugs
1171
1172 Only the contents of the first @internalsref{Voice} occurring in an
1173 @code{\addquote} command will be considered for quotation, so
1174 @var{music} can not contain @code{\new} and @code{\context Voice}
1175 statements that would switch to a different Voice.
1176
1177 Quoting grace notes is broken and can even cause LilyPond to crash.
1178
1179 @seealso
1180
1181 In this manual: @ref{Instrument transpositions}.
1182
1183 Examples: @inputfileref{input/@/regression,quote@/.ly}
1184 @inputfileref{input/@/regression,quote@/-transposition@/.ly}
1185
1186 Program reference: @internalsref{QuoteMusic}.
1187
1188
1189 @node Formatting cue notes
1190 @subsection Formatting cue notes
1191
1192 The previous section deals with inserting notes from another voice.
1193 There is a more advanced music function called @code{\cueDuring},
1194 which makes formatting cue notes easier.
1195
1196 The syntax is
1197
1198 @example
1199   \cueDuring #@var{name} #@var{updown} @var{music}
1200 @end example
1201
1202 This will insert notes from the part @var{name} into a
1203 @internalsref{Voice} called @code{cue}.  This happens simultaneously
1204 with @var{music}, which usually is a rest.  When the cue notes start,
1205 the staff in effect becomes polyphonic for a moment.  The argument
1206 @var{updown} determines whether the cue notes should be notated as a
1207 first or second voice.
1208
1209
1210 @lilypond[verbatim,raggedright]
1211 smaller = {
1212   \set fontSize = #-2
1213   \override Stem #'length = #5.5
1214   \override Beam #'thickness = #0.384
1215   \override Beam #'space-function =
1216     #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
1217 }
1218
1219 \addquote clarinet \relative {
1220   R1*20
1221   r2 r8 c f f
1222
1223
1224 \new Staff \relative  <<
1225
1226   % setup a context for  cue  notes.
1227   \context Voice = cue { \smaller \skip 1*21 }
1228   
1229   \set Score.skipBars = ##t
1230   
1231   \new Voice {
1232     R1*20
1233     \cueDuring #"clarinet" #1 {
1234       R1
1235     }
1236     g4 g2. 
1237   }
1238 >>
1239 @end lilypond 
1240
1241
1242 Here are a couple of hints for successful cue notes
1243
1244 @itemize @bullet
1245 @item
1246 Cue notes have smaller font sizes.
1247 @item
1248  the cued part is marked with the instrument playing the cue.
1249 @item
1250  when the original part takes over again, this should be marked with
1251  the name of the original instrument.
1252
1253  @c really?  Are you sure about that last point?  I'll check after 3.0 -gp
1254
1255 @c Yes, this is good practice.  Otherwise, the start of the original
1256 @c part can only be seen from the font size.  This is not good enough
1257 @c for sight-reading.  It is possilbe to use other
1258 @c markers (eg. a big close-bracket over the staff) to indicate the cue notes are
1259 @c finished.
1260 @c -hwn
1261
1262
1263  any other changes introduced by the cued part should also be
1264 undone.  For example, if the cued instrument plays in a different clef,
1265 the original clef should be stated once again.
1266
1267 @end itemize
1268
1269
1270 @node Aligning to cadenzas
1271 @subsection Aligning to cadenzas
1272
1273 In an orchestral context, cadenzas present a special problem:
1274 when constructing a score that includes a cadenza, all other
1275 instruments should skip just as many notes as the length of the
1276 cadenza, otherwise they will start too soon or too late.
1277
1278 A solution to this problem are the functions @code{mmrest-of-length}
1279 and @code{skip-of-length}.  These Scheme functions take a piece of music
1280 as argument, and generate a @code{\skip} or multi-rest, exactly as
1281 long as the piece.  The use of @code{mmrest-of-length} is demonstrated
1282 in the following example.
1283
1284 @lilypond[verbatim,raggedright,quote]
1285 cadenza = \relative c' {
1286   c4 d8 << { e f g } \\ { d4. } >>
1287   g4 f2 g4 g
1288 }
1289
1290 \new GrandStaff <<
1291   \new Staff { \cadenza c'4 }
1292   \new Staff {
1293     #(ly:export (mmrest-of-length cadenza))
1294     c'4
1295   }
1296 >>
1297 @end lilypond
1298
1299
1300
1301
1302 @node Contemporary notation
1303 @section Contemporary notation
1304
1305 In the 20th century, composers have greatly expanded the musical
1306 vocabulary.  With this expansion, many innovations in musical notation
1307 have been tried.  The book ``Music Notation in the 20th century'' by
1308 Kurt Stone gives a comprehensive overview (see @ref{Literature
1309 list}).  In general, the use of new, innovative notation makes a piece
1310 harder to understand and perform and its use should therefore be
1311 avoided.  For this reason, support for contemporary notation in
1312 LilyPond is limited.
1313
1314
1315 @menu
1316 * Polymetric notation::         
1317 * Clusters::                    
1318 * Special fermatas::            
1319 * Feathered beams::             
1320 * Improvisation::               
1321 @end menu
1322
1323 @node Polymetric notation
1324 @subsection Polymetric notation
1325
1326 Double time signatures are not supported explicitly, but they can be
1327 faked.  In the next example, the markup for the time signature is
1328 created with a markup text.  This markup text is inserted in the
1329 @internalsref{TimeSignature} grob.
1330
1331 @lilypond[verbatim,raggedright]
1332 % create 2/4 + 5/8
1333 tsMarkup =\markup {
1334   \number {
1335     \column { "2" "4" }
1336     \musicglyph #"scripts.stopped"
1337     \bracket \column { "5" "8" }
1338   }
1339 }
1340
1341 {
1342   \override Staff.TimeSignature #'print-function = #Text_interface::print
1343   \override Staff.TimeSignature #'text = #tsMarkup
1344   \time 3/2
1345   c'2 \bar ":" c'4 c'4.
1346 }
1347 @end lilypond
1348
1349 Each staff can also have its own time signature.  This is done by
1350 moving the @internalsref{Timing_engraver} to the @internalsref{Staff}
1351 context.
1352
1353 @example
1354 \layout @{
1355   \context @{ \Score \remove "Timing_engraver" @}
1356   \context @{ \Staff \consists "Timing_engraver" @}
1357 @}
1358 @end example
1359
1360
1361 Now, each staff has its own time signature.
1362 @example
1363 <<
1364   \new Staff @{
1365     \time 3/4
1366     c4 c c | c c c |
1367   @}
1368   \new Staff @{
1369     \time 2/4
1370     c4 c | c c | c c
1371   @}
1372   \new Staff @{
1373     \time 3/8
1374     c4. c8 c c c4. c8 c c
1375   @}
1376 >>
1377 @end example
1378
1379 @lilypond[quote,raggedright]
1380 \layout{
1381   \context{ \Score \remove "Timing_engraver" }
1382   \context{ \Staff \consists "Timing_engraver" }
1383 }
1384
1385 \relative c' <<
1386   \new Staff {
1387     \time 3/4
1388     c4 c c | c c c |
1389   }
1390   \new Staff {
1391     \time 2/4
1392     c4 c | c c | c c
1393   }
1394   \new Staff {
1395     \time 3/8
1396     c4. c8 c c c4. c8 c c
1397   }
1398 >>
1399 @end lilypond
1400
1401
1402 A different form of polymetric notation is where note lengths have
1403 different values across staves.
1404
1405 This notation can be created by setting a common time signature for
1406 each staff but replacing it manually using
1407 @code{timeSignatureFraction} to the desired fraction.  Then the printed
1408 durations in each staff are scaled to the common time signature.
1409 The latter is done with @code{\compressmusic}, which is similar to
1410 @code{\times}, but does not create a tuplet bracket.
1411
1412
1413 In this example, music with the time signatures of 3/4, 9/8, and 10/8 are
1414 used in parallel.  In the second staff, shown durations are multiplied by
1415 2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
1416 multiplied by 3/5, so that 3/5 * 10/8 = 3/4.
1417
1418 @lilypond[quote,raggedright,verbatim,fragment]
1419 \relative c' { <<
1420   \new Staff {
1421     \time 3/4
1422     c4 c c | c c c |
1423   }
1424   \new Staff {
1425     \time 3/4
1426     \set Staff.timeSignatureFraction = #'(9 . 8)
1427     \compressmusic #'(2 . 3)
1428       \repeat unfold 6 { c8[ c c] }
1429   }
1430   \new Staff {
1431     \time 3/4
1432     \set Staff.timeSignatureFraction = #'(10 . 8)
1433     \compressmusic #'(3 . 5) {
1434       \repeat unfold 2 { c8[ c c] }
1435       \repeat unfold 2 { c8[ c] }
1436       | c4. c4. \times 2/3 { c8 c c } c4
1437     }
1438   }
1439 >> }
1440 @end lilypond
1441
1442
1443
1444
1445 @refbugs
1446
1447 When using different time signatures in parallel, the spacing is
1448 aligned vertically, but bar lines distort the regular spacing.
1449
1450
1451
1452 @node Clusters
1453 @subsection Clusters
1454
1455 @cindex cluster
1456
1457 A cluster indicates a continuous range of pitches to be played.  They
1458 can be denoted as the envelope of a set of notes.  They are entered by
1459 applying the function @code{makeClusters} to a sequence of
1460 chords, e.g.,
1461 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
1462 \makeClusters { <c e > <b f'> }
1463 @end lilypond
1464
1465 The following example (from
1466 @inputfileref{input/@/regression,cluster@/.ly}) shows what the result
1467 looks like
1468
1469 @lilypondfile[raggedright,quote]{cluster.ly}
1470
1471 Ordinary notes and clusters can be put together in the same staff,
1472 even simultaneously.  In such a case no attempt is made to
1473 automatically avoid collisions between ordinary notes and clusters.
1474
1475 @seealso
1476
1477 Program reference: @internalsref{ClusterSpanner},
1478 @internalsref{ClusterSpannerBeacon},
1479 @internalsref{Cluster_spanner_engraver}.
1480
1481 Examples: @inputfileref{input/@/regression,cluster@/.ly}.
1482
1483 @refbugs
1484
1485 Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
1486 accurately.  Use @code{<g a>8 <e a>8} instead.
1487
1488
1489
1490 @node Special fermatas
1491 @subsection Special fermatas
1492
1493 @cindex fermatas, special
1494
1495 In contemporary music notation, special fermata symbols denote breaks
1496 of differing lengths.  The following fermatas are supported
1497
1498 @lilypond[quote,raggedright]
1499 <<
1500   \oldaddlyrics {
1501     b'2
1502     ^\shortfermata
1503     _\shortfermata
1504     r
1505
1506     b'
1507     ^\fermata
1508     _\fermata
1509     r
1510
1511     b'
1512     ^\longfermata
1513     _\longfermata
1514     r
1515
1516     b'
1517     ^\verylongfermata
1518     _\verylongfermata
1519     r
1520   }
1521   \context Lyrics \lyricmode {
1522     \override LyricText #'font-family = #'typewriter
1523     "shortfermata" "fermata" "longfermata" "verylongfermata"
1524   }
1525 >>
1526 @end lilypond
1527
1528 See @ref{Articulations} for general instructions how to apply scripts
1529 such as fermatas to notes.
1530
1531 @node Feathered beams
1532 @subsection Feathered beams
1533
1534 Feathered beams are not supported natively, but they can be faked by
1535 forcing two beams to overlap.  Here is an example,
1536
1537 @c don't change relative setting witout changing positions!
1538 @lilypond[raggedright,relative=1,fragment,verbatim]
1539 \new Staff <<
1540   \new Voice
1541   {
1542     \stemUp
1543     \once \override Voice.Beam #'positions = #'(0 . 0.5)
1544     c8[ c c c c ]
1545   }
1546   \new Voice {
1547     \stemUp
1548     \once \override Voice.Beam #'positions = #'(0 . -0.5)
1549     c[ c c c c]
1550   }
1551 >>
1552 @end lilypond
1553
1554
1555 @node Improvisation
1556 @subsection Improvisation
1557
1558 Improvisation is sometimes denoted with slashed note heads.  Such note
1559 heads can be created by adding a @internalsref{Pitch_squash_engraver}
1560 to the @internalsref{Staff} or @internalsref{Voice} context.  Then, the
1561 following command
1562
1563 @example
1564 \set squashedPosition = #0
1565 \override NoteHead #'style = #'slash
1566 @end example
1567
1568 @noindent
1569 switches on the slashes.
1570
1571 There are shortcuts @code{\improvisationOn} (and an accompanying
1572 @code{\improvisationOff}) for this command sequence.  They are used in
1573 the following example
1574
1575 @lilypond[verbatim,raggedright,quote]
1576 \new Staff \with {
1577   \consists Pitch_squash_engraver
1578 } \transpose c c' {
1579   e8 e g a a16(bes)(a8) g \improvisationOn
1580   e8
1581   ~e2~e8 f4 fis8
1582   ~fis2 \improvisationOff a16(bes) a8 g e
1583 }
1584 @end lilypond
1585
1586
1587 @node Educational use
1588 @section Educational use
1589
1590 With the amount of control that LilyPond offers, one can make great
1591 teaching tools in addition to great musical scores.
1592
1593 @menu
1594 * Balloon help::                
1595 * Blank music sheet::           
1596 * Hidden notes::                
1597 * Shaped note heads ::          
1598 * Easy Notation note heads::    
1599 * Analysis brackets::           
1600 * Coloring objects::            
1601 @end menu
1602
1603 @node Balloon help
1604 @subsection Balloon help
1605
1606 Elements of notation can be marked and named with the help of a square
1607 balloon.  The primary purpose of this feature is to explain notation.
1608
1609 The following example demonstrates its use.
1610
1611 @lilypond[quote,verbatim,fragment,raggedright,relative=2]
1612 \context Voice {
1613   \applyoutput
1614     #(add-balloon-text 'NoteHead "heads, or tails?"
1615     '(1 . -3))
1616   c8
1617 }
1618 @end lilypond
1619
1620 @noindent
1621 The function @code{add-balloon-text} takes the name of a grob, the
1622 label to print, and the position where to put the label relative to
1623 the object.  In the above example, the text ``heads or tails?'' ends
1624 3 spaces below and 1 space to the right of the marked head.
1625
1626 @cindex balloon
1627 @cindex notation, explaining
1628
1629 @seealso
1630
1631 Program reference: @internalsref{text-balloon-interface}.
1632
1633 Examples: @inputfileref{input/@/regression,balloon@/.ly}.
1634
1635
1636
1637
1638 @node Blank music sheet
1639 @subsection Blank music sheet
1640
1641 A blank music sheet can be produced also by using invisible notes, and
1642 removing @code{Bar_number_engraver}.
1643
1644
1645 @lilypond[quote,verbatim]
1646 emptymusic = {
1647   \repeat unfold 2 % Change this for more lines.
1648   { s1\break }
1649   \bar "|."
1650 }
1651 \new Score \with {
1652   \override TimeSignature #'transparent = ##t
1653   defaultBarType = #""
1654   \remove Bar_number_engraver
1655 } <<
1656   \context Staff \emptymusic
1657   \context TabStaff \emptymusic
1658 >>
1659 @end lilypond
1660
1661
1662 @node Hidden notes
1663 @subsection Hidden notes
1664
1665 @cindex Hidden notes
1666 @cindex Invisible notes
1667 @cindex Transparent notes
1668
1669 @cindex @code{\hideNotes}
1670 @cindex @code{\unHideNotes}
1671 Hidden (or invisible or transparent) notes can be useful in preparing theory
1672 or composition exercises.
1673
1674 @lilypond[quote,raggedright,verbatim,relative=2,fragment]
1675 c4 d4
1676 \hideNotes
1677 e4 f4
1678 \unHideNotes
1679 g4 a
1680 @end lilypond
1681
1682 Hidden notes are also great for performing weird tricks.  For example,
1683 slurs cannot be attached to rests or spacer rests, but you may wish
1684 to include that in your score -- string instruments use this notation
1685 when doing pizzicato to indicate that the note should ring for as long
1686 as possible.
1687
1688 @lilypond[quote,raggedright,verbatim,relative=0,fragment]
1689 \clef bass
1690 << {
1691   c4^"pizz"( \hideNotes c)
1692   \unHideNotes c( \hideNotes c)
1693 } {
1694   s4 r s r
1695 } >>
1696 @end lilypond
1697
1698
1699 @node Shaped note heads 
1700 @subsection Shaped note heads 
1701
1702 In shaped note head notation, the shape of the note head corresponds
1703 to the harmonic function of a note in the scale.  This notation was
1704 popular in the 19th century American song books.
1705
1706 Shaped note heads can be produced by setting @code{\aikenHeads} or
1707 @code{\sacredHarpHeads}, depending on the style desired.
1708
1709 @lilypond[verbatim,relative=1,fragment]
1710   \aikenHeads
1711   c8 d4 e8 a2 g1
1712   \sacredHarpHeads
1713   c8 d4. e8 a2 g1
1714 @end lilypond
1715
1716 Shapes are determined on the step in the scale, where the base of the
1717 scale is determined by  the @code{\key} command
1718
1719 @findex \key
1720 @findex shapeNoteStyles
1721 @findex \aikenHeads
1722 @findex \sacredHarpHeads
1723
1724 Shaped note heads are implemented through the @code{shapeNoteStyles}
1725 property.  Its value is a vector of symbols.  The k-th element indicates
1726 the style to use for the k-th step of the scale.  Arbitrary
1727 combinations are possible, eg.,
1728
1729
1730 @lilypond[verbatim,relative=1,fragment]
1731   \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
1732   c8 d4. e8 a2 g1
1733 @end lilypond
1734
1735
1736 @node Easy Notation note heads
1737 @subsection Easy Notation note heads
1738
1739 @cindex easy notation
1740 @cindex Hal Leonard
1741
1742 The `easy play' note head includes a note name inside the head.  It is
1743 used in music for beginners
1744
1745 @lilypond[quote,raggedright,verbatim,fragment,staffsize=26]
1746   \setEasyHeads
1747   c'2 e'4 f' | g'1
1748 @end lilypond
1749
1750 The command @code{\setEasyHeads} overrides settings for the
1751 @internalsref{NoteHead} object.  To make the letters readable, it has
1752 to be printed in a large font size.  To print with a larger font, see
1753 @ref{Setting global staff size}.
1754
1755 @refcommands
1756
1757 @cindex @code{\setEasyHeads}
1758 @code{\setEasyHeads}
1759
1760
1761 @node Analysis brackets
1762 @subsection Analysis brackets
1763 @cindex brackets
1764 @cindex phrasing brackets
1765 @cindex musicological analysis
1766 @cindex note grouping bracket
1767
1768 Brackets are used in musical analysis to indicate structure in musical
1769 pieces.  LilyPond supports a simple form of nested horizontal
1770 brackets.  To use this, add the @internalsref{Horizontal_bracket_engraver}
1771 to @internalsref{Staff} context.  A bracket is started with
1772 @code{\startGroup} and closed with @code{\stopGroup}
1773
1774 @lilypond[quote,raggedright,verbatim]
1775 \score {
1776   \relative c'' {
1777     c4\startGroup\startGroup
1778     c4\stopGroup
1779     c4\startGroup
1780     c4\stopGroup\stopGroup
1781   }
1782   \layout {
1783     \context {
1784       \Staff \consists "Horizontal_bracket_engraver"
1785 }}}
1786 @end lilypond
1787
1788 @seealso
1789
1790 Program reference: @internalsref{HorizontalBracket}.
1791
1792 Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
1793
1794
1795
1796 @ignore
1797
1798 I don't think we need this info.
1799
1800 @n ode Stems
1801 @s ubsection Stems
1802
1803 Whenever a note is found, a @internalsref{Stem} object is created
1804 automatically.  For whole notes and rests, they are also created but
1805 made invisible.
1806
1807 @refcommands
1808
1809 @cindex @code{\stemUp}
1810 @code{\stemUp},
1811 @cindex @code{\stemDown}
1812 @code{\stemDown},
1813 @cindex @code{\stemNeutral}
1814 @code{\stemNeutral}.
1815
1816 @end ignore
1817
1818
1819 @node Coloring objects
1820 @subsection Coloring objects
1821
1822 @c FIXME: need link to missing list of colors
1823 Individual objects may be assigned colors.  You may use color names
1824 listed HERE
1825
1826 @lilypond[quote,raggedright,verbatim,fragment]
1827 \override NoteHead #'color = #red
1828 c4 c
1829 \override NoteHead #'color = #(x11-color 'LimeGreen)
1830 d
1831 \override Stem #'color = #blue
1832 e
1833 @end lilypond
1834
1835 The full range of colors defined for X11 can be accessed by using the
1836 scheme function x11-color.  The function takes one argument that can be a
1837 symbol
1838
1839 @example
1840 \override Beam #'color = #(x11-color 'MediumTurquoise)
1841 @end example
1842
1843 or a string
1844
1845 @example
1846 \override Beam #'color = #(x11-color "MediumTurquoise")
1847 @end example
1848
1849 The first form is quicker to write and is more efficient.  However, using
1850 the second form it is possible to access X11 colors by the multi-word
1851 form of its name
1852
1853 @example
1854 \override Beam #'color = #(x11-color "medium turquoise")
1855 @end example
1856
1857 If x11-color cannot make sense of the parameter then the color returned
1858 defaults to black.  It should be obvious from the final score that
1859 something is wrong.
1860
1861 This example, illustrates the use of x11-color.  Notice that the stem
1862 color remains black after being set to (x11-color 'Boggle), which is
1863 deliberate nonsense.
1864
1865 @lilypond[quote,raggedright,verbatim]
1866 {
1867   \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
1868   \set Staff.instrument = \markup {
1869     \with-color #(x11-color 'navy) "Clarinet"
1870   }
1871   \time 2/4
1872   gis''8 a''
1873   \override Beam #'color = #(x11-color "medium turquoise")
1874   gis'' a''
1875   \override NoteHead #'color = #(x11-color "LimeGreen")
1876   gis'' a''
1877   \override Stem #'color = #(x11-color 'Boggle)
1878   gis'' a''
1879 }
1880 @end lilypond
1881
1882
1883 @refbugs
1884 Not all x11 colors are distinguishable in a web browser.  For web use
1885 normal colors are recommended. 
1886
1887 An x11 color is not necessarily exactly the same shade as a similarly
1888 named normal color. 
1889
1890
1891 @seealso
1892
1893 COLORLIST
1894
1895
1896 @node Automatic notation
1897 @section Automatic notation
1898
1899 This section describes how to change the way that accidentals and
1900 beams are automatically displayed.
1901
1902 FIXME: this might get moved into Changing Defaults.  Please send
1903 opinions to lilypond-devel.  Thanks!  :)
1904
1905 @menu
1906 * Automatic accidentals::       
1907 * Setting automatic beam behavior::  
1908 * Beam formatting::             
1909 @end menu
1910
1911 @node Automatic accidentals
1912 @subsection Automatic accidentals
1913 @cindex Automatic accidentals
1914
1915 Common rules for typesetting accidentals have been placed in a
1916 function.  This function is called as follows
1917
1918 @cindex @code{set-accidental-style}
1919 @example
1920 #(set-accidental-style 'STYLE #('CONTEXT#))
1921 @end example
1922
1923 The function can take two arguments: the name of the accidental style,
1924 and an optional argument that denotes the context that should be
1925 changed.  If no context name is supplied, @code{Staff} is the default,
1926 but you may wish to apply the accidental style to a single @code{Voice}
1927 instead.
1928
1929 The following accidental styles are supported
1930 @table @code
1931 @item default
1932 This is the default typesetting behavior.  It corresponds
1933 to 18th century common practice: Accidentals are
1934 remembered to the end of the measure in which they occur and
1935 only on their own octave.
1936
1937 @item voice
1938 The normal behavior is to remember the accidentals on
1939 Staff-level.  This variable, however, typesets accidentals
1940 individually for each voice.  Apart from that, the rule is similar to
1941 @code{default}.
1942
1943 As a result, accidentals from one voice do not get canceled in other
1944 voices, which is often an unwanted result
1945
1946 @lilypond[quote,raggedright,relative=1,fragment,verbatim]
1947 \context Staff <<
1948   #(set-accidental-style 'voice)
1949   <<
1950     { es g } \\
1951     { c, e }
1952 >> >>
1953 @end lilypond
1954
1955 The @code{voice} option should be used if the voices
1956 are to be read solely by individual musicians.  If the staff is to be
1957 used by one musician (e.g., a conductor) then
1958 @code{modern} or @code{modern-cautionary}
1959 should be used instead.
1960
1961 @item modern
1962 @cindex @code{modern} style accidentals
1963 This rule corresponds to the common practice in the 20th century.  This rule
1964 prints the same accidentals as @code{default}, but temporary
1965 accidentals also are canceled in other octaves.  Furthermore,
1966 in the same octave, they also get canceled in the following
1967 measure
1968
1969 @lilypond[quote,raggedright,fragment,verbatim]
1970 #(set-accidental-style 'modern)
1971 cis' c'' cis'2 | c'' c'
1972 @end lilypond
1973
1974 @item @code{modern-cautionary}
1975 @cindex @code{modern-cautionary}
1976 This rule is similar to @code{modern}, but the ``extra'' accidentals
1977 (the ones not typeset by @code{default}) are typeset as cautionary
1978 accidentals.  They are printed in reduced size or with parentheses
1979 @lilypond[quote,raggedright,fragment,verbatim]
1980 #(set-accidental-style 'modern-cautionary)
1981 cis' c'' cis'2 | c'' c'
1982 @end lilypond
1983
1984 @cindex @code{modern-voice}
1985 @item modern-voice
1986 This rule is used for multivoice accidentals to be read both by musicians
1987 playing one voice and musicians playing all voices.  Accidentals are
1988 typeset for each voice, but they @emph{are} canceled across voices in
1989 the same @internalsref{Staff}.
1990
1991 @cindex @code{modern-voice-cautionary}
1992 @item modern-voice-cautionary
1993 This rule is the same as @code{modern-voice}, but with the extra
1994 accidentals (the ones not typeset by @code{voice}) typeset
1995 as cautionaries.  Even though all accidentals typeset by
1996 @code{default} @emph{are} typeset by this variable,
1997 some of them are typeset as cautionaries.
1998
1999 @item piano
2000 @cindex @code{piano} accidentals
2001 This rule reflects 20th century practice for piano notation.  Very similar to
2002 @code{modern} but accidentals also get canceled
2003 across the staves in the same @internalsref{GrandStaff} or
2004 @internalsref{PianoStaff}.
2005
2006 @item piano-cautionary
2007 @cindex @code{#(set-accidental-style 'piano-cautionary)}
2008 Same as @code{#(set-accidental-style 'piano)} but with the extra
2009 accidentals typeset as cautionaries.
2010
2011 @item no-reset
2012 @cindex @code{no-reset} accidental style
2013 This is the same as @code{default} but with accidentals lasting
2014 ``forever'' and not only until the next measure
2015 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
2016 #(set-accidental-style 'no-reset)
2017 c1 cis cis c
2018 @end lilypond
2019
2020 @item forget
2021 This is sort of the opposite of @code{no-reset}: Accidentals
2022 are not remembered at all---and hence all accidentals are
2023 typeset relative to the key signature, regardless of what was
2024 before in the music
2025
2026 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
2027 #(set-accidental-style 'forget)
2028 \key d\major c4 c cis cis d d dis dis
2029 @end lilypond
2030 @end table
2031
2032
2033 @seealso
2034
2035 Program reference: @internalsref{Accidental_engraver},
2036 @internalsref{Accidental}, and @internalsref{AccidentalPlacement}.
2037
2038
2039 @refbugs
2040
2041 Simultaneous notes are considered to be entered in sequential
2042 mode.  This means that in a chord the accidentals are typeset as if the
2043 notes in the chord happened once at a time - in the order in which
2044 they appear in the input file.
2045
2046 This is a problem when accidentals in a chord depend on each other,
2047 which does not happen for the default accidental style.  The problem
2048 can be solved by manually inserting @code{!} and @code{?} for the
2049 problematic notes.
2050
2051
2052 @node Setting automatic beam behavior
2053 @subsection Setting automatic beam behavior
2054
2055 @cindex @code{autoBeamSettings}
2056 @cindex @code{(end * * * *)}
2057 @cindex @code{(begin * * * *)}
2058 @cindex automatic beams, tuning
2059 @cindex tuning automatic beaming
2060
2061 @c [TODO: use \applycontext]
2062
2063 In normal time signatures, automatic beams can start on any note but can
2064 only end in a few positions within the measure: beams can end on a beat,
2065 or at durations specified by the properties in
2066 @code{autoBeamSettings}.  The defaults for @code{autoBeamSettings}
2067 are defined in @file{scm/@/auto@/-beam@/.scm}.
2068
2069 The value of @code{autoBeamSettings} is changed with three functions,
2070 @example
2071 #(override-auto-beam-setting
2072    '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
2073    [@var{context}])
2074 #(score-override-auto-beam-setting
2075    '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b})
2076 #(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m})
2077    [@var{context}])
2078 @end example
2079 Here, @var{be} is the symbol @code{begin} or @code{end}, and
2080 @var{context} is an optional context (default: @code{'Voice}).  It
2081 determines whether the rule applies to begin or end-points.  The
2082 quantity @var{p}/@var{q} refers to the length of the beamed notes (and
2083 `@code{* *}' designates notes of any length), @var{n}/@var{M} refers
2084 to a time signature (wildcards `@code{* *}' may be entered to
2085 designate all time signatures), @var{a}/@var{b} is a duration.  By
2086 default, this command changes settings for the current voice.  It is
2087 also possible to adjust settings at higher contexts, by adding a
2088 @var{context} argument.  @code{score-override-auto-beam-setting} is
2089 equal to @code{override-auto-beam-setting} with the argument
2090 @var{context} set to @code{'Score}.
2091
2092 For example, if automatic beams should end on the first quarter note, use
2093 the following
2094 @example
2095 #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
2096 @end example
2097 Since the duration of a quarter note is 1/4 of a whole note, it is
2098 entered as @code{(ly:make-moment 1 4)}.
2099
2100 If automatic beams should end on every quarter in 5/4 time, specify
2101 all endings
2102 @example
2103 #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
2104 #(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
2105 #(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
2106 #(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
2107 @dots{}
2108 @end example
2109
2110 The same syntax can be used to specify beam starting points.  In this
2111 example, automatic beams can only end on a dotted quarter note
2112 @example
2113 #(override-auto-beam-setting '(end * * * *) 3 8)
2114 #(override-auto-beam-setting '(end * * * *) 1 2)
2115 #(override-auto-beam-setting '(end * * * *) 7 8)
2116 @end example
2117 In 4/4 time signature, this means that automatic beams could end only on
2118 3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
2119 3/8, has passed within the measure).
2120
2121 Rules can also be restricted to specific time signatures.  A rule that
2122 should only be applied in @var{N}/@var{M} time signature is formed by
2123 replacing the second asterisks by @var{N} and @var{M}.  For example, a
2124 rule for 6/8 time exclusively looks like
2125 @example
2126 #(override-auto-beam-setting '(begin * * 6 8) @dots{})
2127 @end example
2128
2129 If a rule should be to applied only to certain types of beams, use the
2130 first pair of asterisks.  Beams are classified according to the
2131 shortest note they contain.  For a beam ending rule that only applies
2132 to beams with 32nd notes (and no shorter notes), use @code{(end 1 32 *
2133 *)}.
2134
2135 For example,
2136
2137 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
2138 \time 5/8
2139 #(override-auto-beam-setting '(end * * 5 8) 2 8)
2140 c8 c d d d
2141 \time 4/4
2142 e8 e f f e e d d
2143 \time 5/8
2144 c8 c d d d
2145 @end lilypond
2146
2147 @cindex automatic beam generation
2148 @cindex autobeam
2149 @cindex @code{autoBeaming}
2150 @cindex lyrics
2151
2152 If beams are used to indicate melismata in songs, then automatic
2153 beaming should be switched off.  This is done by setting
2154 @code{autoBeaming} to @code{#f}.
2155
2156 @refcommands
2157
2158 @cindex @code{\autoBeamOff}
2159 @code{\autoBeamOff},
2160 @cindex @code{\autoBeamOn}
2161 @code{\autoBeamOn}.
2162
2163
2164 @refbugs
2165
2166 If a score ends while an automatic beam has not been ended and is
2167 still accepting notes, this last beam will not be typeset at all.  The
2168 same holds polyphonic voices, entered with @code{<< @dots{} \\ @dots{}
2169 >>}.  If a polyphonic voice ends while an automatic beam is still
2170 accepting notes, it is not typeset.
2171
2172 @node Beam formatting
2173 @subsection Beam formatting
2174
2175 When a beam falls in the middle of the staff, the beams point normally
2176 down.  However, this behaviour can be altered with the
2177 @code{neutral-direction} property.
2178
2179 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
2180 {
2181   b8[ b]
2182   \override Beam #'neutral-direction = #-1
2183   b[ b]
2184   \override Beam #'neutral-direction = #1
2185   b[ b]
2186 }
2187 @end lilypond
2188
2189
2190 @node Other
2191 @section Other
2192
2193 FIXME:
2194 It's the dreaded ``what on earth should I do with this stuff'' section!  Yay!
2195
2196 @menu
2197 * Time administration::         
2198 * Transpose::                   
2199 @end menu
2200
2201
2202 @node Time administration
2203 @subsection Time administration
2204
2205 Time is administered by the @internalsref{Time_signature_engraver},
2206 which usually lives in the @internalsref{Score} context.
2207 The bookkeeping deals with the following variables
2208
2209 @table @code
2210 @item currentBarNumber
2211 The measure number.
2212
2213 @item measureLength
2214 The length of the measures in the current time signature.  For a 4/4
2215 time this is@tie{}1, and for 6/8 it is 3/4.
2216
2217 @item measurePosition
2218 The point within the measure where we currently are.  This quantity
2219 is reset to@tie{}0 whenever it exceeds @code{measureLength}.  When that
2220 happens, @code{currentBarNumber} is incremented.
2221
2222 @item timing
2223 If set to true, the above variables are updated for every time
2224 step.  When set to false, the engraver stays in the current measure
2225 indefinitely.
2226 @end table
2227
2228 Timing can be changed by setting any of these variables explicitly.
2229 In the next example, the 4/4 time signature is printed, but
2230 @code{measureLength} is set to 5/4.  After a while, the measure is
2231 shortened by 1/8, by setting @code{measurePosition} to 7/8 at 2/4
2232 in the measure, so the next bar line will fall at 2/4 + 3/8.  The
2233 3/8 arises because 5/4 normally has 10/8, but we have manually
2234 set the measure position to be 7/8 and 10/8 - 7/8 = 3/8.
2235
2236 @lilypond[quote,raggedright,verbatim,relative,fragment]
2237 \set Score.measureLength = #(ly:make-moment 5 4)
2238 c1 c4
2239 c1 c4
2240 c4 c4
2241 \set Score.measurePosition = #(ly:make-moment 7 8)
2242 b8 b b
2243 c4 c1
2244 @end lilypond
2245
2246
2247 @node Transpose
2248 @subsection Transpose
2249 @cindex Transpose
2250 @cindex transposition of pitches
2251 @cindex @code{\transpose}
2252
2253 A music expression can be transposed with @code{\transpose}.  The
2254 syntax is
2255 @example
2256 \transpose @var{from} @var{to} @var{musicexpr}
2257 @end example
2258
2259 This means that @var{musicexpr} is transposed by the interval between
2260 the pitches @var{from} and @var{to}: any note with pitch @code{from}
2261 is changed to @code{to}.
2262
2263
2264 For example, consider a piece written in the key of D-major.  If
2265 this piece is a little too low for its performer, it can be
2266 transposed up to E-major with
2267 @example
2268 \transpose d e @dots{}
2269 @end example
2270
2271 Consider a part written for violin (a C instrument).  If
2272 this part is to be played on the A clarinet, the following
2273 transposition will produce the appropriate part
2274
2275 @example
2276 \transpose a c @dots{}
2277 @end example
2278
2279 @code{\transpose} distinguishes between enharmonic pitches: both
2280 @code{\transpose c cis} or @code{\transpose c des} will transpose up
2281 half a tone.  The first version will print sharps and the second
2282 version will print flats
2283
2284 @lilypond[quote,raggedright,verbatim]
2285 mus = { \key d \major cis d fis g }
2286 \context Staff {
2287   \clef "F" \mus
2288   \clef "G"
2289   \transpose c g' \mus
2290   \transpose c f' \mus
2291 }
2292 @end lilypond
2293
2294 @code{\transpose} may also be used to input written notes for a
2295 transposing instrument.  Pitches are normally entered into LilyPond
2296 in C (or ``concert pitch''), but they may be entered in another
2297 key.  For example, when entering music for a B-flat trumpet which
2298 begins on concert D, one would write
2299
2300 @example
2301 \transpose c bes @{ e4 @dots{} @}
2302 @end example
2303
2304 To print this music in B-flat again (ie producing a trumpet part,
2305 instead of a concert pitch conductor's score) you would wrap the
2306 existing music with another @code{transpose}
2307
2308 @example
2309 \transpose bes c @{ \transpose c bes @{ e4 @dots{} @} @}
2310 @end example
2311
2312
2313
2314 @seealso
2315
2316 Program reference: @internalsref{TransposedMusic}, and
2317 @internalsref{UntransposableMusic}.
2318
2319 @refbugs
2320
2321 If you want to use both @code{\transpose} and @code{\relative},
2322 you must put @code{\transpose} outside of @code{\relative}, since
2323 @code{\relative} will have no effect music that appears inside a
2324 @code{\transpose}.
2325
2326