]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/tutorial.itely
Add Text to tutorial.
[lilypond.git] / Documentation / user / tutorial.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond-learning.tely
3 @ignore
4     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @ignore
11 Tutorial guidelines:  (different from policy.txt!)
12 - unless you have a really good reason, use either
13     @lilypond[verbatim,quote,ragged-right]
14   or
15     @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
16
17   Don't use any other relative=X commands (make it a non-fragment
18   example), and don't use fragment without relative=2.
19
20 - use "aes" and "ees" instead of "as" and "aes".  I know it's not
21   correct Dutch naming, but let's not confuse people with this
22   until we get to the Basic notation chapter.
23
24 - Add "Music glossary: @rglos{foo}" to the _top_ of the relevant
25   portions of the tutorial.
26
27 @end ignore
28
29
30 @node Tutorial
31 @chapter Tutorial
32
33 This tutorial starts with an introduction to the LilyPond music
34 language and how to produce printed music.  After this first
35 contact we will explain how to create common musical notation.
36
37 @menu
38 * First steps::                 
39 * Single staff notation::       
40 * Multiple notes at once::      
41 * Songs::                       
42 * Final touches::               
43 @end menu
44
45
46 @node First steps
47 @section First steps
48
49 This section gives a basic introduction to working with LilyPond.
50
51 @menu
52 * Compiling a file::            
53 * Simple notation::             
54 * Working on text files::       
55 * How to read the tutorial::    
56 @end menu
57
58
59 @node Compiling a file
60 @subsection Compiling a file
61
62 The first example demonstrates how to start working with LilyPond.
63 To create sheet music, we write a text file that specifies the
64 notation.  For example, if we write
65
66 @example
67 @{
68   c' e' g' e'
69 @}
70 @end example
71
72 @noindent
73 the result looks like this:
74
75 @c  in this case we don't want verbatim
76 @lilypond[quote,ragged-right]
77 {
78   c' e' g' e'
79 }
80 @end lilypond
81
82 @warning{Every piece of LilyPond input needs to have
83 @strong{@{ curly braces @}} placed around the input.  The braces
84 should also be surrounded by a space unless they are at the
85 beginning or end of a line to avoid ambiguities.  The braces may
86 be omitted in some examples in this manual, but don't forget them
87 in your own music!  For more information about the display of
88 examples in the manual, see @ref{How to read the tutorial}.}
89
90 @cindex Case sensitive
91 In addition, LilyPond input is @strong{case sensitive}.  @code{
92 @{ c d e @}} is valid input; @code{@{ C D E @}} will produce an
93 error message.
94
95 @smallspace
96
97 @subheading Entering music and viewing output
98
99 @cindex PDF file
100 @cindex Viewing music
101
102 In this section we will explain what commands to run and how to
103 view or print the output.
104
105 Note that there are several other text editors available with
106 better support for LilyPond.  For more information, see
107 @rprogram{Text editor support}.
108
109 @warning{the first time you ever run LilyPond, it may take a
110 minute or two because all of the system fonts have to be analyzed
111 first.  After this, LilyPond will be much faster!}
112
113 @subsubheading MacOS X
114
115 If you double click @code{LilyPond.app}, it will open with an
116 example file.  Save it, for example, to @file{test.ly} on your
117 Desktop, and then process it with the menu command @samp{Compile >
118 Typeset File}.  The resulting PDF file will be displayed on your
119 screen.
120
121 For future use of LilyPond, you should begin by selecting @q{New}
122 or @q{Open}.  You must save your file before typesetting it.  If
123 any errors occur in processing, please see the log window.
124
125
126 @subsubheading Windows
127
128 On Windows, if you double-click in the LilyPond icon on the
129 Desktop, it will open a simple text editor with an example file.
130 Save it, for example, to @file{test.ly} on your Desktop and then
131 double-click on the file to process it (the file icon looks like a
132 note).  After some seconds, you will get a file @file{test.pdf} on
133 your desktop.  Double-click on this PDF file to view the typeset
134 score.  An alternative method to process the @file{test.ly} file
135 is to drag and drop it onto the LilyPond icon using your mouse
136 pointer.
137
138 To edit an existing @file{.ly} file, right-click on it and
139 select @qq{Edit source}.  To get an empty file to start from, run
140 the editor as described above and use @qq{New} in
141 the @qq{File} menu.
142
143 Double-clicking the file does not only result in a PDF file, but
144 also produces a @file{.log} file that contains some information on
145 what LilyPond has done to the file.  If any errors occur, please
146 examine this file.
147
148 @subsubheading Unix
149
150 Create a file (such as @file{test.ly}) and enter:
151
152 @example
153 @{
154   c' e' g' e'
155 @}
156 @end example
157
158 To process @file{test.ly}, proceed as follows
159
160 @example
161 lilypond test.ly
162 @end example
163
164 @noindent
165 You will see something resembling
166
167 @example
168 lilypond test.ly
169 GNU LilyPond 2.10.0
170 Processing `test.ly'
171 Parsing...
172 Interpreting music... [1]
173 Preprocessing graphical objects...
174 Calculating line breaks... [2]
175 Layout output to `test.ps'...
176 Converting to `test.pdf'...
177 @end example
178
179
180 @node Simple notation
181 @subsection Simple notation
182
183 LilyPond will add some notation elements automatically.  In the
184 next example, we have only specified four pitches, but LilyPond
185 has added a clef, time signature, and rhythms.
186
187 @lilypond[verbatim,quote,ragged-right]
188 {
189   c' e' g' e'
190 }
191 @end lilypond
192
193 @noindent
194 This behavior may be altered, but in most cases these automatic
195 values are useful.
196
197
198 @subheading Pitches
199
200 Music glossary: @rglos{interval}, @rglos{fourth}, @rglos{scale},
201 @rglos{middle C}, @rglos{octave}.
202
203 The easiest way to enter notes is by using @code{\relative} mode.
204 In this mode, the @notation{interval} between the previous note and
205 the current note is assumed to be within a @notation{fourth}.  We
206 begin by entering the most elementary piece of music, a
207 @notation{scale}.
208
209 @lilypond[verbatim,quote,ragged-right]
210 \relative c' {
211   c d e f
212   g a b c
213 }
214 @end lilypond
215
216 The initial note is @notation{middle C}.  Each successive note is
217 within a fourth of the previous note -- in other words, the first
218 @code{c} is the closest C to middle C.  This is followed by the
219 closest D to the previous note.  We can create melodies which
220 have larger intervals:
221
222 @lilypond[verbatim,quote,ragged-right]
223 \relative c' {
224   d f a g
225   c b f d
226 }
227 @end lilypond
228
229 @noindent
230 As you may notice, this example does not start on middle C. The first
231 note -- the @code{d} -- is the closest D to middle C.
232
233 To add intervals that are larger than a fourth, we can raise
234 the @notation{octave} by adding a single quote @code{'} (or apostrophe)
235 to the note name.  We can lower the octave by adding a comma @code{,} to
236 the note name.
237
238 @lilypond[verbatim,quote,ragged-right]
239 \relative c'' {
240   a a, c' f,
241   g g'' a,, f'
242 }
243 @end lilypond
244
245 @noindent
246 To change a note by two (or more!) octaves, we use multiple
247 @code{''} or @code{,,} -- but be careful that you use two single
248 quotes @code{''} and not one double quote @code{"}@tie{}!  The
249 initial value in @code{\relative c'} may also be modified like
250 this.
251
252
253 @subheading Durations (rhythms)
254
255 Music glossary: @rglos{beam}, @rglos{duration}, @rglos{whole note},
256 @rglos{half note}, @rglos{quarter note}, @rglos{dotted note}.
257
258 The @notation{duration} of a note is specified by a number after
259 the note name.  @samp{1} for a @notation{whole note}, @samp{2} for
260 a @notation{half note}, @samp{4} for a @notation{quarter note} and
261 so on.  @notation{Beam}@tie{}s are added automatically.
262
263 @lilypond[verbatim,quote,ragged-right]
264 \relative c'' {
265   a1
266   a2 a4 a8 a
267   a16 a a a a32 a a a a64 a a a a a a a a2
268 }
269 @end lilypond
270
271 @noindent
272 If you do not specify a duration, the previous duration is used
273 for the next note.  The duration of the first note defaults to a
274 quarter.
275
276 To create @notation{dotted notes}, add a dot @samp{.} to the duration
277 number.
278
279 @lilypond[verbatim,quote,ragged-right]
280 \relative c'' {
281   a a a4. a8
282   a8. a16 a a8. a8 a4.
283 }
284 @end lilypond
285
286
287 @subheading Rests
288
289 Music glossary: @rglos{rest}.
290
291 A @notation{rest} is entered just like a note with the name @samp{r}:
292
293 @lilypond[verbatim,quote,ragged-right]
294 \relative c'' {
295   a r r2
296   r8 a r4 r4. r8
297 }
298 @end lilypond
299
300
301 @subheading Time signature
302
303 Music glossary: @rglos{time signature}.
304
305 The @notation{time signature} can be set with the @code{\time}
306 command:
307
308 @lilypond[verbatim,quote,ragged-right]
309 \relative c'' {
310   \time 3/4
311   a4 a a
312   \time 6/8
313   a4. a
314   \time 4/4
315   a4 a a a
316 }
317 @end lilypond
318
319
320 @subheading Clef
321
322 Music glossary: @rglos{clef}.
323
324 The @notation{clef} can be set using the @code{\clef} command:
325
326 @lilypond[verbatim,quote,ragged-right]
327 \relative c' {
328   \clef treble
329   c1
330   \clef alto
331   c1
332   \clef tenor
333   c1
334   \clef bass
335   c1
336 }
337 @end lilypond
338
339
340 @subheading All together
341
342 Here is a small example showing all these elements together:
343
344 @lilypond[verbatim,quote,ragged-right]
345 \relative c, {
346   \time 3/4
347   \clef bass
348   c2 e8 c' g'2.
349   f4 e d c4 c, r4
350 }
351 @end lilypond
352
353
354 @seealso
355
356 User manual: @ruser{Writing pitches}, @ruser{Writing rhythms},
357 @ruser{Writing rests}, @ruser{Time signature}, @ruser{Clef}.
358
359
360 @c HERE's where I started
361
362 @node Working on text files
363 @subsection Working on text files
364
365 LilyPond input files are similar to source files in many common
366 programming languages.  They are case sensitive, and white-space
367 is generally equivalent.  Expressions are formed with curly braces
368 @{ @}, and comments are denoted with @code{%} or @code{%@{ ...
369 %@}}.
370
371 If the previous sentence sounds like nonsense, don't worry!  We'll
372 explain what all these terms mean:
373
374 @itemize
375
376 @cindex Case sensitive
377 @item @strong{Case sensitive}:
378 it matters whether you enter a letter in lower case (e.g. @code{a,
379 b, s, t}) or upper case (e.g.  @code{A, B, S, T}).  Notes are
380 lower case: @code{@{ c d e @}} is valid input; @code{@{ C D E @}}
381 will produce an error message.
382
383 @item @strong{Whitespace insensitive}:
384 it does not matter how many spaces (or new lines) you add.
385 @code{@{ c d e @}} means the same thing as @code{@{ c @tie{}
386 @tie{} @tie{} d e @}} and
387
388 @example
389 @{ c                        d
390                    e   @}
391 @end example
392
393 @noindent
394 Of course, the previous example is hard to read.  A good rule of
395 thumb is to indent code blocks with either a tab or two spaces:
396
397 @example
398 @{
399   c d e
400 @}
401 @end example
402
403 @item @strong{Expressions:}
404 Every piece of LilyPond input needs to have @strong{@{ curly
405 braces @}} placed around the input.  These braces tell LilyPond
406 that the input is a single music expression, just like parentheses
407 @samp{()} in mathematics.  The braces should be surrounded by a
408 space unless they are at the beginning or end of a line to avoid
409 ambiguities.
410
411 A function (such as @code{\relative @{ @}}) also counts as a
412 single music expression.
413
414 @cindex comments
415 @cindex line comment
416 @cindex block comment
417 @item @strong{Comments}:
418 A comment is a remark for the human reader of the music input; it
419 is ignored while parsing, so it has no effect on the printed
420 output.  There are two types of comments.  The percent symbol
421 @samp{%} introduces a line comment; anything after @samp{%} on
422 that line is ignored.  A block comment marks a whole section of
423 music input as a comment.  Anything that is enclosed in @code{%@{}
424 and @code{%@}} is ignored.  (Comments do not nest.)  The following
425 fragment shows possible uses for comments
426
427 @example
428 % notes for twinkle twinkle follow
429   c4 c g' g a a g2
430
431 %@{
432   This line, and the notes below
433   are ignored, since they are in a
434   block comment.
435
436   g g f f e e d d c2
437 %@}
438 @end example
439
440 @end itemize
441
442 There are more tips for constructing input files in
443 @ruser{Suggestions for writing LilyPond files}.
444
445
446 @node How to read the tutorial
447 @subsection How to read the tutorial
448
449 As we saw in @ruser{Working on text files}, LilyPond input must be
450 surrounded by @{ @} marks or a @code{\relative c'' @{ ... @}}.
451 For the rest of this manual, most examples will omit this.  To
452 replicate the examples, you may copy and paste the displayed input
453 but you @strong{must} add the @code{\relative c'' @{ @}} like
454 this:
455
456 @example
457 \relative c'' @{
458   ... example goes here...
459 @}
460 @end example
461
462 Why omit the braces?  Most examples in this manual can be inserted
463 into the middle of a longer piece of music.  For these examples,
464 it does not make sense to add @code{\relative c'' @{ @}} -- you
465 should not place a @code{\relative} inside another
466 @code{\relative}!  If we included @code{\relative c'' @{ @}}
467 around every example, you would not be able to copy a small
468 documentation example and paste it inside a longer piece of your
469 own.  Most people want to add material to an existing piece, so we
470 format the manual this way.
471
472
473 @subheading Clickable examples
474
475 Many people learn programs by trying and fiddling around with the
476 program.  This is also possible with LilyPond.  If you click on a
477 picture in the HTML version of this manual, you will see the exact
478 LilyPond input that was used to generate that image.  Try it on
479 this image:
480
481 @c no verbatim here
482 @lilypond[quote,ragged-right]
483 \relative c'' {
484   c-\markup { \bold \huge { Click here.  } }
485 }
486 @end lilypond
487
488 By cutting and pasting everything in the @qq{ly snippet} section,
489 you have a starting template for experiments.  To see exactly the
490 same output (line-width and all), copy everything from @qq{Start
491 cut-&-pastable section} to the bottom of the file.
492
493
494 @node Single staff notation
495 @section Single staff notation
496
497 This section introduces common notation that is used for one voice
498 on one staff.
499
500 @menu
501 * Relative note names::         
502 * Accidentals and key signatures::  
503 * Ties and slurs::              
504 * Articulation and dynamics::   
505 * Adding text::                 
506 * Automatic and manual beams::  
507 * Advanced rhythmic commands::  
508 @end menu
509
510
511 @node Relative note names
512 @subsection Relative note names
513
514 Music glossary: @rglos{octave}, @rglos{fourth}, @rglos{fifth}.
515
516 As we saw in @ref{Simple notation}, LilyPond calculates the pitch of
517 each note relative to the previous one@footnote{There is another mode
518 of entering pitches, @ruser{Absolute note names}, but in practice
519 relative mode is much easier and safer to use.}.  If no extra
520 @notation{octave} marks (@code{'} and @code{,}) are added, it assumes
521 that each pitch is within a @notation{fourth} of the previous note.
522
523 LilyPond examines pitches based on the note names -- in other
524 words, an augmented fourth is @emph{not} treated the same as a
525 diminished fifth.  If we begin at a C, then an F-sharp will be placed a
526 higher than the C, while a G-flat will be placed lower than the C.
527
528 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
529 c2 fis
530 c2 ges
531 @end lilypond
532
533 @seealso
534 @quotation
535 @table @asis
536 @item Relative octaves
537 see @ruser{Relative octaves}.
538 @item Octave check
539 see @ruser{Octave check}.
540 @end table
541 @end quotation
542
543
544 @node Accidentals and key signatures
545 @subsection Accidentals and key signatures
546
547 @subheading Accidentals
548
549 Music glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
550 @rglos{double flat}, @rglos{accidental}.
551
552 A @notation{sharp} pitch is made by adding @samp{is} to the name, and
553 a @notation{flat} pitch by adding @samp{es}.  As you might expect, a
554 @notation{double sharp} or @notation{double flat} is made by adding
555 @samp{isis} or @samp{eses}@footnote{This syntax derived from note
556 naming conventions in Nordic and Germanic languages, like German
557 and Dutch.  To use other names for @notation{accidentals}, see
558 @ruser{Note names in other languages}.}
559
560 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
561 cis1 ees fisis, aeses
562 @end lilypond
563
564 @cindex key signature, setting
565 @subheading Key signatures
566
567 Music glossary: @rglos{key signature}, @rglos{major}, @rglos{minor}.
568
569 The @notation{key signature} is set with the command @code{\key}
570 followed by a pitch and @code{\major} or @code{\minor}.
571
572 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
573 \key d \major
574 a1
575 \key c \minor
576 a
577 @end lilypond
578
579 @smallspace
580
581 @subheading Warning: key signatures and pitches
582
583 Music glossary: @rglos{accidental}, @rglos{key signature},
584 @rglos{pitch}, @rglos{flat}, @rglos{natural}, @rglos{sharp}.
585
586 To determine whether to print an @notation{accidental}, LilyPond
587 examines the pitches and the @notation{key signature}.  The key
588 signature only affects the @emph{printed} accidentals, not the note's
589 @notation{pitch}!  This is a feature that often causes confusion to
590 newcomers, so let us explain it in more detail.
591
592 LilyPond makes a sharp distinction between musical content and
593 layout.  The alteration (@notation{flat}, @notation{natural} or @notation{sharp}) of a note is part of the pitch, and is therefore
594 musical content.  Whether an accidental (a @emph{printed} flat, natural
595 or sharp sign) is printed in front of the corresponding note is a
596 question of layout.  Layout is something that follows rules, so
597 accidentals are printed automatically according to those rules.  The
598 pitches in your music are works of art, so they will not be added
599 automatically, and you must enter what you want to hear.
600
601 In this example:
602
603 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
604 \key d \major
605 d cis fis
606 @end lilypond
607
608 @noindent
609 No note has a printed accidental, but you must still add the
610 @samp{is} to @code{cis} and @code{fis}.
611
612 The code @samp{e} does not mean @qq{print a black dot just below
613 the first line of the staff.}  Rather, it means: @qq{there is a
614 note with pitch E-natural.}  In the key of A-flat major, it
615 @emph{does} get an accidental:
616
617 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
618 \key aes \major
619 e
620 @end lilypond
621
622 Adding all alterations explicitly might require a little more
623 effort when typing, but the advantage is that transposing is
624 easier, and accidentals can be printed according to different
625 conventions.  See @ruser{Automatic accidentals}, for some examples
626 how accidentals can be printed according to different rules.
627
628 @seealso
629 @quotation
630 @table @asis
631 @item Accidentals
632 see @ruser{Accidentals}, and @ruser{Automatic accidentals}.
633 @item Key signature
634 see @ruser{Key signature}
635 @item Pitch names
636 see @rglos{Pitch names}.
637 @end table
638 @end quotation
639
640
641 @node Ties and slurs
642 @subsection Ties and slurs
643
644 @cindex ties
645 @subheading Ties
646
647 Music glossary: @rglos{tie}.
648
649 A @notation{tie} is created by appending a tilde @samp{~} to the
650 first note being tied
651
652 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
653 g4~ g c2~
654 c4 ~ c8 a8 ~ a2
655 @end lilypond
656
657 @cindex slurs
658 @subheading Slurs
659
660 Music glossary: @rglos{slur}.
661
662 A @notation{slur} is a curve drawn across many notes.  The starting
663 note and ending note are marked with @samp{(} and @samp{)}
664 respectively.
665
666 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
667 d4( c16) cis( d e c cis d) e( d4)
668 @end lilypond
669
670 @cindex slurs, phrasing
671 @cindex phrasing slurs
672 @subheading Phrasing slurs
673
674 Music glossary: @rglos{phrasing}, @rglos{legato}.
675
676 Slurs to indicate longer @notation{phrasing} can be entered with
677 @code{\(} and @code{\)}.  You can have both @notation{legato} slurs and
678 phrasing slurs at the same time, but you cannot have simultaneous legato
679 slurs or simultaneous phrasing slurs.
680
681 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
682 a8(\( ais b c) cis2 b'2 a4 cis,\)
683 @end lilypond
684
685 @smallspace
686
687 @cindex slurs versus ties
688 @subheading Warnings: slurs vs. ties
689
690 Music glossary: @rglos{articulation}, @rglos{slur}, @rglos{tie}.
691
692 A @notation{slur} looks like a @notation{tie}, but it has a different
693 meaning.  A tie simply makes the first note longer, and can only be used on pairs of notes with the same pitch.  Slurs indicate the
694 @notation{articulation} of notes, and can be used on larger groups of
695 notes. Slurs and ties can be nested.
696
697 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
698 c2~( c8 fis fis4 ~ fis2 g2)
699 @end lilypond
700
701 @seealso
702 @quotation
703 @table @asis
704 @item Ties
705 see @ruser{Ties}.
706 @item Slurs
707 see @ruser{Slurs}.
708 @item Phrasing slurs
709 see @ruser{Phrasing slurs}.
710 @end table
711 @end quotation
712
713
714 @node Articulation and dynamics
715 @subsection Articulation and dynamics
716
717 @cindex articulation
718 @cindex accents
719 @cindex staccato
720 @subheading Articulations
721
722 Music glossary: @rglos{articulation}.
723
724 Common @notation{articulation}@tie{}s can be added to a note using a
725 dash @samp{-} and a single character:
726
727 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
728 c-. c-- c-> c-^ c-+ c-_
729 @end lilypond
730
731 @cindex fingering
732 @subheading Fingerings
733
734 Music glossary: @rglos{fingering}.
735
736 Similarly, @notation{fingering} indications can be added to a note using
737 a dash (@samp{-}) and the digit to be printed:
738
739 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
740 c-3 e-5 b-2 a-1
741 @end lilypond
742
743 Articulations and fingerings are usually placed automatically, but
744 you can specify a direction using @samp{^} (up) or @samp{_}
745 (down).  You can also use multiple articulations on the same note.
746 However, in most cases it is best to let LilyPond determine the
747 articulation directions.
748
749 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
750 c_-^1 d^. f^4_2-> e^-_+
751 @end lilypond
752
753 @subheading Dynamics
754
755 Music glossary: @rglos{dynamics}, @rglos{crescendo},
756 @rglos{decrescendo}.
757
758 Dynamic signs are made by adding the markings (with a backslash)
759 to the note
760
761 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
762 c\ff c\mf c\p c\pp
763 @end lilypond
764
765 @cindex dynamics
766 @cindex decrescendo
767 @cindex crescendo
768
769 Crescendi and decrescendi are started with the commands @code{\<}
770 and @code{\>}.  An ending dynamic, for example @code{\f}, will
771 finish the (de)crescendo, or the command @code{\!} can be used:
772
773 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
774 c2\< c2\ff\> c2 c2\!
775 @end lilypond
776
777 @seealso
778 @quotation
779 @table @asis
780 @item Articulations
781 see @ruser{Articulations}.
782 @item Fingering
783 see @ruser{Fingering instructions}.
784 @item Dynamics
785 see @ruser{Dynamics} (User manual) and @rglos{dynamics} (Glossary).
786 @end table
787 @end quotation
788
789 @c CONTINUE HERE
790
791 @node Adding text
792 @subsection Adding text
793
794 Text may be added to your scores:
795
796 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
797 c1^"espr" a_"legato"
798 @end lilypond
799
800 Extra formatting may be added with the @code{\markup} command:
801
802 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
803 c1^\markup{ \bold espr}
804 a1_\markup{
805   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
806   }
807 @end lilypond
808
809
810 @c Kurt: leave this alone for now.
811
812 @seealso
813
814 User manual: @ruser{Writing text}.
815
816
817 @node Automatic and manual beams
818 @subsection Automatic and manual beams
819
820 @cindex beams, by hand
821 All @rglos{beam}s are drawn automatically:
822
823 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
824 a8 ais d ees r d c16 b a8
825 @end lilypond
826
827 @noindent
828 If you do not like the automatic beams, they may be overridden
829 manually.  Mark the first note to be beamed with @samp{[} and the
830 last one with @samp{]}.
831
832 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
833 a8[ ais] d[ ees r d] a b
834 @end lilypond
835
836 @seealso
837 @quotation
838 @table @asis
839 @item Automatic beams
840 see @ruser{Automatic beams}.
841 @item Manual beams
842 see @ruser{Manual beams}.
843 @end table
844 @end quotation
845
846
847 @node Advanced rhythmic commands
848 @subsection Advanced rhythmic commands
849
850 @cindex pickup
851 @cindex anacruse
852 @cindex partial measure
853 @subheading Partial measure
854
855 A pickup (or @rglos{anacrusis}) is entered with the keyword
856 @code{\partial}.  It is followed by a duration: @code{\partial 4}
857 is a quarter note pickup and @code{\partial 8} an eighth note.
858
859 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
860 \partial 8
861 f8 c2 d
862 @end lilypond
863
864 @cindex tuplets
865 @cindex triplets
866 @subheading Tuplets
867
868 Tuplets are made with the @code{\times} keyword.  It takes two
869 arguments: a fraction and a piece of music.  The duration of the
870 piece of music is multiplied by the fraction.  Triplets make notes
871 occupy 2/3 of their notated duration, so a triplet has 2/3 as its
872 fraction
873
874 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
875 \times 2/3 { f8 g a }
876 \times 2/3 { c r c }
877 \times 2/3 { f,8 g16[ a g a] }
878 \times 2/3 { d4 a8 }
879 @end lilypond
880
881 @cindex grace notes
882 @cindex acciaccatura
883 @cindex appoggiatura
884 @subheading Grace notes
885
886 Grace notes are created with the @code{\grace} command, although
887 they can also be created by prefixing a music expression with the
888 keyword @code{\appoggiatura} or @code{\acciaccatura}
889
890 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
891 c2 \grace { a32[ b] } c2
892 c2 \appoggiatura b16 c2
893 c2 \acciaccatura b16 c2
894 @end lilypond
895
896 @seealso
897 @quotation
898 @table @asis
899 @item Grace notes
900 see @ruser{Grace notes},
901 @item Tuplets
902 see @ruser{Tuplets},
903 @item Pickups
904 see @ruser{Partial measures}.
905 @end table
906 @end quotation
907
908
909 @node Multiple notes at once
910 @section Multiple notes at once
911
912 This section introduces having more than one note at the same
913 time: multiple instruments, multiple staves for a single
914 instrument (i.e. piano), and chords.
915
916 Polyphony in music refers to having more than one voice occurring
917 in a piece of music.  Polyphony in LilyPond refers to having more
918 than one voice on the same staff.
919
920 @menu
921 * Music expressions explained::  
922 * Multiple staves::             
923 * Piano staves::                
924 * Combining notes into chords::  
925 * Single staff polyphony::      
926 @end menu
927
928
929 @node Music expressions explained
930 @subsection Music expressions explained
931
932 In LilyPond input files, music is represented by @emph{music
933 expressions}.  A single note is a music expression:
934
935 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
936 a4
937 @end lilypond
938
939 Enclosing a note in braces creates a @emph{compound music
940 expression}.  Here we have created a compound music expression
941 with two notes:
942
943 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
944 { a4 g4 }
945 @end lilypond
946
947 Putting a group of music expressions (e.g. notes) in braces means
948 that they are in sequence (i.e. each one follows the previous
949 one).  The result is another music expression:
950
951 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
952 { { a4 g } f g }
953 @end lilypond
954
955 @subheading Simultaneous music expressions: multiple staves
956
957 This technique is useful for polyphonic music.  To enter music
958 with more voices or more staves, we combine expressions in
959 parallel.  To indicate that two voices should play at the same
960 time, simply enter a simultaneous combination of music
961 expressions.  A @q{simultaneous} music expression is formed by
962 enclosing expressions inside @code{<<} and @code{>>}.  In the
963 following example, three sequences (all containing two separate
964 notes) are combined simultaneously:
965
966 @lilypond[verbatim,quote,ragged-right]
967 \relative c'' {
968   <<
969     { a4 g }
970     { f e }
971     { d b }
972   >>
973 }
974 @end lilypond
975
976 Note that we have indented each level of the input with a
977 different amount of space.  LilyPond does not care how much (or
978 little) space there is at the beginning of a line, but indenting
979 LilyPond code like this makes it much easier for humans to read.
980
981 @warning{each note is relative to the previous note in
982 the input, not relative to the @code{c''} in the initial
983 @code{\\relative} command.}
984
985
986 @subheading Simultaneous music expressions: single staff
987
988 To determine the number of staves in a piece, LilyPond looks at
989 the first expression.  If it is a single note, there is one staff;
990 if there is a simultaneous expression, there is more than one
991 staff.
992
993 @lilypond[verbatim,quote,ragged-right]
994 \relative c'' {
995   c2 <<c e>>
996   << { e f } { c <<b d>> } >>
997 }
998 @end lilypond
999
1000 @cindex expression
1001 @cindex music expression
1002 @subheading Analogy: mathematical expressions
1003
1004 This mechanism is similar to mathematical formulas: a big formula
1005 is created by composing small formulas.  Such formulas are called
1006 expressions, and their definition is recursive so you can make
1007 arbitrarily complex and large expressions.  For example,
1008
1009 @example
1010 1
1011
1012 1 + 2
1013
1014 (1 + 2) * 3
1015
1016 ((1 + 2) * 3) / (4 * 5)
1017 @end example
1018
1019 This is a sequence of expressions, where each expression is
1020 contained in the next (larger) one.  The simplest expressions are
1021 numbers, and larger ones are made by combining expressions with
1022 operators (like @samp{+}, @samp{*} and @samp{/}) and parentheses.
1023 Like mathematical expressions, music expressions can be nested
1024 arbitrarily deep, which is necessary for complex music like
1025 polyphonic scores.
1026
1027
1028 @node Multiple staves
1029 @subsection Multiple staves
1030
1031 As we saw in @ruser{Music expressions explained}, LilyPond input
1032 files are constructed out of music expressions.  If the score
1033 begins with simultaneous music expressions, LilyPond creates
1034 multiples staves.  However, it is easier to see what happens if we
1035 create each staff explicitly.
1036
1037 To print more than one staff, each piece of music that makes up a
1038 staff is marked by adding @code{\new Staff} before it.  These
1039 @code{Staff} elements are then combined in parallel with @code{<<}
1040 and @code{>>}:
1041
1042 @lilypond[verbatim,quote,ragged-right]
1043 \relative c'' {
1044   <<
1045     \new Staff { \clef treble c }
1046     \new Staff { \clef bass c,, }
1047   >>
1048 }
1049 @end lilypond
1050
1051 The command @code{\new} introduces a @q{notation context.}  A
1052 notation context is an environment in which musical events (like
1053 notes or @code{\clef} commands) are interpreted.  For simple
1054 pieces, such notation contexts are created automatically.  For
1055 more complex pieces, it is best to mark contexts explicitly.
1056
1057 There are several types of contexts.  @code{Score}, @code{Staff},
1058 and @code{Voice} handle melodic notation, while @code{Lyrics} sets
1059 lyric texts and @code{ChordNames} prints chord names.
1060
1061 In terms of syntax, prepending @code{\new} to a music expression
1062 creates a bigger music expression.  In this way it resembles the
1063 minus sign in mathematics.  The formula @math{(4+5)} is an
1064 expression, so @math{-(4+5)} is a bigger expression.
1065
1066 Time signatures entered in one staff affects all other
1067 staves@footnote{This behavior may be changed if desired; see
1068 @ruser{Polymetric notation}, for details.}.  On the other hand, the
1069 key signature of one staff does @emph{not} affect other staves.
1070
1071 @lilypond[verbatim,quote,ragged-right]
1072 \relative c'' {
1073   <<
1074     \new Staff { \clef treble \time 3/4 c }
1075     \new Staff { \clef bass \key d \major c,, }
1076   >>
1077 }
1078 @end lilypond
1079
1080
1081
1082
1083 @node Piano staves
1084 @subsection Piano staves
1085
1086 @cindex staff switch, manual
1087 @cindex cross staff voice, manual
1088 Piano music is typeset in two staves connected by a brace.
1089 Printing such a staff is similar to the polyphonic example in
1090 @ruser{Multiple staves}, but now this entire expression is
1091 inserted inside a @code{PianoStaff}:
1092
1093 @example
1094 \new PianoStaff <<
1095   \new Staff @dots{}
1096   \new Staff @dots{}
1097 >>
1098 @end example
1099
1100 Here is a small example:
1101
1102 @lilypond[verbatim,quote,ragged-right]
1103 \relative c'' {
1104   \new PianoStaff <<
1105     \new Staff { \time 2/4 c4 e g g, }
1106     \new Staff { \clef bass c,, c' e c }
1107   >>
1108 }
1109 @end lilypond
1110
1111 @seealso
1112 @quotation
1113 See @ruser{Piano music}.
1114 @end quotation
1115
1116
1117 @node Combining notes into chords
1118 @subsection Combining notes into chords
1119
1120 @cindex chords
1121 Chords can be made by surrounding pitches with single angle
1122 brackets.  Angle brackets are the symbols @samp{<} and @samp{>}.
1123
1124 @lilypond[quote,fragment,verbatim,relative=2,fragment]
1125 r4 <c e g>4 <c f a>2
1126 @end lilypond
1127
1128 You can combine markings like beams and ties with chords.  They
1129 must be placed outside the angle brackets
1130
1131 @lilypond[quote,fragment,verbatim,relative=2,fragment]
1132 r4 <c e g>8[ <c f a>]~ <c f a>2
1133 @end lilypond
1134
1135 @lilypond[quote,fragment,verbatim,relative=2,fragment]
1136 r4 <c e g>8\>( <c e g> <c e g>4 <c f a>\!)
1137 @end lilypond
1138
1139
1140 @node Single staff polyphony
1141 @subsection Single staff polyphony
1142
1143 @cindex polyphony
1144 @cindex multiple voices
1145 @cindex voices, more -- on a staff
1146 When different melodic lines are combined on a single staff they
1147 are printed as polyphonic voices; each voice has its own stems,
1148 slurs and beams, and the top voice has the stems up, while the
1149 bottom voice has them down.
1150
1151 Entering such parts is done by entering each voice as a sequence
1152 (with @code{@{...@}}) and combining these simultaneously,
1153 separating the voices with @code{\\}
1154
1155 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
1156 <<
1157   { a4 g2 f4~ f4 } \\
1158   { r4 g4 f2 f4 }
1159 >>
1160 @end lilypond
1161
1162 For polyphonic music typesetting, spacer rests can also be
1163 convenient; these are rests that do not print.  They are useful
1164 for filling up voices that temporarily do not play.  Here is the
1165 same example with a spacer rest (@samp{s}) instead of a normal
1166 rest (@samp{r}),
1167
1168 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
1169 <<
1170   { a4 g2 f4~ f4 } \\
1171   { s4 g4 f2 f4 }
1172 >>
1173 @end lilypond
1174
1175 @noindent
1176 Again, these expressions can be nested arbitrarily.
1177
1178 @lilypond[quote,fragment,verbatim,relative=2,fragment]
1179 <<
1180   \new Staff <<
1181     { a4 g2 f4~ f4 } \\
1182     { s4 g4 f2 f4 }
1183   >>
1184   \new Staff <<
1185     \clef bass
1186     { <c g>1 ~ <c g>4 } \\
1187     { e,,4 d e2 ~ e4}
1188   >>
1189 >>
1190 @end lilypond
1191
1192 @seealso
1193 @quotation
1194 See @ruser{Basic polyphony}.
1195 @end quotation
1196
1197
1198 @node Songs
1199 @section Songs
1200
1201 This section introduces vocal music and simple song sheets.
1202
1203 @menu
1204 * Setting simple songs::        
1205 * Aligning lyrics to a melody::  
1206 * Lyrics to multiple staves::   
1207 @end menu
1208
1209
1210 @node Setting simple songs
1211 @subsection Setting simple songs
1212
1213 @cindex Lyrics
1214 @cindex Songs
1215 Here is the start of the melody to a nursery
1216 rhyme, @qq{Girls and boys come out to play}:
1217
1218 @lilypond[verbatim,quote,ragged-right]
1219  \relative c'' {
1220   \key g \major
1221   \time 6/8
1222   d4 b8 c4 a8 d4 b8 g4
1223  }
1224 @end lilypond
1225
1226 The lyrics can be set to these notes, combining both with the
1227 @code{\addlyrics} keyword.  Lyrics are entered by separating each
1228 syllable with a space.
1229
1230 @lilypond[verbatim,quote,ragged-right]
1231 <<
1232  \relative c'' {
1233   \key g \major
1234   \time 6/8
1235   d4 b8 c4 a8 d4 b8 g4
1236  }
1237  \addlyrics {
1238   Girls and boys come out to play,
1239  }
1240 >>
1241 @end lilypond
1242
1243 Note the curly brackets delimiting both the music and the lyrics,
1244 and the angle brackets @code{<< ... >>} around the whole piece to
1245 show that the music and lyrics are to occur at the same time.
1246
1247 @node Aligning lyrics to a melody
1248 @subsection Aligning lyrics to a melody
1249
1250 @cindex melisma
1251 @cindex extender line
1252 @cindex hyphens
1253 @cindex underscore
1254
1255 The next line in the nursery rhyme is @q{The moon doth shine as
1256 bright as day}.  Let's extend it:
1257
1258 @lilypond[verbatim,quote,ragged-right]
1259 <<
1260  \relative c'' {
1261   \key g \major
1262   \time 6/8
1263   d4 b8 c4 a8 d4 b8 g4 
1264   g8 a4 b8 c b a d4 b8 g4.
1265  }
1266  \addlyrics {
1267   Girls and boys come out to play,
1268   The moon doth shine as bright as day;
1269  }
1270 >>
1271 @end lilypond
1272
1273 We see the extra lyrics do not align properly with the notes.  The
1274 word @q{shine} should be sung on two notes, not one.  This is
1275 called a @rglos{melisma}, a single syllable sung to more than one
1276 note.  There are several ways to spread a syllable over multiple
1277 notes, the simplest being to add a slur across them (see @ref{Ties
1278 and slurs}):
1279
1280 @lilypond[verbatim,quote,ragged-right]
1281 <<
1282  \relative c'' {
1283   \key g \major
1284   \time 6/8
1285   d4 b8 c4 a8 d4 b8 g4 
1286   g8 a4 b8 c([ b)] a d4 b8 g4.
1287  }
1288  \addlyrics {
1289   Girls and boys come out to play,
1290   The moon doth shine as bright as day;
1291  }
1292 >> 
1293 @end lilypond
1294
1295 Here we have also used manual beaming (the square brackets @code{[
1296 ]} ) to generate the beaming which is customarily used with lyrics
1297 (see @ref{Automatic and manual beams}).
1298
1299 If a syllable extends over several notes or a single very long
1300 note an @emph{extender line} is usually drawn from the syllable
1301 extending under all the notes for that syllable.  It is entered as
1302 two underscores @code{__}.  Here is an example from the first
1303 three bars of Dido's Lament, from Purcell's Dido and Ă†neas:
1304  
1305 @lilypond[verbatim,quote,ragged-right]
1306 <<
1307   \relative c'' {
1308     \key g \minor
1309     \time 3/2
1310     g2 a bes bes( a) 
1311     b c4.( bes8 a4. g8 fis4.) g8 fis1
1312   }
1313   \addlyrics {
1314     When I am laid, 
1315     am laid __ in earth,
1316   }
1317 >>
1318 @end lilypond
1319
1320 None of the examples so far have involved words containing more
1321 than one syllable.  Such words are usually split one syllable to a
1322 note, with hyphens between syllables.  Such hyphens are entered as
1323 two dashes, resulting in a centered hyphen between the syllables.
1324 Here is an example showing this and everything we have learned so
1325 far about aligning lyrics to notes.
1326
1327 @c no ragged-right here because otherwise the hyphens get lost,
1328 @c but the example is long enough to avoid looking strange.
1329 @lilypond[quote,verbatim]
1330 <<
1331   \relative c' {
1332     \key g \major
1333     \time 3/4
1334     \partial 4
1335     d4 g4 g a8( b) g4 g4 
1336     b8( c) d4 d e4 c2
1337   }
1338   \addlyrics {
1339     A -- way in a __ man -- ger, 
1340     no __ crib for a bed, __
1341   }
1342 >>
1343 @end lilypond
1344
1345 Some lyrics, especially those in Italian, require the opposite:
1346 setting more than one syllable to a single note.  This is
1347 achieved by linking the syllables together with a single
1348 underscore @code{_} (with no spaces), or enclosing them in
1349 quotes.  Here's an example from Rossini's Figaro, where
1350 @q{al} has to be sung on the same note as the @q{go} of 
1351 @q{Largo} in Figaro's aria @q{Largo al factotum}:
1352
1353 @c no ragged-right here because otherwise the hyphens get lost,
1354 @c but the example is long enough to avoid looking strange.
1355 @lilypond[quote,verbatim]
1356 <<
1357   \relative c' {
1358     \clef bass
1359     \key c \major
1360     \time 6/8
1361     c4.~ c8 d b c([ d)] b c d b c
1362   }
1363   \addlyrics {
1364     Lar -- go_al fac -- to -- tum del -- la cit -- tĂ 
1365   }
1366 >>
1367 @end lilypond
1368
1369
1370 @seealso
1371 @quotation
1372 More options, such as inserting explicit rhythms into lyrics,
1373 inserting lyric ties (e.g., between @q{go al}) above, 
1374 alternative ways of handling melismata,
1375 and adding extra verses,
1376 are discussed in @ruser{Vocal music}.
1377 @end quotation
1378
1379 @node Lyrics to multiple staves
1380 @subsection Lyrics to multiple staves
1381
1382 The simple approach using @code{\addlyrics} can be used for
1383 placing lyrics under more than one staff.  Here is an
1384 example from Handel's Judas Maccabæus:
1385
1386 @lilypond[verbatim,quote,ragged-right]
1387 <<
1388   {
1389     \time 6/8
1390     \partial 8
1391   }
1392   \relative c'' { \key f \major
1393     c8 c([ bes)] a a([ g)] f f'4. b, c4.~ c4
1394   }
1395   \addlyrics {
1396     Let flee -- cy flocks the hills a -- dorn, __
1397   }
1398   \relative c' { \key f \major
1399     r8 r4. r4 c8 a'([ g)] f f([ e)] d e([ d)] c bes'4
1400   }
1401   \addlyrics {
1402     Let flee -- cy flocks the hills a -- dorn,
1403   }
1404 >>
1405 @end lilypond
1406
1407 but scores any more complex than this simple example are
1408 better produced by separating out the staff structure
1409 from the notes and lyrics with variables.  These are
1410 discussed later (see @ref{Organizing pieces with variables}).
1411
1412 @seealso
1413 @quotation
1414 More options, such as putting multiple stanzas below the score,
1415 setting choral music, and lyrics to divided voices, 
1416 are discussed in @ruser{Vocal music}.
1417 @end quotation
1418
1419
1420 @node Final touches
1421 @section Final touches
1422
1423 This is the final section of the tutorial; it demonstrates how to
1424 add the final touches to simple pieces, and provides an
1425 introduction to the rest of the manual.
1426
1427 @menu
1428 * Version number::              
1429 * Adding titles::               
1430 * Absolute note names::         
1431 * Organizing pieces with variables::  
1432 * After the tutorial::          
1433 * How to read the manual::      
1434 @end menu
1435
1436
1437 @node Version number
1438 @subsection Version number
1439
1440 @cindex versioning
1441 The @code{\version} statement records the version of LilyPond that
1442 was used to write the file:
1443
1444 @example
1445 \version "2.11.23"
1446 @end example
1447
1448 @noindent
1449 by convention, this is placed at the top of your LilyPond file.
1450
1451 These annotations make future upgrades of LilyPond go more
1452 smoothly.  Changes in the syntax are handled with a special
1453 program, @file{convert-ly} (see @rprogram{Updating files with
1454 convert-ly}), and it uses @code{\version} to determine what rules
1455 to apply.
1456
1457
1458 @node Adding titles
1459 @subsection Adding titles
1460
1461 The title, composer, opus number, and similar information are
1462 entered in the @code{\header} block.  This exists outside of the
1463 main music expression; the @code{\header} block is usually placed
1464 underneath the @ruser{Version number}.
1465
1466 @example
1467 \version "2.11.23"
1468 \header @{
1469   title = "Symphony"
1470   composer = "Me"
1471   opus = "Op. 9"
1472 @}
1473
1474 @{
1475   @dots{} music @dots{}
1476 @}
1477 @end example
1478
1479 When the file is processed, the title and composer are printed
1480 above the music.  More information on titling can be found in
1481 @ruser{Creating titles}.
1482
1483
1484 @node Absolute note names
1485 @subsection Absolute note names
1486
1487 So far we have always used @code{\relative} to define pitches.
1488 This is the easiest way to enter most music, but another way of
1489 defining pitches exists: absolute mode.
1490
1491 If you omit the @code{\relative}, LilyPond treats all pitches as
1492 absolute values.  A @code{c'} will always mean middle C, a
1493 @code{b} will always mean the note one step below middle C, and a
1494 @code{g,} will always mean the note on the bottom staff of the
1495 bass clef.
1496
1497 @lilypond[quote,verbatim,ragged-right]
1498 {
1499   \clef bass
1500   c' b g, g,
1501   g, f, f c'
1502 }
1503 @end lilypond
1504
1505 Here is a four-octave scale:
1506
1507 @lilypond[quote,verbatim,ragged-right]
1508 {
1509   \clef bass
1510   c, d, e, f,
1511   g, a, b, c
1512   d e f g
1513   a b c' d'
1514   \clef treble
1515   e' f' g' a'
1516   b' c'' d'' e''
1517   f'' g'' a'' b''
1518   c'''1
1519 }
1520 @end lilypond
1521
1522 As you can see, writing a melody in the treble clef involves a lot
1523 of quote @code{'} marks.  Consider this fragment from Mozart:
1524
1525 @lilypond[quote,verbatim,ragged-right]
1526 {
1527   \key a \major
1528   \time 6/8
1529   cis''8. d''16 cis''8 e''4 e''8
1530   b'8. cis''16 b'8 d''4 d''8
1531 }
1532 @end lilypond
1533
1534 All these quotes makes the input less readable and it is a source
1535 of errors.  With @code{\relative}, the previous example is much
1536 easier to read:
1537
1538 @lilypond[quote,verbatim,ragged-right]
1539 \relative c'' {
1540   \key a \major
1541   \time 6/8
1542   cis8. d16 cis8 e4 e8
1543   b8. cis16 b8 d4 d8
1544 }
1545 @end lilypond
1546
1547 If you make a mistake with an octave mark (@code{'} or @code{,})
1548 while working in @code{\relative} mode, it is very obvious -- many
1549 notes will be in the wrong octave.  When working in absolute mode,
1550 a single mistake will not be as visible, and will not be as easy
1551 to find.
1552
1553 However, absolute mode is useful for music which has large
1554 intervals, and is extremely useful for computer-generated LilyPond
1555 files.
1556
1557
1558 @node Organizing pieces with variables
1559 @subsection Organizing pieces with variables
1560
1561 When all of the elements discussed earlier are combined to produce
1562 larger files, the music expressions get a lot bigger.  In
1563 polyphonic music with many staves, the input files can become very
1564 confusing.  We can reduce this confusion by using
1565 @emph{variables}.
1566
1567 With variables (also known as variables or macros), we can break
1568 up complex music expressions.  An variable is assigned as
1569 follows:
1570
1571 @example
1572 namedMusic = @{ @dots{} @}
1573 @end example
1574
1575 The contents of the music expression @code{namedMusic} can be used
1576 later by placing a backslash in front of the name
1577 (@code{\namedMusic}, just like a normal LilyPond command).
1578 Variables must be defined @emph{before} the main music
1579 expression.
1580
1581 @lilypond[quote,verbatim,ragged-right]
1582 violin = \new Staff { \relative c'' {
1583   a4 b c b
1584 }}
1585 cello = \new Staff { \relative c {
1586   \clef bass
1587   e2 d
1588 }}
1589 {
1590   <<
1591     \violin
1592     \cello
1593   >>
1594 }
1595 @end lilypond
1596
1597 @noindent
1598 The name of an variable must have alphabetic characters only: no
1599 numbers, underscores, or dashes.
1600
1601 It is possible to use variables for many other types of objects in
1602 the input.  For example,
1603
1604 @example
1605 width = 4.5\cm
1606 name = "Wendy"
1607 aFivePaper = \paper @{ paperheight = 21.0 \cm @}
1608 @end example
1609
1610 Depending on its contents, the variable can be used in different
1611 places.  The following example uses the above variables:
1612
1613 @example
1614 \paper @{
1615   \aFivePaper
1616   line-width = \width
1617 @}
1618 @{ c4^\name @}
1619 @end example
1620
1621
1622 @node After the tutorial
1623 @subsection After the tutorial
1624
1625 After finishing the tutorial, you should probably try writing a
1626 piece or two.  Start with one of the @ruser{Templates}, and add
1627 notes.  If you need any notation that was not covered in the
1628 tutorial, look at the Notation Reference, starting with
1629 @ruser{Basic notation}.  If you want to write for an instrument
1630 ensemble that is not covered in the templates, take a look at
1631 @ruser{Extending the templates}.
1632
1633 Once you have written a few short pieces, read the rest of the
1634 Learning Manual (chapters 3-5).  There's nothing wrong with
1635 reading it now, of course!  However, the rest of the Learning
1636 Manual assumes that you are familiar with LilyPond input.  You may
1637 wish to skim these chapters right now, and come back to them after
1638 you have more experience.
1639
1640
1641 @node How to read the manual
1642 @subsection How to read the manual
1643
1644 As we saw in @ruser{How to read the tutorial}, many examples in
1645 the tutorial omitted a @code{\relative c'' @{ ... @}} around the
1646 printed example.
1647
1648 In the rest of the manual, we are much more lax about the printed
1649 examples: sometimes they may have omitted a @code{\relative c'' @{
1650 ... @}}, but other times a different initial pitch may be used
1651 (such as @code{c'} or @code{c,,}), and in some cases the whole
1652 example is in absolute note mode!  However, ambiguities like this
1653 only exist where the pitches are not important.  In any example
1654 where the pitch matters, we have explicitly stated
1655 @code{\relative} or absolute-mode @code{@{ @}}.
1656
1657 If you are still confused about the exact LilyPond input that was
1658 used in an example, read the HTML version (if you are not already
1659 doing so) and click on the picture of the music.  This will
1660 display the exact input that LilyPond used to generate this
1661 manual.
1662
1663 For information about the structure of the rest of the manual, see
1664 @ruser{About this manual}.
1665