@node Simultaneous notes
@section Simultaneous notes
-Polyphony in music refers to having more than one voice occurring in
-a piece of music. Polyphony in LilyPond refers to having more than
-one voice on the same staff.
+Polyphony in music refers to having more than one voice occurring
+in a piece of music. Polyphony in LilyPond refers to having more
+than one voice on the same staff.
@menu
* Single voice::
<c e g>4 <c>8
@end lilypond
-For more information about chords, see @ref{Introducing chord names}.
+For more information about chords, see @ref{Introducing chord
+names}.
@node Clusters
@cindex cluster
-A cluster indicates a continuous range of pitches to be played. They
-can be denoted as the envelope of a set of notes. They are entered by
-applying the function @code{makeClusters} to a sequence of
-chords, e.g.,
+A cluster indicates a continuous range of pitches to be played.
+They can be denoted as the envelope of a set of notes. They are
+entered by applying the function @code{makeClusters} to a sequence
+of chords, e.g.,
+
@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
\makeClusters { <c e > <b f'> }
@end lilypond
Ordinary notes and clusters can be put together in the same staff,
even simultaneously. In such a case no attempt is made to
-automatically avoid collisions between ordinary notes and clusters.
+automatically avoid collisions between ordinary notes and
+clusters.
@seealso
@cindex polyphony
-The easiest way to enter fragments with more than one voice on a staff
-is to enter each voice as a sequence (with @code{@{...@}}), and combine
-them simultaneously, separating the voices with @code{\\}
+The easiest way to enter fragments with more than one voice on a
+staff is to enter each voice as a sequence (with @code{@{...@}}),
+and combine them simultaneously, separating the voices with
+@code{\\}
@funindex \\
}
@end lilypond
-The separator causes @internalsref{Voice} contexts@footnote{Polyphonic
-voices are sometimes called @q{layers} in other notation packages}
@cindex layers
-to be instantiated. They bear the names @code{"1"}, @code{"2"}, etc. In
-each of these contexts, vertical direction of slurs, stems, etc., is set
+
+The separator causes @internalsref{Voice}
+contexts@footnote{Polyphonic voices are sometimes
+called @q{layers} in other notation packages} to be instantiated.
+They bear the names @code{"1"}, @code{"2"}, etc. In each of these
+contexts, vertical direction of slurs, stems, etc., is set
appropriately.
-These voices are all separate from the voice that contains the notes just
-outside the @code{<< \\ >>} construct. This should be noted when making
-changes at the voice level. This also means that slurs and ties cannot go
-into or out of a @code{<< \\ >>} construct. Conversely, parallel voices
-from separate @code{<< \\ >>} constructs on the same staff are the
-same voice. Here is the same example, with different noteheads and
-colors for each
-voice. Note that the change to the note-head style in the main voice does
-not affect
-the inside of the @code{<< \\ >>} constructs. Also, the change to the
-second
-voice in the first @code{<< \\ >>} construct is effective in the second
-@code{<< \\ >>}, and the voice is tied across the two constructs.
+These voices are all separate from the voice that contains the
+notes just outside the @code{<< \\ >>} construct. This should be
+noted when making changes at the voice level. This also means
+that slurs and ties cannot go into or out of a @code{<< \\ >>}
+construct. Conversely, parallel voices from separate @code{<< \\
+>>} constructs on the same staff are the same voice. Here is the
+same example, with different noteheads and colors for each voice.
+Note that the change to the note-head style in the main voice does
+not affect the inside of the @code{<< \\ >>} constructs. Also,
+the change to the second voice in the first @code{<< \\ >>}
+construct is effective in the second @code{<< \\ >>}, and the
+voice is tied across the two constructs.
@cindex note heads, styles
@end lilypond
Polyphony does not change the relationship of notes within a
-@code{\relative @{ @}} block. Each note is calculated relative
-to the note immediately preceding it.
+@code{\relative @{ @}} block. Each note is calculated relative to
+the note immediately preceding it.
@example
\relative @{ noteA << noteB \\ noteC >> noteD @}
@internalsref{Voice} contexts can also be instantiated manually
inside a @code{<< >>} block to create polyphonic music, using
-@code{\voiceOne}, up to @code{\voiceFour} to assign stem directions
-and a horizontal shift for each part.
+@code{\voiceOne}, up to @code{\voiceFour} to assign stem
+directions and a horizontal shift for each part.
Specifically,
@example
>>
@end example
-The @code{\voiceXXX} commands set the direction of stems, slurs, ties,
-articulations, text annotations, augmentation dots of dotted
-notes, and fingerings. @code{\voiceOne} and @code{\voiceThree} make
-these objects point upwards, while @code{\voiceTwo} and @code{\voiceFour}
-make them point downwards.
-The command @code{\oneVoice} will revert back to the normal setting.
+The @code{\voiceXXX} commands set the direction of stems, slurs,
+ties, articulations, text annotations, augmentation dots of dotted
+notes, and fingerings. @code{\voiceOne} and @code{\voiceThree}
+make these objects point upwards, while @code{\voiceTwo} and
+@code{\voiceFour} make them point downwards. The command
+@code{\oneVoice} will revert back to the normal setting.
-An expression that appears directly inside a @code{<< >>} belongs to
-the main voice. This is useful when extra voices appear while the main
-voice is playing. Here is a more correct rendition of the example from
-the previous section. The crossed colored noteheads demonstrate that the main
-melody is now in a single voice context.
+An expression that appears directly inside a @code{<< >>} belongs
+to the main voice. This is useful when extra voices appear while
+the main voice is playing. Here is a more correct rendition of
+the example from the previous section. The crossed colored
+noteheads demonstrate that the main melody is now in a single
+voice context.
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
}
@end lilypond
-The correct definition of the voices allows the melody to be slurred.
+The correct definition of the voices allows the melody to be
+slurred.
+
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
c16^( d e f
@end lilypond
Avoiding the @code{\\} separator also allows nesting polyphony
-constructs, which in some case might be a more natural way to typeset
-the music.
+constructs, which in some case might be a more natural way to
+typeset the music.
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
}
@end lilypond
-In some instances of complex polyphonic music, you may need additional
-voices to avoid collisions between notes. Additional voices are added
-by defining an identifier, as shown below:
+In some instances of complex polyphonic music, you may need
+additional voices to avoid collisions between notes. Additional
+voices are added by defining an identifier, as shown below:
@lilypond[quote,verbatim,ragged-right,relative=2]
voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
@node Collision Resolution
@unnumberedsubsubsec Collision Resolution
-Normally, note heads with a different number of dots are not merged, but
-when the object property @code{merge-differently-dotted} is set in
-the @internalsref{NoteCollision} object, they are merged:
+Normally, note heads with a different number of dots are not
+merged, but when the object property
+@code{merge-differently-dotted} is set in the
+@internalsref{NoteCollision} object, they are merged:
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Voice << {
} \\ { g8.[ f16] g8.[ f16] } >>
@end lilypond
-Similarly, you can merge half note heads with eighth notes, by setting
-@code{merge-differently-headed}:
+Similarly, you can merge half note heads with eighth notes, by
+setting @code{merge-differently-headed}:
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\new Voice << {
@end lilypond
@noindent
-@code{merge-differently-headed} and @code{merge-differently-dotted}
-only apply to opposing stem directions (ie. Voice 1 & 2).
+@code{merge-differently-headed} and
+@code{merge-differently-dotted} only apply to opposing stem
+directions (ie. Voice 1 & 2).
LilyPond also vertically shifts rests that are opposite of a stem,
for example
@end lilypond
If three or more notes line up in the same column,
-@code{merge-differently-headed} cannot
-successfully complete the merge of the two notes that should be merged.
-To allow the merge to work properly, apply a @code{\shift} to the note that
-should not be merged. In the first measure of following example,
-@code{merge-differently-headed} does not work (the half-note head is
-solid). In the second measure, @code{\shiftOn} is applied to move the
-top @code{g} out of the column, and @code{merge-differently-headed}
-works properly.
+@code{merge-differently-headed} cannot successfully complete the
+merge of the two notes that should be merged. To allow the merge
+to work properly, apply a @code{\shift} to the note that should
+not be merged. In the first measure of following example,
+@code{merge-differently-headed} does not work (the half-note head
+is solid). In the second measure, @code{\shiftOn} is applied to
+move the top @code{g} out of the column, and
+@code{merge-differently-headed} works properly.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\override Staff.NoteCollision #'merge-differently-headed = ##t
@funindex \shiftOnnn
@code{\shiftOnnn},
@funindex \shiftOff
-@code{\shiftOff}: these commands specify the
-degree to which chords of the current voice should be shifted.
-The outer voices (normally: voice one and
-two) have @code{\shiftOff}, while the inner voices (three and four)
-have @code{\shiftOn}. @code{\shiftOnn} and @code{\shiftOnnn} define
-further shift levels.
+@code{\shiftOff}: these commands specify the degree to which
+chords of the current voice should be shifted. The outer voices
+(normally: voice one and two) have @code{\shiftOff}, while the
+inner voices (three and four) have @code{\shiftOn}.
+@code{\shiftOnn} and @code{\shiftOnnn} define further shift
+levels.
-When LilyPond cannot cope, the @code{force-hshift}
-property of the @internalsref{NoteColumn} object and pitched rests can
-be used to override typesetting decisions.
+When LilyPond cannot cope, the @code{force-hshift} property of the
+@internalsref{NoteColumn} object and pitched rests can be used to
+override typesetting decisions.
@lilypond[quote,verbatim,ragged-right]
\relative <<
@seealso
-Program reference: the objects responsible for resolving collisions are
-@internalsref{NoteCollision} and @internalsref{RestCollision}.
+Program reference: the objects responsible for resolving
+collisions are @internalsref{NoteCollision} and
+@internalsref{RestCollision}.
@refbugs
-When using @code{merge-differently-headed} with an upstem eighth or a
-shorter note, and a downstem half note, the eighth note gets the wrong
-offset.
+When using @code{merge-differently-headed} with an upstem eighth
+or a shorter note, and a downstem half note, the eighth note gets
+the wrong offset.
There is no support for clusters where the same note occurs with
different accidentals in the same chord. In this case, it is
-recommended to use enharmonic transcription, or to use special cluster
-notation (see @ref{Clusters}).
+recommended to use enharmonic transcription, or to use special
+cluster notation (see @ref{Clusters}).
@node Automatic part combining
@cindex automatic part combining
@cindex part combiner
-Automatic part combining is used to merge two parts of music onto a
-staff. It is aimed at typesetting orchestral scores. When the two
-parts are identical for a period of time, only one is shown. In
-places where the two parts differ, they are typeset as separate
+Automatic part combining is used to merge two parts of music onto
+a staff. It is aimed at typesetting orchestral scores. When the
+two parts are identical for a period of time, only one is shown.
+In places where the two parts differ, they are typeset as separate
voices, and stem directions are set automatically. Also, solo and
@emph{a due} parts are identified and can be marked.
@end example
-The following example demonstrates the basic functionality of the part
-combiner: putting parts on one staff, and setting stem directions and
-polyphony
+The following example demonstrates the basic functionality of the
+part combiner: putting parts on one staff, and setting stem
+directions and polyphony
@lilypond[quote,verbatim,ragged-right,fragment]
\new Staff \partcombine
\relative g' { g g r4 r e e g g }
@end lilypond
-The first @code{g} appears only once, although it was
-specified twice (once in each part). Stem, slur, and tie directions are
-set automatically, depending whether there is a solo or unisono. The
-first part (with context called @code{one}) always gets up stems, and
-@q{Solo}, while the second (called @code{two}) always gets down stems and
-@q{Solo II}.
+The first @code{g} appears only once, although it was specified
+twice (once in each part). Stem, slur, and tie directions are set
+automatically, depending whether there is a solo or unisono. The
+first part (with context called @code{one}) always gets up stems,
+and @q{Solo}, while the second (called @code{two}) always gets
+down stems and @q{Solo II}.
-If you just want the merging parts, and not the textual markings, you
-may set the property @code{printPartCombineTexts} to false
+If you just want the merging parts, and not the textual markings,
+you may set the property @code{printPartCombineTexts} to false
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
\new Staff <<
Both arguments to @code{\partcombine} will be interpreted as
@internalsref{Voice} contexts. If using relative octaves,
-@code{\relative} should be specified for both music expressions, i.e.,
+@code{\relative} should be specified for both music expressions,
+i.e.,
@example
\partcombine
@end example
@noindent
-A @code{\relative} section that is outside of @code{\partcombine} has
-no effect on the pitches of @var{musicexpr1} and @var{musicexpr2}.
+A @code{\relative} section that is outside of @code{\partcombine}
+has no effect on the pitches of @var{musicexpr1} and
+@var{musicexpr2}.
@seealso
@refbugs
-When @code{printPartCombineTexts} is set, when the two voices play the
-same notes on and off, the part combiner may typeset @code{a2} more
-than once in a measure.
+When @code{printPartCombineTexts} is set, when the two voices play
+the same notes on and off, the part combiner may typeset @code{a2}
+more than once in a measure.
@code{\partcombine} cannot be inside @code{\times}.
@code{\partcombine} cannot be inside @code{\relative}.
Internally, the @code{\partcombine} interprets both arguments as
-@code{Voice}s named @code{one} and @code{two}, and then decides when
-the parts can be combined. Consequently, if the arguments switch to
-differently named @internalsref{Voice} contexts, the events in those
-will be ignored.
+@code{Voice}s named @code{one} and @code{two}, and then decides
+when the parts can be combined. Consequently, if the arguments
+switch to differently named @internalsref{Voice} contexts, the
+events in those will be ignored.
@node Writing music in parallel
Don't use any other relative=X commands (make it a non-fragment
example), and don't use fragment without relative=2.
- use "aes" and "ees" instead of "as" and "aes". I know it's not
- correct Dutch naming, but let's not confuse people with this until
- we get to the Basic notation chapter.
+ correct Dutch naming, but let's not confuse people with this
+ until we get to the Basic notation chapter.
@end ignore
@chapter Tutorial
This tutorial starts with an introduction to the LilyPond music
-language and how to produce printed music. After this first contact we
-will explain how to create common musical notation.
+language and how to produce printed music. After this first
+contact we will explain how to create common musical notation.
@ifhtml
Many people learn programs by trying and fiddling around with the
program. This is also possible with LilyPond. If you click on a
picture in the HTML version of this manual, you will see the exact
-LilyPond input that was used to generate that image.
-Try it on this image
+LilyPond input that was used to generate that image. Try it on
+this image
@c no verbatim here
@lilypond[quote,ragged-right]
}
@end lilypond
-By cutting and pasting everything in the @qq{ly snippet} section, you have a
-starting template for experiments. If you like learning in this way,
-you will probably want to print out or bookmark the
-@ruser{Cheat sheet}, which is a table listing of the most common
-commands for quick reference.
+By cutting and pasting everything in the @qq{ly snippet} section,
+you have a starting template for experiments. If you like
+learning in this way, you will probably want to print out or
+bookmark the @ruser{Cheat sheet}, which is a table listing of the
+most common commands for quick reference.
+
@end ifhtml
@menu
@node Compiling a file
@subsection Compiling a file
-The first example demonstrates how to start working with LilyPond. To
-create sheet music, we write a text file that specifies the
+The first example demonstrates how to start working with LilyPond.
+To create sheet music, we write a text file that specifies the
notation. For example, if we write
@example
}
@end lilypond
-@strong{Warning:} Every piece of LilyPond input needs to have @strong{@{ curly
-braces @}} placed around the input. The braces should also be
-surrounded by a space unless they are at the beginning or end of a
-line to avoid ambiguities. These may be omitted in some examples in this
-manual, but don't forget them in your own music!
+@strong{Warning:} Every piece of LilyPond input needs to have
+@strong{@{ curly braces @}} placed around the input. The braces
+should also be surrounded by a space unless they are at the
+beginning or end of a line to avoid ambiguities. These may be
+omitted in some examples in this manual, but don't forget them in
+your own music!
@cindex Case sensitive
-In addition, LilyPond input is @strong{case sensitive}. @code{ @{c d e @}}
-is valid input; @code{@{ C D E @}} will produce an error message.
+In addition, LilyPond input is @strong{case sensitive}. @code{
+@{c d e @}} is valid input; @code{@{ C D E @}} will produce an
+error message.
@sp 1
@subheading Entering music and viewing output
-In this section we will explain what commands to run
-and how to view or print the output.
+In this section we will explain what commands to run and how to
+view or print the output.
@subsubheading MacOS X
-If you double click @code{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.
+If you double click @code{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 time you ever run LilyPond, it will take a minute
-or two because all of the system fonts have to be analyzed first.
+Be warned that the first time you ever run LilyPond, it will take
+a minute or two because all of the system fonts have to be
+analyzed first.
-For future use of LilyPond, you should begin by
-selecting @q{New} or @q{Open}. You must save your file before
-typesetting it. If any errors occur in processing, please see the log
-window.
+For future use of LilyPond, you should begin by selecting @q{New}
+or @q{Open}. You must save your file before typesetting it. If
+any errors occur in processing, please see the log window.
@subsubheading Windows
-On Windows, if you double-click in the LilyPond icon on the Desktop, it
-will open a simple text editor with an example file. Save it, for
-example, to @file{test.ly} on your Desktop and then double-click on the
-file to process it (the file icon looks like a note). After some
-seconds, you will get a file @file{test.pdf}
-on your desktop. Double-click on this PDF file to view the typeset
+On Windows, if you double-click in the LilyPond icon on the
+Desktop, it will open a simple text editor with an example file.
+Save it, for example, to @file{test.ly} on your Desktop and then
+double-click on the file to process it (the file icon looks like a
+note). After some seconds, you will get a file @file{test.pdf} on
+your desktop. Double-click on this PDF file to view the typeset
score. An alternative method to process the @file{test.ly} file
-is to drag and drop it onto the LilyPond icon using your mouse pointer.
+is to drag and drop it onto the LilyPond icon using your mouse
+pointer.
-To edit an existing @file{.ly} file, right-click on it and select
-@qq{Edit source}. To get an empty file to start from, run the editor
-as described above and use @qq{New} in the @qq{File} menu.
+To edit an existing @file{.ly} file, right-click on it and
+select @qq{Edit source}. To get an empty file to start from, run
+the editor as described above and use @qq{New} in
+the @qq{File} menu.
-Double-clicking the file does not only result in a PDF file, but also
-produces a @file{.log} file that contains some information on what LilyPond
-has done to the file. If any errors occur, please examine this file.
+Double-clicking the file does not only result in a PDF file, but
+also produces a @file{.log} file that contains some information on
+what LilyPond has done to the file. If any errors occur, please
+examine this file.
-Note that there are several other text editors available, with better
-support for LilyPond, see @rprogram{Text editor support}, for more information.
+Note that there are several other text editors available, with
+better support for LilyPond, see @rprogram{Text editor support},
+for more information.
@subsubheading 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 they have not been
-installed already, refer to the file @file{INSTALL.txt}. The
-easiest editing environment is @file{LilyPondTool}. See
+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 they have
+not been installed already, refer to the file @file{INSTALL.txt}.
+The easiest editing environment is @file{LilyPondTool}. See
@rprogram{Text editor support}, for more information.}. In your
text editor, enter the following input and save the file as
@file{test.ly}
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 such 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.}
+@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, a
+freely available package for viewing and printing PDF and
+PostScript files.}
@node Simple notation
@subsection Simple notation
-LilyPond will add some notation elements automatically. In the next
-example, we have only specified four pitches, but LilyPond has
-added a clef, time signature, and rhythms.
+LilyPond will add some notation elements automatically. In the
+next example, we have only specified four pitches, but LilyPond
+has added a clef, time signature, and rhythms.
@lilypond[verbatim,quote,ragged-right]
{
@end lilypond
@noindent
-This behavior may be altered, but in most cases these automatic values
-are useful.
+This behavior may be altered, but in most cases these automatic
+values are useful.
@subheading Pitches
-The easiest way to enter notes is by using @code{\relative} mode. In
-this mode, the @rglos{interval} between the previous note and the
-current note is assumed to be within a @rglos{fourth}. We begin by
-entering the most elementary piece of music, a @rglos{scale}.
+The easiest way to enter notes is by using @code{\relative} mode.
+In this mode, the @rglos{interval} between the previous note and
+the current note is assumed to be within a @rglos{fourth}. We
+begin by entering the most elementary piece of music, a
+@rglos{scale}.
@lilypond[verbatim,quote,ragged-right]
\relative c' {
}
@end lilypond
-The initial note is @rglos{middle C}. Each successive note
-is within a fourth of the previous note -- in other words, the first
-@samp{c} is the closest C to middle C. This is followed by the closest
-D to the previous note. We can create melodies which have larger intervals:
+The initial note is @rglos{middle C}. Each successive note is
+within a fourth of the previous note -- in other words, the first
+@samp{c} is the closest C to middle C. This is followed by the
+closest D to the previous note. We can create melodies which have
+larger intervals:
@lilypond[verbatim,quote,ragged-right]
\relative c' {
@end lilypond
@noindent
-As you may notice, this example does not start on middle C. The first
-note -- the @samp{d} -- is the closest D to middle C.
+As you may notice, this example does not start on middle C. The
+first note -- the @samp{d} -- is the closest D to middle C.
-To add intervals that are larger than a fourth, we can raise the octave
-by adding a single quote @code{'} (or apostrophe) to the note name. We can
-lower the octave by adding a comma @code{,} to the note name.
+To add intervals that are larger than a fourth, we can raise the
+octave by adding a single quote @code{'} (or apostrophe) to the
+note name. We can lower the octave by adding a comma @code{,} to
+the note name.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@end lilypond
@noindent
-To change a note by two (or more!) octaves, we use multiple @code{''} or
-@code{,,} -- but be careful that you use two single quotes @code{''} and
-not one double quote @code{"}@tie{}! The initial value in
-@code{\relative c'} may also be modified like this.
+To change a note by two (or more!) octaves, we use multiple
+@code{''} or @code{,,} -- but be careful that you use two single
+quotes @code{''} and not one double quote @code{"}@tie{}! The
+initial value in @code{\relative c'} may also be modified like
+this.
@subheading Durations (rhythms)
-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. Beams are added
-automatically.
+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.
+Beams are added automatically.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@noindent
If you do not specify a duration, the previous duration is used
-for the next note. The duration of the first note defaults to a quarter.
+for the next note. The duration of the first note defaults to a
+quarter.
-To create @rglos{dotted note}s, add a dot @samp{.} to the duration number.
+To create @rglos{dotted note}s, add a dot @samp{.} to the duration
+number.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@subheading Time signature
-The @rglos{time signature}) can be set with the @code{\time} command:
+The @rglos{time signature}) can be set with the @code{\time}
+command:
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@node Working on text files
@subsection Working on text files
-LilyPond input files are similar to source files in many common programming languages.
-They are case sensitive, and white-space is generally equivalent. Expressions are
-formed with curly braces @{ @}, and comments are denoted with @code{%} or
-@code{%@{ ... %@}}.
+LilyPond input files are similar to source files in many common
+programming languages. They are case sensitive, and white-space
+is generally equivalent. Expressions are formed with curly braces
+@{ @}, and comments are denoted with @code{%} or @code{%@{ ...
+%@}}.
-If the previous sentence sounds like nonsense, don't worry! We'll explain
-what all these terms mean:
+If the previous sentence sounds like nonsense, don't worry! We'll
+explain what all these terms mean:
@itemize
@cindex Case sensitive
@item @strong{Case sensitive}:
-it matters whether you enter a letter
-in lower case (i.e. @code{a, b, s, t}) or upper case (i.e.
-@code{A, B, S, T}). Notes are lower case: @code{@{ c d e @}}
-is valid input; @code{@{ C D E @}} will produce an error message.
+it matters whether you enter a letter in lower case (i.e. @code{a,
+b, s, t}) or upper case (i.e. @code{A, B, S, T}). Notes are
+lower case: @code{@{ c d e @}} is valid input; @code{@{ C D E @}}
+will produce an error message.
@item @strong{Whitespace insensitive}:
-it does not matter how many
-spaces (or new lines) you add. @code{@{ c d e @}} means the same thing
-as @code{@{ c @tie{} @tie{} @tie{} d e @}} and
-@example
- @{
-c d
- e @}
-@end example
+it does not matter how many spaces (or new lines) you add.
+@code{@{ c d e @}} means the same thing as @code{@{ c @tie{}
+@tie{} @tie{} d e @}} and @example @{ c d e
+@} @end example
@noindent
-Of course, the previous example is hard to read. A good rule of thumb
-is to indent code blocks with either a tab or two spaces:
+Of course, the previous example is hard to read. A good rule of
+thumb is to indent code blocks with either a tab or two spaces:
+
@example
@{
c d e
@end example
@item @strong{Expressions:}
-Every piece of LilyPond input needs to have
-@strong{@{ curly braces @}} placed around the input. These braces tell
-LilyPond that the input is a single music expression, just like
-parenthesis @samp{()} in mathematics. The braces should
-be surrounded by a space unless they are at the beginning or end of a
-line to avoid ambiguities.
+Every piece of LilyPond input needs to have @strong{@{ curly
+braces @}} placed around the input. These braces tell LilyPond
+that the input is a single music expression, just like parenthesis
+@samp{()} in mathematics. The braces should be surrounded by a
+space unless they are at the beginning or end of a line to avoid
+ambiguities.
-A function (such as @code{\relative @{ @}}) also counts as a single
-music expression.
+A function (such as @code{\relative @{ @}}) also counts as a
+single music expression.
@cindex comments
@cindex line comment
@cindex block comment
@item @strong{Comments}:
-A comment is a remark for the human reader of the music input; it is
-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; anything after @samp{%} on that line is
-ignored. A block comment marks a whole section of music
-input as a comment. Anything that is enclosed in @code{%@{} and @code{%@}} is
-ignored. (Comments do not nest.) The following fragment shows possible uses for comments
+A comment is a remark for the human reader of the music input; it
+is 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; anything after @samp{%} on
+that line is ignored. A block comment marks a whole section of
+music input as a comment. Anything that is enclosed in @code{%@{}
+and @code{%@}} is ignored. (Comments do not nest.) The following
+fragment shows possible uses for comments
@example
% notes for twinkle twinkle follow
@subsection How to read the tutorial
As we saw in @ruser{Working on text files}, LilyPond input must be
-surrounded by @{ @} marks or a @code{\relative c'' @{ ... @}}. For the
-rest of this manual, most examples will omit this.
+surrounded by @{ @} marks or a @code{\relative c'' @{ ... @}}.
+For the rest of this manual, most examples will omit this.
-If you are reading the HTML documentation and wish to see the exact
-exact LilyPond code that was used to create the example, simply click
-on the picture. If you are not reading the HTML version, you could
-copy and paste the displayed input, but you @strong{must} add the
-@code{\relative c'' @{ @}} like this:
+If you are reading the HTML documentation and wish to see the
+exact exact LilyPond code that was used to create the example,
+simply click on the picture. If you are not reading the HTML
+version, you could copy and paste the displayed input, but you
+@strong{must} add the @code{\relative c'' @{ @}} like this:
@example
\relative c'' @{
@}
@end example
-Why omit the braces? Most examples
-in this manual can be inserted into the middle of a longer piece of
-music. For these examples, it does not make sense to add
-@code{\relative c'' @{ @}} -- you should not place a @code{\relative}
-inside another @code{\relative}, so you would not be able to copy
-a small documentation example and paste it inside a longer piece
-of your own.
+Why omit the braces? Most examples in this manual can be inserted
+into the middle of a longer piece of music. For these examples,
+it does not make sense to add @code{\relative c'' @{ @}} -- you
+should not place a @code{\relative} inside another
+@code{\relative}, so you would not be able to copy a small
+documentation example and paste it inside a longer piece of your
+own.
@node Single staff notation
@node Relative note names
@subsection Relative note names
-As we saw in @ruser{Simple notation}, LilyPond calculates the pitch of
-each note relative to the previous one@footnote{There is another mode of
-entering pitches, @ruser{Absolute note names}, but in practice relative
-mode is much easier and safer to use.}. If no extra octave marks
-(@code{'} and @code{,}) are added, it assumes that each pitch is within
-a fourth of the previous note.
+As we saw in @ruser{Simple notation}, LilyPond calculates the
+pitch of each note relative to the previous one@footnote{There is
+another mode of entering pitches, @ruser{Absolute note names}, but
+in practice relative mode is much easier and safer to use.}. If
+no extra octave marks (@code{'} and @code{,}) are added, it
+assumes that each pitch is within a fourth of the previous note.
-LilyPond examines pitches based on the note names -- in other words,
-an augmented fourth is @emph{not} the same as a diminished fifth. If we
-begin at a C, then an F-sharp will be placed a higher than the C, while
-a G-flat will be placed lower than the C.
+LilyPond examines pitches based on the note names -- in other
+words, an augmented fourth is @emph{not} the same as a diminished
+fifth. If we begin at a C, then an F-sharp will be placed a
+higher than the C, while a G-flat will be placed lower than the C.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2 fis
@subheading Accidentals
-A @rglos{sharp} pitch is made by adding @samp{is} to
-the name, and a @rglos{flat} pitch by adding @samp{es}. As
-you might expect, a @rglos{double sharp} or @rglos{double flat} is
-made by adding @samp{isis} or @samp{eses}@footnote{This syntax
-derived from note naming conventions in Nordic and Germanic languages,
-like German and Dutch. To use other names for accidentals, see
-@ruser{Note names in other languages}.}
+A @rglos{sharp} pitch is made by adding @samp{is} to the name, and
+a @rglos{flat} pitch by adding @samp{es}. As you might expect, a
+@rglos{double sharp} or @rglos{double flat} is made by adding
+@samp{isis} or @samp{eses}@footnote{This syntax derived from note
+naming conventions in Nordic and Germanic languages, like German
+and Dutch. To use other names for accidentals, see @ruser{Note
+names in other languages}.}
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
cis1 ees fisis, aeses
@subheading Warning: key signatures and pitches
To determine whether to print an accidental, LilyPond examines the
-pitches and the key signature. The key signature only affects
-the @emph{printed} accidentals, not the actual pitches! This is a
-feature that often causes confusion to newcomers, so let us explain it
-in more detail.
+pitches and the key signature. The key signature only affects the
+@emph{printed} accidentals, not the actual pitches! This is a
+feature that often causes confusion to newcomers, so let us
+explain it in more detail.
LilyPond makes a sharp distinction between musical content and
-layout. The alteration (flat, natural or sharp) of a note is part of
-the pitch, and is therefore musical content. Whether an accidental (a
-@emph{printed} flat, natural or sharp sign) is printed in front of the
-corresponding note is a question of layout. Layout is something that
-follows rules, so accidentals are printed automatically according to
-those rules. The pitches in your music are works of art, so they will
-not be added automatically, and you must enter what you want to hear.
+layout. The alteration (flat, natural or sharp) of a note is part
+of the pitch, and is therefore musical content. Whether an
+accidental (a @emph{printed} flat, natural or sharp sign) is
+printed in front of the corresponding note is a question of
+layout. Layout is something that follows rules, so accidentals
+are printed automatically according to those rules. The pitches
+in your music are works of art, so they will not be added
+automatically, and you must enter what you want to hear.
In this example
@end lilypond
@noindent
-No note has a printed accidental, but you must still add the @samp{is} to
-@code{cis} and @code{fis}.
+No note has a printed accidental, but you must still add the
+@samp{is} to @code{cis} and @code{fis}.
-The code @samp{e} does not mean @qq{print a black dot just below the
-first line of the staff.} Rather, it means: @qq{there is a note with
-pitch E-natural.} In the key of A-flat major, it @emph{does} get an
-accidental:
+The code @samp{e} does not mean @qq{print a black dot just below
+the first line of the staff.} Rather, it means: @qq{there is a
+note with pitch E-natural.} In the key of A-flat major, it
+@emph{does} get an accidental:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\key aes \major
e
@end lilypond
-Adding all alterations explicitly might require a little more effort
-when typing, but the advantage is that transposing is easier, and
-accidentals can be printed according to different conventions. See
-@ruser{Automatic accidentals}, for some examples how accidentals can be printed
-according to different rules.
+Adding all alterations explicitly might require a little more
+effort when typing, but the advantage is that transposing is
+easier, and accidentals can be printed according to different
+conventions. See @ruser{Automatic accidentals}, for some examples
+how accidentals can be printed according to different rules.
@seealso
@quotation
@cindex ties
@subheading Ties
-A @rglos{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[verbatim,quote,ragged-right,fragment,relative=2]
g4~ g c2~
@cindex slurs
@subheading Slurs
-A @rglos{slur} is a curve drawn across many notes. The starting note
-and ending note are marked with @samp{(} and @samp{)} respectively.
+A @rglos{slur} is a curve drawn across many notes. The starting
+note and ending note are marked with @samp{(} and @samp{)}
+respectively.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
d4( c16) cis( d e c cis d) e( d4)
@cindex phrasing slurs
@subheading Phrasing slurs
-Slurs to indicate longer phrasing can be entered with @code{\(} and
-@code{\)}. You can have both legato slurs and phrasing slurs at the
-same time, but you cannot have simultaneous slurs or simultaneous
-phrasing slurs.
+Slurs to indicate longer phrasing can be entered with @code{\(}
+and @code{\)}. You can have both legato slurs and phrasing slurs
+at the same time, but you cannot have simultaneous slurs or
+simultaneous phrasing slurs.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
a8(\( ais b c) cis2 b'2 a4 cis,\)
@cindex slurs versus ties
@subheading Warnings: slurs vs. ties
-A slur looks like a @rglos{tie}, but it has a different meaning. A
-tie simply makes the first note 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.
+A slur looks like a @rglos{tie}, but it has a different meaning.
+A tie simply makes the first note 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[verbatim,quote,ragged-right,fragment,relative=2]
c2~( c8 fis fis4 ~ fis2 g2)
@cindex staccato
@subheading Articulations
-Common @rglos{articulation}s can be added to a note using a dash @samp{-}
-and a single character:
+Common @rglos{articulation}s can be added to a note using a dash
+@samp{-} and a single character:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c-. c-- c-> c-^ c-+ c-_
@cindex fingering
@subheading Fingerings
-Similarly, fingering indications can be added to a note using a dash
-(@samp{-}) and the digit to be printed:
+Similarly, fingering indications can be added to a note using a
+dash (@samp{-}) and the digit to be printed:
@lilypond[verbatim,quote,ragged-right,fragment,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. However, in most cases
-it is best to let LilyPond determine the articulation directions.
+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.
+However, in most cases it is best to let LilyPond determine the
+articulation directions.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c_-^1 d^. f^4_2-> e^-_+
@end lilypond
@subheading Dynamics
-Dynamic signs are made by adding the markings (with a backslash) to
-the note
+Dynamic signs are made by adding the markings (with a backslash)
+to the note
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c\ff c\mf c\p c\pp
@cindex decrescendo
@cindex crescendo
-Crescendi and decrescendi are started with the commands @code{\<} and
-@code{\>}. An ending dynamic, for example @code{\f}, will finish the
-(de)crescendo, or the command @code{\!} can be used
+Crescendi and decrescendi are started with the commands @code{\<}
+and @code{\>}. An ending dynamic, for example @code{\f}, will
+finish the (de)crescendo, or the command @code{\!} can be used
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2\< c2\ff\> c2 c2\!
@noindent
If you do not like the automatic beams, they may be overridden
-manually. Mark the first note to be beamed with @samp{[} and the last one
-with @samp{]}.
+manually. Mark the first note to be beamed with @samp{[} and the
+last one with @samp{]}.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
a8[ ais] d[ ees r d] a b
@subheading Partial measure
A pickup (or @rglos{anacrusis}) is entered with the keyword
-@code{\partial}. It is followed by a duration: @code{\partial 4} is
-a quarter note pickup and @code{\partial 8} an eighth note.
+@code{\partial}. It is followed by a duration: @code{\partial 4}
+is a quarter note pickup and @code{\partial 8} an eighth note.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\partial 8
@subheading Tuplets
Tuplets are made with the @code{\times} keyword. It takes two
-arguments: a fraction and a piece of music. The duration of the piece
-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
+arguments: a fraction and a piece of music. The duration of the
+piece 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
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\times 2/3 { f8 g a }
@cindex appoggiatura
@subheading Grace notes
-Grace notes are created with the @code{\grace} command, although they
-can also be created by prefixing a music expression with the
+Grace notes are created with the @code{\grace} command, although
+they can also be created by prefixing a music expression with the
keyword @code{\appoggiatura} or @code{\acciaccatura}
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
@node Multiple notes at once
@section Multiple notes at once
-This section introduces having more than one note at the same time:
-multiple instruments, multiple staves for a single instrument (i.e. piano),
-and chords.
+This section introduces having more than one note at the same
+time: multiple instruments, multiple staves for a single
+instrument (i.e. piano), and chords.
-Polyphony in music refers to having more than one voice occurring in
-a piece of music. Polyphony in LilyPond refers to having more than
-one voice on the same staff.
+Polyphony in music refers to having more than one voice occurring
+in a piece of music. Polyphony in LilyPond refers to having more
+than one voice on the same staff.
@menu
* Music expressions explained::
@subsection Music expressions explained
In LilyPond input files, music is represented by @emph{music
-expressions}. A single note is a music expression, although it is not
-valid input all on its own.
+expressions}. A single note is a music expression, although it is
+not valid input all on its own.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
a4
@end lilypond
-Enclosing a group of notes in braces creates a new music expression:
+Enclosing a group of notes in braces creates a new music
+expression:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
{ a4 g4 }
@end lilypond
-Putting a group of music expressions (e.g. notes) in braces means that
-they are in sequence (i.e. each one follows the previous one). The result
-is another music expression:
+Putting a group of music expressions (e.g. notes) in braces means
+that they are in sequence (i.e. each one follows the previous
+one). The result is another music expression:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
{ { a4 g } f g }
This technique is useful for polyphonic music. To enter music
with more voices or more staves, we combine expressions in
-parallel. To indicate that two voices should play at the same time,
-simply enter a simultaneous combination of music expressions. A
-@q{simultaneous} music expression is formed by enclosing expressions inside
-@code{<<} and @code{>>}. In the following example, three sequences (all
-containing two separate notes) are combined simultaneously:
+parallel. To indicate that two voices should play at the same
+time, simply enter a simultaneous combination of music
+expressions. A @q{simultaneous} music expression is formed by
+enclosing expressions inside @code{<<} and @code{>>}. In the
+following example, three sequences (all containing two separate
+notes) are combined simultaneously:
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
}
@end lilypond
-Note that we have indented each level of the input with a different
-amount of space. LilyPond does not care how much (or little) space there
-is at the beginning of a line, but indenting LilyPond code like this makes
-it much easier for humans to read.
+Note that we have indented each level of the input with a
+different amount of space. LilyPond does not care how much (or
+little) space there is at the beginning of a line, but indenting
+LilyPond code like this makes it much easier for humans to read.
-@strong{Warning}: each note is relative to the
-previous note in the input, not relative to the @code{c''} in the
-initial @code{\relative} command.
+@strong{Warning}: each note is relative to the previous note in
+the input, not relative to the @code{c''} in the initial
+@code{\relative} command.
@subheading Simultaneous music expressions: single staff
-To determine the number of staves in a piece, LilyPond looks at the first
-expression. If it is a single note, there is one staff; if there is a
-simultaneous expression, there is more than one staff.
+To determine the number of staves in a piece, LilyPond looks at
+the first expression. If it is a single note, there is one staff;
+if there is a simultaneous expression, there is more than one
+staff.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@cindex music expression
@subheading Analogy: mathematical expressions
-This mechanism is similar to mathematical
-formulas: a big formula is created by composing small formulas. Such
-formulas are called expressions, and their definition is recursive so
-you can make arbitrarily complex and large expressions. For example,
+This mechanism is similar to mathematical formulas: a big formula
+is created by composing small formulas. Such formulas are called
+expressions, and their definition is recursive so you can make
+arbitrarily complex and large expressions. For example,
@example
1
((1 + 2) * 3) / (4 * 5)
@end example
-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.
+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.
@node Multiple staves
@subsection Multiple staves
-As we saw in @ruser{Music expressions explained}, LilyPond input files
-are constructed out of music expressions. If the score begins with
-simultaneous music expressions, LilyPond creates multiples staves. However,
-it is easier to see what happens if we create each staff explicitly.
+As we saw in @ruser{Music expressions explained}, LilyPond input
+files are constructed out of music expressions. If the score
+begins with simultaneous music expressions, LilyPond creates
+multiples staves. However, it is easier to see what happens if we
+create each staff explicitly.
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 in parallel with @code{<<} and
-@code{>>}:
+@code{Staff} elements are then combined in parallel with @code{<<}
+and @code{>>}:
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
}
@end lilypond
-The command @code{\new} introduces a @q{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 automatically. For more complex pieces, it
-is best to mark contexts explicitly.
+The command @code{\new} introduces a @q{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 automatically. For
+more complex pieces, it is best to mark contexts explicitly.
There are several types of contexts. @code{Score}, @code{Staff},
-and @code{Voice} handle melodic notation, while @code{Lyrics} sets lyric
-texts and @code{ChordNames} prints chord names.
+and @code{Voice} 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
-sign in mathematics. The formula @math{(4+5)} is an expression, so
-@math{-(4+5)} is a bigger expression.
+creates a bigger music expression. In this way it resembles the
+minus sign in mathematics. The formula @math{(4+5)} is an
+expression, so @math{-(4+5)} is a bigger expression.
-Time signatures entered in one staff affects all other
+Time signatures entered in one staff affects all other
staves@footnote{This behavior may be changed if desired; see
-@ruser{Polymetric notation}, for details.}. On the other hand,
-the key signature of one staff does @emph{not} affect other
-staves.
+@ruser{Polymetric notation}, for details.}. On the other hand, the
+key signature of one staff does @emph{not} affect other staves.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@cindex staff switch, manual
@cindex cross staff voice, manual
-Piano music is typeset in two staves connected by a brace. Printing
-such a staff is similar to the polyphonic example in @ruser{Multiple staves},
-but now this entire expression is inserted inside a @code{PianoStaff}:
+Piano music is typeset in two staves connected by a brace.
+Printing such a staff is similar to the polyphonic example in
+@ruser{Multiple staves}, but now this entire expression is
+inserted inside a @code{PianoStaff}:
@example
\new PianoStaff <<
@subsection Combining notes into chords
@cindex chords
-Chords can be made by surrounding pitches with single angle brackets. Angle
-brackets are the symbols @samp{<} and @samp{>}.
+Chords can be made by surrounding pitches with single angle
+brackets. Angle brackets are the symbols @samp{<} and @samp{>}.
@lilypond[quote,fragment,verbatim,relative=2,fragment]
r4 <c e g>4 <c f a>2
@end lilypond
-You can combine markings like beams and ties with chords. They must
-be placed outside the angle brackets
+You can combine markings like beams and ties with chords. They
+must be placed outside the angle brackets
@lilypond[quote,fragment,verbatim,relative=2,fragment]
r4 <c e g>8[ <c f a>]~ <c f a>2
@cindex 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
-beams, and the top voice has the stems up, while the bottom voice has
-them down.
+When different melodic lines are combined on a single staff they
+are 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.
-Entering such parts is done by entering each voice as a sequence (with
-@code{@{...@}}) and combining these simultaneously, separating the
-voices with @code{\\}
+Entering such parts is done by entering each voice as a sequence
+(with @code{@{...@}}) and combining these simultaneously,
+separating the voices with @code{\\}
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
<<
>>
@end lilypond
-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 (@samp{s}) instead of a normal rest (@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 (@samp{s}) instead of a normal
+rest (@samp{r}),
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
<<
@cindex melisma
@cindex extender line
-This melody ends on a @rglos{melisma}, a single syllable (@q{free})
-sung to more than one note. This is indicated with an @emph{extender
-line}. It is entered as two underscores @code{__}:
+This melody ends on a @rglos{melisma}, a single syllable
+(@q{free}) sung to more than one note. This is indicated with an
+@emph{extender line}. It is entered as two underscores @code{__}:
@lilypond[verbatim,quote,ragged-right]
<<
@cindex chords
@cindex chord names
-In popular music it is common to denote accompaniment with chord names.
-Such chords can be entered like notes,
+In popular music it is common to denote accompaniment with chord
+names. Such chords can be entered like notes,
@lilypond[verbatim,quote,ragged-right]
\chordmode { c2 f4. g8 }
@end lilypond
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:
+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[verbatim,quote,ragged-right]
\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 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:
+For lead sheets, chords are not printed on staves, but as names on
+a 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[verbatim,quote,ragged-right]
\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@end lilypond
@cindex lead sheet
-When put together, chord names, lyrics and a melody form
-a lead sheet,
+When put together, chord names, lyrics and a melody form a lead
+sheet,
@lilypond[verbatim,quote,ragged-right]
<<
@seealso
@quotation
-A complete list of modifiers and other options for layout can be found
-in @ruser{Chords}.
+A complete list of modifiers and other options for layout can be
+found in @ruser{Chords}.
@end quotation
@node Final touches
@section Final touches
-This is the final section of the tutorial; it demonstrates how to add the
-final touches to simple pieces, and provides an introduction to the rest
-of the manual.
+This is the final section of the tutorial; it demonstrates how to
+add the final touches to simple pieces, and provides an
+introduction to the rest of the manual.
@menu
* Version number::
@subsection Version number
@cindex versioning
-The @code{\version} statement records the version of LilyPond that was
-used to write the file:
+The @code{\version} statement records the version of LilyPond that
+was used to write the file:
@example
\version "2.11.23"
@noindent
by convention, this is placed at the top of your LilyPond file.
-These annotations make future upgrades of LilyPond go more smoothly.
-Changes in the syntax are handled with a special program,
-@file{convert-ly} (see @rprogram{Updating files with convert-ly}), and
-it uses @code{\version} to determine what rules to apply.
+These annotations make future upgrades of LilyPond go more
+smoothly. Changes in the syntax are handled with a special
+program, @file{convert-ly} (see @rprogram{Updating files with
+convert-ly}), and it uses @code{\version} to determine what rules
+to apply.
@node Adding titles
@subsection Adding titles
-The title, composer, opus number, and similar information are entered
-in the @code{\header} block. This exists outside of the main
-music expression; the @code{\header} block is usually placed underneath
-the @ruser{Version number}.
+The title, composer, opus number, and similar information are
+entered in the @code{\header} block. This exists outside of the
+main music expression; the @code{\header} block is usually placed
+underneath the @ruser{Version number}.
@example
\version "2.11.23"
@}
@end example
-When the file is processed, the title and composer are printed above
-the music. More information on titling can be found in @ruser{Creating
-titles}.
+When the file is processed, the title and composer are printed
+above the music. More information on titling can be found in
+@ruser{Creating titles}.
@node Absolute note names
@subsection Absolute note names
-So far we have always used @code{\relative} to define pitches. This is
-the easiest way to enter most music, but another way of defining pitches
-exists: absolute mode.
+So far we have always used @code{\relative} to define pitches.
+This is the easiest way to enter most music, but another way of
+defining pitches exists: absolute mode.
If you omit the @code{\relative}, LilyPond treats all pitches as
-absolute values. A @code{c'} will always mean middle C, a @code{b} will
-always mean the note one step below middle C, and a @code{g,} will
-always mean the note on the bottom staff of the bass clef.
+absolute values. A @code{c'} will always mean middle C, a
+@code{b} will always mean the note one step below middle C, and a
+@code{g,} will always mean the note on the bottom staff of the
+bass clef.
@lilypond[quote,verbatim,ragged-right]
{
}
@end lilypond
-As you can see, writing a melody in the treble clef involves a lot of
-quote ' marks. Consider this fragment from Mozart:
+As you can see, writing a melody in the treble clef involves a lot
+of quote @code{'} marks. Consider this fragment from Mozart:
@lilypond[quote,verbatim,ragged-right]
{
}
@end lilypond
-All these quotes makes the input less readable and it is a source of
-errors. With @code{\relative}, the previous example is much easier
-to read:
+All these quotes makes the input less readable and it is a source
+of errors. With @code{\relative}, the previous example is much
+easier to read:
@lilypond[quote,verbatim,ragged-right]
\relative c'' {
}
@end lilypond
-If you make a mistake with an octave mark (@code{'} or @code{,}) while
-working in @code{\relative} mode, it is very obvious -- many notes will
-be in the wrong octave. When working in absolute mode, a single mistake
-will not be as visible, and will not be as easy to find.
+If you make a mistake with an octave mark (@code{'} or @code{,})
+while working in @code{\relative} mode, it is very obvious -- many
+notes will be in the wrong octave. When working in absolute mode,
+a single mistake will not be as visible, and will not be as easy
+to find.
-However, absolute mode is useful for music which has large intervals, and
-is extremely useful for computer-generated LilyPond files.
+However, absolute mode is useful for music which has large
+intervals, and is extremely useful for computer-generated LilyPond
+files.
@node Organizing pieces with identifiers
@subsection Organizing pieces with identifiers
When all of the elements discussed earlier are combined to produce
-larger files, the music expressions get a lot bigger. In polyphonic
-music with many staves, the input files can become very confusing. We can
-reduce this confusion by using @emph{identifiers}.
+larger files, the music expressions get a lot bigger. In
+polyphonic music with many staves, the input files can become very
+confusing. We can reduce this confusion by using
+@emph{identifiers}.
-With identifiers (also known as variables or macros), we can break up
-complex music expressions. An identifier is assigned as follows
+With identifiers (also known as variables or macros), we can break
+up complex music expressions. An identifier is assigned as
+follows
@example
namedMusic = @{ @dots{} @}
The contents of the music expression @code{namedMusic} can be used
later by placing a backslash in front of the name
-(@code{\namedMusic}, just like a normal LilyPond command). Identifiers
-must be defined @emph{before} the main music expression.
+(@code{\namedMusic}, just like a normal LilyPond command).
+Identifiers must be defined @emph{before} the main music
+expression.
@lilypond[quote,verbatim,ragged-right]
violin = \new Staff { \relative c'' {
The name of an identifier must have alphabetic characters only: no
numbers, underscores, or dashes.
-It is possible to use variables for many other types of objects in the
-input. For example,
+It is possible to use variables for many other types of objects in
+the input. For example,
@example
width = 4.5\cm
@subsection After the tutorial
After finishing the tutorial, you should probably try writing a
-piece or two. Start with one of the @ruser{Templates}, and
-add notes. If you need any notation that was not covered in the
+piece or two. Start with one of the @ruser{Templates}, and add
+notes. If you need any notation that was not covered in the
tutorial, look at the Notation Reference, starting with
@ruser{Basic notation}. If you want to write for an instrument
-ensemble that is not covered in the templates,
-take a look at @ruser{Extending the templates}.
+ensemble that is not covered in the templates, take a look at
+@ruser{Extending the templates}.
-Once you have written a few short pieces, read the rest of
-the Learning Manual (chapters 3-5). There's nothing wrong
-with reading it now, of course! However, the rest of the
-Learning Manual assumes that you are familiar with
-LilyPond input. You may wish to skim these chapters right
-now, and come back to them after you have more experience.
+Once you have written a few short pieces, read the rest of the
+Learning Manual (chapters 3-5). There's nothing wrong with
+reading it now, of course! However, the rest of the Learning
+Manual assumes that you are familiar with LilyPond input. You may
+wish to skim these chapters right now, and come back to them after
+you have more experience.
@node How to read the manual
@subsection How to read the manual
-As we saw in @ruser{How to read the tutorial}, many examples in the
-tutorial omitted a @code{\relative c'' @{ ... @}} around the printed
-example.
+As we saw in @ruser{How to read the tutorial}, many examples in
+the tutorial omitted a @code{\relative c'' @{ ... @}} around the
+printed example.
-In the rest of the manual, we are much more lax about the
-printed examples: sometimes they may have omitted a
-@code{\relative c'' @{ ... @}}, but other times a different initial
-pitch may be used (such as @code{c'} or @code{c,,}), and in some cases
-the whole example is in absolute note mode! However, ambiguities like
-this only exist where the pitches are not important. In any example
-where the pitch matters, we have explicitly stated @code{\relative}
-or absolute-mode @code{@{ @}}.
+In the rest of the manual, we are much more lax about the printed
+examples: sometimes they may have omitted a @code{\relative c'' @{
+... @}}, but other times a different initial pitch may be used
+(such as @code{c'} or @code{c,,}), and in some cases the whole
+example is in absolute note mode! However, ambiguities like this
+only exist where the pitches are not important. In any example
+where the pitch matters, we have explicitly stated
+@code{\relative} or absolute-mode @code{@{ @}}.
If you are still confused about the exact LilyPond input that was
-used in an example, read the HTML version (if you are not already doing
-so) and click on the picture of the music. This will display the exact
-input that LilyPond used to generate this manual.
+used in an example, read the HTML version (if you are not already
+doing so) and click on the picture of the music. This will
+display the exact input that LilyPond used to generate this
+manual.
For information about the structure of the rest of the manual, see
@ruser{About this manual}.