-@c -*-texinfo-*-
+@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c TODO:
@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
LilyPond input that was used to generate that image.
Try it on this image
-@lilypond[quote,raggedright,relative=2]
+@lilypond[fragment,quote,raggedright,relative=2]
c-\markup { \bold \huge { Click here. } }
@end lilypond
@end ifhtml
@menu
* First steps::
-* Running LilyPond::
+* Running LilyPond for the first time::
* More about pitches::
* Entering ties::
* Automatic and manual beams::
* More staves::
* Adding articulation marks to notes::
* Combining notes into chords::
-* Basic rhythmical commands::
+* Advanced rhythmic commands::
* Commenting input files::
* Printing lyrics::
* A lead sheet::
-* Listening to output::
* Adding titles::
* Single staff polyphony::
* Piano staves::
* Organizing larger pieces::
* An orchestral part::
-* Integrating text and music::
@end menu
@section First steps
The first example demonstrates how to enter the most elementary piece
-of music, a scale. A note can be entered by typing its name, from
-@samp{a} through @samp{g}. So, if you enter
+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
@noindent
the result looks like this
-@lilypond[quote,notime,relative=1]
+@lilypond[fragment,quote,notime,relative=1]
c d e f g a b
@end lilypond
-The 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},
+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
@example
a1 a2 a4 a16 a32
@end example
-@c FIXME: have NOTIME also remove Score.timing?
-@lilypond[quote,notime,relative=1]
-\set Score.timing = ##f
+@lilypond[fragment,quote,notime,relative=2]
\set Staff.autoBeaming = ##f
{ a1 a2 a4 a16 a32 s16_" " }
@end lilypond
-If you do not specify a @rglos{duration}, the duration last entered is
-used for the next notes. The duration of the first note in input
-defaults to a quarter
+If you do not specify a duration, the duration last entered is used
+for the next notes. The duration of the first note in input defaults
+to a quarter
@example
a a8 a a2 a
@end example
-@lilypond[quote,notime,relative=1]
-\set Score.timing = ##f
+@lilypond[fragment,quote,notime,relative=2]
{ a a8 a a2 a s16_" " }
@end lilypond
-Rests are entered just like notes, but with the name @samp{r}
+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[quote,notime]
-\set Score.timing = ##f
+@lilypond[fragment,quote,notime]
r2 r4 r8 r16 s16_" "
@end lilypond
a2. a4 a8. a16
@end example
-@lilypond[quote,notime,relative=1]
-\set Score.timing = ##f
+@lilypond[fragment,quote,notime,relative=1]
{ a2. a4 a8. a16 s16_" " }
@end lilypond
-The @rglos{meter} (or @rglos{time signature}) can be set with the
-@code{\time} command
+The (or @rglos{time signature}) can be set with the @code{\time}
+command
@example
\time 3/4
@end example
@c A clef here may lead to confusion, remove it.
-@lilypond[quote]
+@lilypond[fragment,quote]
\override Staff.Clef #'transparent = ##t
\time 3/4
s4_" "
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
\clef tenor
@end example
-@lilypond[quote,notime]
-\set Score.timing = ##f
-\clef violin
+@lilypond[fragment,quote,notime]
+\clef treble
s4_" "
\clef bass
s4_" "
s16_" "
@end lilypond
-@ignore
-To recognize names like @samp{c} and @samp{d} as pitches, they have to
-be entered inside a so-called @code{\notes} block. This block is
-formed by enclosing notes and commands are enclosed in curly braces
-@code{@{@tie{}@dots{}@tie{}@}} and adding the keyword @code{\notes} before
-the opening brace
-
-@example
-@{
- \time 3/4
- \clef bass
- c2 e4 g2.
- f4 e d c2 r4
-@}
-@end example
-
-Now the piece of music is almost ready to be printed. Enclose
-the @code{\notes} block in a @code{\score} block
-
-@example
-\score @{
- \notes @{
- \time 3/4
- \clef bass
- c2 e4 g2.
- f4 e d c2 r4
- @}
-@}
-@end example
-
-@noindent
-and the music will be converted to printable output.
-@end ignore
Remember to enclose the notes and commands in curly braces
@code{@{@tie{}@dots{}@tie{}@}} to convert it to printable output.
-@lilypond[quote,noindent,linewidth=55\staffspace]
-{
- \time 3/4
- \clef bass
- c2 e4 g2.
- f4 e d c2 r4
-}
+@lilypond[fragment,quote,noindent,linewidth=55\staffspace]
+\time 3/4
+\clef bass
+c2 e4 g2.
+f4 e d c2 r4
@end lilypond
For more elaborate information on
@end quotation
-@node Running LilyPond
-@section Running LilyPond
+@node Running LilyPond for the first time
+@section Running LilyPond for the first time
-@c FIXME: let's not be so casual about Emacs and VIM, but rather
-@c instruct (how) to use them; let advanced user figure-out what
-@c commands to type?
+@c cheesy title to avoid clash with chapter name.
-@c
-@c We don't have enough space to explain either VIM
-@c or Emacs non-advanced users, and I fear that both editors will only
-@c confuse newbies. I vote for keeping the material in footnotes.
-@c
-@c --hwn
+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.
-In the last section we explained what kind of things you could 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.
+@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
+
+@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.
+
+
+@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 it has 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}
+is a @code{LilyPond-mode} for Emacs addicts. If they have not been
+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' @}
You will see something resembling
@example
-lilypond (GNU LilyPond) 2.2.0
-Running lilypond-bin...
-Now processing `/home/fred/ly/test.ly'
+lilypond test.ly
+GNU LilyPond 2.6.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.ps'...
+Converting to `test.pdf'...
@end example
@cindex DVI file
@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 with the standard facilities of your
-operating system.@footnote{If your system does not have any tools
-installed, you can try @uref{Ghostscript,
-http://www.cs.wisc.edu/~ghost/}, 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, its formatting codes 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.
-
+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.}
@node More about pitches
@section More about pitches
cis1 ees fisis aeses
@end example
-@lilypond[quote,notime]
+@lilypond[fragment,quote,notime]
\set Score.timing = ##f
\transpose c c' { cis1 ees fisis aeses s16_" " }
@end lilypond
g
@end example
-@lilypond[quote,notime,fragment]
+@lilypond[fragment,quote,notime,fragment]
\key d \major
g'1
\key c \minor
@end lilypond
@noindent
-no note gets an explicit accidental, but you still must enter
+no note has an explicit accidental, but you still must enter
@example
\key d \major
@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
+of A-flat major, it does get an accidental
-@lilypond[quote,notime,fragment]
-\key as \major
-d'
-@end lilypond
-
-@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
-music can be printed according to different conventions. See
-@ref{Accidentals}, for some examples how accidentals can be printed
+accidentals can be printed according to different conventions. See
+@ref{Automatic accidentals}, for some examples how accidentals can be printed
according to different rules.
@quotation
@table @asis
@item Accidentals
-see @ref{Accidentals}.
+see @ref{Automatic accidentals}.
@item Key signature
see @ref{Key signature}.
@section Entering ties
@cindex tie
-A tie is created by appending a tilde @samp{~} to the first note
-being tied
+A @rglos{tie} is created by appending a tilde @samp{~} to the first
+note being tied
@lilypond[quote,notime,fragment,verbatim,relative=3]
g4~ g a2~ a4
@section Automatic and manual beams
@cindex beams, by hand
-Beams are drawn automatically
+All @rglos{beam}s are drawn automatically
@lilypond[quote,fragment,relative=2,verbatim]
a8 ais d es r d
a8[ ais] d[ es r d]
@end lilypond
-For more information on beams, see @ref{Beaming}.
+For more information on beams, see @ref{Manual beams}.
Here are key signatures, accidentals and ties in action
-@example
-@{
- \time 4/4
- \key g \minor
- \clef violin
- 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[quote,noindent,linewidth=50\staffspace]
-\transpose c c' {
+@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
+ a8 d4.~ d e,8
fis4 fis8 fis8 eis4 a8 gis~
gis2 r2
}
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.
@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{,}
-(a 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
@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. In practice, this is the
-most convenient way to copy existing music. To use relative mode, add
-@code{\relative} before the piece of music.
-@ignore
-FIXME: move to notation manual?
- You must also give a note
-from which relative mode starts, in this case @code{c''}.
-@end ignore
-If you do not
-use octavation quotes (i.e., do not add @code{'} or @code{,} after a
-note), relative mode chooses the note that is closest to the previous
-one. For example, @samp{c f} goes up while @samp{c g} goes down
+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 that it is closest to the
+previous one. For example, @samp{c f} goes up while @samp{c g} goes
+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'})
+
+
@lilypond[quote,notime,fragment,verbatim]
\relative {
without octavation quotes in relative mode. The previous example is
entered as
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,raggedright,verbatim]
\relative {
\key a \major
\time 6/8
- cis''8. d16 cis8 e4 e8
+ cis'8. d16 cis8 e4 e8
b8. cis16 b8 d4 d8
}
@end lilypond
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}.
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[quote,verbatim,relative=3]
+@lilypond[fragment,quote,verbatim,relative=3]
a4
@end lilypond
-Enclosing group of notes in braces creates a new music
+Enclosing a group of notes in braces creates a new music
expression
-@lilypond[quote,verbatim,relative=3]
+@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
notes
-@lilypond[quote,verbatim,relative=3]
+@lilypond[fragment,quote,verbatim,relative=3]
{ { a4 g } f g }
@end lilypond
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 notes) are combined simultaneously
+two separate notes) are combined simultaneously
-@lilypond[quote,verbatim,relative=3]
+@lilypond[fragment,quote,verbatim,relative=3]
<<
- { a4 g }
- { f e }
- { d b }
+ { a4 g }
+ { f e }
+ { d b }
>>
@end lilypond
@cindex expression
@cindex music expression
-This example shows a sequence of expressions, where each expression is
-contained in the next one. The simplest expressions are numbers and
-operators (like @samp{+}, @samp{*} and @samp{/}). Parentheses are used
-to group expressions.
-
-Like mathematical expressions, music expressions can be nested
-arbitrarily deep@footnote{The reason for getting three staves in the
-previous example but just a single staff in the current one will be
-explained later.}
-
-@lilypond[quote,verbatim,relative=2]
+This is a sequence of expressions, where each expression is contained
+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
+for complex music like polyphonic scores.
+
+Note that this example only has one staff, whereas
+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 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]
{
c <<c e>>
<< { e f } { c <<b d>> } >>
}
@end lilypond
-
-@cindex indent
-When spreading expressions over multiple lines, it is customary to use
-an indent that indicates the nesting level. Formatting music like this
-eases reading, and helps you insert the right number of closing
-braces at the end of an expression. For example,
+Music files with deep nesting can be confusing to enter and
+maintain. One convention that helps against this confusion is
+indenting. When entering a file with deep nesting of braces and
+angles, it is customary to use an indent that indicates the nesting
+level. Formatting music like this eases reading and helps you insert
+the right number of closing braces at the end of an expression. For
+example,
@example
-\book @{
- \score @{
- <<
- @{
- @dots{}
- @}
- @{
- @dots{}
- @}
- \paper @{
- @dots{}
- @}
- >>
+<<
+ @{
+ @dots{}
+ @}
+ @{
+ @dots{}
@}
-@}
+>>
@end example
Some editors have special support for entering LilyPond, and can help
-indenting source files. See @ref{Editor support}, for more information.
+indenting source files. See @ref{Editor support} for more information.
@node More staves
@section More staves
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]
<<
- \new Staff { \clef violin c'' }
+ \new Staff { \clef treble c'' }
\new Staff { \clef bass c }
>>
@end lilypond
The command @code{\new} introduces a `notation context.' A notation
context is an environment in which musical events (like notes or
@code{\clef} commands) are interpreted. For simple pieces, such
-notation contexts are created implicitly. For more complex pieces, it
+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 normal music 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
@c TODO: (c) status of this Paul McCartney (?) song (let's all stand together)
-@lilypond[quote,verbatim,raggedright]
-<<
+@lilypond[fragment,quote,verbatim,raggedright]
+\relative <<
\new Staff {
\time 3/4
- \clef violin
- \relative {
- e''2 d4 c2 b4 a8[ a]
- b[ b] g[ g] a2. }
+ \clef treble
+
+ e'2 d4 c2 b4 a8[ a]
+ b[ b] g[ g] a2.
}
\new Staff {
\clef bass
- c2 e4 g2.
+ c,,2 e4 g2.
f4 e d c2.
}
>>
@end lilypond
-For more information on context see the description in
+For more information on contexts see the description in
@ref{Interpretation contexts}.
Common accents can be added to a note using a dash (@samp{-}) and a
single character
-@lilypond[quote,verbatim,relative=2]
+@lilypond[fragment,quote,verbatim,relative=2]
c-. c-- c-> c-^ c-+ c-_
@end lilypond
Similarly, fingering indications can be added to a note using a dash
(@samp{-}) and the digit to be printed
-@lilypond[quote,verbatim,relative=2]
+@lilypond[fragment,quote,verbatim,relative=2]
c-3 e-5 b-2 a-1
@end lilypond
+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, however,
+it is best to let LilyPond determine the articulation directions.
+
+@lilypond[fragment,quote,verbatim,relative=2]
+c_-^1 d^. f^4_2-> e^-_+
+@end lilypond
Dynamic signs are made by adding the markings (with a backslash) to
the note
-@lilypond[quote,verbatim,relative=2]
+@lilypond[fragment,quote,verbatim,relative=2]
c\ff c\mf
@end lilypond
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[quote,verbatim,relative=2]
+@lilypond[fragment,quote,verbatim,relative=2]
c2\< c2\ff\> c2 c2\!
@end lilypond
@cindex slur
-A slur is a curve drawn across many notes, and indicates legato
-articulation. The starting note and ending note are marked with
-@samp{(} and @samp{)}, respectively
+A @rglos{slur} is a curve drawn across many notes, and indicates
+legato articulation. The starting note and ending note are marked
+with @samp{(} and @samp{)}, respectively
-@lilypond[quote,fragment,relative=2,verbatim]
-d4( c16)( cis d e c cis d e)( d4)
+@lilypond[fragment,quote,fragment,relative=2,verbatim]
+d4( c16) cis( d e c cis d) e( d4)
@end lilypond
@cindex slurs versus ties
-A slur looks like a tie, but it has a different meaning. A tie simply
-makes the first note sound longer, and can only be used on pairs of
-notes with the same pitch. Slurs indicate the articulations of notes,
-and can be used on larger groups of notes. Slurs and ties are also
-nested in practice
+A slur looks like a @rglos{tie}, but it has a different meaning. A
+tie simply makes the first note sound longer, and can only be used on
+pairs of notes with the same pitch. Slurs indicate the articulations
+of notes, and can be used on larger groups of notes. Slurs and ties
+can be nested
@lilypond[quote,fragment,relative=2]
c2~( c8 fis fis4 ~ fis2 g2)
@cindex phrasing slurs
Slurs to indicate phrasing can be entered with @code{\(} and
@code{\)}, so you can have both legato slurs and phrasing slurs at the
-same time.
+same time. You cannot have simultaneous slurs or simultaneous
+phrasing slurs.
@lilypond[quote,fragment,relative=2,verbatim]
a8(\( ais b c) cis2 b'2 a4 cis, c\)
@end lilypond
@example
-r4 <c e g>8\>( <c e g> <c e g> <c f a>8\!)
+r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
@end example
@lilypond[quote,relative=1,fragment]
\slurUp
-r4 <c e g>8\>( <c e g> <c e g> <c f a>8\!)
+r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
@end lilypond
-
-
-@node Basic rhythmical commands
-@section Basic rhythmical commands
+@node Advanced rhythmic commands
+@section Advanced rhythmic commands
@cindex pickup
@cindex anacruse
@end lilypond
@cindex grace notes
-@cindex accacciatura
+@cindex acciaccatura
Grace notes are also made by prefixing a music expression with the
keyword @code{\appoggiatura} or @code{\acciaccatura}
@cindex appoggiatura
@cindex line comment
@cindex block comment
A comment is a remark for the human reader of the music input; it is
-ignored and has no effect on the printed output. There are two types
-of comments. The percent symbol @samp{%} introduces a line comment;
-the rest of the line is ignored. A block comments 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
+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 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
+ c4 c g' g a a g2
%@{
This line, and the notes below
%@}
@end example
-There is a special statement that really is a kind of comment. The
-version statement marks for which version of LilyPond the file was
-written. To mark a file for version 2.1.17, use
+@c TODO post-2.6 reorg
+@c This is good info, but I wouldn't call it a comment. IMO it should
+@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.6.0, use
@example
-\version "2.1.17"
+\version "2.6.0"
@end example
@noindent
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{Invoking convert-ly}), and it uses
+smoothly. Changes in the syntax are handled with a special program,
+@file{convert-ly} (see @ref{Updating files with convert-ly}), and it uses
@code{\version} to determine what rules to apply.
@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
-@c FIXME: when/how/to what rename newlyrics?
The lyrics can be set to these notes, combining both with the
-@code{\newlyrics} keyword
+@code{\addlyrics} keyword
@lilypond[quote,verbatim,fragment,raggedright]
<<
r4 c \times 2/3 { f g g }
\times 2/3 { g4( a2) }
}
- \newlyrics { I want to break free }
+ \addlyrics { I want to break free }
>>
@end lilypond
@{ I want to break free __ @}
@end example
-@lilypond[quote,raggedright]
+@lilypond[fragment,quote,raggedright]
<<
\relative {
r4 c \times 2/3 { f g g }
\times 2/3 { g4( a2) }
}
- \newlyrics { I want to break free __ }
+ \addlyrics { I want to break free __ }
>>
@end lilypond
Twin -- kle twin -- kle
@end example
-@lilypond[quote,raggedright]
+@lilypond[fragment,quote,raggedright]
<<
\relative {
- \time 2/4
- f4 f c' c
- }
- \newlyrics { Twin -- kle twin -- kle }
+ \time 2/4
+ f4 f c' c
+ }
+ \addlyrics { Twin -- kle twin -- kle }
>>
@end lilypond
More options, like putting multiple lines of lyrics below a melody are
discussed in @ref{Vocal music}.
-@c FIXME: too geeky, for notation manual?
-@c or introduce using foo = \lyrics { a b c } ?
-
-When using variables for a piece of lyrics
-To prevent certain words (for example `as') as being read as a
-pitch, the input-mode must be switched. This is done with
-@code{\lyrics}. In @code{\lyrics} mode, all words are read as lyric
-syllables.
-
-@example
-myText = \lyrics @{ I want to break free @}
-@end example
-
-@noindent
-The braces @code{@{@}} signify that the syllables are sung in
-sequence.
-
-@ignore
-By default, music expressions are interpreted in @code{Staff} context. For
-lyrics, this is obviously not desirable, so it is necessary
-to explicitly specify a @code{Lyrics} context,
-
-@example
-\lyrics @{ I want to break free @}
-@end example
-
-The melody for this song is as follows
-
-@lilypond[quote,fragment,relative=2]
-r4 c \times 2/3 { f4 g g }
-\times 2/3 { g4( a2) }
-@end lilypond
-
-@end ignore
-
@node A lead sheet
@section A lead sheet
@cindex chords
@cindex chord names
-In popular music, it is common to denote accompaniment as chord names.
-Such chords can be entered like notes,
-
-@example
-c2 f4. g8
-@end example
+@c TODO: revise this, \chords { } is shorter and more intuitive.
-@noindent
-but now, each pitch is read as the root of a chord instead of a note.
-This mode is switched on with @code{\chords}
+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{\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
@example
<<
- \new ChordNames \chords @{ @emph{chords} @}
+ \chords @{ @emph{chords} @}
@emph{the melody}
- \newlyrics @{ @emph{the text} @}
+ \addlyrics @{ @emph{the text} @}
>>
@}
@end example
@lilypond[quote,raggedright]
<<
- \new ChordNames \chords { r2 c:sus4 f }
- \notes \relative {
+ \chords { r2 c:sus4 f }
+ \relative {
r4 c' \times 2/3 { f g g }
\times 2/3 { g4( a2) }
}
- \newlyrics { I want to break free __ }
+ \addlyrics { I want to break free __ }
>>
@end lilypond
A complete list of modifiers and other options for layout can be found
in @ref{Chords}.
-@c FIXME: we talk about \midi before mentioning \paper (or \layout?)
-@node Listening to output
-@section Listening to output
-
-@cindex sound
-@cindex MIDI
-
-MIDI (Musical Instrument Digital Interface) is a standard for
-connecting and controlling digital instruments. A MIDI file is like a
-tape recording of a MIDI instrument.
-
-To create a MIDI from a music piece of music, add a @code{\midi}
-block. This causes LilyPond to create a MIDI file, so you can listen
-to what you just entered. It is great for checking the music.
-Octaves that are off or accidentals that were mistyped stand out very
-much when listening to the musical transcription.
-
-The @code{\midi} block is added to @code{\score}, for example,
-
-@example
-\score @{
- @var{...music...}
- \midi @{ \tempo 4=72 @}
-@}
-@end example
-
-Here, the tempo is specified using the @code{\tempo} command. In this
-case the tempo of quarter notes is set to 72 beats per minute. More
-information on auditory output in the notation manual can be found in
-@ref{Sound}.
-
-If there is a @code{\midi} command in a @code{\score}, only MIDI will
-be produced. If notation is needed too, a @code{\paper} block must be
-added
-
-@example
-\score @{
- @var{...music...}
- \midi @{ \tempo 4=72 @}
- \paper @{ @}
-@}
-@end example
-@cindex paper block
-
@node Adding titles
@section Adding titles
@example
\header @{
- title = "Eight miniatures"
+ title = "Miniature"
composer = "Igor Stravinsky"
- tagline = "small is beautiful"
@}
@{ @dots{} @}
@end example
-@cindex bibliographic information
-@cindex titles
-@cindex composer
-@cindex Engraved by LilyPond
-
-When the file is processed the title and composer are printed above
-the music. The `tagline' is a short line printed at bottom of the last
-page which normally says `Engraved by LilyPond, version @dots{}'. In
-the example above it is replaced by the line `small is
-beautiful.'@footnote{Nicely printed parts are good PR for us, so
-please leave the tagline if you can.}
-
-
-The @code{\header} block is usually put at the top of the file.
-
-A document may contains multiple pieces of music, examples are an
-etude book, or an orchestral part with multiple movements.
-@c FIXME: ugh. \header can only live at toplevel, or inside \score.
-@c If we allow it also to live inside \book, we do not need \score here?
-The @code{\book} block is used to group the individual @code{\score}
-blocks.
-
-The header for each piece of music can be put inside the @code{\score}
-block. The @code{piece} name from the header will be printed before
-each movement.
-
-@ignore
-
-FIXME: introduce \BOOK
-
-FIXME: Using "Adagio" as a name is confusing, it's more common to be
-a plain tempo indication.
-
-Since today (CVS-1.211) we also allow headers and composite music
-inside book:
-
- \header { ... }
- \book {
- \header { ... }
- { ... }
- \header { ... }
- { ... }
- }
-
-@end ignore
-
-@cindex Engraved by LilyPond
-@cindex signature line
-@cindex tag line
-
-@example
-\header @{
- title = "Eight miniatures"
- composer = "Igor Stravinsky"
- tagline = "small is beautiful"
-@}
-
-\book @{
- \score @{
- @dots{}
- \header @{ piece = "Adagio" @}
- @}
- \score @{
- @dots{}
- \header @{ piece = "Menuetto" @}
- @}
-@}
-@end example
-More information on titling can be found in @ref{Invoking lilypond}.
+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}.
@node Single staff polyphony
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=3]
+@lilypond[quote,verbatim,relative=2,fragment]
<< { a4 g2 f4~ f4 } \\
{ r4 g4 f2 f4 } >>
@end lilypond
-For polyphonic music typesetting, spacer rests can also be convenient; these
-are rests that do not print. It is useful for filling up voices that
-temporarily do not play. Here is the same example with a spacer rest
-instead of a normal rest---just use @samp{s} instead of @samp{r}
+For polyphonic music typesetting, spacer rests can also be convenient;
+these are rests that do not print. They are useful for filling up
+voices that temporarily do not play. Here is the same example with a
+spacer rest (@code{s}) instead of a normal rest (@code{r}),
-@lilypond[quote,verbatim,relative=3]
+@lilypond[quote,verbatim,relative=2,fragment]
<< { a4 g2 f4~ f4 } \\
{ s4 g4 f2 f4 } >>
@end lilypond
@noindent
Again, these expressions can be nested arbitrarily
-@lilypond[quote,fragment,verbatim,relative=3]
+@lilypond[quote,fragment,verbatim,relative=2,fragment]
<<
\new Staff <<
{ a4 g2 f4~ f4 } \\
\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
@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},
\new PianoStaff << \new Staff @dots{} >>
@end example
-Here is a full-fledged example
+Here is a small example
@lilypond[quote,verbatim,relative=1,fragment]
\new PianoStaff <<
>>
@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
up complex music expressions. An identifier is assigned as follows
@example
-namedMusic = \notes @{ @dots{} @}
+namedMusic = @{ @dots{} @}
@end example
@noindent
variable substitution
@lilypond[quote,raggedright,verbatim,nofragment]
-seufzer = \notes {
+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 @code{\score} block.
+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
input. For example,
places. The following example uses the above variables
@example
-\score @{
- \notes @{ c4^\name @}
- \paper @{
- \aFivePaper
- linewidth = \width
- @}
+\paper @{
+ \aFivePaper
+ linewidth = \width
@}
+@{ c4^\name @}
@end example
-More information on the possible uses of identifiers is in the
-technical manual, in TODO.
+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.
@node An orchestral part
@section An orchestral part
-In orchestral music, all notes are printed twice; in a part for
-the musicians, and in a full score for the conductor. Identifiers can
-be used to avoid double work. The music is entered once, and stored in
+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 = \notes \relative c @{
+hornNotes = \relative c @{
\time 2/4
r4 f8 a cis4 f e d
@}
\header @{
instrument = "Horn in F"
@}
-\score @{
- \notes \transpose f c' \hornNotes
+
+@{
+ \transpose f c' \hornNotes
@}
@end example
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
+@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]
-\score {
- \notes \transpose f c' \notes \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
this option to the music above, leads to the following result
@lilypond[quote,raggedright]
-\score {
- \notes \transpose f c' \relative c {
- \time 2/4
- \set Score.skipBars = ##t
- R2*3
- r4 f8 a cis4 f e d
- }
+\transpose f c' \relative c {
+ \time 2/4
+ \set Score.skipBars = ##t
+ R2*3
+ r4 f8 a cis4 f e d
}
@end lilypond
-The score is made by combining all of the music in a @code{\score}
-block. Assuming that the other voice is in @code{bassoonNotes} in the
-file @file{bassoon-music.ly}, a score is made with
+The score is made by combining all of the music together. Assuming
+that the other voice is in @code{bassoonNotes} in the file
+@file{bassoon-music.ly}, a score is made with
@example
\include "bassoon-music.ly"
\include "horn-music.ly"
-\score @{
- \simultaneous @{
- \new Staff \hornNotes
- \new Staff \bassoonNotes
- @}
-@}
+<<
+ \new Staff \hornNotes
+ \new Staff \bassoonNotes
+>>
@end example
@noindent
leading to
@lilypond[quote,raggedright]
-\score {
- \notes \relative c \simultaneous {
- \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
in the notation manual; see @ref{Orchestral music}.
-Setting run-time variables (`properties') is discussed in ref-TODO.
-
-
-@node Integrating text and music
-@section Integrating text and music
-
-@cindex La@TeX{}, music in
-@cindex HTML, music in
-@cindex Texinfo, music in
-Some texts include music examples. Examples are musicological
-treatises, songbooks or manuals like this. Such texts can be made by
-hand, simply by importing a PostScript figure into the word processor.
-However, there is an automated procedure to reduce the amount of work
-involved HTML, La@TeX{}, and Texinfo documents.
+Setting run-time variables (`properties') is discussed in
+@ref{Changing context properties on the fly}.
-A script called @code{lilypond-book} will extract the music fragments,
-run format them, and put back the resulting notation. This program is
-fully described in @ref{lilypond-book manual}. Here we show a small
-example. The example also contains explanatory text, so we will not
-comment on it further
-
-@example
-\documentclass[a4paper]@{article@}
-\begin@{document@}
-
-Documents for lilypond-book may freely mix music and text. For
-example,
-\begin@{lilypond@}
- \score @{ \notes \relative c' @{
- c2 g'2 \times 2/3 @{ f8 e d @} c'2 g4
- @} @}
-\end@{lilypond@}
-
-If there is no \verb+\score+ block in the fragment,
-\texttt@{lilypond-book@} will supply one
-
-\begin[quote]@{lilypond@}
- c'4
-\end@{lilypond@}
-
-\noindent
-In this example two things happened. A
-\verb+\score+ block was added, and the line width was set to natural
-length.
-
-Options are put in brackets.
-
-\begin[quote,staffsize=26,verbatim]@{lilypond@}
- c'4 f16
-\end@{lilypond@}
-
-Larger examples can be put in a separate file, and introduced with
-\verb+\lilypondfile+.
-
-\lilypondfile[quote,noindent]@{screech-boink.ly@}
-
-\end@{document@}
-@end example
-
-Under Unix, you can view the results as follows
-
-@example
-$ cd input/tutorial
-$ mkdir -p out/
-$ lilypond-book --output=out/ lilybook.tex
-lilypond-book (GNU LilyPond) 2.1.19
-Reading `input/tutorial/lilybook.tex'
-Reading `input/screech-boink.ly'
-@var{lots of stuff deleted}
-Writing `out/lilybook.tex'
-$ cd out
-$ latex lilybook
-@var{lots of stuff deleted}
-$ xdvi lilybook
-@end example
-
-To convert the file into a nice PDF document, run the following
-commands
-
-@example
-$ dvips -Ppdf -u +lilypond lilybook
-$ ps2pdf lilybook.ps
-@end example
-
-Running lilypond-book and running latex creates a lot of temporary
-files, which would clutter up the working directory. To remedy this,
-use the @code{--output=@var{dir}} option. It will create the files in
-a separate subdirectory @file{dir}.
-
-Finally the result of the La@TeX{} example shown above.@footnote{Note
-that in this tutorial the example is processed with Texinfo. This gives
-slightly different results in layout.} This finishes the tutorial
-section.
-
-@page
-
-Documents for lilypond-book may freely mix music and text. For
-example,
-
-@lilypond
-\score { \notes \relative c' {
- c2 g'2 \times 2/3 { f8 e d } c'2 g4
-} }
-@end lilypond
+@ignore
-If there is no @code{\score} block in the fragment,
-@code{lilypond-book} will supply one
+* longer example
-@lilypond[quote]
-c'4
-@end lilypond
+* discuss expectations (?)
-@noindent
-In this example two things happened. A
-@code{score} block was added, and the line width was set to natural
-length.
+* conclude tutorial
-Options are put in brackets.
+* overview of chapters?
-@lilypond[quote,staffsize=26,verbatim]
-c'4 f16
-@end lilypond
-
-Larger examples can be put in a separate file, and introduced with
-@code{\lilypondfile}.
-
-@lilypondfile[quote,noindent]{screech-boink.ly}
+@end ignore