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::
-* Titling::
+* Adding titles::
* Single staff polyphony::
* Piano staves::
* Organizing larger pieces::
* An orchestral part::
-* Integrating text and music::
@end menu
@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
@end example
@c FIXME: have NOTIME also remove Score.timing?
-@lilypond[quote,notime,relative=1]
+@lilypond[fragment,quote,notime,relative=2]
\set Score.timing = ##f
\set Staff.autoBeaming = ##f
{ a1 a2 a4 a16 a32 s16_" " }
a a8 a a2 a
@end example
-@lilypond[quote,notime,relative=1]
+@lilypond[fragment,quote,notime,relative=2]
\set Score.timing = ##f
{ a a8 a a2 a s16_" " }
@end lilypond
r2 r4 r8 r16
@end example
-@lilypond[quote,notime]
+@lilypond[fragment,quote,notime]
\set Score.timing = ##f
r2 r4 r8 r16 s16_" "
@end lilypond
a2. a4 a8. a16
@end example
-@lilypond[quote,notime,relative=1]
+@lilypond[fragment,quote,notime,relative=1]
\set Score.timing = ##f
{ a2. a4 a8. a16 s16_" " }
@end lilypond
@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_" "
\clef tenor
@end example
-@lilypond[quote,notime]
+@lilypond[fragment,quote,notime]
\set Score.timing = ##f
\clef violin
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]
+@lilypond[fragment,quote,noindent,linewidth=55\staffspace]
{
\time 3/4
\clef bass
@end quotation
-@node Running LilyPond
-@section Running LilyPond
-
-@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?
+@node Running LilyPond for the first time
+@section Running LilyPond for the first time
-@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
+@c cheesy title to avoid clash with chapter name.
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
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
+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
@example
lilypond (GNU LilyPond) 2.2.0
-Running lilypond-bin...
+Running lilypond...
Now processing `/home/fred/ly/test.ly'
Parsing...
Interpreting music...[1]
@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.}
+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, its formatting codes will confuse LilyPond.} and enter
+word processor, since these insert formatting codes that will confuse
+LilyPond.} and enter
@example
@{ c'4 e' g' @}
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
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
+accidentals can be printed according to different conventions. See
@ref{Accidentals}, for some examples how accidentals can be printed
according to different rules.
@end ignore
-@lilypond[quote,noindent,linewidth=50\staffspace]
+@lilypond[fragment,quote,noindent,linewidth=50\staffspace]
\transpose c c' {
\time 4/4
\key g \minor
@noindent
The last 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 it 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 {
- c'' f c g c
+ c' f c g c
}
@end lilypond
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
expression}. We have already seen 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
expression
-@lilypond[quote,verbatim,relative=3]
+@lilypond[fragment,quote,verbatim,relative=3]
{ a4 g4 }
@end lilypond
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 other notes) are combined simultaneously
-@lilypond[quote,verbatim,relative=3]
+@lilypond[fragment,quote,verbatim,relative=3]
<<
{ a4 g }
{ f e }
@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 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 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 seperate 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
@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{Score} handle melodic notation. Other contexts are also
@code{Lyrics} (for setting lyric texts) and @code{ChordNames} (for
printing chord names).
@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.
}
>>
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, 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
@code{\>}. An ending dynamic, for example @code{\f}, will finish the
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
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
+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)
@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 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
@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 FIXME
+@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
+
+@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
@example
-\version "2.1.17"
+\version "2.3.16"
@end example
@noindent
These annotations make future upgrades of LilyPond go more
-smoothly. Changes in the syntax are handled with a special program,
+smoothly. Changes in the syntax are handled with a special program,
@file{convert-ly} (see @ref{Invoking convert-ly}), and it uses
@code{\version} to determine what rules to apply.
}
@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 }
+ \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.
+In popular music, it is common to denote accompaniment with chord names.
Such chords can be entered like notes,
-@example
-c2 f4. g8
-@end example
+@lilypond[quote,verbatim,raggedright]
+\chordmode { c2 f4. g8 }
+@end lilypond
@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}
+Now each pitch is read as the root of a chord instead of a note.
+This mode is switched on with @code{\chordmode}
-@lilypond[quote,verbatim,raggedright]
-\chords { c2 f4. g8 }
-@end lilypond
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 }
+\chordmode { c2 f4:m g4:maj7 gis1:dim7 }
@end lilypond
For lead sheets, chords are not printed on staves, but as names on a
context
@lilypond[quote,verbatim]
-\new ChordNames \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
+\chordmode { c2 f4.:m g4.:maj7 gis8:dim7 }
@end lilypond
@cindex lead sheet
@example
<<
- \new ChordNames \chords @{ @emph{chords} @}
+ \chordmode @{ @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 {
+ \chordmode { 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 causes LilyPond to create a MIDI file, so you
-can listen to the music you 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 Titling
-@section Titling
+@node Adding titles
+@section Adding titles
Bibliographic information is entered in a separate block, the
@code{\header} block. The name of the piece, its composer, etc., are
@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.
-
-@c FIXME: introduce \BOOK
-
-@c FIXME: Using "Adagio" as a name is confusing, it's more common to be
-@c a plain tempo indication.
-
-@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}.
+the music. More information on titling can be found in @ref{Creating
+titles}.
@node Single staff polyphony
@cindex multiple voices
@cindex voices, more -- on a staff
When different melodic lines are combined on a single staff they are
-printed as polyphonic voices: each voice has its own stems, slurs and
+printed as polyphonic voices; each voice has its own stems, slurs and
beams, and the top voice has the stems up, while the bottom voice has
them down.
@code{@{...@}}), and combining those 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 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 <<
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
@}
-@}
+ @{ c4^\name @}
@end example
More information on the possible uses of identifiers is in the
-technical manual, in TODO.
+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.
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
+@code{\hornNotes}, should be transposed by a fifth downwards. Sounding
@samp{f} is denoted by notated @code{c'}, which corresponds with
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 {
+ \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
this option to the music above, leads to the following result
@lilypond[quote,raggedright]
-\score {
- \notes \transpose f c' \relative c {
+\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
- @}
-@}
+ >>
@end example
@noindent
leading to
@lilypond[quote,raggedright]
-\score {
- \notes \relative c \simultaneous {
+ \relative c <<
\new Staff {
\time 2/4 R2*3
r4 f8 a cis4 f e d
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.
-
-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.
+Setting run-time variables (`properties') is discussed in
+@ref{Changing context properties on the fly}.
-@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
-
-If there is no @code{\score} block in the fragment,
-@code{lilypond-book} will supply one
-
-@lilypond[quote]
-c'4
-@end lilypond
+@ignore
-@noindent
-In this example two things happened: a
-@code{score} block was added, and the line width was set to natural
-length.
+* longer example
-Options are put in brackets.
+* discuss expectations (?)
-@lilypond[quote,staffsize=26,verbatim]
-c'4 f16
-@end lilypond
+* conclude tutorial
-Larger examples can be put in a separate file, and introduced with
-@code{\lilypondfile}.
+* overview of chapters?
-@lilypondfile[quote,noindent]{screech-boink.ly}
+@end ignore