@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@menu
* Pitches::
* Rhythms::
-* Multiple notes at once::
+* Polyphony::
* Staff notation::
* Connecting notes::
* Expressive marks::
* Accidentals::
* Cautionary accidentals::
* Micro tones::
-* Notes names in other languages::
+* Note names in other languages::
* Relative octaves::
* Octave check::
* Transpose::
@funindex ,
The optional octave specification takes the form of a series of
-single quote (`@code{'}') characters or a series of comma
-(`@code{,}') characters. Each @code{'} raises the pitch by one
-octave; each @code{,} lowers the pitch by an octave.
+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
a4 aes a2
@end lilypond
-The input @code{d e f} is interpreted as ``print a D-natural,
-E-natural, and an F-natural,'' regardless of the key
+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{More about pitches}.
+@ref{Accidentals and key signatures}.
@lilypond[fragment,quote,ragged-right,verbatim,relative]
\key d \major
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 `@code{?}' after the pitch. These extra accidentals
+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]
standard.
-@node Notes names in other languages
-@subsection Notes names in other languages
+@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
file. The available language files
and the note names they define are
-@c what about micro-tunes, double-sharps, and double-flats? add
-@c more columns to the table?
-@c Oh, and should this be made into a multitable?
+@c Should this be made into a multitable?
@cindex note names, other languages
@example
- Note Names sharp flat
-nederlands.ly c d e f g a bes b -is -es
-english.ly c d e f g a bf b -s/-sharp -f/-flat
- -x (double)
-deutsch.ly c d e f g a b h -is -es
-norsk.ly c d e f g a b h -iss/-is -ess/-es
-svenska.ly c d e f g a b h -iss -ess
-italiano.ly do re mi fa sol la sib si -d -b
-catalan.ly do re mi fa sol la sib si -d/-s -b
-espanol.ly do re mi fa sol la sib si -s -b
+ 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
@code{\transpose} may also be used to input written notes for a
transposing instrument. Pitches are normally entered into LilyPond
-in C (or ``concert pitch''), but they may be entered in another
+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
@funindex \skip
@funindex s
-An invisible rest (also called a `skip') can be entered like a note
-with note name `@code{s}' or with @code{\skip @var{duration}}
+An invisible rest (also called a @q{skip}) can be entered like a note
+with note name @samp{s} or with @code{\skip @var{duration}}
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
a4 a4 s4 a4 \skip 1 a4
@funindex .
-To obtain dotted note lengths, simply add a dot (`@code{.}') to
+To obtain dotted note lengths, simply add a dot (@samp{.}) to
the number. Double-dotted notes are produced in a similar way.
@lilypond[quote,ragged-right,fragment,verbatim]
\times 2/3 { c8 c c } \times 2/3 { c8 c c }
@end lilypond
+Use the @code{\tweak} function to override nested tuplets beginning at the
+same music moment. In this example, @code{\tweak} specifies fraction
+text for the
+outer @code{TupletNumber} and denominator text for the @code{TupletNumber}
+of the first of the three inner tuplets.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff {
+ \tweak #'text #tuplet-number::calc-fraction-text
+ \times 4/3 {
+ \tweak #'text #tuplet-number::calc-denominator-text
+ \times 2/3 { c'8[ c'8 c'8] }
+ \times 2/3 { c'8[ c'8 c'8] }
+ \times 2/3 { c'8[ c'8 c'8] }
+ }
+}
+@end lilypond
+
+Here @code{\tweak} and @code{\override} work together to specify
+@code{TupletBracket} direction. The first @code{\tweak} positions
+the @code{TupletBracket} of the outer
+tuplet above the staff. The second @code{\tweak} positions the
+@code{TupletBracket} of the first of the three inner tuplets below the
+staff. Note that this pair of @code{\tweak} functions affects only
+the outer tuplet and the first of the three inner tuplets because only
+those two tuplets begin at the same music moment. We use @code{\override}
+in the usual way to position the @code{TupletBrackets} of
+the second and third of the inner tuplets below the staff.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff {
+ \tweak #'text #tuplet-number::calc-fraction-text
+ \tweak #'direction #up
+ \times 4/3 {
+ \tweak #'direction #down
+ \times 2/3 { c'8[ c'8 c'8] }
+ \override TupletBracket #'direction = #down
+ \times 2/3 { c'8[ c'8 c'8] }
+ \times 2/3 { c'8[ c'8 c'8] }
+ }
+}
+@end lilypond
+
Tuplet brackets can be made to run to prefatory matter or
the next note
Program reference: @internalsref{TupletBracket},
@internalsref{TupletNumber}, and @internalsref{TimeScaledMusic}.
-Examples: @inputfileref{input/@/regression,tuplet@/-nest@/.ly}.
-
@node Scaling durations
@subsection Scaling durations
You can alter the length of duration by a fraction @var{N/M}
-appending `@code{*}@var{N/M}' (or `@code{*}@var{N}' if @var{M=1}). This
-will not affect the appearance of the notes or rests produced.
+appending @samp{*@var{N/M}} (or @samp{*@var{N}} if @var{M=1}). This
+will not affect the appearance of the notes or rests produced. These
+may be combined such as @samp{*M*N}.
In the following example, the first three notes take up exactly two
beats, but no triplet bracket is printed.
+
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\time 2/4
a4*2/3 gis4*2/3 a4*2/3
@seealso
-This manual: @ref{Tuplets}
+This manual: @ref{Tuplets}.
@node Bar check
@funindex |
Bar checks help detect errors in the durations. A bar check is
-entered using the bar symbol, `@code{|}'. Whenever it is encountered
+entered using the bar symbol, @samp{|}. Whenever it is encountered
during interpretation, it should fall on a measure boundary. If it
does not, a warning is printed. In the next example, the second bar
check will signal an error
@seealso
-Examples: @inputfileref{input/@/regression,completion@/-heads@/.ly}.
-
-@noindent
-
Program reference: @internalsref{Completion_heads_engraver}.
-@node Multiple notes at once
-@section Multiple notes at once
+@node Polyphony
+@section Polyphony
Polyphony in music refers to having more than one voice occurring in
a piece of music. Polyphony in LilyPond refers to having more than
@end lilypond
The separator causes @internalsref{Voice} contexts@footnote{Polyphonic
-voices are sometimes called ``layers'' in other notation packages}
+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
@code{noteD} is relative to @code{noteC}, not @code{noteB} or
@code{noteA}.
+
@node Explicitly instantiating voices
@subsection Explicitly instantiating voices
}
@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:
+
+@lilypond[quote,verbatim,ragged-right,relative=2]
+voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
+
+\relative c''' <<
+ { \voiceOne g4 ~ \stemDown g32[ f( es d c b a b64 )g] } \\
+ { \voiceThree b4} \\
+ { \voiceFive d,} \\
+ { \voiceTwo g,}
+>>
+@end lilypond
+
@node Collision Resolution
@subsection 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
+the @internalsref{NoteCollision} object, they are merged:
+
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Voice << {
g8 g8
@end lilypond
Similarly, you can merge half note heads with eighth notes, by setting
-@code{merge-differently-headed}
+@code{merge-differently-headed}:
+
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\new Voice << {
c8 c4.
c8 c4. } \\ { c2 c2 } >>
@end lilypond
+@noindent
+@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
\new Voice << c''4 \\ r4 >>
@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.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\override Staff.NoteCollision #'merge-differently-headed = ##t
+<<
+ { d=''2 g2 } \\
+ { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
+ { \voiceFour e,,2 e'2}
+>>
+<<
+ { d'=''2 \shiftOn g2 } \\
+ { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
+ { \voiceFour e,,2 e'2}
+>>
+@end lilypond
+
@refcommands
@funindex \shiftOnnn
@code{\shiftOnnn},
@funindex \shiftOff
-@code{\shiftOff}: these commands specify in what chords of the current
-voice should be shifted. The outer voices (normally: voice one and
+@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.
Program reference: the objects responsible for resolving collisions are
@internalsref{NoteCollision} and @internalsref{RestCollision}.
-Examples:
-@inputfileref{input/@/regression,collision@/-dots@/.ly},
-@inputfileref{input/@/regression,collision@/-head-chords@/.ly},
-@inputfileref{input/@/regression,collision@/-heads@/.ly},
-@inputfileref{input/@/regression,collision@/-mesh@/.ly}, and
-@inputfileref{input/@/regression,collisions@/.ly}.
-
@refbugs
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 ``church modes''): @code{\ionian},
+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}.
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{More about pitches}.
+more information, see @ref{Accidentals}, or @ref{Accidentals and key signatures}.
@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
\key g \major
@end lilypond
There are many more options for its layout. See @ref{Ancient time
-signatures} for more examples.
+signatures}, for more examples.
@code{\time} sets the property @code{timeSignatureFraction},
@code{beatLength} and @code{measureLength} in the @code{Timing}
The property @code{measurePosition} contains a rational number
indicating how much of the measure has passed at this point. Note
that this is a negative number; @code{\partial 4} is internally
-translated to mean ``there is a quarter note left in the bar''.
+translated to mean @qq{there is a quarter note left in the bar.}
@refbugs
@noindent
This will insert an invisible bar line and allow line breaks at this
-point. This also increases the bar number counter.
+point (without increasing the bar number counter).
In scores with many staves, a @code{\bar} command in one staff is
automatically applied to all staves. The resulting bar lines are
connected between different staves of a @code{StaffGroup},
-@code{PianoStaff}, or @code{ChoirStaff}.
+@code{PianoStaff}, or @code{GrandStaff}.
@lilypond[quote,ragged-right,fragment,verbatim]
<<
@internalsref{systemStartDelimiter}.
+@commonprop
+
+System start delimiters may be deeply nested,
+
+@lilypond[quote,ragged-right,verbatim]
+\new StaffGroup
+\relative <<
+ \set StaffGroup.systemStartDelimiterHierarchy
+ = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
+ \new Staff { c1 }
+ \new Staff { c1 }
+ \new Staff { c1 }
+ \new Staff { c1 }
+ \new Staff { c1 }
+>>
+@end lilypond
+
+
@node Staff symbol
@subsection Staff symbol
@cindex adjusting staff symbol
Notes, dynamic signs, etc., are grouped
-with a set of horizontal lines, called a staff (plural `staves'). In
+with a set of horizontal lines, called a staff (plural @q{staves}). In
LilyPond, these lines are drawn using a separate layout object called
@code{staff symbol}.
Examples: @inputfileref{input/@/test,staff@/-lines@/.ly},
@inputfileref{input/@/test@/,ossia.ly},
@inputfileref{input/@/test,staff@/-size@/.ly},
-@inputfileref{input/@/regression,staff@/-line@/-positions@/.ly}.
+@lsr{staff,staff-line-positions.ly}
@node Writing music in parallel
>>
@end lilypond
+This works quite well for piano music
+
+@lilypond[quote,verbatim]
+music = {
+ \key c \major
+ \time 4/4
+ \parallelMusic #'(voiceA voiceB voiceC voiceD) {
+ % Bar 1
+ r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c''
+e''] |
+ c'2 c'2 |
+ r8 a16[ d'] f'[ a d' f'] r8 a16[ d'] f'[ a d' f'] |
+ c2 c2 |
+
+ % Bar 2
+ a'8 b' c'' d'' e'' f'' g'' a'' |
+ d'4 d' d' d' |
+ c16 d e f d e f g e f g a f g a b |
+ a,4 a,4 a,4 a,4 |
+
+ % Bar 3 ...
+ }
+}
+
+\score {
+ \new PianoStaff <<
+ \music
+ \new Staff <<
+ \voiceA \\
+ \voiceB
+ >>
+ \new Staff {
+ \clef bass
+ <<
+ \voiceC \\
+ \voiceD
+ >>
+ }
+ >>
+}
+@end lilypond
@node Connecting notes
A tie connects two adjacent note heads of the same pitch. The tie in
effect extends the length of a note. Ties should not be confused with
slurs, which indicate articulation, or phrasing slurs, which indicate
-musical phrasing. A tie is entered using the tilde symbol `@code{~}'
+musical phrasing. A tie is entered using the tilde symbol @samp{~}
@lilypond[quote,ragged-right,fragment,verbatim]
e' ~ e' <c' e' g'> ~ <c' e' g'>
@code{tieWaitForNote} property to true. The same feature is also useful,
for example, to tie a tremolo to a chord. For example,
-@lilypond[fragment,verbatim,relative=1,ragged-right]
+@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
e8~ c~ a~ f~ <e' c a f>2
@end lilypond
+Ties may be engraved manually by changing the @code{tie-configuration}
+property. The first number indicates the distance from the center
+of the staff in staff-spaces, and the second number indicates the
+direction (1=up, -1=down).
+
+@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
+<c e g>2~ <c e g> |
+\override TieColumn #'tie-configuration =
+ #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
+<c e g>~ <c e g> |
+@end lilypond
+
@refcommands
Program reference: @internalsref{Tie}.
-Examples:
-@inputfileref{input/@/regression,tie-arpeggio.ly}
-@inputfileref{input/@/regression,tie-manual.ly}
-
-
-
@refbugs
@internalsref{LaissezVibrerTieColumn}
Example files:
-@inputfileref{input/regression,laissez-vibrer-tie.ly}
+@lsr{connecting,laissez-vibrer-ties.ly}
@node Automatic beams
When these automatic decisions are not good enough, beaming can be
entered explicitly. It is also possible to define beaming patterns
-that differ from the defaults. See @ref{Setting automatic beam behavior}
+that differ from the defaults. See @ref{Setting automatic beam behavior},
for details.
Individual notes may be marked with @code{\noBeam} to prevent them
@ref{Time administration}.
Line breaks are normally forbidden when beams cross bar lines. This
-behavior can be changed by setting @code{allowBeamBreak}.
+behavior can be changed by setting @code{breakable}.
+
+@funindex breakable
-@funindex allowBeamBreak
@cindex beams and line breaks
@cindex beams, kneed
@cindex kneed beams
@refbugs
Kneed beams are inserted automatically when a large gap is detected
-between the note heads. This behavior can be tuned through the object.
+between the note heads. This behavior can be tuned through the
+@code{auto-knee-gap} object.
Automatically kneed cross-staff beams cannot be used together with
hidden staves. See @ref{Hiding staves}.
Unlike @code{\acciaccatura} and @code{\appoggiatura}, the
@code{\grace} command does not start a slur.
-Internally, timing for grace notes is done using a second, `grace'
+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
example is shown here with timing tuples
c1 \afterGrace d1 { c16[ d] } c4
@end lilypond
-This will put the grace notes after a ``space'' lasting 3/4 of the
+This will put the grace notes after a @q{space} lasting 3/4 of the
length of the main note. The fraction 3/4 can be changed by setting
@code{afterGraceFraction}, ie.
@example
-afterGraceFraction = #(cons 7 8)
+#(define afterGraceFraction (cons 7 8))
@end example
@noindent
Program reference: @internalsref{Fingering}.
-Examples: @inputfileref{input/@/regression,finger@/-chords@/.ly}.
+Examples: @lsr{expressive,fingering-chords.ly}
@node Dynamics
To create new dynamic marks or text that should be aligned
with dynamics, see @ref{New dynamic marks}.
+Vertical positioning of dynamics is handled by
+@internalsref{DynamicLineSpanner}.
+
@commonprop
Program reference: @internalsref{BreathingSign}.
-Examples: @inputfileref{input/@/regression,breathing@/-sign@/.ly}.
+Examples: @lsr{expressive,breathing-sign.ly}
@node Trills
Program reference: @internalsref{Glissando}.
-Example files: @file{input/@/regression/@/glissando@/.ly}.
+Example files:
+@lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
+
@refbugs
@node Repeat syntax
@subsection Repeat syntax
+@cindex volta
+@cindex prima volta
+@cindex seconda volta
+
LilyPond has one syntactic construct for specifying different types of
repeats. The syntax is
\alternative { {d2 d} {f f,} }
@end lilypond
-In the following example, the first ending is not a complete
-bar (it only had 3 beats). The beginning of the second ending
-contains the 4th beat from the first ending. This ``extra''
-beat in the second ending is due to the first time ending,
-and has nothing to do with the @code{\partial} at the
-beginning of the example.
+Repeats with upbeats may be created.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\new Staff {
- \partial 4
- \repeat volta 4 { e | c2 d2 | e2 f2 | }
- \alternative { { g4 g g } { a | a a a a | b2. } }
+ \partial 4 e |
+ \repeat volta 4 { c2 d2 | e2 f2 | }
+ \alternative { { g4 g g e } { a a a a | b2. } }
}
@end lilypond
Brackets for the repeat are normally only printed over the topmost
staff. This can be adjusted by setting the @code{voltaOnThisStaff}
-property; see @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly}.
+property; see
+
+@lsr{repeats,volta@/-multi@/-staff@/.ly}.
@refbugs
Program reference: @internalsref{Beam}, @internalsref{StemTremolo}.
-Example files: @inputfileref{input/@/regression,chord@/-tremolo@/.ly},
-@inputfileref{input/@/regression,stem@/-tremolo@/.ly}.
-
@node Tremolo subdivisions
@subsection Tremolo subdivisions
@funindex tremoloFlags
Tremolo marks can be printed on a single note by adding
-`@code{:}[@var{number}]' after the note. The number indicates the
+@q{@code{:}[@var{number}]} after the note. The number indicates the
duration of the subdivision, and it must be at least 8. A
@var{length} value of 8 gives one line across the note stem. If the
length is omitted, the last value (stored in @code{tremoloFlags}) is