]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/tutorial.itely
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / Documentation / user / tutorial.itely
index 08714455a6ff12ad56e7af9772d4c1225e70dcdb..3a7c593cfeebfda813091a47b936194e369a2897 100644 (file)
@@ -1,4 +1,4 @@
-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 
 @c TODO:
@@ -6,6 +6,9 @@
 @c     compiling/viewing (emacs?)
 @c   * where to go from First steps+More basics?
 
+@c  wherever possible, do not include index entries here; the
+@c  index should point to stuff in the reference manual.  -gp
+
 @c Your first LilyPond score in 10 minutes?
 
 @node Tutorial
@@ -23,7 +26,7 @@ picture in the HTML version of this manual, you will see the exact
 LilyPond input that was used to generate that image.
 Try it on this image
 
-@lilypond[fragment,quote,raggedright,relative=2]
+@lilypond[fragment,quote,ragged-right,relative=2]
 c-\markup { \bold \huge { Click here.  } }
 @end lilypond
 @end ifhtml
@@ -48,7 +51,7 @@ reference.
 * More staves::                 
 * Adding articulation marks to notes::  
 * Combining notes into chords::  
-* Advanced rhythmic commands::   
+* Advanced rhythmic commands::  
 * Commenting input files::      
 * Printing lyrics::             
 * A lead sheet::                
@@ -57,6 +60,7 @@ reference.
 * Piano staves::                
 * Organizing larger pieces::    
 * An orchestral part::          
+* After the tutorial::          
 @end menu
 
 
@@ -68,7 +72,9 @@ of music, a @rglos{scale}.  A @rglos{note} can be entered by typing its
 name, from @samp{a} through @samp{g}.  So, if you enter
 
 @example
+@{
 c d e f g a b
+@}
 @end example
 
 @noindent
@@ -78,6 +84,20 @@ the result looks like this
 c d e f g a b
 @end lilypond
 
+Every piece of LilyPond input needs to have @{curly braces@} placed
+around the input.  For the rest of this manual, most examples will
+omit these braces, but don't forget them in your own music!
+
+In addition, many examples use @code{relative} mode.  This is explained
+in @ref{Octave entry}; for now simply be aware that some examples
+should be placed inside @code{\relative @{ @emph{...music...} @}}.
+Many example have also been compressed horizontally to save
+space, using @code{\paper @{ ragged-right = ##t @}}.
+
+@cindex Case sensitive
+Finally, LilyPond input is case sensitive.  @code{ @{ c d e @} } is
+valid input; @code{ @{ C D E @} } will produce an error message.
+
 The @rglos{duration} of a note is specified by a number after the note
 name.  @samp{1} for a @rglos{whole note}, @samp{2} for a @rglos{half note},
 @samp{4} for a @rglos{quarter note} and so on
@@ -86,9 +106,7 @@ name.  @samp{1} for a @rglos{whole note}, @samp{2} for a @rglos{half note},
 a1 a2 a4 a16 a32
 @end example
 
-@c FIXME: have NOTIME also remove Score.timing?
 @lilypond[fragment,quote,notime,relative=2]
-\set Score.timing = ##f
 \set Staff.autoBeaming = ##f
 { a1 a2 a4 a16 a32 s16_" " }
 @end lilypond
@@ -102,20 +120,17 @@ a a8 a a2 a
 @end example
 
 @lilypond[fragment,quote,notime,relative=2]
-\set Score.timing = ##f
 { a a8 a a2 a s16_" " }
 @end lilypond
 
 
 A @rglos{rest} is entered just like a note, but with the name @samp{r}
 
-@cindex rests
 @example
 r2 r4 r8 r16
 @end example
 
 @lilypond[fragment,quote,notime]
-\set Score.timing = ##f
 r2 r4 r8 r16 s16_" "
 @end lilypond
 
@@ -126,7 +141,6 @@ a2. a4 a8. a16
 @end example
 
 @lilypond[fragment,quote,notime,relative=1]
-\set Score.timing = ##f
 { a2. a4 a8. a16 s16_" " }
 @end lilypond
 
@@ -141,7 +155,7 @@ command
 
 @c A clef here may lead to confusion, remove it.
 @lilypond[fragment,quote]
-\override Staff.Clef #'transparent = ##t 
+\override Staff.Clef #'transparent = ##t
 \time 3/4
 s4_" "
 \time 6/8
@@ -160,7 +174,6 @@ The @rglos{clef} can be set using the @code{\clef} command
 @end example
 
 @lilypond[fragment,quote,notime]
-\set Score.timing = ##f
 \clef treble
 s4_" "
 \clef bass
@@ -171,28 +184,28 @@ s4_" "
 s16_" "
 @end lilypond
 
-
 Remember to enclose the notes and commands in curly braces
 @code{@{@tie{}@dots{}@tie{}@}} to convert it to printable output.
 
-@lilypond[fragment,quote,noindent,linewidth=55\staffspace]
+@c @li lypond[fragment,quote,noindent,line-width=55\staff-space]
+@lilypond[fragment,quote,noindent,verbatim]
 \time 3/4
 \clef bass
 c2 e4 g2.
 f4 e d c2 r4
 @end lilypond
 
-For more elaborate information on
+For more information on
 
 @quotation
 @table @asis
 @item Entering pitches and durations
-see 
+see
 @ref{Pitches}, and @ref{Durations}.
 @item Clefs
 see @ref{Clef}.
 @item Rests
-see @ref{Rests}.  
+see @ref{Rests}.
 @item Time signatures and other timing commands
 see @ref{Time signature}.
 @end table
@@ -204,26 +217,51 @@ see @ref{Time signature}.
 
 @c cheesy title to avoid clash with chapter name.
 
-In the last section we explained what kind of things you can enter
-in a LilyPond file.  In this section we will explain what commands to
-run and how to view or print the output.  If you have not used
-LilyPond before, want to test your setup, or want to run an example
-file yourself, read this section.  The instructions that follow are
-for Unix-like systems.  Some additional instructions for Microsoft
-Windows are given at the end of this section.
+In the last section we explained what kind of things you can enter in
+a LilyPond file.  In this section we will explain what commands to run
+and how to view or print the output.  If you have not used LilyPond
+before, want to test your setup, or want to run an example file
+yourself, read this section.
+
+@unnumberedsubsec MacOS X
+
+If you double click LilyPond.app, it will open with an example
+file. Save it, for example, to @file{test.ly} on your Desktop, and
+then process it with the menu command @samp{Compile > Typeset File}.
+The resulting PDF file will be displayed on your screen.
+
+Be warned that the first-ever run will take a minute or two, because
+all of the system fonts have to be analyzed first.
+
+@unnumberedsubsec Windows
+
+On Windows, start up a text-editor@footnote{Any simple or
+programmer-oriented editor will do, for example Notepad.  Do not use a
+word processor, since these insert formatting codes that will confuse
+LilyPond.} and enter
+
+@verbatim
+{ c'4 e' g' }
+@end verbatim
+
+Save it on the desktop as @file{test.ly} and make sure that it is not
+called @file{test.ly.TXT}.  Double clicking @file{test.ly} will process
+the file and show the resulting PDF file.
+
+
+@unnumberedsubsec Unix
 
 Begin by opening a terminal window and starting a text editor.  For
 example, you could open an xterm and execute
 @code{joe}.@footnote{There are macro files for VIM addicts, and there
 is a @code{LilyPond-mode} for Emacs addicts.  If they have not been
-installed already, refer to
-@c FIXME lousy reference.
-the file @file{INSTALL.txt}.}  In your text editor, enter the following
-input and save the file as @file{test.ly}
+installed already, refer to the file @file{INSTALL.txt}.}  In your
+text editor, enter the following input and save the file as
+@file{test.ly}
 
-@example
-@{ c'4 e' g' @}
-@end example
+@verbatim
+{ c'4 e' g' }
+@end verbatim
 
 @noindent
 To process @file{test.ly}, proceed as follows
@@ -241,11 +279,9 @@ GNU LilyPond 2.6.0
 Processing `test.ly'
 Parsing...
 Interpreting music... [1]
-Preprocessing graphical objects... 
+Preprocessing graphical objects...
 Calculating line breaks... [2]
-Layout output to `test.tex'...
-Converting to `test.dvi'...
-Converting to `test.ps'...
+Layout output to `test.ps'...
 Converting to `test.pdf'...
 @end example
 
@@ -253,37 +289,14 @@ Converting to `test.pdf'...
 @cindex Viewing music
 @cindex xdvi
 @noindent
-The result is the file @file{test.pdf}@footnote{For @TeX{}
-aficionados: there is also a @file{test.dvi} file.  It can be viewed
-with @code{xdvi}.  The DVI uses a lot of PostScript specials, which do
-not show up in the magnifying glass.  The specials also mean that the
-DVI file cannot be processed with @code{dvilj}.  Use @code{dvips} for
-printing.
-@cindex dvips
-@cindex dvilj
-@cindex DVI driver
-} which you can print or view with the standard facilities of your
-operating system.@footnote{If your system does not have any tools
-installed, you can try
+The result is the file @file{test.pdf} which you can print or view
+with the standard facilities of your operating system.@footnote{If
+your system does not have any tools installed, you can try
 @uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, a freely
 available package for viewing and printing PDF and PostScript files.}
 
-On Windows, start up a text-editor@footnote{Any simple or
-programmer-oriented editor will do, for example Notepad.  Do not use a
-word processor, since these insert formatting codes that will confuse
-LilyPond.} and enter
-
-@example
-@{ c'4 e' g' @}
-@end example
-
-Save it on the desktop as @file{test.ly} and make sure that it is not
-called @file{test.ly.TXT}.  Double clicking @file{test.ly} will process
-the file and show the resulting PDF file.
-
-
 @node More about pitches
-@section More about pitches 
+@section More about pitches
 
 A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
 the name, a @rglos{flat} (@texiflat{}) pitch by adding @samp{es}.  As
@@ -397,7 +410,7 @@ For more information on Ties see @ref{Ties}.
 @node Automatic and manual beams
 @section Automatic and manual beams
 
-@cindex beams, by hand 
+@cindex beams, by hand
 All @rglos{beam}s are drawn automatically
 
 @lilypond[quote,fragment,relative=2,verbatim]
@@ -418,7 +431,7 @@ For more information on beams, see @ref{Manual beams}.
 
 Here are key signatures, accidentals and ties in action
 
-@lilypond[fragment,quote,noindent,linewidth=50\staffspace,verbatim]
+@lilypond[fragment,quote,noindent,line-width=50\staff-space,verbatim]
 \relative c'' {
   \time 4/4
   \key g \minor
@@ -452,7 +465,7 @@ according to standard notation conventions.
 @c tie) examples...
 
 @c better to have this just before the `octaves are bad' snipped
-@c but we'd need to remove the ', from \key and tie 
+@c but we'd need to remove the ', from \key and tie
 To raise a note by an octave, add a high quote @code{'} (apostrophe) to
 the note name, to lower a note one octave, add a `low quote' @code{,}
 (comma).  Middle C is @code{c'}
@@ -463,11 +476,11 @@ c'4 c'' c''' \clef bass c c,
 
 An example of the use of quotes is in the following Mozart fragment
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \key a \major
 \time 6/8
 cis''8. d''16 cis''8 e''4 e''8
-b'8. cis''16 b'8 d''4 d''8 
+b'8. cis''16 b'8 d''4 d''8
 @end lilypond
 
 @noindent
@@ -499,7 +512,7 @@ Since most music has small intervals, pieces can be written almost
 without octavation quotes in relative mode.  The previous example is
 entered as
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \relative {
   \key a \major
   \time 6/8
@@ -534,7 +547,7 @@ and @ref{Octave check}.
 
 
 In input files, music is represent by so-called @emph{music
-expression}s.  We have already seen some in the previous examples; 
+expression}s.  We have already seen some in the previous examples;
 a single note is a music expression
 
 @lilypond[fragment,quote,verbatim,relative=3]
@@ -555,7 +568,7 @@ Here, the expression from the previous example is combined with two
 notes
 
 @lilypond[fragment,quote,verbatim,relative=3]
-{ { a4 g } f g } 
+{ { a4 g } f g }
 @end lilypond
 
 This technique is useful for non-monophonic music.  To enter music
@@ -592,7 +605,7 @@ you can make arbitrarily complex and large expressions.  For example,
 @cindex expression
 @cindex music expression
 This is a sequence of expressions, where each expression is contained
-in the next one.  The simplest expressions are numbers, and larger
+in the next (larger) one.  The simplest expressions are numbers, and larger
 ones are made by combining expressions with operators (like @samp{+},
 @samp{*} and @samp{/}) and parentheses.  Like mathematical expressions,
 music expressions can be nested arbitrarily deep, which is necessary
@@ -604,7 +617,7 @@ example begins with a single note.  To determine the number of staves,
 LilyPond looks at the first element.  If it is a single note, there is one
 staff; if there is a simultaneous expression, there is more than one staff.
 
-@lilypond[fragment,quote,verbatim,relative=2] 
+@lilypond[fragment,quote,verbatim,relative=2]
 {
   c <<c e>>
   << { e f } { c <<b d>> } >>
@@ -669,14 +682,14 @@ We can now typeset a melody with two staves
 
 @c TODO: (c) status of this Paul McCartney (?) song (let's all stand together)
 
-@lilypond[fragment,quote,verbatim,raggedright]
+@lilypond[fragment,quote,verbatim,ragged-right]
 \relative <<
   \new Staff {
     \time 3/4
-    \clef treble 
-    
+    \clef treble
+
     e'2 d4 c2 b4 a8[ a]
-    b[ b] g[ g] a2. 
+    b[ b] g[ g] a2.
   }
   \new Staff {
      \clef bass
@@ -900,7 +913,7 @@ ignored.  The following fragment shows possible uses for comments
     are ignored, since they are in a
     block comment.
 
-    g g f f e e d d c2 
+    g g f f e e d d c2
 %@}
 @end example
 
@@ -941,7 +954,7 @@ I want to break free
 
 Consider the melody
 
-@lilypond[quote,verbatim,fragment,raggedright]
+@lilypond[quote,verbatim,fragment,ragged-right]
 \relative {
   r4 c \times 2/3 { f g g }
   \times 2/3 { g4( a2) }
@@ -951,7 +964,7 @@ Consider the melody
 The lyrics can be set to these notes, combining both with the
 @code{\addlyrics} keyword
 
-@lilypond[quote,verbatim,fragment,raggedright]
+@lilypond[quote,verbatim,fragment,ragged-right]
 <<
   \relative {
     r4 c \times 2/3 { f g g }
@@ -970,9 +983,9 @@ line}.  It is entered as two underscores, i.e.,
 
 @example
 @{ I want to break free __ @}
-@end example 
+@end example
 
-@lilypond[fragment,quote,raggedright]
+@lilypond[fragment,quote,ragged-right]
 <<
   \relative {
     r4 c \times 2/3 { f g g }
@@ -989,7 +1002,7 @@ resulting in a centered hyphen between two syllables
 Twin -- kle twin -- kle
 @end example
 
-@lilypond[fragment,quote,raggedright]
+@lilypond[fragment,quote,ragged-right]
 <<
   \relative {
     \time 2/4
@@ -1015,7 +1028,7 @@ discussed in @ref{Vocal music}.
 In popular music, it is common to denote accompaniment with chord names.
 Such chords can be entered like notes,
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 \chordmode { c2 f4. g8 }
 @end lilypond
 
@@ -1026,7 +1039,7 @@ This mode is switched on with @code{\chordmode}
 Other chords can be created by adding modifiers after a colon.  The
 following example shows a few common modifiers
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 \chordmode { c2 f4:m g4:maj7 gis1:dim7 }
 @end lilypond
 
@@ -1035,8 +1048,8 @@ line for themselves.  This is achieved by using @code{\chords} instead
 of @code{\chordmode}.  This uses the same syntax as @code{\chordmode},
 but renders the notes in a @code{ChordNames} context, with the
 following result.
-@lilypond[quote,verbatim,raggedright]
+
+@lilypond[quote,verbatim,ragged-right]
 \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
 @end lilypond
 
@@ -1053,9 +1066,9 @@ a lead sheet, for example,
 @}
 @end example
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 <<
-  \chords { r2 c:sus4 f } 
+  \chords { r2 c:sus4 f }
   \relative {
     r4 c' \times 2/3 { f g g }
     \times 2/3 { g4( a2) }
@@ -1077,9 +1090,9 @@ entered as an assignment, within @code{\header
 @{@tie{}@dots{}@tie{}@}}.  The @code{\header} block is usually put at
 the top of the file.  For example,
 
-@example 
+@example
 \header @{
-  title = "Miniature" 
+  title = "Miniature"
   composer = "Igor Stravinsky"
 @}
 
@@ -1133,14 +1146,14 @@ Again, these expressions can be nested arbitrarily
   >>
   \new Staff <<
     \clef bass
-    { <c, g>1 ~ <c g>4 } \\
-    { e,4 d e2 ~ e4}
+    { <c g>1 ~ <c g>4 } \\
+    { e,,4 d e2 ~ e4}
   >>
 >>
 @end lilypond
 
 More features of polyphonic typesetting are described in this manual
-in section @ref{Polyphony}.
+in section @ref{Basic polyphony}.
 
 
 @node Piano staves
@@ -1148,7 +1161,6 @@ in section @ref{Polyphony}.
 
 @cindex staff switch, manual
 @cindex cross staff voice, manual
-@cindex @code{\context}
 Piano music is typeset in two staves connected by a brace.  Printing
 such a staff is similar to the polyphonic example in @ref{More staves},
 
@@ -1174,15 +1186,15 @@ Here is a small example
 >>
 @end lilypond
 
-More information on formatting piano music is given in @ref{Piano music}.  
+More information on formatting piano music is given in @ref{Piano music}.
 
 
 @node Organizing larger pieces
 @section Organizing larger pieces
 
 When all of the elements discussed earlier are combined to produce
-larger files, the @code{\score} blocks get a lot bigger, because the
-music expressions are longer, and, in the case of polyphonic pieces,
+larger files, the @code{\score} blocks get a lot bigger because the
+music expressions are longer, and, in the case of polyphonic music,
 more deeply nested.  Such large expressions can become unwieldy.
 
 By using variables, also known as identifiers, it is possible to break
@@ -1198,15 +1210,15 @@ later by preceding the name with a backslash, i.e., @code{\namedMusic}.
 In the next example, a two-note motive is repeated two times by using
 variable substitution
 
-@lilypond[quote,raggedright,verbatim,nofragment]
+@lilypond[quote,ragged-right,verbatim,nofragment]
 seufzer = {
   e'4( dis'4)
 }
 { \seufzer \seufzer }
 @end lilypond
 
-The name of an identifier should have alphabetic characters only; no
-numbers, underscores or dashes.  The assignment should be outside of
+The name of an identifier should have alphabetic characters only: no
+numbers, underscores, or dashes.  The assignment should be outside of
 running music.
 
 It is possible to use variables for many other types of objects in the
@@ -1224,7 +1236,7 @@ places.  The following example uses the above variables
 @example
 \paper @{
   \aFivePaper
-  linewidth = \width
+  line-width = \width
 @}
 @{ c4^\name @}
 @end example
@@ -1278,12 +1290,12 @@ The line
 substitutes the contents of @file{horn-music.ly} at this position in
 the file, so @code{hornNotes} is defined afterwards.  The command
 @code{\transpose f@tie{}c'} indicates that the argument, being
-@code{\hornNotes}, should be transposed by a fifth downwards.  Sounding
+@code{\hornNotes}, should be transposed by a fifth upwards.  Sounding
 @samp{f} is denoted by notated @code{c'}, which corresponds with the
 tuning of a normal French Horn in@tie{}F.  The transposition can be seen
 in the following output
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \transpose f c' \relative c {
   \time 2/4
   r4 f8 a cis4 f e d
@@ -1293,7 +1305,8 @@ in the following output
 In ensemble pieces, one of the voices often does not play for many
 measures.  This is denoted by a special rest, the multi-measure
 rest.  It is entered with a capital @samp{R} followed by a duration
-(1@tie{}for a whole note, 2@tie{}for a half note, etc.).  By multiplying the
+(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note,
+etc.).  By multiplying the
 duration, longer rests can be constructed.  For example, this rest
 takes 3@tie{}measures in 2/4 time
 
@@ -1313,10 +1326,10 @@ This command sets the property @code{skipBars} in the
 @code{Score} context to true (@code{##t}).  Prepending the rest and
 this option to the music above, leads to the following result
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \transpose f c' \relative c {
   \time 2/4
-  \set Score.skipBars = ##t 
+  \set Score.skipBars = ##t
   R2*3
   r4 f8 a cis4 f e d
 }
@@ -1338,9 +1351,9 @@ that the other voice is in @code{bassoonNotes} in the file
 @end example
 
 @noindent
-leading to 
+leading to
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \relative c <<
   \new Staff {
     \time 2/4 R2*3
@@ -1361,14 +1374,22 @@ Setting run-time variables (`properties') is discussed in
 @ref{Changing context properties on the fly}.
 
 
-@ignore
-
-* longer example
+@node After the tutorial
+@section After the tutorial
 
-* discuss expectations (?)
+After finishing the tutorial, you should probably try writing a
+piece or two.  Start with one of the @ref{Example templates} and
+add notes.  If you need any notation that was not covered in the
+tutorial, look at the Notation Reference, starting with
+@ref{Basic notation}.  If you want to write for an instrument
+ensemble which is not covered in the @ref{Example templates},
+take a look at @ref{Extending the templates}.
 
-* conclude tutorial
+Once you have written a few short pieces, read the rest of
+the Learning Manual (chapters 3-5).  There's nothing wrong
+with reading them now, of course!  However, the rest of the
+Learning Manual assumes that you are familiar with
+LilyPond input.  You may wish to skim these chapters right
+now, and come back to them after you have more experience.
 
-* overview of chapters?
 
-@end ignore