where @var{scmpitch} is a pitch scheme object.
-In Note and Chord mode, pitches may be designated by names. The default
-names are the Dutch note names. The notes are specified by the letters
-@code{a} through @code{g}, while the octave is formed with notes ranging
-from @code{c} to @code{b}. The pitch @code{c} is an octave below
-middle C and the letters span the octave above that C. Here's an example
-which should make things more clear:
+In Note and Chord mode, pitches may be designated by names. The
+default names are the Dutch note names. The notes are specified by
+the letters @code{a} through @code{g}, while the octave is formed with
+notes ranging from @code{c} to @code{b}. The pitch @code{c} is an
+octave below middle C and the letters span the octave above that C.
@lilypond[fragment,verbatim]
\clef bass
@cindex note names, Dutch
In Dutch, a sharp is formed by adding @code{-is} to the end of a pitch
-name and a flat is formed by adding @code{-es}. Double sharps and double
-flats are obtained by adding @code{-isis} or @code{-eses}. @code{aes}
-and @code{ees} are contracted to @code{as} and @code{es} in Dutch, but
-both forms are accepted.
+name and a flat is formed by adding @code{-es}. Double sharps and
+double flats are obtained by adding @code{-isis} or @code{-eses}.
+@code{aes} is contracted to @code{as} in Dutch, but both forms are
+accepted. Similarly, both @code{es} and @code{ees} are accepted.
-LilyPond has predefined sets of note names for various other languages.
-To use them, simply include the language specific init file. For
-example: @code{\include "english.ly"}. The available language files and
-the note names they define are:
+There are predefined sets of note names for various other languages.
+To use them, include the language specific init file. For
+example: @code{\include "english.ly"}. The available language files
+and the note names they define are:
@anchor{note name}
@anchor{note names}
@subsection Rests
@cindex Rests
-Rests are entered like notes, with a ``note name'' of `@code{r}':
+Rests are entered like notes, with the note name @code{r}.
@lilypond[singleline,verbatim]
r1 r2 r4 r8
a2 s4 a4 \skip 1 a4
@end lilypond
-@c FIXME: in Lyrics mode, we have " " and _
-
-In Lyrics mode, you can make invisible syllables by entering `@code{" "}'
-or `@code{_}':
-@lilypond[singleline,verbatim,quote]
-<
- \context Lyrics \lyrics { lah2 di4 " " dah2 _4 di }
- \notes\relative c'' { a2 a4 a a2 a4 a }
->
-@end lilypond
-In this case, syllables containing a space will be printed. In the
-case that you really need an invisible space (i.e. something taking up
-time, but not space), you should use @code{\skip}.
-
-Note that the @code{s} syntax is only available in Note mode and Chord
+ The @code{s} syntax is only available in Note mode and Chord
mode. In other situations, you should use the @code{\skip} command,
which will work outside of those two modes:
If the duration is omitted then it is set to the previously entered
-duration. At the start of parsing, a quarter note is assumed. The
-duration can be followed by dots (`@code{.}') in order to obtain dotted
-note lengths:
+duration. Default for the first note is a quarter note. The duration
+can be followed by dots (`@code{.}') in order to obtain dotted note
+lengths:
@cindex @code{.}
@lilypond[fragment,verbatim,center]
connected. If you try to tie together chords that have no common pitches,
no ties will be created.
+[TODO: seealso]
+
If you want less ties created for a chord, you can set
@code{Voice.sparseTies} to true. In this case, a single tie is used
for every tied chord.
}
@end lilypond
-Note that @code{EasyNotation} overrides a @internalsref{Score} context. You
-probably will want to print it with magnification or a large font size to
-make it more readable. To print with magnification, you must create a dvi
-(with @file{ly2dvi}) and then enlarge it with something like @file{dvips -x
-2000 file.dvi}. See @file{man dvips} for details. To print with a larger
-font, see @ref{Font Size}.
+The @code{EasyNotation} identifier overrides a @internalsref{Score}
+context. You probably will want to print it with magnification or a
+large font size to make it more readable. To print with
+magnification, you must create a dvi (with @file{ly2dvi}) and then
+enlarge it with something like @file{dvips -x 2000 file.dvi}. See
+@file{man dvips} for details. To print with a larger font, see
+@ref{Font Size}.
@cindex Xdvi
@item Xdvi, version 22.36 or newer. Available from
@uref{ftp://ftp.math.berkeley.edu/pub/Software/TeX/xdvi.tar.gz,ftp.math.berkeley.edu}.
- Note that most @TeX{} distributions ship with xdvik, which is always
+ Most @TeX{} distributions ship with xdvik, which is always
a few versions behind the official Xdvi. To find out which xdvi you
are running, try @code{xdvi -version} or @code{xdvi.bin -version}.
@item KDVI. A dvi viewer for KDE. You need KDVI from KDE 3.0 or
@end table
By adding @code{_8} or @code{^8} to the clef name, the clef is
-transposed one octave down or up, respectively. Note that you have to
+transposed one octave down or up, respectively. You have to
enclose @var{clefname} in quotes if you use underscores or digits in the
name. For example,
@example
should use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
@code{\phrasingSlurBoth}.
-Note that the commands
-@code{\slurUp}, @code{\slurDown}, and @code{\slurBoth} will only affect
-normal slurs and not phrasing slurs.
+The commands @code{\slurUp}, @code{\slurDown}, and @code{\slurBoth}
+will only affect normal slurs and not phrasing slurs.
@node Breath marks
@subsection Breath marks
@code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}.
@lilypond[verbatim,singleline,fragment,relative]
- c'\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
- c2\sf c\rfz
+ c'-\ppp c-\pp c -\p c-\mp c-\mf c-\f c-\ff c-\fff
+ c2-\sf c-\rfz
@end lilypond
@cindex @code{\cr}
@cindex @code{\"!}
+
A crescendo mark is started with @code{\cr} and terminated with
-@code{\rc} (the textual reverse of @code{cr}). A decrescendo mark is
-started with @code{\decr} and terminated with @code{\rced}. There are
-also shorthands for these marks. A crescendo can be started with
-@code{\<} and a decrescendo can be started with @code{\>}. Either one
-can be terminated with @code{\!}. Note that @code{\!} must go before
-the last note of the dynamic mark whereas @code{\rc} and @code{\rced} go
-after the last note. Because these marks are bound to notes, if you
-want several marks during one note, you have to use spacer notes.
+@code{\endcr}, and decrescendi similarly with @code{\decr} and
+@code{\enddecr}. There are also shorthands for these marks. A
+crescendo can be started with @code{\<} and a decrescendo can be
+started with @code{\>}. Either one can be terminated with @code{\!}.
+Because these marks are bound to notes, if you must use spacer notes
+if marks during one note are needed.
@lilypond[fragment,verbatim,center,quote]
- c'' \< \! c'' d'' \decr e'' \rced
- < f''1 { s4 s4 \< \! s4 \> \! s4 } >
+ c''-\< c''-\! d''-\decr e''-\rced
+ < f''1 { s4 s4-\< s4-\! \> s4-\! } >
@end lilypond
This may give rise to very short hairpins. Use @code{minimum-length}
-in Voice.HairPin to lengthen these, e.g.
+in @internalsref{Voice}.@internalsref{HairPin} to lengthen these, e.g.
@example
\property Staff.Hairpin \override #'minimum-length = #5
\context Voice {
\property Voice.crescendoText = "cresc. poco"
\property Voice.crescendoSpanner = #'dashed-line
- a'2\mf\< a a \!a
+ a'2-\mf-\< a a a-\!
}
@end lilypond
It is not possible to use fingerings (e.g. @code{R1-4}) to put numbers
over multi-measure rests.
-
@cindex condensing rests
-Currently, there is no way to automatically condense multiple rests
+ There is no way to automatically condense multiple rests
into a single multimeasure rest. Multi measure rests do not take part
in rest collisions.
+Be careful when entering multimeasure rests followed by whole notes,
+@example
+ R1*4 cis cis
+@end example
+will enter two notes lasting four measures each. The result will look
+ok, but the bar numbering will be off.
@node Automatic part combining
@subsection Automatic part combining
@quotation
@example
-GNU LilyPond 1.6.0
+GNU LilyPond 1.7.16
Now processing: `/home/fred/ly/test.ly'
Parsing...
Interpreting music...[1]
@cindex loudness
@cindex forte
@cindex crescendo
-@cindex @code{\<}
-@cindex @code{\!}
-Hairpin dynamics can be easily added to Lilypond scores. A crescendo
-is started with @code{\<} and ended with @code{\!}. A decrescendo is
-started with @code{\>} and ended with @code{\!}. Absolute dynamics
-can be entered using @code{\p}, @code{\mf}, etc.
@cindex fingering instructions
+[TODO: moveme]
Fingering indications are entered with @code{-@var{N}}, where
@var{N} is a digit.
this section explains how to figure out which properties to tune for
your own scores. To discover this, you must have a copy of the
internals document. This is a set of HTML pages which should be
-included if you installed a binary distribution. These HTML pages are
-also available on the web: go to the lilypond website, click
-``Documentation: Index'' on the side bar, look in the ``Information
-for uses'' section, and click on ``Documentation of internals''.
+included if you installed a binary distribution. [TODO: revise for
+new site.] These HTML pages are also available on the web: go to the
+lilypond website, click ``Documentation: Index'' on the side bar, look
+in the ``Information for uses'' section, and click on ``Documentation
+of internals''.
You might want to bookmark either the HTML files on your disk, or the
one on the web (the HTML on your hard drive will load much faster than
the ones on the web!). One word of caution: the internals
documentation is generated from the definitions that the program uses.
Hence, the internals documentation is strongly tied to the version you
-use. Before you proceed, make sure that the versions of program and
-documentation match.
+use. Before you proceed, make sure that the program and documentation
+have matching version numbers.
@c TODO: the quote is incorrect, although that shouldn't be a big
@c problem for the reader.
The following command manually adds an offset to the object. We move
it a little to the left, and 1.8 staff space downwards.
@example
- \property Voice.Fingering \set #'extra-offset = #'(-0.3 . -1.8)
+ \once \property Voice.Fingering \set #'extra-offset = #'(-0.3 . -1.8)
@end example
The @code{extra-offset} is a low-level feature: it moves around
objects in the printout; the formatting engine is completely oblivious
first number controls left-right movement; a positive number will move
the object to the right. The second number controls up-down movement;
a positive number will move it higher.
-
-@cindex reverting object properties
-@cindex undoing object properties
-
-We only want to offset a single object, so after the F-sharp we must
-undo the setting. The technical term is to revert the property.
-@example
- \property Voice.Fingering \revert #'extra-offset
-@end example
+We only want to offset a single object, so this statement is adorned
+with @code{\once}.
@cindex property types
@cindex translator properties
@end example
A fingering instruction, which would be entered as @code{^5}, is put
-as close to the notes as possible, closer than the space entered to
-push away the 5. Hence, the 5 is entered as a normal text, formatting
-of fingering instructions.
+as close to the notes as possible, closer than the space entered to
+push away the 5. Hence, the 5 is entered as a normal text, with the
+formatting of fingering instructions.
@separate
\dynamicsUp
@end example
-However, if you do that the decrescendo will be too close to the
-upper voice and collide with the stems. Looking at the manual for
-dynamics, we notice that ``Vertical positioning of these symbols is
-handled by the @internalsref{DynamicLineSpanner} grob.''. If we turn
-to the documentation of @code{DynamicLineSpanner}, we find that
-@code{DynamicLineSpanner} supports several so-called `interfaces'. This
-object not only puts dynamic objects next to the staff
+However, if you do that the decrescendo will be too close to the upper
+voice and collide with the stems. Looking at the manual for dynamics,
+we notice that ``Vertical positioning of these symbols is handled by
+the @internalsref{DynamicLineSpanner} grob.''. If we turn to the
+documentation of @code{DynamicLineSpanner}, we find that
+@code{DynamicLineSpanner} supports several so-called `interfaces'.
+This object not only puts objects next to the staff
(@code{side-position-interface}), but it also groups dynamic objects
-(@code{axis-group-interface}), is considered a dynamic sign
-itself (@code{dynamic-interface}), and is an object. It has the standard
+(@code{axis-group-interface}), is considered a dynamic sign itself
+(@code{dynamic-interface}), and is an spanning object
+(@code{spanner-interface}). It also has the standard
@code{grob-interface} with all the variables that come with it.
For the moment we are interested in side positioning:
support). In this case, the direction signifies where to put the
victim object relative to the support (left or right, up or down?)
@end quotation
-Between the object and its support (in this case the notes in the voice
-going down), there should be more space. This space is controlled by
+Between the object and its support (in this case, the descending
+notes), there should be more space. This space is controlled by
@code{padding}, so we increase it.
@example
-\property Voice.DynamicLineSpanner \override #'padding = #5.0
+ \property Voice.DynamicLineSpanner \override #'padding = #5.0
@end example
-This command is almost like the command for setting slur attachments,
-but subtly different in its details. Grob properties can be
-manipulated with two commands: @code{\override} extends the
-variables with a setting, and @code{\revert} releases this
-setting. This has a certain theoretical appeal: the operations are
-simple and symmetric. But for practical use, it can be cumbersome. The
-commands act like parentheses: you should carefully balance the use of
-@code{\override} and @code{\revert}. The @code{\set} command is more
-friendly: it first does a @code{\revert} followed by @code{\override}.
+This command resembles the one for setting slur attachments, but
+subtly differs in its details. Grob properties can be manipulated
+with two commands: @code{\override} extends the definition of a grob
+with one setting, and @code{\revert} releases this setting. This has
+a theoretical appeal: the operations are simple and symmetric. For
+practical use, it can be cumbersome. The commands act like
+parentheses: you should carefully balance the use of @code{\override}
+and @code{\revert}. The @code{\set} command is more friendly: it
+first does a @code{\revert} followed by @code{\override}.
@separate
want to create a full score (for the conductor) along with several
individual parts (for the players).
-LilyPond is well suited for this task. We will declare the music for
-each instrument individually, giving the music of each instrument its
-own name. These pieces of music are then combined in different
-@code{\score} blocks to produce different combinations of instruments
-(for example, one @code{\score} block may only include the cello part;
-another @code{\score} block may be for all the strings, and yet another
-@code{\score} block may be for all parts together).
+ We will declare the music for each instrument individually, giving
+the music of each instrument its own name. These pieces of music are
+then combined in different @code{\score} blocks to produce different
+combinations of instruments (for example, one @code{\score} block may
+only include the cello part; another @code{\score} block may be for
+all the strings, and yet another @code{\score} block may be for all
+parts together).
This orchestral score example consists of three input files. In the
first file, @file{os-music.ly}, we define the music for all
-instruments. This file will be used for producing the score and
-the separate parts, but the file does not produce any sheet music
-itself. Other files reference this file by doing @code{\include
-"os-music.ly"}.
+instruments. This file will be used for producing the score and the
+separate parts, but the file does not produce any sheet music itself.
+Other files reference it by stating @code{\include "os-music.ly"}.
@example
% os-music.ly
@}
@end example
-Declare setting to be used globally. The @code{\skip} command produces
-no output, but moves forward in time: in this case, the duration of a
-half note (@code{2}), and that four times (@code{*4}). This brings us
-to the end of the piece, and we can set the end bar. You can use @code{s}
-as a shortcut for @code{\skip} (the last line of this section would
-be @code{s2*4 \bar"|."}).
+This declares settings to be used globally. The @code{\skip} command
+produces no output, but moves forward in time: in this case, the
+duration of a half note (@code{2}), and that four times (@code{*4}).
+This brings us to the end of the piece, and we can set the end bar.
+You can use @code{s} as a shortcut for @code{\skip} (the last line of
+this section would be @code{s2*4 \bar"|."}).
@separate
@example
Key = \notes \key as \major
@end example
-Declare the key signature of the piece and assign it to the identifier
-@var{Key}. Later on we will use @code{\Key} for all staves except those
-for transposing instruments.
+This declares the key signature of the piece and assign it to the
+identifier @var{Key}. Later on we will use @code{\Key} for all staves
+except those for transposing instruments.
@node The full score
@subsection The full score
\include "os-music.ly"
\include "paper13.ly"
-#(ly:set-point-and-click 'line-column)
textFlat = \markup @{\smaller \musicglyph #"accidentals--1"@}
\score @{
<
First we need to include the music definitions we made in
@file{os-music.ly}.
+@ignore
+
+[TODO: mention in a more relevant place]
+
@separate
@example
#(ly:set-point-and-click 'line-column)
find the origin of an error in the LY file: when you view the file with
Xdvi and click on a note, your editor will jump to the spot where that
note was entered. For more information, see @ref{Point and click}.
+@end ignore
@separate
importing a PostScript figure into your word processor. However,
there is an automated procedure to reduce the amount of work.
-If you use HTML, La@TeX{}, or texinfo, you can mix text and LilyPond
+If you use HTML, La@TeX{}, or Texinfo, you can mix text and LilyPond
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 the chapter
-@ref{Integrating text and music with lilypond-book}. Here we show a
-small example. Since the example also contains explanatory text, we
-will not comment on the contents.
+fragments, run LilyPond on them, and put back the resulting notation.
+This program is fully described in @ref{Integrating text and music
+with lilypond-book}. Here we show a small example. Since the example
+also contains explanatory text, we will not comment it further.
@example
\documentclass[a4paper]@{article@}
c2 g'2 \times 2/3 @{ f8 e d @} c'2 g4
@} @}
\end@{lilypond@}
+
Notice that the music line length matches the margin settings of the
document.
c'4 f bes es
\end@{lilypond@}
-\texttt@{verbatim@} prints the LilyPond code in addition to the
-graphical score,
-\texttt@{11pt@} selects the default music size,
-\texttt@{fragment@} adds a score block,
-\texttt@{relative@} uses relative mode for the fragment, and
-\texttt@{intertext@} specifies what to print between the
-\texttt@{verbatim@} code and the music.
+The option \texttt@{verbatim@} prints the LilyPond code in addition to
+the graphical score, \texttt@{11pt@} selects the default music size,
+\texttt@{fragment@} adds a score block, \texttt@{relative@} uses
+relative mode for the fragment, and \texttt@{intertext@} specifies
+what to print between the \texttt@{verbatim@} code and the music.
If you want to include large examples into the text, it may be more
convenient to put the example in a separate file:
$ cd input/tutorial
$ mkdir -p out/
$ lilypond-book --outdir=out/ lilbook.tex
-lilypond-book (GNU LilyPond) 1.6.1
+lilypond-book (GNU LilyPond) 1.7.16
Reading `input/tutorial/lilbook.tex'
Reading `input/tutorial/sammartini.ly'
@var{lots of stuff deleted}
}
}
@end lilypond
+
Notice that the music line length matches the margin settings of the
document.
c'4 f bes es
@end lilypond
-@code{verbatim} also shows the LilyPond code, @code{11pt} selects
+The option @code{verbatim} also shows the LilyPond code, @code{11pt} selects
the default music size, @code{fragment} adds a score block,
@code{relative} uses relative mode for the fragment, and
@code{intertext} specifies what to print between the
@lilypondfile[printfilename]{sammartini.ly}
The @code{printfilename} option adds the file name to the output.
-@node End of tutorial
-@section End of tutorial
-
-This is the end of the tutorial. If you read everything until this point
-(and understood everything!) then you are now an accomplished lilypond
-hacker. From here you should try fiddling with input files or making your
-own input files. Come back to the reference manual for more information
-if you get stuck!
-
-Do not forget to check out the
-@ifhtml
-@uref{../../../../input/template/out-www/template.html,templates},
-@uref{../../../../input/test/out-www/test.html,examples} and
-@uref{../../../../input/regression/out-www/regression.html,feature tests}.
-@end ifhtml
-@ifnothtml
-templates, examples and feature tests.
-@end ifnothtml
-If you want to see real action LilyPond, head over to
-@uref{http://www.mutopiaproject.org}, which has many examples of
-classical music typeset with LilyPond.
+
+[TODO: include excercises? ]