]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/tutorial.itely
* lily/parser.yy (assignment_id): allow LYRICS_STRING as
[lilypond.git] / Documentation / user / tutorial.itely
index f858104dca0f6478360484f229fa16ff82b60500..4f0873eda154c192fff183ed1d641a1d535f367b 100644 (file)
@@ -1,4 +1,4 @@
-@c -*-texinfo-*-
+@c -*- coding: latin-1; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 
 @c TODO:
@@ -152,9 +152,6 @@ s16_" "
 
 The @rglos{clef} can be set using the @code{\clef} command
 
-@c what is more common name treble or violin?
-@c in Dutch, it is violin.
-@c in English it is definitely treble.
 @example
 \clef treble
 \clef bass
@@ -164,7 +161,7 @@ The @rglos{clef} can be set using the @code{\clef} command
 
 @lilypond[fragment,quote,notime]
 \set Score.timing = ##f
-\clef violin
+\clef treble
 s4_" "
 \clef bass
 s4_" "
@@ -179,12 +176,10 @@ 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]
-{
-  \time 3/4
-  \clef bass
-  c2 e4 g2.
-  f4 e d c2 r4
-}
+\time 3/4
+\clef bass
+c2 e4 g2.
+f4 e d c2 r4
 @end lilypond
 
 For more elaborate information on
@@ -209,7 +204,7 @@ see @ref{Time signature}.
 
 @c cheesy title to avoid clash with chapter name.
 
-In the last section we explained what kind of things you could enter
+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
@@ -241,15 +236,17 @@ lilypond test.ly
 You will see something resembling
 
 @example
-lilypond (GNU LilyPond) 2.2.0
-Running lilypond...
-Now processing `/home/fred/ly/test.ly'
+lilypond test.ly
+GNU LilyPond 2.5.0
+Processing `test.ly'
 Parsing...
-Interpreting music...[1]
-@emph{... more interesting stuff ... }
-DVI output to `test.dvi'...
-PDF output to `test.pdf'...
-PS output to `test.ps'...
+Interpreting music... [1]
+Preprocessing graphical objects... 
+Calculating line breaks... [2]
+Layout output to `test.tex'...
+Converting to `test.dvi'...
+Converting to `test.ps'...
+Converting to `test.pdf'...
 @end example
 
 @cindex DVI file
@@ -265,11 +262,11 @@ printing.
 @cindex dvips
 @cindex dvilj
 @cindex DVI driver
-} which you can print or with the standard facilities of your
+} 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.}
+@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
@@ -356,17 +353,12 @@ d cis fis
 @noindent
 The code @samp{d} does not mean `print a black dot just below the
 staff.'  Rather, it means: `a note with pitch D-natural.'  In the key
-of A-flat, it does get an accidental
-
-@lilypond[quote,notime,fragment]
-\key as \major
-d'
-@end lilypond
+of A-flat major, it does get an accidental
 
-@example
+@lilypond[quote,notime,fragment,relative=1,verbatim]
 \key as \major
 d
-@end example
+@end lilypond
 
 Adding all alterations explicitly might require a little more effort
 when typing, but the advantage is that transposing is easier, and
@@ -426,32 +418,13 @@ For more information on beams, see @ref{Beaming}.
 
 Here are key signatures, accidentals and ties in action
 
-@example
-@{
+@lilypond[fragment,quote,noindent,linewidth=50\staffspace,verbatim]
+\relative c'' {
   \time 4/4
   \key g \minor
-  \clef violin
+  \clef treble
   r4 r8 a8 gis4 b
-  a8 d4.~ d e8
-  fis4 fis8 fis8 eis4 a8 gis~
-  gis2 r2
-@}
-@end example
-
-@ignore
-FIXME
-ugr: removing the ignore block, leaving the comment line below
-@c TODO: use relative mode, verbatim, junk \transpose and above @example
-@end ignore
-
-
-@lilypond[fragment,quote,noindent,linewidth=50\staffspace]
-\transpose c c' {
-  \time 4/4
-  \key g \minor
-  \clef violin
-  r4 r8 a8 gis4 b
-  a8 d4.~ d e8
+  a8 d4.~ d e,8
   fis4 fis8 fis8 eis4 a8 gis~
   gis2 r2
 }
@@ -464,7 +437,7 @@ ugr: removing the ignore block, leaving the comment line below
 There are some interesting points to note in this example.  Bar lines
 and beams are drawn automatically.  Line breaks are calculated
 automatically; it does not matter where the line breaks are in the
-source file.  Finally, the order in which time, key and clef changes
+source file.  Finally, the order in which time, key, and clef changes
 are entered is not relevant: in the printout, these are ordered
 according to standard notation conventions.
 
@@ -482,13 +455,9 @@ according to standard notation conventions.
 @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'}
+(comma).  Middle C is @code{c'}
 
-@example
-c'4 c'' c''' \clef bass c c,
-@end example
-
-@lilypond[quote,notime,fragment]
+@lilypond[quote,notime,fragment,verbatim]
 c'4 c'' c''' \clef bass c c,
 @end lilypond
 
@@ -502,20 +471,20 @@ b'8. cis''16 b'8 d''4 d''8
 @end lilypond
 
 @noindent
-The last example shows that music in a high register needs lots of quotes.
+This example shows that music in a high register needs lots of quotes.
 This makes the input less readable, and it is a source of errors.  The
 solution is to use `relative octave' mode.   This is the
 most convenient way to copy existing music.
 
-In relative mode, a note without octavation quotes (i.e.  the @code{'}
-or @code{,} after a note) is chosen so it it is closest to the
+In relative mode, a note without octavation quotes (i.e. the @code{'}
+or @code{,} after a note) is chosen so that it is closest to the
 previous one.  For example, @samp{c f} goes up while @samp{c g} goes
-down
+down.
 
 To use relative mode, add @code{\relative} before the piece of
 music.  The first note is taken relative to the middle C
 @c no , for this sentence
-(i.e. @code{c'})
+(i.e., @code{c'})
 
 
 
@@ -556,7 +525,7 @@ of a note in @code{\relative} mode.  Rather, the height of a note is
 relative to the previous one, and changing the octave of a single note
 shifts all following notes an octave up or down.
 
-For more information on Relative octaves see @ref{Relative octaves},
+For more information on relative octaves see @ref{Relative octaves},
 and @ref{Octave check}.
 
 
@@ -565,21 +534,21 @@ and @ref{Octave check}.
 
 
 In input files, music is represent by so-called @emph{music
-expression}.  We have already seen 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]
 a4
 @end lilypond
 
-Enclosing group of notes in braces creates a new music
+Enclosing group of notes in braces creates a new music
 expression
 
 @lilypond[fragment,quote,verbatim,relative=3]
 { a4 g4 }
 @end lilypond
 
-Putting a bunch of music expressions (notes) in braces, means that
+Putting a bunch of music expressions (e.g., notes) in braces, means that
 they should be played in sequence.  The result again is a music
 expression, which can be grouped with other expressions sequentially.
 Here, the expression from the previous example is combined with two
@@ -595,13 +564,13 @@ parallel.  Two voices that should play at the same time, are entered
 as a simultaneous combination of two sequences.  A `simultaneous'
 music expression is formed by enclosing expressions in @code{<<} and
 @code{>>}.  In the following example, three sequences (all containing
-two other notes) are combined simultaneously
+two separate notes) are combined simultaneously
 
 @lilypond[fragment,quote,verbatim,relative=3]
 <<
-   { a4 g }
-   { f e }
-   { d b }
+  { a4 g }
+  { f e }
+  { d b }
 >>
 @end lilypond
 
@@ -630,10 +599,10 @@ music expressions can be nested arbitrarily deep, which is necessary
 for complex music like polyphonic scores.
 
 Note that this example only has one staff, whereas
-the previous example had three seperate staves.  That is because this
+the previous example had three separate staves.  That is because this
 example begins with a single note.  To determine the number of staves,
-LilyPond looks at the first element.  If it's a single note, there's one
-staff; if there's a simultaneous expression, there's more than one staff.
+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] 
 {
@@ -669,7 +638,7 @@ indenting source files.  See @ref{Editor support} for more information.
 
 To print more than one staff, each piece of music that makes up a
 staff is marked by adding @code{\new Staff} before it.  These
-@code{Staff} elements are then combined parallel with @code{<<} and
+@code{Staff} elements are then combined in parallel with @code{<<} and
 @code{>>}, as demonstrated here
 
 @lilypond[quote,fragment,verbatim]
@@ -687,11 +656,9 @@ notation contexts are created automatically.  For more complex pieces, it
 is best to mark contexts explicitly.  This ensures that each fragment
 gets its own stave.
 
-There are several types of contexts: @code{Staff}, @code{Voice} and
-@code{Score} handle melodic notation.  Other contexts are also
-@code{Lyrics} (for setting lyric texts) and @code{ChordNames} (for
-printing chord names).
-
+There are several types of contexts.  @code{Staff}, @code{Voice} and
+@code{Score} handle melodic notation, while @code{Lyrics} sets lyric
+texts and @code{ChordNames} prints chord names.
 
 In terms of syntax, prepending @code{\new} to a music expression
 creates a bigger music expression.  In this way it resembles the minus
@@ -719,7 +686,7 @@ We can now typeset a melody with two staves
 >>
 @end lilypond
 
-For more information on context see the description in
+For more information on contexts see the description in
 @ref{Interpretation contexts}.
 
 
@@ -748,8 +715,8 @@ c-3 e-5 b-2 a-1
 
 Articulations and fingerings are usually placed automatically, but you
 can specify a direction using @samp{^} (up) or @samp{_} (down).  You can
-also use multiple articulations on the same note.  In most cases, it's
-best to let LilyPond determine the articulation directions.
+also use multiple articulations on the same note.  In most cases, however,
+it is best to let LilyPond determine the articulation directions.
 
 @lilypond[fragment,quote,verbatim,relative=2]
 c_-^1 d^. f^4_2-> e^-_+
@@ -768,7 +735,7 @@ c\ff c\mf
 
 Crescendi and decrescendi are started with the commands @code{\<} and
 @code{\>}.  An ending dynamic, for example @code{\f}, will finish the
-crescendo, or the command @code{\!} can be used
+(de)crescendo, or the command @code{\!} can be used
 
 @lilypond[fragment,quote,verbatim,relative=2]
 c2\< c2\ff\> c2 c2\!
@@ -918,14 +885,14 @@ see @ref{Partial measures}.
 A comment is a remark for the human reader of the music input; it is
 ignored while parsing, so it has no effect on the printed output.
 There are two types of comments.  The percent symbol @samp{%}
-introduces a line comment; after  @code{%} the rest of the line   is
-ignored.  A block comments marks a whole section of music
+introduces a line comment; after @code{%} the rest of the line is
+ignored.  A block comment marks a whole section of music
 input.  Anything that is enclosed in @code{%@{} and @code{%@}} is
 ignored.  The following fragment shows possible uses for comments
 
 @example
 % notes for twinkle twinkle follow
-c4 c g' g a a g2
+  c4 c g' g a a g2
 
 %@{
     This line, and the notes below
@@ -936,19 +903,18 @@ c4 c g' g a a g2
 %@}
 @end example
 
-@c  FIXME
+@c  TODO   post-2.4 reorg
 @c   This is good info, but I wouldn't call it a comment.  IMO it should
-@c   be moved somewhere else.  I don't know exactly where yet, but I'll
-@c   resolve it soon.  -gp
+@c   be moved somewhere else.
 
 @cindex versioning
 
 There is a special statement that is a kind of comment.  The @code{\version}
 statement marks for which version of LilyPond the file was written.
-To mark a file for version 2.1.17, use
+To mark a file for version 2.4.0, use
 
 @example
-\version "2.1.17"
+\version "2.4.0"
 @end example
 
 @noindent
@@ -976,8 +942,8 @@ Consider the melody
 
 @lilypond[quote,verbatim,fragment,raggedright]
 \relative {
-    r4 c \times 2/3 { f g g }
-    \times 2/3 { g4( a2) }
+  r4 c \times 2/3 { f g g }
+  \times 2/3 { g4( a2) }
 }
 @end lilypond
 
@@ -1025,10 +991,10 @@ Twin -- kle twin -- kle
 @lilypond[fragment,quote,raggedright]
 <<
   \relative {
-     \time 2/4
-     f4 f c' c
-   }
-   \addlyrics { Twin -- kle twin -- kle }
+    \time 2/4
+    f4 f c' c
+  }
+  \addlyrics { Twin -- kle twin -- kle }
 >>
 @end lilypond
 
@@ -1043,32 +1009,34 @@ discussed in @ref{Vocal music}.
 @cindex chords
 @cindex chord names
 
+@c TODO: revise this, \chords { } is shorter and more intuitive.
+
 In popular music, it is common to denote accompaniment with chord names.
 Such chords can be entered like notes,
 
 @lilypond[quote,verbatim,raggedright]
-\chords { c2 f4. g8 }
+\chordmode { c2 f4. g8 }
 @end lilypond
 
 @noindent
 Now each pitch is read as the root of a chord instead of a note.
-This mode is switched on with @code{\chords}
-
+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]
-\chords { c2 f4:m g4:maj7 gis1:dim7 }
+@lilypond[quote,verbatim,raggedright]
+\chordmode { c2 f4:m g4:maj7 gis1:dim7 }
 @end lilypond
 
 For lead sheets, chords are not printed on staves, but as names on a
-line of themselves.  Hence, we have to override the context with
-@code{\new}, rendering the music expression in a @code{ChordNames}
-context
-
-@lilypond[quote,verbatim]
-\new ChordNames \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
+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]
+\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
 @end lilypond
 
 @cindex lead sheet
@@ -1077,7 +1045,7 @@ a lead sheet, for example,
 
 @example
 <<
-  \new ChordNames \chords @{ @emph{chords} @}
+  \chords @{ @emph{chords} @}
   @emph{the melody}
   \addlyrics @{ @emph{the text} @}
 >>
@@ -1086,12 +1054,12 @@ a lead sheet, for example,
 
 @lilypond[quote,raggedright]
 <<
-  \new ChordNames \chords { r2 c:sus4 f } 
+  \chords { r2 c:sus4 f } 
   \relative {
     r4 c' \times 2/3 { f g g }
     \times 2/3 { g4( a2) }
   }
- \addlyrics { I want to break free __ }
 \addlyrics { I want to break free __ }
 >>
 @end lilypond
 
@@ -1118,7 +1086,7 @@ the top of the file.  For example,
 @end example
 
 
-When the file is processed the title and composer are printed above
+When the file is processed, the title and composer are printed above
 the music.  More information on titling can be found in @ref{Creating
 titles}.
 
@@ -1135,7 +1103,7 @@ beams, and the top voice has the stems up, while the bottom voice has
 them down.
 
 Entering such parts is done by entering each voice as a sequence (with
-@code{@{...@}}), and combining those simultaneously, separating the
+@code{@{...@}}), and combining these simultaneously, separating the
 voices with @code{\\}
 
 @lilypond[quote,verbatim,relative=2,fragment]
@@ -1165,13 +1133,13 @@ Again, these expressions can be nested arbitrarily
   \new Staff <<
     \clef bass
     { <c, g>1 ~ <c g>4 } \\
-    { f4 d e2 ~ e4}
+    { e,4 d e2 ~ e4}
   >>
 >>
 @end lilypond
 
-More features of polyphonic typesetting in the notation manual are
-described in @ref{Polyphony}.
+More features of polyphonic typesetting are described in this manual
+in section @ref{Polyphony}.
 
 
 @node Piano staves
@@ -1205,7 +1173,7 @@ Here is a small example
 >>
 @end lilypond
 
-More information on formatting piano music is in @ref{Piano music}.  
+More information on formatting piano music is given in @ref{Piano music}.  
 
 
 @node Organizing larger pieces
@@ -1253,14 +1221,14 @@ Depending on its contents, the identifier can be used in different
 places.  The following example uses the above variables
 
 @example
-  \paper @{
-    \aFivePaper
-    linewidth = \width
-  @}
-  @{ c4^\name @}
+\paper @{
+  \aFivePaper
+  linewidth = \width
+@}
+@{ c4^\name @}
 @end example
 
-More information on the possible uses of identifiers is in the
+More information on the possible uses of identifiers is given in the
 technical manual, in @ref{Input variables and Scheme}.
 @c fixme: the ref is too technical.
 
@@ -1272,14 +1240,14 @@ In orchestral music, all notes are printed twice.  Once in a part for
 the musicians, and once in a full score for the conductor.  Identifiers can
 be used to avoid double work.  The music is entered once, and stored in
 a variable.  The contents of that variable is then used to generate
-both the part and the score.
+both the part and the full score.
 
 It is convenient to define the notes in a special file.  For example,
 suppose that the file @file{horn-music.ly} contains the following part
-of a horn/bassoon duo
+of a horn/@/bassoon duo
 
 @example
-hornNotes =  \relative c @{
+hornNotes = \relative c @{
   \time 2/4
   r4 f8 a cis4 f e d
 @}
@@ -1310,15 +1278,15 @@ 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
-@samp{f} is denoted by notated @code{c'}, which corresponds with
+@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]
-  \transpose f c' \relative c {
-    \time 2/4
-    r4 f8 a cis4 f e d
-  }
+\transpose f c' \relative c {
+  \time 2/4
+  r4 f8 a cis4 f e d
+}
 @end lilypond
 
 In ensemble pieces, one of the voices often does not play for many
@@ -1346,11 +1314,11 @@ this option to the music above, leads to the following result
 
 @lilypond[quote,raggedright]
 \transpose f c' \relative c {
-    \time 2/4
-    \set Score.skipBars = ##t 
-    R2*3
-    r4 f8 a cis4 f e d
-  }
+  \time 2/4
+  \set Score.skipBars = ##t 
+  R2*3
+  r4 f8 a cis4 f e d
+}
 @end lilypond
 
 
@@ -1362,27 +1330,27 @@ that the other voice is in @code{bassoonNotes} in the file
 \include "bassoon-music.ly"
 \include "horn-music.ly"
 
-  <<
-    \new Staff \hornNotes
-    \new Staff \bassoonNotes
-  >>
+<<
+  \new Staff \hornNotes
+  \new Staff \bassoonNotes
+>>
 @end example
 
 @noindent
 leading to 
 
 @lilypond[quote,raggedright]
-  \relative c <<
-    \new Staff {
-      \time 2/4 R2*3
-      r4 f8 a cis4 f e d
-    }
-    \new Staff {
-      \clef bass
-      r4 d,8 f | gis4 c | b bes |
-      a8 e f4 | g d | gis f
-    }
-  >>
+\relative c <<
+  \new Staff {
+    \time 2/4 R2*3
+    r4 f8 a cis4 f e d
+  }
+  \new Staff {
+    \clef bass
+    r4 d,8 f | gis4 c | b bes |
+    a8 e f4 | g d | gis f
+  }
+>>
 @end lilypond
 
 More in-depth information on preparing parts and scores can be found