odd-numbered voices taking upward stems and the even-numbered
voices downward ones. The stems for voices 1 and 2 are right,
but the stems in voice 3 should go down in this particular piece
-of music. We can correct this simply by missing out voice three
-and placing the music in voice four:
+of music. We can correct this by skipping voice three
+and placing the music in voice four. This is done by simply
+adding another pair of @code{\\}.
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
The input is rather sparse, but in the output, bar lines,
accidentals, clef, and time signature have been added. When
LilyPond @emph{interprets} the input the musical information
-is inspected in time order, similar to reading a score from left
-to right. While reading the input, the program remembers where
-measure boundaries are, and which pitches require explicit
+is parsed from left to right, similar to the way a performer
+reads the score. While reading the input, the program remembers
+where measure boundaries are, and which pitches require explicit
accidentals. This information must be held on several levels.
-For example, the effect of an accidental is limited
-to a single staff, while a bar line must be synchronized across
-the entire score.
+For example, an accidental affects only a single staff, while
+a bar line must be synchronized across the entire score.
Within LilyPond, these rules and bits of information are grouped in
-@emph{Contexts}. We have already met the @code{Voice} context.
+@emph{Contexts}. We have already introduced the @code{Voice} context.
Others are the @code{Staff} and @code{Score} contexts. Contexts are
hierarchical to reflect the hierarchical nature of a musical score.
For example: a @code{Staff} context can contain many @code{Voice}
The term derives from the traditional process of music printing.
Just a few decades ago, sheet music was made by cutting and
stamping the music into a zinc or pewter plate in mirror image.
-The plate would be inked, the depressions caused by the cutting
+The plate would be inked, and the depressions caused by the cutting
and stamping would hold ink. An image was formed by pressing
-paper to the plate. The stamping and cutting was completely done
+paper to the plate. The stamping and cutting was done completely
by hand. Making a correction was cumbersome, if possible at all,
so the engraving had to be perfect in one go. Engraving was a
highly specialized skill; a craftsman had to complete around five
skilled.
Nowadays, all newly printed music is produced with computers.
-This has obvious advantages; prints are cheaper to make, and
+This has obvious advantages: prints are cheaper to make, and
editorial work can be delivered by email. Unfortunately, the
pervasive use of computers has also decreased the graphical
quality of scores. Computer printouts have a bland, mechanical
symbol matches the light lines and it has a straight layout with
sharp corners. By contrast, the Bärenreiter flat has a bold,
almost voluptuous rounded look. Our flat symbol is designed
-after, among others, this one. It is rounded, and its weight
+after this one, among others. It is rounded, and its weight
harmonizes with the thickness of our staff lines, which are also
much thicker than lines in the computer edition.
the notes of a down-stem/@/up-stem combination should be put
closer together, all depending on the combined vertical positions
of the notes. The upper two measures are printed with this
-correction, the lower two measures without, forming
+correction, the lower two measures, however, form
down-stem/@/up-stem clumps of notes.
Musicians are usually more absorbed with performing than with
-studying the looks of a piece of music, so nitpicking about
+studying the looks of a piece of music, so nitpicking
typographical details may seem academic. But it is not. In
larger pieces with monotonous rhythms, spacing corrections lead to
subtle variations in the layout of every line, giving each one a
distinct visual signature. Without this signature all lines would
look the same, and they become like a labyrinth. If a musician
-looks away once or has a lapse in concentration, the lines might
+looks away once or has a lapse in concentration, he/she may easily
lose their place on the page.
Similarly, the strong visual look of bold symbols on heavy staff
lines stands out better when the music is far away from the
-reader, for example, if it is on a music stand. A careful
+reader: for example, if it is on a music stand. A careful
distribution of white space allows music to be set very tightly
-without cluttering symbols together. The result minimizes the
+without crowding symbols together. The result minimizes the
number of page turns, which is a great advantage.
This is a common characteristic of typography. Layout should be
@item Finally, we continually refine the formatting algorithms, so
we need a flexible approach to rules. The C++ language forces a
-certain method of grouping rules that do not match well with how
+certain method of grouping rules that does not mesh well with how
music notation works.
@end itemize
variables containing procedures. These procedures perform the
actual formatting, and by substituting different ones, we can
change the appearance of objects. In the following example, the
-rule which note head objects are used to produce their symbol is
-changed during the music fragment.
+rule governing which note head objects are used to produce the
+note head symbol is changed during the music fragment.
@lilypond[quote,ragged-right]
#(set-global-staff-size 30)
The formatting process decides where to place symbols. However,
this can only be done once it is decided @emph{what} symbols
-should be printed, in other words what notation to use.
+should be printed -- in other words, what notation to use.
Common music notation is a system of recording music that has
evolved over the past 1000 years. The form that is now in common
-use dates from the early renaissance. Although the basic form
+use dates from the early Renaissance. Although the basic form
(i.e., note heads on a 5-line staff) has not changed, the details
still evolve to express the innovations of contemporary notation.
-Hence, it encompasses some 500 years of music. Its applications
-range from monophonic melodies to monstrous counterpoints for
-large orchestras.
+Hence, common music notation encompasses some 500 years of music.
+Its applications range from monophonic melodies to monstrous
+counterpoints for a large orchestra.
-How can we get a grip on such a many-headed beast, and force it
+How can we get a grip on such a seven-headed beast, and force it
into the confines of a computer program? Our solution is to break
up the problem of notation (as opposed to engraving, i.e.,
typography) into digestible and programmable chunks: every type of
@code{engraver}s, by analogy with craftsmen who translate musical
ideas to graphic symbols.
-In the following example, we see how we start out with a plug-in
-for note heads, the @code{Note_heads_engraver}.
+In the following example, we start out with a plug-in for note
+heads, the @code{Note_heads_engraver}.
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
@end lilypond
@noindent
-Then a @code{Staff_symbol_engraver} adds the staff
+Then a @code{Staff_symbol_engraver} adds the staff,
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
@end lilypond
@noindent
-the @code{Clef_engraver} defines a reference point for the staff
+the @code{Clef_engraver} defines a reference point for the staff,
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
@end example
@noindent
-to create a quarter note C1 (middle C) and an eighth note D1 (D
-above middle C).
+to create a quarter note on middle C and an eighth note on D
+above middle C.
@lilypond[quote]
{
and unambiguously defined.
User-interfaces and syntax are what people see and deal with most.
-They are partly a matter of taste, and also subject of much
+They are partly a matter of taste, and also the subject of much
discussion. Although discussions on taste do have their merit,
they are not very productive. In the larger picture of LilyPond,
the importance of input syntax is small: inventing neat syntax is
We have already met the commands @code{\set} and @code{\with}, used to
change the properties of @strong{contexts} and to remove and add
@strong{engravers}, in @ref{Modifying context properties}, and
-@ref{Adding and removing engravers}. We now must meet some more
+@ref{Adding and removing engravers}. We must now introduce some more
important commands.
The command to change the properties of @strong{layout objects} is
@code{\override}. Because this command has to modify
internal properties deep within LilyPond its syntax is not
-as simple as the commands you have met so far. It needs to
+as simple as the commands you have used so far. It needs to
know precisely which property of which object in which context
has to be modified, and what its new value is to be. Let's see
how this is done.
string"}; for more details about symbols and strings, see @ref{Scheme
tutorial}.
-Ok, so the @code{\override} command we need to print the lyrics
-in italics should be
+The @code{\override} command needed to print the lyrics in italics is:
@example
\override LyricText #'font-shape = #'italic
@end example
@noindent
-and this should be placed just in front of and close to the
-lyrics which it should affect, like this:
+This should be placed just in front of the lyrics we wish to affect,
+like so:
@cindex font-shape property, example
@cindex italic, example
them are of the type @code{Staff}, so the reason the @code{\override}
command failed to work as expected is because @code{Barline} is not in
the default @code{Voice} context. If the context is specified
-wrongly, the command simply does not work. No error message is
+incorrectly, the command simply does not work. No error message is
produced, and nothing is logged in the log file. Let's try correcting
it by adding the correct context: