+\version "2.1.22"
@c -*-texinfo-*-
+@c This file is part of lilypond.tely
@c TODO:
@c * more details about running lilypond; error messages,
LilyPond input that was used to generate that image.
@ifhtml
For example, consider the following input:
-@c TODO: intertext fixme
-@lilypond[relative 1,singleline,verbatim,intertext="with the following output:"]
+@example
+ c'^\markup @{ \bold \huge @{ Click on this image! @} @}
+@end example
+@c @lily pond[relative=1,raggedright,with the following output:]
+with the following output:
+@lilypond[relative=1,raggedright]
c'^\markup { \bold \huge { Click on this image! } }
@end lilypond
@menu
* First steps::
* Running LilyPond::
-* More about pitches ::
+* More about pitches::
* Octave entry::
* Combining music into compound expressions::
* Adding articulation marks to notes::
* Combining notes into chords::
+* Basic rhythmical commands::
+* Commenting input files::
* Printing lyrics::
* A lead sheet::
* Listening to output::
@noindent
then the result looks like this:
-@c ?
-@c \transpose c c' { c d e f g a b }
-@c @lily pond[notime]
-@c \property Score.timing = ##f
-@lilypond[notime, relative=2]
+@lilypond[notime,relative]
c d e f g a b
@end lilypond
@end example
@lilypond[notime]
-\property Score.timing = ##f
-\property Staff.autoBeaming = ##f
+\set Score.timing = ##f
+\set Staff.autoBeaming = ##f
\transpose c c' { a1 a2 a4 a16 a32 s16_" " }
@end lilypond
@end example
@lilypond[notime]
-\property Score.timing = ##f
+\set Score.timing = ##f
\transpose c c' { a a a2 a s16_" " }
@end lilypond
@end example
@lilypond[fragment]
-\property Score.timing = ##f
-\property Staff.Clef = \turnOff
-\property Staff.TimeSignature = \turnOff
+\set Score.timing = ##f
+\set Staff.Clef = \turnOff
+\set Staff.TimeSignature = \turnOff
r2 r4 r8 r16
s16_" "
@end lilypond
@end example
@lilypond[notime]
-\property Score.timing = ##f
+\set Score.timing = ##f
\transpose c c' { a2. a4 a8. a16 s16_" " }
@end lilypond
@c a clef here may lead to confusion
@lilypond
-\property Staff.Clef \set #'transparent = ##t
+\override Staff.Clef #'transparent = ##t
\time 3/4
s4_" "
\time 6/8
@end example
@lilypond[notime]
-\property Score.timing = ##f
+\set Score.timing = ##f
\clef violin
s4_" "
\clef bass
s16_" "
@end lilypond
-Notes and commands like @code{\clef} and @code{\time} , are enclosed
+Notes and commands like @code{\clef} and @code{\time}, are enclosed
in @code{\notes @{@dots{}@}}. This indicates that music (as opposed
to @rglos{lyrics}) follows:
The commands for formatting and printing music on all platforms are
detailed in @ref{Invoking LilyPond}.
-@node More about pitches
+@node More about pitches
@section More about pitches
A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
@end example
@lilypond[notime]
-\property Score.timing = ##f
+\set Score.timing = ##f
\transpose c c' { cis1 ees fisis aeses s16_" " }
@end lilypond
@end example
@lilypond[fragment]
-\property Staff.TimeSignature = \turnOff
+\set Staff.TimeSignature = \turnOff
\key d \major
g'1
\key c \minor
For example, in this example:
@lilypond[fragment]
-\property Staff.TimeSignature = #'()
+\set Staff.TimeSignature = \turnOff
\key d \major
d' cis' fis'
@end lilypond
of A-flat, it gets an accidental:
@lilypond[fragment]
-\property Staff.TimeSignature = #'()
+\set Staff.TimeSignature = \turnOff
\key as \major
d'
@end lilypond
A tie is created by adding a tilde ``@code{~}'' to the first note
being tied:
@quotation
-@lilypond[fragment,verbatim,relative 2]
+@lilypond[fragment,verbatim,relative=2]
g4~ g a2~ a4
@end lilypond
@end quotation
put, they can be entered by hand. Mark the first note to be beamed
with @code{[} and the last one with @code{]}:
@quotation
-@lilypond[fragment,relative 1, verbatim]
+@lilypond[fragment,relative=1,verbatim]
a8[ ais] d[ es r d]
@end lilypond
@end quotation
@end table
-@node Octave entry
+@node Octave entry
@section Octave entry
@end example
@lilypond[fragment]
-\property Score.timing = ##f
-\property Staff.TimeSignature = \turnOff
+\set Score.timing = ##f
+\set Staff.TimeSignature = \turnOff
c'4 c'' c''' \clef bass c c,
@end lilypond
@end quotation
@separate
An example of the use of quotes is in the following Mozart fragment:
-@lilypond[singleline,fragment,verbatim]
+@lilypond[raggedright,fragment,verbatim]
\key a \major
\time 6/8
cis''8. d''16 cis''8 e''4 e''8
most convenient way to copy existing music. To use relative mode, add
@code{\relative} before the piece of music. You must also give a note
from which relative starts, in this case @code{c''}. If you do not
-use octavation quotes (i.e. do not add ' or , after a note), relative
-mode chooses the note that is closest to the previous one.
-For example, @code{c f} goes up while @code{c g} goes down:
+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, @code{c f} goes up while @code{c g} goes down:
@quotation
@example
@end example
@lilypond[fragment]
-\property Score.timing = ##f
-\property Staff.TimeSignature = \turnOff
+\set Score.timing = ##f
+\set Staff.TimeSignature = \turnOff
\relative c'' {
c f c g c
}
without octavation quotes in relative mode. The previous example is
entered as
@c
-@lilypond[singleline,fragment,verbatim]
+@lilypond[raggedright,fragment,verbatim]
\relative c'' {
\key a \major
\time 6/8
@end example
@lilypond[fragment]
-\property Score.timing = ##f
-\property Staff.TimeSignature = \turnOff
+\set Score.timing = ##f
+\set Staff.TimeSignature = \turnOff
\relative c'' {
c f, f c' c g' c,
}
@end example
@lilypond[fragment]
-\property Score.timing = ##f
-\property Staff.TimeSignature = \turnOff
+\set Score.timing = ##f
+\set Staff.TimeSignature = \turnOff
\relative a {
\clef bass
a d a e d c' d'
@end example
@lilypond[fragment]
-\property Score.timing = ##f
-\property Staff.TimeSignature = \turnOff
+\set Score.timing = ##f
+\set Staff.TimeSignature = \turnOff
\clef bass
a d a e d c' d'
@end lilypond
We can now typeset a melody with two staves:
@quotation
-@lilypond[verbatim,singleline]
+@lilypond[verbatim,raggedright]
\score {
\notes
<< \new Staff {
Like mathematical expressions, music expressions can be nested
arbitrarily deep, e.g.
-@lilypond[verbatim,relative 1]
+@lilypond[verbatim,relative=1]
{ c <<c e>>
<< { e f } { c <<b d>> }
>>
Common accents can be added to a note using a dash (`@code{-}') and a
single character:
@quotation
-@lilypond[verbatim,relative 1]
+@lilypond[verbatim,relative=1]
c-. c-- c-> c-^ c-+ c-_
@end lilypond
@end quotation
Similarly, fingering indications can be added to a note using a dash
(`@code{-}') and the digit to be printed:
@c
-@lilypond[verbatim,relative 1]
+@lilypond[verbatim,relative=1]
c-3 e-5 b-2 a-1
@end lilypond
Dynamic signs are made by adding the markings to the note:
@quotation
-@lilypond[verbatim,relative 1]
+@lilypond[verbatim,relative=1]
c\ff c\mf
@end lilypond
@end quotation
@code{\>}. The command @code{\!} finishes a crescendo on the note it
is attached to:
@quotation
-@lilypond[verbatim,relative 1]
+@lilypond[verbatim,relative=1]
c2\< c2\!\ff\> c2 c2\!
@end lilypond
@end quotation
``@code{(}'' and a ``@code{)}'' respectively:
@quotation
-@lilypond[fragment,relative 1, verbatim]
+@lilypond[fragment,relative=1,verbatim]
d4( c16)( cis d e c cis d e)( d4)
@end lilypond
@end quotation
and can be used on larger groups of notes. Slurs and ties are also
nested in practice:
@c
-@lilypond[fragment, relative=1]
+@lilypond[fragment,relative=1]
c2~( c8 fis fis4 ~ fis2 g2)
@end lilypond
@code{\)}.
@quotation
-@lilypond[fragment,relative 1, verbatim]
+@lilypond[fragment,relative=1,verbatim]
a8(\( ais b c) cis2 b'2 a4 cis, c\)
@end lilypond
@end quotation
Chords can be made by
surrounding pitches with @code{<} and @code{>}:
@quotation
-@lilypond[relative 0, fragment,verbatim]
+@lilypond[relative,fragment,verbatim]
r4 <c e g>4 <c f a>8
@end lilypond
@end quotation
You can combine beams and ties with chords. Beam and tie markings
must be placed outside the chord markers:
@quotation
-@lilypond[relative 0, fragment,verbatim]
+@lilypond[relative,fragment,verbatim]
r4 <c e g>8[ <c f a>]~ <c f a>
@end lilypond
@end quotation
@example
r4 <c e g>8\>( <c e g> <c e g> <c f a>8\!)
@end example
-@lilypond[relative 0, fragment]
+@lilypond[relative,fragment]
\slurUp
r4 <c e g>8\>( <c e g> <c e g> <c f a>8\!)
@end lilypond
-@menu
-* Basic rhythmical commands::
-* Commenting input files::
-@end menu
@node Basic rhythmical commands
-@subsection Basic rhythmical commands
+@section Basic rhythmical commands
@cindex pickup
@cindex anacruse
A pickup (or upstep) is entered with the keyword @code{\partial}. It
is followed by a duration: @code{\partial 4} is a quarter note upstep
and @code{\partial 8} an eighth note:
-@lilypond[relative 1,verbatim,fragment]
+@lilypond[relative=1,verbatim,fragment]
\partial 8
f8 c2 d e
@end lilypond
of music is multiplied by the fraction. Triplets make notes occupy
2/3 of their notated duration, so a triplet has 2/3 as its fraction:
@c
-@lilypond[relative 0,verbatim,fragment]
+@lilypond[relative,verbatim,fragment]
\times 2/3 { f8 g a }
\times 2/3 { c r c }
@end lilypond
@cindex appoggiatura
@cindex acciaccatura
-@lilypond[relative 1, verbatim,fragment]
+@lilypond[relative=1,verbatim,fragment]
c4 \appoggiatura b16 c4
c4 \acciaccatura b16 c4
@end lilypond
@node Commenting input files
-@subsection Commenting input files
+@section Commenting input files
@cindex comments
@cindex line comment
@end lilypond
The lyrics can be set to these notes, combining both with the
-@code{\addlyrics} keyword:
+@code{\lyricsto} keyword:
@example
- \addlyrics
- \notes @{ @dots{} @}
- \new Lyrics @dots{}
+ \lyricsto "@var{name}" \new Lyrics @dots{}
@end example
+where @var{name} identifies to which melody the lyrics should be
+aligned. In this case, there is only one melody, so we can leave it
+empty.
The final result is
-@lilypond[verbatim,linewidth=6.0cm]
+@lilypond[verbatim,fragment]
\score {
- \notes {
- \addlyrics
- \relative c' {
+ \notes <<
+ \relative c' \new Voice {
\partial 8
c8
\times 2/3 { f g g } \times 2/3 { g4( a2) }
}
- \new Lyrics \lyrics { I want to break free }
- }
+ \lyricsto "" \new Lyrics \lyrics { I want to break free }
+ >>
\paper{ }
}
@end lilypond
@example
\lyrics @{ I want to break free __ @}
@end example
-@lilypond[]
+@lilypond[raggedright]
\score {
- \notes {
- \addlyrics
- \relative c' {
- \partial 8
+ \notes <<
+ \relative c' \new Voice {
+ \partial 8
c8
- \times 2/3 { f g g } \times 2/3 { g4( a2) }
-
- %% ugh, this is to deal with bugs in the extender implementation
- \hideNotes
- c32
- }
- \new Lyrics \lyrics { I want to break free __ }
- }
- \paper{ linewidth = 9.0 \cm }
+ \times 2/3 { f g g } \times 2/3 { g4( a2) } }
+ \lyricsto "" \new Lyrics \lyrics { I want to break free __ }
+ >>
+ \paper{ }
}
@end lilypond
@example
Twin -- kle twin -- kle
@end example
-@lilypond[singleline]
+@lilypond[raggedright]
\score {
- \addlyrics \notes \relative f' { \time 2/4
+ << \notes \relative f' { \time 2/4
f4 f c' c' }
- \new Lyrics \lyrics { Twin -- kle twin -- kle
- }
-\paper { linewidth = 6.0 \cm }
+ \new Lyrics \lyrics { Twin -- kle twin -- kle }
+ >>
+ \paper { raggedright = ##t }
}
-
@end lilypond
More options, like putting multiple lines of lyrics below a melody are
\score @{
<<
\context ChordNames \chords @{ @emph{chords} @}
- \addlyrics
- \notes @emph{the melody}
- \context Lyrics \lyrics @{ @emph{the text} @}
+ \notes @emph{the melody}
+ \lyricsto "" \new Lyrics \lyrics @{ @emph{the text} @}
>>
\paper @{ @}
@}
\score {
<<
\context ChordNames \chords { r8 c2:sus4 f }
- \addlyrics
\notes \relative c' {
\partial 8
c8
\times 2/3 { f g g } \times 2/3 { g4( a2) } }
- \context Lyrics \lyrics { I want to break free __ }
+ \new Lyrics \lyricsto "" \lyrics { I want to break free __ }
>>
\paper{ raggedright = ##t }
}
each piece will be printed before each movement:
-@cindex Lily was here
+@cindex Engraved by LilyPond
@cindex signature line
@cindex tag line
<< @{ a4 g2 f4~ f4 @} \\
@{ r4 g4 f2 f4 @} >>
@end example
-@lilypond[relative 1]
+@lilypond[relative=1]
\context Staff << { a4 g2 f4~ f4 } \\
{ r4 g4 f2 f4 } >>
@end lilypond
<< @{ a4 g2 f4~ f4 @} \\
@{ s4 g4 f2 f4 @} >>
@end example
-@lilypond[relative 1]
+@lilypond[relative=1]
\context Staff << { a4 g2 f4~ f4 } \\
{ s4 g4 f2 f4 } >>
@end lilypond
Here is a full-fledged example:
-@lilypond[relative 0,fragment]
+@lilypond[relative,fragment]
\new PianoStaff
<< \new Staff { \time 2/4
c4 c g' g }
variables. These variables are called @emph{context properties}.
The properties can also be manipulated from input files. Consider this input:
@example
-\property Staff.autoBeaming = ##f
+\set Staff.autoBeaming = ##f
@end example
@noindent
this point in the music to @code{##f}, which means `false'. This
property controls whether beams are printed automatically:
@c
-@lilypond[relative 1,fragment,verbatim]
+@lilypond[relative=1,fragment,verbatim]
c8 c c c
- \property Staff.autoBeaming = ##f
+ \set Staff.autoBeaming = ##f
c8 c c c
@end lilypond
@itemize @bullet
@item a string, enclosed in double quotes, for example,
@example
- \property Staff.instrument = #"French Horn"
+ \set Staff.instrument = #"French Horn"
@end example
@item a boolean: either @code{#t} or @code{#f}, for true and false
respectively, e.g.
@example
- \property Voice.autoBeaming = ##f
- \property Score.skipBars = ##t
+ \set autoBeaming = ##f
+ \set Score.skipBars = ##t
@end example
@item a number, such as
@example
- \property Score.currentBarNumber = #20
+ \set Score.currentBarNumber = #20
@end example
@item a symbol, which is introduced by a quote character, as in
@example
- \property Staff.crescendoSpanner = #'dashed-line
+ \set Staff.crescendoSpanner = #'dashed-line
@end example
@item a pair, which is also introduced by a quote character, like in
and (3, 4) respectively:
@example
- \property Staff.minimumVerticalExtent = #'(-7.5 . 6)
- \property Staff.timeSignatureFraction = #'(3 . 4)
+ \set Staff.minimumVerticalExtent = #'(-7.5 . 6)
+ \set Staff.timeSignatureFraction = #'(3 . 4)
@end example
@item a list, which is also introduced by a quote character. In the
following example, the @code{breakAlignOrder} property is set to a
list of symbols:
@example
- \property Score.breakAlignOrder =
+ \set Score.breakAlignOrder =
#'(left-edge time-signature key-signatures)
@end example
@emph{layout properties}. By changing these variables from their
values, we can alter the look of a formatted score:
-@lilypond[verbatim,relative 0]
+@lilypond[verbatim,relative]
c4
- \property Voice.Stem \override #'thickness = #3.0
+ \override Stem #'thickness = #3.0
c4 c4 c4
@end lilypond
@noindent
In the example shown here, the layout property @code{thickness} (a
symbol) is set to 3 in the @code{Stem} layout objects of the current
-Voice. As a result, the notes following @code{\property} have thicker
+ As a result, the notes following @code{\property} have thicker
stems.
In most cases of manual overrides, only a single object must be
@code{\property} statement, i.e.
@example
- \once \property Voice.Stem \set #'thickness = #3.0
+ \once \override Stem #'thickness = #3.0
@end example
-@lilypond[relative 0]
+@lilypond[relative]
c4
- \once \property Voice.Stem \set #'thickness = #3.0
+ \once \override Stem #'thickness = #3.0
c4 c4 c4
@end lilypond
low-level feature: the formatting engine is completely oblivious to
these offsets.
-In the following example example, the second fingering is moved a
-little to the left, and 1.8 staff space downwards:
+In the following example, the second fingering is moved a little to
+the left, and 1.8 staff space downwards:
@cindex setting object properties
-@lilypond[relative 1,verbatim]
+@lilypond[relative=1,verbatim]
\stemUp
f-5
-\once \property Voice.Fingering
- \set #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering
+ #'extra-offset = #'(-0.3 . -1.8)
f-5
@end lilypond
voice. By introducing a tie in a different voice, and blanking a stem
in that voice, the tie appears to cross voices:
-@lilypond[fragment,relative 1,verbatim]
+@lilypond[fragment,relative=1,verbatim]
c4 << {
- \once \property Voice.Stem \set #'transparent = ##t
+ \once \override Stem #'transparent = ##t
b8~ b8
} \\ {
b[ g8]
example; a more elaborate explanation is in @ref{Constructing a
tweak}:
-@lilypond[relative 1,verbatim]
+@lilypond[relative=1,verbatim]
c2\fermata
- \property Voice.Script \set #'padding = #3
+ \override Script #'padding = #3
b2\fermata
@end lilypond
In the next example, a two note motive is repeated two times by using
variable substitution:
-@lilypond[singleline,verbatim]
+@lilypond[raggedright,verbatim]
seufzer = \notes {
dis'8 e'8
}
corresponds with tuning of a normal French Horn in F. The
transposition can be seen in the following output:
-@lilypond[singleline]
+@lilypond[raggedright]
\score {
\notes \transpose f c' \notes \relative c {
\time 2/4
set to false, to prevent the rest from being expanded in three one bar
rests:
@example
- \property Score.skipBars = ##t
+ \set Score.skipBars = ##t
@end example
Prepending the rest and the property setting above, leads to the
following result:
-@lilypond[singleline]
+@lilypond[raggedright]
\score {\notes { \transpose f c' \relative c { \time 2/4
-\property Score.skipBars = ##t
+\set Score.skipBars = ##t
R2*3
r4 f8 a cis4 f e d } }}
@end lilypond
This would lead to the simple score depicted below:
-@lilypond[singleline]
+@lilypond[raggedright]
\score {
\notes \relative c \simultaneous {
\new Staff { \time 2/4
code. A script called @code{lilypond-book} will extract the music
fragments, run LilyPond on them, and put back the resulting notation.
This program is fully described in @ref{lilypond-book manual}. Here
-we show a small example; since the example contains also explanatory
-text, we will not comment it further:
+we show a small example. The example contains also explanatory text,
+so we will not comment it further:
@example
\documentclass[a4paper]@{article@}
\verb+\score+ block was added, and the line width was set to natural
length. You can specify options by putting them in brackets:
-\begin[26pt,verbatim]@{lilypond@}
+\begin[staffsize=26,verbatim]@{lilypond@}
c'4 f16
\end@{lilypond@}
@example
$ cd input/tutorial
$ mkdir -p out/
-$ lilypond-book --outdir=out/ lilbook.tex
-lilypond-book (GNU LilyPond) 1.7.23
-Reading `input/tutorial/lilbook.tex'
-Reading `input/screech-boink6.ly'
+$ 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/lilbook.latex'
+Writing `out/lilybook.latex'
$ cd out
-$ latex lilbook.latex
+$ latex lilybook.latex
@var{lots of stuff deleted}
-$ xdvi lilbook
+$ 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, and you would not want those to clutter up your working
directory. The @code{outdir} option to lilypond-book creates the
In the example you see here, two things happened: a
@code{score} block was added, and the line width was set to natural
-length. You can specify options by putting them in brackets:
+length. You can specify options by putting them in brackets:
-@lilypond[26pt,verbatim]
+@lilypond[staffsize=26,verbatim]
c'4 f16
@end lilypond