]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/tutorial.itely
Merge branch 'master' into lilypond/translation
[lilypond.git] / Documentation / user / tutorial.itely
index 8b5e570b5b2805b19af699cbda9dfbfe6575cd11..2bcdd07b1c6ee527ed185cf7c1aede606a0eda8b 100644 (file)
@@ -48,12 +48,14 @@ 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,ragged-right,relative=2]
-c-\markup { \bold \huge { Click here.  } }
+@c no verbatim here
+@lilypond[quote,ragged-right]
+\relative c'' {
+  c-\markup { \bold \huge { Click here.  } }
+}
 @end lilypond
 
-By cutting and pasting everything from the @qq{Start cut-&-pastable-section}
-to the end of the file, you have a
+By cutting and pasting everything in the @qq{ly snippet} section, you have a
 starting template for experiments.  If you like learning in this way,
 you will probably want to print out or bookmark the
 @ref{Cheat sheet}, which is a table listing of the most common
@@ -98,6 +100,7 @@ notation.  For example, if we write
 @noindent
 the result looks like this
 
+@c  in this case we don't want verbatim
 @lilypond[quote,ragged-right]
 {
   c' e' g' e'
@@ -105,14 +108,14 @@ the result looks like this
 @end lilypond
 
 @strong{Warning:} Every piece of LilyPond input needs to have @strong{@{ curly
-braces @}} placed around the input.  The braces should be also be
+braces @}} placed around the input.  The braces should also be
 surrounded by a space unless they are at the beginning or end of a
 line to avoid ambiguities.  These may be omitted in some examples in this
 manual, but don't forget them in your own music!
 
 @cindex Case sensitive
-In addition, LilyPond input is @strong{case sensitive}.  @code{ @{ c d e @} }
-is valid input; @code{ @{ C D E @} } will produce an error message.
+In addition, LilyPond input is @strong{case sensitive}.  @code{ @{c d e @}}
+is valid input; @code{@{ C D E @}} will produce an error message.
 
 @sp 1
 
@@ -123,34 +126,39 @@ and how to view or print the output.
 
 @subsubheading 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
+If you double click @code{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 time you ever run lilypond will take a minute
+Be warned that the first time you ever run LilyPond, it will take a minute
 or two because all of the system fonts have to be analyzed first.
 
-For future use of LilyPond, you should begin by selecting "New"
-or "Open".
+For future use of LilyPond, you should begin by selecting @q{New}
+or @q{Open}.  You must save your file before typesetting it.  If any errors
+occur in processing, please see the log window.
 
 @subsubheading Windows
 
-On Windows, start up a text-editor@footnote{Any simple or
-programmer-oriented editor with UTF-8 support will do, for example
-Notepad.  Do not use a word processor, since these insert formatting
-codes that will confuse LilyPond.} and enter
+On Windows, if you double-click in the LilyPond icon on the Desktop, it
+will open a simple text editor with an example file. Save it, for
+example, to @file{test.ly} on your Desktop and then double-click on the
+file to process it (the file icon looks like a note).  After some
+seconds, you will get a file @file{test.pdf} 
+on your desktop.  Double-click on this PDF file to view the typeset
+score.  An alternative method to process the @file{test.ly} file
+is to drag and drop it onto the LilyPond icon using your mouse pointer.
 
-@verbatim
-{
-  c' e' g' e'
-}
-@end verbatim
+To edit an existing @file{.ly} file, right-click on it and select
+@qq{Edit source}. To get an empty file to start from, run the editor
+as described above and use @qq{New} in the @qq{File} menu.
 
-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.
+Double-clicking the file does not only result in a PDF file, but also
+produces a @file{.log} file that contains some information on what LilyPond
+has done to the file.  If any errors occur, please examine this file.
 
+Note that there are several other text editors available, with better
+support for LilyPond, see @rprogram{Editor support}, for more information.
 
 @subsubheading Unix
 
@@ -158,9 +166,9 @@ 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 the file @file{INSTALL.txt}.  These
+installed already, refer to the file @file{INSTALL.txt}.  The
 easiest editing environment is @file{LilyPondTool}.  See
-@ref{Editor support} for more information.}.  In your
+@rprogram{Editor support}, for more information.}.  In your
 text editor, enter the following input and save the file as
 @file{test.ly}
 
@@ -198,7 +206,7 @@ Converting to `test.pdf'...
 @noindent
 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
+your system does not have any such 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.}
 
@@ -288,7 +296,7 @@ automatically.
 If you do not specify a duration, the previous duration is used
 for the next note.  The duration of the first note defaults to a quarter.
 
-To create @rglos{dotted notes}, add a dot @samp{.} to the duration number.
+To create @rglos{dotted note}s, add a dot @samp{.} to the duration number.
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
@@ -335,7 +343,7 @@ The @rglos{clef} can be set using the @code{\clef} command:
   \clef treble
   c1
   \clef alto
-       c1
+  c1
   \clef tenor
   c1
   \clef bass
@@ -361,7 +369,7 @@ Here is a small example showing all these elements together:
 @quotation
 @table @asis
 @item Entering pitches and durations
-see @ref{Pitches} and @ref{Durations}.
+see @ref{Pitches}, and @ref{Durations}.
 @item Rests
 see @ref{Rests}.
 @item Time signatures and other timing commands
@@ -375,10 +383,10 @@ see @ref{Clef}.
 @node Working on text files
 @subsection Working on text files
 
-LilyPond input files are treated like files in most programming languages:
-they are case sensitive, white-space insensitive, expressions are
+LilyPond input files are similar to source files in many common programming languages.
+They are case sensitive, and white-space is generally equivalent.  Expressions are
 formed with curly braces @{ @}, and comments are denoted with @code{%} or
-@code{%@{ .. %@}}.
+@code{%@{ ... %@}}.
 
 If the previous sentence sounds like nonsense, don't worry!  We'll explain
 what all these terms mean:
@@ -389,13 +397,13 @@ what all these terms mean:
 @item @strong{Case sensitive}:
 it matters whether you enter a letter
 in lower case (i.e. @code{a, b, s, t}) or upper case (i.e.
-@code{A, B, S, T}).  Notes are lower case: @code{ @{ c d e @} }
-is valid input; @code{ @{ C D E @} } will produce an error message.
+@code{A, B, S, T}).  Notes are lower case: @code{@{ c d e @}}
+is valid input; @code{@{ C D E @}} will produce an error message.
 
 @item @strong{Whitespace insensitive}:
 it does not matter how many
-spaces (or new lines) you add.  @code{ @{ c d e @}} means the same thing
-as @code{ @{ c @ @ @ @ @  d e @} } and
+spaces (or new lines) you add.  @code{@{ c d e @}} means the same thing
+as @code{@{ c @tie{} @tie{} @tie{} d e @}} and
 @example
           @{
 c                        d
@@ -419,7 +427,7 @@ parenthesis @samp{()} in mathematics.  The braces should
 be surrounded by a space unless they are at the beginning or end of a
 line to avoid ambiguities.
 
-A function (such as @code{\relative @{ @}} ) also counts as a single
+A function (such as @code{\relative @{ @}}) also counts as a single
 music expression.
 
 @cindex comments
@@ -432,7 +440,7 @@ There are two types of comments.  The percent symbol @samp{%}
 introduces a line comment; anything after @samp{%} on that line is
 ignored.  A block comment marks a whole section of music
 input as a comment.  Anything that is enclosed in @code{%@{} and @code{%@}} is
-ignored.  The following fragment shows possible uses for comments
+ignored.  (Comments do not nest.)  The following fragment shows possible uses for comments
 
 @example
 % notes for twinkle twinkle follow
@@ -564,7 +572,7 @@ a
 @subheading Warning: key signatures and pitches
 
 To determine whether to print an accidental, LilyPond examines the
-pitches and the key signature.  The key signature only effects
+pitches and the key signature.  The key signature only affects
 the @emph{printed} accidentals, not the actual pitches!  This is a
 feature that often causes confusion to newcomers, so let us explain it
 in more detail.
@@ -602,14 +610,14 @@ e
 Adding all alterations explicitly might require a little more effort
 when typing, but the advantage is that transposing is easier, and
 accidentals can be printed according to different conventions.  See
-@ref{Automatic accidentals} for some examples how accidentals can be printed
+@ref{Automatic accidentals}, for some examples how accidentals can be printed
 according to different rules.
 
 @moreinfo
 @quotation
 @table @asis
 @item Accidentals
-see @ref{Accidentals} and @ref{Automatic accidentals}.
+see @ref{Accidentals}, and @ref{Automatic accidentals}.
 @item Key signature
 see @ref{Key signature}.
 @end table
@@ -643,7 +651,6 @@ d4( c16) cis( d e c cis d) e( d4)
 @cindex phrasing slurs
 @subheading Phrasing slurs
 
-@cindex phrasing slurs
 Slurs to indicate longer phrasing can be entered with @code{\(} and
 @code{\)}.  You can have both legato slurs and phrasing slurs at the
 same time, but you cannot have simultaneous slurs or simultaneous
@@ -689,7 +696,7 @@ see @ref{Phrasing slurs}.
 @cindex staccato
 @subheading Articulations
 
-Common @rglos{articulations} can be added to a note using a dash @samp{-}
+Common @rglos{articulation}s can be added to a note using a dash @samp{-}
 and a single character:
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
@@ -806,7 +813,7 @@ of music is multiplied by the fraction.  Triplets make notes occupy
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \times 2/3 { f8 g a }
 \times 2/3 { c r c }
-\times 2/3 { f,8 g16 a g a }
+\times 2/3 { f,8 g16[ a g a] }
 \times 2/3 { d4 a8 }
 @end lilypond
 
@@ -820,7 +827,7 @@ can also be created by prefixing a music expression with the
 keyword @code{\appoggiatura} or @code{\acciaccatura}
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-c2 \grace { a32 b} c2
+c2 \grace { a32[ b] } c2
 c2 \appoggiatura b16 c2
 c2 \acciaccatura b16 c2
 @end lilypond
@@ -876,7 +883,7 @@ Enclosing a group of notes in braces creates a new music expression:
 @end lilypond
 
 Putting a group of music expressions (e.g. notes) in braces means that
-are in sequence (i.e. each one follows the previous one).  The result
+they are in sequence (i.e. each one follows the previous one).  The result
 is another music expression:
 
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
@@ -887,8 +894,8 @@ is another music expression:
 
 This technique is useful for polyphonic music.  To enter music
 with more voices or more staves, we combine expressions in
-parallel.  To indicate that two voices should play at the same time
-simple enter a simultaneous combination of music expressions.  A
+parallel.  To indicate that two voices should play at the same time,
+simply enter a simultaneous combination of music expressions.  A
 @q{simultaneous} music expression is formed by enclosing expressions inside
 @code{<<} and @code{>>}.  In the following example, three sequences (all
 containing two separate notes) are combined simultaneously:
@@ -908,10 +915,15 @@ amount of space.  LilyPond does not care how much (or little) space there
 is at the beginning of a line, but indenting LilyPond code like this makes
 it much easier for humans to read.
 
+@strong{Warning}: each note is relative to the
+previous note in the input, not relative to the @code{c''} in the
+initial @code{\relative} command.
+
+
 @subheading Simultaneous music expressions: single staff
 
 To determine the number of staves in a piece, LilyPond looks at the first
-exression.  If it is a single note, there is one staff; if there is a
+expression.  If it is a single note, there is one staff; if there is a
 simultaneous expression, there is more than one staff.
 
 @lilypond[quote,ragged-right,verbatim]
@@ -988,7 +1000,7 @@ sign in mathematics.  The formula @math{(4+5)} is an expression, so
 Time signatures entered in one staff affects all other staves, but
 the key signature of one staff does @emph{not} affect other
 staves@footnote{This behavior may be changed if desired; see
-@ref{Changing defaults} for details.}.
+@ref{Changing defaults}, for details.}.
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
@@ -1104,7 +1116,7 @@ r4 <c e g>4 <c f a>2
 @end lilypond
 
 You can combine markings like beams and ties with chords.  They must
-be placed outside the angled brackets
+be placed outside the angle brackets
 
 @lilypond[quote,fragment,verbatim,relative=2,fragment]
 r4 <c e g>8[ <c f a>]~ <c f a>2
@@ -1135,8 +1147,8 @@ Consider a simple melody:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
-  a4 e c r4
-       b2 c4( d)
+  a4 e c8 e r4
+  b2 c4( d)
 }
 @end lilypond
 
@@ -1147,8 +1159,8 @@ syllable with a space.
 @lilypond[quote,ragged-right,verbatim]
 <<
   \relative c'' {
-    a4 e c r4
-         b2 c4( d)
+    a4 e c8 e r4
+    b2 c4( d)
   }
   \addlyrics { One day this shall be free }
 >>
@@ -1163,8 +1175,8 @@ line}.  It is entered as two underscores @code{__}:
 @lilypond[quote,ragged-right,verbatim]
 <<
   \relative c'' {
-    a4 e c r4
-         b2 c4( d)
+    a4 e c8 e r4
+    b2 c4( d)
   }
   \addlyrics { One day this shall be free __ }
 >>
@@ -1173,10 +1185,6 @@ line}.  It is entered as two underscores @code{__}:
 Similarly, hyphens between words can be entered as two dashes,
 resulting in a centered hyphen between two syllables
 
-@example
-A -- le gri -- a
-@end example
-
 @c no ragged-right here because otherwise the hypens get lost.
 @lilypond[quote,verbatim]
 <<
@@ -1184,7 +1192,7 @@ A -- le gri -- a
     \time 2/4
     f4 f c c
   }
-  \addlyrics { A -- le gri -- a }
+  \addlyrics { A -- le -- gri -- a }
 >>
 @end lilypond
 
@@ -1202,9 +1210,6 @@ discussed in @ref{Vocal music}.
 @cindex chords
 @cindex chord names
 
-@c TODO: revise this, \chords { } is shorter and more intuitive.
-@c  I need help for this.  -gp
-
 In popular music it is common to denote accompaniment with chord names.
 Such chords can be entered like notes,
 
@@ -1212,12 +1217,10 @@ Such chords can be entered like notes,
 \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{\chordmode}
-
-Other chords can be created by adding modifiers after a colon.  The
-following example shows a few common modifiers
+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,ragged-right]
 \chordmode { c2 f4:m g4:maj7 gis1:dim7 }
@@ -1227,7 +1230,7 @@ For lead sheets, chords are not printed on staves, but as names on a
 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.
+following result:
 
 @lilypond[quote,verbatim,ragged-right]
 \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@@ -1235,22 +1238,25 @@ following result.
 
 @cindex lead sheet
 When put together, chord names, lyrics and a melody form
-a lead sheet, for example,
+a lead sheet,
 
 @lilypond[quote,verbatim,ragged-right]
-%  this melody needs to be changed.  See my new example in 2.4.1. -gp
 <<
-  \chords { r2 c:sus4 f }
-  \relative {
-    r4 c' \times 2/3 { f g g }
-    \times 2/3 { g4( a2) }
+  \chords { c2 g:sus4 f e }
+  \relative c'' {
+    a4 e c8 e r4
+    b2 c4( d)
   }
-  \addlyrics { I want to break free __ }
+  \addlyrics { One day this shall be free __ }
 >>
 @end lilypond
 
+
+@moreinfo
+@quotation
 A complete list of modifiers and other options for layout can be found
 in @ref{Chords}.
+@end quotation
 
 
 @node Final touches
@@ -1278,7 +1284,7 @@ The @code{\version} statement marks for which version of LilyPond the file
 was written.  To mark a file for version 2.10.1, place
 
 @example
-\version "2.10.1"
+\version "2.11.23"
 @end example
 
 @noindent
@@ -1286,7 +1292,7 @@ at the top of your LilyPond file.
 
 These annotations make future upgrades of LilyPond go more
 smoothly.  Changes in the syntax are handled with a special program,
-@file{convert-ly} (see @ref{Updating files with convert-ly}), and it uses
+@file{convert-ly} (see @rprogram{Updating files with convert-ly}), and it uses
 @code{\version} to determine what rules to apply.
 
 
@@ -1299,7 +1305,7 @@ music expression; the @code{\header} block is usually placed underneath
 the @ref{Version number}.
 
 @example
-\version "2.10.1"
+\version "2.11.23"
 \header @{
   title = "Symphony"
   composer = "Me"
@@ -1395,7 +1401,7 @@ larger files, the music expressions get a lot bigger.  In polyphonic
 music with many staves, the input files can become very confusing.  We can
 reduce this confusion by using @emph{identifiers}.
 
-Identifiers (also known as variables or macros), we can break up
+With identifiers (also known as variables or macros), we can break up
 complex music expressions.  An identifier is assigned as follows
 
 @example
@@ -1424,7 +1430,7 @@ cello = \new Staff { \relative c {
 @end lilypond
 
 @noindent
-The name of an identifier should have alphabetic characters only: no
+The name of an identifier must have alphabetic characters only: no
 numbers, underscores, or dashes.
 
 It is possible to use variables for many other types of objects in the
@@ -1452,16 +1458,16 @@ places.  The following example uses the above variables:
 @subsection After the tutorial
 
 After finishing the tutorial, you should probably try writing a
-piece or two.  Start with one of the @ref{Templates} and
+piece or two.  Start with one of the @ref{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 templates,
+ensemble that is not covered in the templates,
 take a look at @ref{Extending the templates}.
 
 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
+with reading it 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.
@@ -1476,12 +1482,12 @@ example.
 
 In the rest of the manual, we are much more lax about the
 printed examples: sometimes they may have omitted a
-@code{\relative c'' @{ ... @}}, but in other times a different initial
+@code{\relative c'' @{ ... @}}, but other times a different initial
 pitch may be used (such as @code{c'} or @code{c,,}), and in some cases
 the whole example is in absolute note mode!  However, ambiguities like
 this only exist where the pitches are not important.  In any example
-where the pitch matters, we have explicitly stated our @code{\relative}
-our our absolute-mode @code{@{ @}}.
+where the pitch matters, we have explicitly stated @code{\relative}
+or absolute-mode @code{@{ @}}.
 
 If you are still confused about the exact LilyPond input that was
 used in an example, read the HTML version (if you are not already doing