This chapter explains how to use basic notation features.
@menu
-* Pitches::
* Rhythms::
* Polyphony::
* Staff notation::
-@node Pitches
-@section Pitches
-
-This section discusses how to specify the pitch of notes.
-
-@menu
-* Normal pitches::
-* Accidentals::
-* Cautionary accidentals::
-* Micro tones::
-* Note names in other languages::
-* Relative octaves::
-* Octave check::
-* Transpose::
-* Rests::
-* Skips::
-@end menu
-
-
-@node Normal pitches
-@subsection Normal pitches
-
-@cindex Pitch names
-@cindex pitches
-
-A pitch name is specified using lowercase letters @code{a} through @code{g}.
-An ascending C-major scale is engraved with
-
-@lilypond[quote,fragment,verbatim,ragged-right]
-\clef bass
-c d e f g a b c'
-@end lilypond
-
-The note name @code{c} is engraved one octave below middle C.
-
-@lilypond[quote,fragment,verbatim,ragged-right]
-\clef treble
-c1
-\clef bass
-c1
-@end lilypond
-
-@funindex '
-@funindex ,
-
-The optional octave specification takes the form of a series of
-single quote (@samp{'}) characters or a series of comma
-(@samp{,}) characters. Each @samp{'} raises the pitch by one
-octave; each @samp{,} lowers the pitch by an octave.
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\clef treble
-c' c'' e' g d'' d' d c
-\clef bass
-c, c,, e, g d,, d, d c
-@end lilypond
-
-An alternate method may be used to declare which octave to
-engrave a pitch; this method does not require as many
-octave specifications (@code{'} and @code{,}). See
-@ref{Relative octaves}.
-
-
-@node Accidentals
-@subsection Accidentals
-
-@cindex note names, Dutch
-@cindex note names, default
-
-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} to a note name.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-a2 ais a aes
-a2 aisis a aeses
-@end lilypond
-
-@noindent
-These are the Dutch note names. In Dutch, @code{aes} is contracted to
-@code{as}, but both forms are accepted. Similarly, both
-@code{es} and @code{ees} are accepted
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-a2 as e es
-@end lilypond
-
-A natural will cancel the effect of an accidental or key signature.
-However, naturals are not encoded into the note name syntax with a
-suffix; a natural pitch is shown as a simple note name
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-a4 aes a2
-@end lilypond
-
-The input @code{d e f} is interpreted as @q{print a D-natural,
-E-natural, and an F-natural,} regardless of the key
-signature. For more information about the distinction between
-musical content and the presentation of that content, see
-@ref{Accidentals and key signatures}.
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative]
-\key d \major
-d e f g
-d e fis g
-@end lilypond
-
-
-@commonprop
-
-In accordance with standard typesetting rules, a natural sign is printed
-before a sharp or flat if a previous accidental needs to be
-cancelled. To change this behavior, use
-@code{\set Staff.extraNatural = ##f}
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-ceses4 ces cis c
-\set Staff.extraNatural = ##f
-ceses4 ces cis c
-@end lilypond
-
-
-@seealso
-
-Program reference: @internalsref{LedgerLineSpanner},
-@internalsref{NoteHead}.
-
-
-@node Cautionary accidentals
-@subsection Cautionary accidentals
-
-@cindex accidental, reminder
-@cindex accidental, cautionary
-@cindex accidental, parenthesized
-@cindex reminder accidental
-@funindex ?
-@cindex cautionary accidental
-@cindex parenthesized accidental
-@funindex !
-
-Normally accidentals are printed automatically, but you may also
-print them manually. A reminder accidental
-can be forced by adding an exclamation mark @code{!}
-after the pitch. A cautionary accidental
-(i.e., an accidental within parentheses) can be obtained by adding the
-question mark @samp{?} after the pitch. These extra accidentals
-can be used to produce natural signs, too.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
-cis cis cis! cis? c c? c! c
-@end lilypond
-
-
-@seealso
-
-The automatic production of accidentals can be tuned in many
-ways. For more information, see @ref{Automatic accidentals}.
-
-
-@node Micro tones
-@subsection Micro tones
-
-@cindex quarter tones
-@cindex semi-flats, semi-sharps
-
-Half-flats and half-sharps are formed by adding @code{-eh} and
-@code{-ih}; the following is a series of Cs with increasing pitches
-
-@lilypond[verbatim,ragged-right,quote,relative=2,fragment]
-\set Staff.extraNatural = ##f
-ceseh ceh cih cisih
-@end lilypond
-
-Micro tones are also exported to the MIDI file.
-
-
-@refbugs
-
-There are no generally accepted standards for denoting
-three-quarter flats, so LilyPond's symbol does not conform to any
-standard.
-
-
-@node Note names in other languages
-@subsection Note names in other languages
-
-There are predefined sets of note names for various other languages.
-To use them, include the language specific init file. For
-example, add @code{\include "english.ly"} to the top of the input
-file. The available language files
-and the note names they define are
-
-@c Should this be made into a multitable?
-@cindex note names, other languages
-@example
- Note Names sharp flat double double
- sharp flat
-
-nederlands.ly c d e f g a bes b -is -es -isis -eses
-english.ly c d e f g a bf b -s/-sharp -f/-flat -ss/-x/ -ff/
- -sharpsharp -flatflat
-deutsch.ly c d e f g a b h -is -es -isis -eses
-norsk.ly c d e f g a b h -iss/-is -ess/-es -ississ/-isis -essess/-eses
-svenska.ly c d e f g a b h -iss -ess -ississ -essess
-italiano.ly do re mi fa sol la sib si -d -b -dd -bb
-catalan.ly do re mi fa sol la sib si -d/-s -b -dd/-ss -bb
-espanol.ly do re mi fa sol la sib si -s -b -ss -bb
-@end example
-
-@noindent
-Note that in Dutch, German, Norwegian, and Swedish, the flat
-alterations of @samp{a} like for example @code{aes} and @code{aeses}
-are usually contracted to @code{as} and @code{ases} (or more commonly
-@code{asas}). Sometimes only these contracted names are defined in the
-corresponding language files (this also applies to the suffixes for
-quartertones below).
-
-@noindent
-Some music uses microtones whose alterations are fractions of a
-@q{regular} sharp or flat. The note names for quartertones defined in
-the various language files are listed in the following table. Here the
-prefixes @q{semi-} and @q{sesqui-} mean @q{half} and @q{one and a
-half}, respectively. For Norwegian, Swedish, Catalan and Spanish no
-special names have been defined yet.
-@c What about Turkish Maquam music and similar microtonal systems?
-@c
-@c Note that the term "three-quarter-sharp/-flat" used in lilypond's source code
-@c is actually misleading since the alteration is in fact one and a half
-@c of a regular sharp/flat. Whence the naming "sesqui-sharp/-flat" used below.
-
-@example
- Note Names semi- semi- sesqui- sesqui-
- sharp flat sharp flat
-
-nederlands.ly c d e f g a bes b -ih -eh -isih -eseh
-english.ly c d e f g a bf b -qs -qf -tqs -tqf
-deutsch.ly c d e f g a b h -ih -eh -isih -eseh
-norsk.ly c d e f g a b h
-svenska.ly c d e f g a b h
-italiano.ly do re mi fa sol la sib si -sd -sb -dsd -bsb
-catalan.ly do re mi fa sol la sib si
-espanol.ly do re mi fa sol la sib si
-@end example
-
-
-
-@node Relative octaves
-@subsection Relative octaves
-
-@cindex Relative
-@cindex Relative octave specification
-@funindex \relative
-
-Octaves are specified by adding @code{'} and @code{,} to pitch names.
-When you copy existing music, it is easy to accidentally put a pitch
-in the wrong octave and hard to find such an error. The relative
-octave mode prevents these errors by making the mistakes much
-larger: a single error puts the rest of the piece off by one octave
-
-@example
-\relative @var{startpitch} @var{musicexpr}
-@end example
-
-@noindent
-or
-
-@example
-\relative @var{musicexpr}
-@end example
-
-@noindent
-@code{c'} is used as the default if no starting pitch is defined.
-
-The octave of notes that appear in @var{musicexpr} are calculated as
-follows: if no octave changing marks are used, the basic interval
-between this and the last note is always taken to be a fourth or
-less. This distance is determined without regarding alterations; a
-@code{fisis} following a @code{ceses} will be put above the
-@code{ceses}. In other words, a doubly-augmented fourth is considered
-a smaller interval than a diminished fifth, even though the
-doubly-augmented fourth spans seven semitones while the diminished
-fifth only spans six semitones.
-
-The octave changing marks @code{'} and @code{,} can be added to raise
-or lower the pitch by an extra octave. Upon entering relative mode,
-an absolute starting pitch can be specified that will act as the
-predecessor of the first note of @var{musicexpr}. If no starting pitch
-is specified, then middle C is used as a start.
-
-Here is the relative mode shown in action
-@lilypond[quote,fragment,ragged-right,verbatim]
-\relative c'' {
- b c d c b c bes a
-}
-@end lilypond
-
-Octave changing marks are used for intervals greater than a fourth
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c'' {
- c g c f, c' a, e''
-}
-@end lilypond
-
-If the preceding item is a chord, the first note of the chord is used
-to determine the first note of the next chord
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c' {
- c <c e g>
- <c' e g>
- <c, e' g>
-}
-@end lilypond
-
-The pitch after @code{\relative} contains a note name.
-
-The relative conversion will not affect @code{\transpose},
-@code{\chordmode} or @code{\relative} sections in its argument. To use
-relative within transposed music, an additional @code{\relative} must
-be placed inside @code{\transpose}.
-
-
-@node Octave check
-@subsection Octave check
-
-@cindex Octave check
-
-Octave checks make octave errors easier to correct: a note may be
-followed by @code{=}@var{quotes} which indicates what its absolute
-octave should be. In the following example,
-
-@example
-\relative c'' @{ c='' b=' d,='' @}
-@end example
-
-@noindent
-the @code{d} will generate a warning, because a @code{d''} is expected
-(because @code{b'} to @code{d''} is only a third), but a @code{d'} is
-found. In the output, the octave is corrected to be a @code{d''} and
-the next note is calculated relative to @code{d''} instead of @code{d'}.
-
-There is also an octave check that produces no visible output. The syntax
-
-@example
-\octave @var{pitch}
-@end example
-
-This checks that @var{pitch} (without quotes) yields @var{pitch} (with
-quotes) in @code{\relative} mode compared to the note given in the
-@code{\relative} command. If not, a warning is printed, and the
-octave is corrected. The @var{pitch} is not printed as a note.
-
-In the example below, the first check passes without incident, since
-the @code{e} (in @code{relative} mode) is within a fifth of
-@code{a'}. However,
-the second check produces a warning, since the @code{e} is not within
-a fifth of @code{b'}. The warning message is printed, and the octave
-is adjusted so that the following notes are in the correct octave
-once again.
-
-@example
-\relative c' @{
- e
- \octave a'
- \octave b'
-@}
-@end example
-
-
-The octave of a note following an octave check is determined with
-respect to the note preceding it. In the next fragment, the last note
-is an @code{a'}, above middle C. That means that the @code{\octave}
-check passes successfully, so the check could be deleted without changing
-the output of the piece.
-
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' {
- e
- \octave b
- a
-}
-@end lilypond
-
-
-@node Transpose
-@subsection Transpose
-
-@cindex Transpose
-@cindex Transposition of pitches
-@funindex \transpose
-
-A music expression can be transposed with @code{\transpose}. The
-syntax is
-@example
-\transpose @var{from} @var{to} @var{musicexpr}
-@end example
-
-This means that @var{musicexpr} is transposed by the interval between
-the pitches @var{from} and @var{to}: any note with pitch @code{from}
-is changed to @code{to}.
-
-For example, consider a piece written in the key of D-major. If
-this piece is a little too low for its performer, it can be
-transposed up to E-major with
-@example
-\transpose d e @dots{}
-@end example
-
-Consider a part written for violin (a C instrument). If
-this part is to be played on the A clarinet (for which an
-A is notated as a C, and which sounds a minor third lower
-than notated), the following
-transposition will produce the appropriate part
-
-@example
-\transpose a c @dots{}
-@end example
-
-@code{\transpose} distinguishes between enharmonic pitches: both
-@code{\transpose c cis} or @code{\transpose c des} will transpose up
-half a tone. The first version will print sharps and the second
-version will print flats
-
-@lilypond[quote,ragged-right,verbatim]
-mus = { \key d \major cis d fis g }
-\new Staff {
- \clef "F" \mus
- \clef "G"
- \transpose c g' \mus
- \transpose c f' \mus
-}
-@end lilypond
-
-@code{\transpose} may also be used to input written notes for a
-transposing instrument. Pitches are normally entered into LilyPond
-in C (or @q{concert pitch}), but they may be entered in another
-key. For example, when entering music for a B-flat trumpet which
-begins on concert D, one would write
-
-@example
-\transpose c bes @{ e4 @dots{} @}
-@end example
-
-To print this music in B-flat again (i.e., producing a trumpet part,
-instead of a concert pitch conductor's score) you would wrap the
-existing music with another @code{transpose}
-
-@example
-\transpose bes c @{ \transpose c bes @{ e4 @dots{} @} @}
-@end example
-
-
-@seealso
-
-Program reference: @internalsref{TransposedMusic}.
-
-Example: @inputfileref{input/@/test,smart@/-transpose@/.ly}.
-
-
-@refbugs
-
-If you want to use both @code{\transpose} and @code{\relative},
-you must put @code{\transpose} outside of @code{\relative}, since
-@code{\relative} will have no effect on music that appears inside a
-@code{\transpose}.
-
-
-@node Rests
-@subsection Rests
+@anchor{Rests}
+@unnumberedsubsubsec Rests
@cindex Rests
@funindex \rest
Program reference: @internalsref{Rest}.
-@node Skips
-@subsection Skips
+@anchor{Skips}
+@unnumberedsubsubsec Skips
@cindex Skip
@cindex Invisible rest
@end menu
-@node Durations
-@subsection Durations
+@anchor{Durations}
+@unnumberedsubsubsec Durations
@cindex duration
@funindex \longa
@end lilypond
-@node Augmentation dots
-@subsection Augmentation dots
+@anchor{Augmentation dots}
+@unnumberedsubsubsec Augmentation dots
@funindex .
Program reference: @internalsref{Dots}, and @internalsref{DotColumn}.
-@node Tuplets
-@subsection Tuplets
+@anchor{Tuplets}
+@unnumberedsubsubsec Tuplets
@cindex tuplets
@cindex triplets
-@node Scaling durations
-@subsection Scaling durations
+@anchor{Scaling durations}
+@unnumberedsubsubsec Scaling durations
You can alter the length of duration by a fraction @var{N/M}
appending @samp{*@var{N/M}} (or @samp{*@var{N}} if @var{M=1}). This
This manual: @ref{Tuplets}.
-@node Bar check
-@subsection Bar check
+@anchor{Bar check}
+@unnumberedsubsubsec Bar check
@cindex Bar check
@funindex barCheckSynchronize
@end lilypond
-@node Barnumber check
-@subsection Barnumber check
+@anchor{Barnumber check}
+@unnumberedsubsubsec Barnumber check
When copying large pieces of music, it can be helpful to check that
the LilyPond bar number corresponds to the original that you are
is processed.
-@node Automatic note splitting
-@subsection Automatic note splitting
+@anchor{Automatic note splitting}
+@unnumberedsubsubsec Automatic note splitting
Long notes can be converted automatically to tied notes. This is done
by replacing the @internalsref{Note_heads_engraver} by the
If you want to allow line breaking on the bar lines where
@internalsref{Completion_heads_engraver} splits notes, you must
-also remove @internalsref{Forbid_line_breaks_engraver}.
+also remove @internalsref{Forbid_line_break_engraver}.
@refbugs
@end menu
-@node Chords
-@subsection Chords
+@anchor{Chords}
+@unnumberedsubsubsec Chords
@cindex Chords
For more information about chords, see @ref{Chord names}.
-@node Stems
-@subsection Stems
+@c I don't like having this here, but I can't think of
+@c anywhere else to put it. :( -gp
+@anchor{Stems}
+@unnumberedsubsubsec Stems
Whenever a note is found, a @internalsref{Stem} object is created
automatically. For whole notes and rests, they are also created but
@end lilypond
-@node Basic polyphony
-@subsection Basic polyphony
+@anchor{Basic polyphony}
+@unnumberedsubsubsec Basic polyphony
@cindex polyphony
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 the
-same voice. Here is the same example, with different noteheads for each
+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
@lilypond[quote,verbatim,fragment]
\new Staff \relative c' {
\override NoteHead #'style = #'cross
+ \override NoteHead #'color = #red
c16 d e f
<<
{ g4 f e } \\
{ \override NoteHead #'style = #'triangle
+ \override NoteHead #'color = #blue
r8 e4 d c8 ~ }
>> |
<<
{ d2 e2 } \\
{ c8 b16 a b8 g ~ g2 } \\
- { \override NoteHead #'style = #'slash s4 b4 c2 }
+ { \override NoteHead #'style = #'slash
+ \override NoteHead #'color = #green
+ s4 b4 c2 }
>>
}
@end lilypond
@code{noteA}.
-@node Explicitly instantiating voices
-@subsection Explicitly instantiating voices
+@anchor{Explicitly instantiating voices}
+@unnumberedsubsubsec Explicitly instantiating voices
@internalsref{Voice} contexts can also be instantiated manually
inside a @code{<< >>} block to create polyphonic music, using
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 noteheads demonstrate that the main
+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' {
\override NoteHead #'style = #'cross
+ \override NoteHead #'color = #red
c16 d e f
\voiceOne
<<
@end lilypond
-@node Collision Resolution
-@subsection Collision Resolution
+@anchor{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
@end menu
-@node Clef
-@subsection Clef
-
-@funindex \clef
-
-The clef indicates which lines of the staff correspond to which
-pitches. The clef is set with the @code{\clef} command
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-{ c''2 \clef alto g'2 }
-@end lilypond
-
-@cindex treble clef
-@cindex violin clef
-@cindex alto clef
-@cindex tenor clef
-@cindex bass clef
-@cindex french clef
-@cindex soprano clef
-@cindex mezzosoprano clef
-@cindex baritone clef
-@cindex varbaritone clef
-@cindex subbass clef
-
-Supported clefs include
-
-@multitable @columnfractions .33 .66
-@headitem Clef @tab Position
-@item @code{treble}, violin, G, G2 @tab
-G clef on 2nd line
-@item @code{alto, C} @tab
-C clef on 3rd line
-@item @code{tenor} @tab
-C clef on 4th line.
-@item @code{bass, F} @tab
-F clef on 4th line
-@item @code{french} @tab
-G clef on 1st line, so-called French violin clef
-@item @code{soprano} @tab
-C clef on 1st line
-@item @code{mezzosoprano} @tab
-C clef on 2nd line
-@item @code{baritone} @tab
-C clef on 5th line
-@item @code{varbaritone} @tab
-F clef on 3rd line
-@item @code{subbass} @tab
-F clef on 5th line
-@item @code{percussion} @tab
-percussion clef
-@item @code{tab} @tab
-tablature clef
-@end multitable
-
-By adding @code{_8} or @code{^8} to the clef name, the clef is
-transposed one octave down or up, respectively, and @code{_15} and
-@code{^15} transposes by two octaves. The argument @var{clefname}
-must be enclosed in quotes when it contains underscores or digits. For
-example,
-
-@cindex choral tenor clef
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\clef "G_8" c4
-@end lilypond
-
-
-@commonprop
-
-The command @code{\clef "treble_8"} is equivalent to setting
-@code{clefGlyph},
-@code{clefPosition} (which controls the Y position of the clef),
-@code{middleCPosition} and @code{clefOctavation}. A clef is printed
-when any of these properties are changed. The following example shows
-possibilities when setting properties manually.
-
-@lilypond[quote,ragged-right,verbatim]
-{
- \set Staff.clefGlyph = #"clefs.F"
- \set Staff.clefPosition = #2
- c'4
- \set Staff.clefGlyph = #"clefs.G"
- c'4
- \set Staff.clefGlyph = #"clefs.C"
- c'4
- \set Staff.clefOctavation = #7
- c'4
- \set Staff.clefOctavation = #0
- \set Staff.clefPosition = #0
- c'4
- \clef "bass"
- c'4
- \set Staff.middleCPosition = #4
- c'4
-}
-@end lilypond
-
-
-@seealso
-
-Manual: @ref{Grace notes}.
-
-Program reference: @internalsref{Clef}.
-
-
-@node Key signature
-@subsection Key signature
-
-@cindex Key signature
-@funindex \key
-
-The key signature indicates the tonality in which a piece is played. It
-is denoted by a set of alterations (flats or sharps) at the start of the
-staff.
-
-Setting or changing the key signature is done with the @code{\key}
-command
-
-@example
-@code{\key} @var{pitch} @var{type}
-@end example
-
-@funindex \minor
-@funindex \major
-@funindex \minor
-@funindex \ionian
-@funindex \locrian
-@funindex \aeolian
-@funindex \mixolydian
-@funindex \lydian
-@funindex \phrygian
-@funindex \dorian
-@cindex church modes
-
-Here, @var{type} should be @code{\major} or @code{\minor} to get
-@var{pitch}-major or @var{pitch}-minor, respectively. You may also
-use the standard mode names (also called @q{church modes}): @code{\ionian},
-@code{\locrian}, @code{\aeolian}, @code{\mixolydian}, @code{\lydian},
-@code{\phrygian}, and @code{\dorian}.
-
-This command sets the context property
-@code{Staff.keySignature}. Non-standard key signatures
-can be specified by setting this property directly.
-
-Accidentals and key signatures often confuse new users, because
-unaltered notes get natural signs depending on the key signature. For
-more information, see @ref{Accidentals}, or @ref{Accidentals and key signatures}.
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-\key g \major
-f1
-fis
-@end lilypond
-
-
-@commonprop
-
-A natural sign is printed to cancel any previous accidentals. This
-can be suppressed by setting the @code{Staff.printKeyCancellation}
-property.
-
-@lilypond[quote,fragment,ragged-right,fragment,verbatim,relative=2]
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-\set Staff.printKeyCancellation = ##f
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-@end lilypond
-
-
-@seealso
-
-Program reference: @internalsref{KeyCancellation},
-@internalsref{KeySignature}.
-
-
-@node Time signature
-@subsection Time signature
+@anchor{Time signature}
+@unnumberedsubsubsec Time signature
@cindex Time signature
@cindex meter
Program reference: @internalsref{TimeSignature}, and
@internalsref{Timing_translator}.
-Examples: @inputfileref{input/@/test,compound@/-time@/.ly}.
+Examples: @lsr{contemporary,compound-time-signature.ly}.
@refbugs
@code{set-time-signature}.
-@node Partial measures
-@subsection Partial measures
+@anchor{Partial measures}
+@unnumberedsubsubsec Partial measures
@cindex anacrusis
@cindex upbeat
occur.
-@node Bar lines
-@subsection Bar lines
+@anchor{Bar lines}
+@unnumberedsubsubsec Bar lines
@cindex Bar lines
@funindex \bar
@internalsref{Staff} level), @internalsref{SpanBar} (across staves).
-@node Unmetered music
-@subsection Unmetered music
+@anchor{Unmetered music}
+@unnumberedsubsubsec Unmetered music
@cindex cadenza
@funindex \cadenzaOn
to indicate where breaks can occur.
-@node System start delimiters
-@subsection System start delimiters
+@anchor{System start delimiters}
+@unnumberedsubsubsec System start delimiters
@cindex start of system
@cindex Staff, multiple
@internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, and
@internalsref{SystemStartBracket}. Only one of these types is created
in every context, and that type is determined by the property
-@internalsref{systemStartDelimiter}.
+@code{systemStartDelimiter}.
@commonprop
System start delimiters may be deeply nested,
@lilypond[quote,ragged-right,verbatim]
-\new StaffGroup
+\new StaffGroup
\relative <<
\set StaffGroup.systemStartDelimiterHierarchy
= #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
@end lilypond
-@node Staff symbol
-@subsection Staff symbol
+@anchor{Staff symbol}
+@unnumberedsubsubsec Staff symbol
@cindex adjusting staff symbol
The staff symbol may be tuned in the number, thickness and distance
of lines, using properties. This is demonstrated in the example files
-@inputfileref{input/@/test,staff@/-lines@/.ly},
-@inputfileref{input/@/test,staff@/-size@/.ly}.
+@lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and
+@lsr{staff,changing-the-staff-size.ly}.
In addition, staves may be started and stopped at will. This is done
with @code{\startStaff} and @code{\stopStaff}.
Program reference: @internalsref{StaffSymbol}.
-Examples: @inputfileref{input/@/test,staff@/-lines@/.ly},
-@inputfileref{input/@/test@/,ossia.ly},
-@inputfileref{input/@/test,staff@/-size@/.ly},
-@lsr{staff,staff-line-positions.ly}
+Examples: @lsrdir{staff}
-@node Writing music in parallel
-@subsection Writing music in parallel
+@anchor{Writing music in parallel}
+@unnumberedsubsubsec Writing music in parallel
@cindex Writing music in parallel
@cindex Interleaved music
@end menu
-@node Ties
-@subsection Ties
+@anchor{Ties}
+@unnumberedsubsubsec Ties
@cindex tie
@funindex ~
@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
\set tieWaitForNote = ##t
\grace { c16[~ e~ g]~ } <c, e g>2
-\repeat "tremolo" 8 { c32~ c'~ } <c c,>1
+\repeat tremolo 8 { c32~ c'~ } <c c,>1
e8~ c~ a~ f~ <e' c a f>2
@end lilypond
well-defined. In these cases, a slur may be preferable.
-@node Slurs
-@subsection Slurs
+@anchor{Slurs}
+@unnumberedsubsubsec Slurs
@cindex Slurs
@seealso
-Program reference: @seeinternals{Slur}.
+Program reference: @internalsref{Slur}.
-@node Phrasing slurs
-@subsection Phrasing slurs
+@anchor{Phrasing slurs}
+@unnumberedsubsubsec Phrasing slurs
@cindex phrasing slurs
@cindex phrasing marks
Program reference: @internalsref{PhrasingSlur}.
-@node Laissez vibrer ties
-@subsection Laissez vibrer ties
+@anchor{Laissez vibrer ties}
+@unnumberedsubsubsec Laissez vibrer ties
@cindex Laissez vibrer
@cindex Ties, laissez vibrer
@lsr{connecting,laissez-vibrer-ties.ly}
-@node Automatic beams
-@subsection Automatic beams
+@anchor{Automatic beams}
+@unnumberedsubsubsec Automatic beams
LilyPond inserts beams automatically
Program reference: @internalsref{Beam}.
-@node Manual beams
-@subsection Manual beams
+@anchor{Manual beams}
+@unnumberedsubsubsec Manual beams
@cindex beams, manual
@funindex ]
@funindex stemLeftBeamCount
@funindex stemRightBeamCount
-Normally, beaming patterns within a beam are determined automatically.
-If necessary, the properties @code{stemLeftBeamCount} and
-@code{stemRightBeamCount} can be used to override the defaults. If
+
+LilyPond can automatically determine beaming patterns within a beam,
+but this automatic behavior can sometimes produce odd results;
+therefore the @code{stemLeftBeamCount} and @code{stemRightBeamCount} properties can
+be used to override the defaults. If
either property is set, its value will be used only once, and then it
-is erased
+is erased.
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
{
@cindex kneed beams
@cindex auto-knee-gap
-
-@refbugs
-
Kneed beams are inserted automatically when a large gap is detected
between the note heads. This behavior can be tuned through the
@code{auto-knee-gap} object.
+
+@refbugs
+
Automatically kneed cross-staff beams cannot be used together with
hidden staves. See @ref{Hiding staves}.
+@c Is this still true with skyline spacing stuff? -J.Mandereau
Beams do not avoid collisions with symbols around the notes, such as
texts and accidentals.
-@node Grace notes
-@subsection Grace notes
+@anchor{Grace notes}
+@unnumberedsubsubsec Grace notes
@funindex \grace
@cindex ornaments
Unlike @code{\acciaccatura} and @code{\appoggiatura}, the
@code{\grace} command does not start a slur.
+@cindex timing, internal
+
Internally, timing for grace notes is done using a second, @q{grace}
timing. Every point in time consists of two rational numbers: one
denotes the logical time, one denotes the grace timing. The above
By adjusting the duration of the skip note (here it is a half-note),
the space between the main-note and the grace is adjusted.
-A @code{\grace} section will introduce special typesetting settings,
+A @code{\grace} music expression will introduce special typesetting settings,
for example, to produce smaller type, and set directions. Hence, when
-introducing layout tweaks, they should be inside the grace section,
+introducing layout tweaks, they should be inside the grace expression,
for example,
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@end lilypond
@noindent
-The overrides should also be reverted inside the grace section.
+The overrides should also be reverted inside the grace expression.
-The layout of grace sections can be changed throughout the music using
-the function @code{add-grace-property}. The following example
-undefines the @code{Stem} direction for this grace, so
-that stems do not always point up.
+The layout of grace expressions can be changed throughout the music
+using the function @code{add-grace-property}. The following example
+undefines the @code{Stem} direction for this grace, so that stems do not
+always point up.
@example
\new Staff @{
@refbugs
-A score that starts with a @code{\grace} section needs an explicit
+A score that starts with a @code{\grace} expression needs an explicit
@code{\new Voice} declaration, otherwise the main note and the grace
note end up on different staves.
This can be remedied by inserting grace skips of the corresponding
durations in the other staves. For the above example
-@example
-\new Staff @{ c4 \bar "|:" \grace s16 d4 @}
-@end example
+@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+<< \new Staff { e4 \bar "|:" \grace c16 d4 }
+ \new Staff { c4 \bar "|:" \grace s16 d4 } >>
+@end lilypond
Grace sections should only be used within sequential music
expressions. Nesting or juxtaposing grace sections is not supported,
@end menu
-@node Articulations
-@subsection Articulations
+@anchor{Articulations}
+@unnumberedsubsubsec Articulations
@cindex Articulations
@cindex scripts
@cindex organ pedal marks
@cindex turn
@cindex open
+@cindex stopped
@cindex flageolet
@cindex reverseturn
@cindex trill
@cindex prallmordent
@cindex prall, up
@cindex prall, down
-@cindex mordent
@cindex thumb marking
@cindex segno
@cindex coda
MIDI rendering of the music.
-@node Fingering instructions
-@subsection Fingering instructions
+@anchor{Fingering instructions}
+@unnumberedsubsubsec Fingering instructions
@cindex fingering
@cindex finger change
Examples: @lsr{expressive,fingering-chords.ly}
-@node Dynamics
-@subsection Dynamics
+@anchor{Dynamics}
+@unnumberedsubsubsec Dynamics
@cindex Dynamics
@funindex \pppp
@internalsref{DynamicLineSpanner}.
-@node Breath marks
-@subsection Breath marks
+@anchor{Breath marks}
+@unnumberedsubsubsec Breath marks
Breath marks are entered using @code{\breathe}
Examples: @lsr{expressive,breathing-sign.ly}
-@node Trills
-@subsection Trills
+@anchor{Trills}
+@unnumberedsubsubsec Trills
Short trills are printed like normal articulation; see @ref{Articulations}.
f\stopTrillSpan
@end lilypond
+@noindent
The first argument is the main note. The pitch of the second
is printed as a stemless note head in parentheses.
Program reference: @internalsref{TrillSpanner}.
-@node Glissando
-@subsection Glissando
+@anchor{Glissando}
+@unnumberedsubsubsec Glissando
@cindex Glissando
@funindex \glissando
@end lilypond
+@commonprop
+
+@lilypond[quote,ragged-right,verbatim]
+I = \once \override NoteColumn #'ignore-collision = ##t
+
+\relative <<
+ { \oneVoice \stemDown f2 \glissando \stemNeutral a } \\
+ { \oneVoice \I c2 \glissando \I d, }
+>>
+@end lilypond
+
+
+
@seealso
Program reference: @internalsref{Glissando}.
@lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
-
@refbugs
Printing text over the line (such as @emph{gliss.}) is not supported.
-@node Arpeggio
-@subsection Arpeggio
+@anchor{Arpeggio}
+@unnumberedsubsubsec Arpeggio
@cindex Arpeggio
@cindex broken chord
>>
@end lilypond
+@c TODO: cross-voice arpeggio example?
+@c such an example is already in LSR -J.Mandereau
@refcommands
arpeggios in one @internalsref{PianoStaff} at the same point in time.
-@node Falls and doits
-@subsection Falls and doits
+@anchor{Falls and doits}
+@unnumberedsubsubsec Falls and doits
Falls and doits can be added to notes using the @code{\bendAfter}
command,
@end menu
-@node Repeat types
-@subsection Repeat types
+@anchor{Repeat types}
+@unnumberedsubsubsec Repeat types
@cindex repeats
-@funindex \repeat
The following types of repetition are supported
@end table
-@node Repeat syntax
-@subsection Repeat syntax
+@anchor{Repeat syntax}
+@unnumberedsubsubsec Repeat syntax
@cindex volta
@cindex prima volta
@cindex seconda volta
+@funindex \repeat
LilyPond has one syntactic construct for specifying different types of
repeats. The syntax is
}
@end lilypond
+@noindent
+or
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\new Staff {
+ \partial 4
+ \repeat volta 4 { e | c2 d2 | e2 f2 | }
+ \alternative { { \partial 4*3 g4 g g } { a a a a | b2. } }
+}
+@end lilypond
+
+
+
@funindex \repeatTie
Ties may be added to a second ending,
\relative c''{
\time 3/4
c c c
- \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
- \repeat "volta" 5 { d d d }
+ \set Score.voltaSpannerDuration = #(ly:make-moment 3 4)
+ \repeat volta 5 { d d d }
\alternative { { e e e f f f }
{ g g g } }
}
@end lilypond
+If you want to start a repeat at the beginning of a line and have a
+double bar at the end of the previous line, use
+@example
+@dots{} \bar "||:" \break
+\repeat volta 2 @{ @dots{}
+@end example
+see @ref{Bar lines} for more information.
@seealso
+Program reference: @internalsref{VoltaBracket},
+@internalsref{RepeatedMusic},
+@internalsref{VoltaRepeatedMusic}, and
+@internalsref{UnfoldedRepeatedMusic}.
+
Examples:
Brackets for the repeat are normally only printed over the topmost
-staff. This can be adjusted by setting the @code{voltaOnThisStaff}
-property; see
+staff. This can be adjusted by moving @code{Volta_engraver} to the
+Staff context where you want the brackets to appear;
+see @ref{Modifying context plug-ins} and
@lsr{repeats,volta@/-multi@/-staff@/.ly}.
example, by setting @code{Score.measurePosition} or entering
@code{\partial}. Similarly, slurs or ties are also not repeated.
-Volta brackets are not vertically aligned.
-
-@node Repeats and MIDI
-@subsection Repeats and MIDI
+@anchor{Repeats and MIDI}
+@unnumberedsubsubsec Repeats and MIDI
@cindex expanding repeats
@funindex \unfoldRepeats
@end example
-@node Manual repeat commands
-@subsection Manual repeat commands
+@anchor{Manual repeat commands}
+@unnumberedsubsubsec Manual repeat commands
@funindex repeatCommands
Program reference: @internalsref{VoltaBracket},
@internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic},
-@internalsref{UnfoldedRepeatedMusic}, and
-@internalsref{FoldedRepeatedMusic}.
+@internalsref{VoltaRepeatedMusic}, and
+@internalsref{UnfoldedRepeatedMusic}.
-@node Tremolo repeats
-@subsection Tremolo repeats
+@anchor{Tremolo repeats}
+@unnumberedsubsubsec Tremolo repeats
@cindex tremolo beams
style
@lilypond[quote,verbatim,ragged-right]
\new Voice \relative c' {
- \repeat "tremolo" 8 { c16 d16 }
- \repeat "tremolo" 4 { c16 d16 }
- \repeat "tremolo" 2 { c16 d16 }
+ \repeat tremolo 8 { c16 d16 }
+ \repeat tremolo 4 { c16 d16 }
+ \repeat tremolo 2 { c16 d16 }
}
@end lilypond
Tremolo marks can also be put on a single note. In this case, the
note should not be surrounded by braces.
@lilypond[quote,verbatim,ragged-right]
-\repeat "tremolo" 4 c'16
+\repeat tremolo 4 c'16
@end lilypond
Similar output is obtained using the tremolo subdivision, described in
Program reference: @internalsref{Beam}, @internalsref{StemTremolo}.
-@node Tremolo subdivisions
-@subsection Tremolo subdivisions
+@anchor{Tremolo subdivisions}
+@unnumberedsubsubsec Tremolo subdivisions
@cindex tremolo marks
@funindex tremoloFlags
Elsewhere: @internalsref{StemTremolo}.
-@node Measure repeats
-@subsection Measure repeats
+@anchor{Measure repeats}
+@unnumberedsubsubsec Measure repeats
@cindex percent repeats
@cindex measure repeats
@lilypond[quote,verbatim,ragged-right]
\new Voice \relative c' {
- \repeat "percent" 4 { c4 }
- \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
+ \repeat percent 4 { c4 }
+ \repeat percent 2 { c2 es2 f4 fis4 g4 c4 }
}
@end lilypond
@lilypond[relative=2,fragment,quote,verbatim,ragged-right]
\new Voice {
\set countPercentRepeats = ##t
- \repeat "percent" 4 { c1 }
+ \repeat percent 4 { c1 }
}
@end lilypond