Guide, node Updating translation committishes..
@end ignore
-@c \version "2.16.0"
+@c \version "2.17.29"
@node Fundamental concepts
@chapter Fundamental concepts
\header @{ @}
\score @{
- @var{...compound music expression...} % all the music goes here!
+ @var{ @dots{} compound music expression @dots{} } % all the music goes here!
\layout @{ @}
\midi @{ @}
@}
@example
@{
\new StaffGroup <<
- @var{...insert the whole score of a Wagner opera in here...}
+ @var{ @dots{} insert the whole score of a Wagner opera in here @dots{} }
>>
@}
@end example
@noindent
-Since everything is inside @code{@{ ... @}}, it counts
+Since everything is inside @code{@{ @dots{} @}}, it counts
as one music expression.
As we saw previously, the @code{\score} block can contain other
to cultivate so that you can see at a glance what each stave is
for.
-Remember that we use @code{<< ... >>} instead of @code{@{ ... @}} to
+Remember that we use @code{<< @dots{} >>} instead of @code{@{ @dots{} @}} to
show simultaneous music. This causes the vocal part and piano part
-to appear one above the other in the score. The @code{<< ... >>}
+to appear one above the other in the score. The @code{<< @dots{} >>}
construct would not be necessary for the Singer staff in the example
above if it were going to contain only one sequential music
-expression, but @code{<< ... >>} rather than braces is necessary if
+expression, but @code{<< @dots{} >>} rather than braces is necessary if
the music in the Staff is to contain two or more simultaneous
expressions, e.g. two simultaneous Voices, or a Voice with lyrics.
We're going to have a voice with lyrics, so angle brackets are
@multitable @columnfractions .3 .7
@headitem Bracket Type
@tab Function
-@item @code{@{ .. @}}
+@item @code{@{ @dots{} @}}
@tab Encloses a sequential segment of music
-@item @code{< .. >}
+@item @code{< @dots{} >}
@tab Encloses the notes of a chord
-@item @code{<< .. >>}
+@item @code{<< @dots{} >>}
@tab Encloses simultaneous music expressions
-@item @code{( .. )}
+@item @code{( @dots{} )}
@tab Marks the start and end of a slur
-@item @code{\( .. \)}
+@item @code{\( @dots{} \)}
@tab Marks the start and end of a phrasing slur
-@item @code{[ .. ]}
+@item @code{[ @dots{} ]}
@tab Marks the start and end of a manual beam
@end multitable
To these we should add other constructs which generate lines
between or across notes: ties (marked by a tilde, @code{~}),
-tuplets written as @code{\times x/y @{..@}}, and grace notes
-written as @code{\grace@{..@}}.
+tuplets written as @code{\tuplet x/y @{ @dots{} @}}, and grace notes
+written as @code{\grace @{ @dots{} @}}.
Outside LilyPond, the conventional use of brackets requires the
-different types to be properly nested, like this, @code{<< [ @{ ( .. )
+different types to be properly nested, like this, @code{<< [ @{ ( @dots{} )
@} ] >>}, with the closing brackets being encountered in exactly the
opposite order to the opening brackets. This @strong{is} a
requirement for the three types of bracket described by the word
phrasing slur extending out of a tuplet (lines 3 and 4).
@lilypond[quote,verbatim,ragged-right,relative=1]
-r16[ g \times 2/3 { r16 e'8] }
-g,16( a \times 2/3 { b16 d) e }
-g,8[( a \times 2/3 { b8 d) e~] } |
-\times 4/5 { e32\( a, b d e } a4.\)
+r16[ g \tuplet 3/2 { r16 e'8] }
+g,16( a \tuplet 3/2 { b16 d) e }
+g,8[( a \tuplet 3/2 { b8 d) e~] } |
+\tuplet 5/4 { e32\( a, b d e } a4.\)
@end lilypond
@end lilypond
This can be expressed using just the single angle bracket chord
-symbols, @code{< ... >}, and for this just a single voice is
+symbols, @code{< @dots{} >}, and for this just a single voice is
needed. But suppose the F-sharp were actually an eighth-note
followed by an eighth-note G, a passing note on the way to the A?
Now we have two notes which start at the same time but have
@funindex \\
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 with angle brackets, @code{<<...>>}.
+staff is to enter each voice as a sequence (with @code{@{ @dots{} @}}),
+and combine them simultaneously with angle brackets, @code{<< @dots{} >>}.
The fragments must also be separated with double backward slashes,
@code{\\}, to place them in separate voices. Without these, the
notes would be entered into a single voice, which would usually
@end lilypond
These voices are all separate from the main voice that contains
-the notes just outside the @code{<< .. >>} construct. Let's call
+the notes just outside the @code{<< @dots{} >>} construct. Let's call
this the @emph{simultaneous construct}. Slurs and ties may only
connect notes within the same voice, so slurs and ties cannot go
into or out of a simultaneous construct. Conversely,
We shall see later how commands like these may be created by the
user.
See @ref{Visibility and color of objects} and
-@ref{Using variables for tweaks}.
+@ref{Using variables for layout adjustments}.
@cindex polyphony and relative note entry
@cindex relative note entry and polyphony
command at the start of each voice:
@example
-\relative c' @{ noteA ... @}
+\relative c' @{ noteA @dots{} @}
<<
- \relative c'' @{ < noteB noteC > ... @}
+ \relative c'' @{ < noteB noteC > @dots{} @}
\\
- \relative g' @{ noteD ... @}
+ \relative g' @{ noteD @dots{} @}
>>
-\relative c' @{ noteE ... @}
+\relative c' @{ noteE @dots{} @}
@end example
Let us finally analyze the voices in a more complex piece of music.
\\ % Voice two
{
% Ignore these for now - they are explained in Ch 4
- \once \override NoteColumn #'ignore-collision = ##t
+ \once \override NoteColumn.ignore-collision = ##t
<ees, c>2
- \once \override NoteColumn #'force-hshift = #0.5
+ \once \override NoteColumn.force-hshift = #0.5
des2
}
\\ % No voice three
\\ % Voice four
{
- \override NoteColumn #'force-hshift = #0
+ \override NoteColumn.force-hshift = #0
aes'2 f4 fes
}
>> |
\\ % Voice two
{ \voiceTwoStyle
% Ignore these for now - they are explained in Ch 4
- \once \override NoteColumn #'ignore-collision = ##t
+ \once \override NoteColumn.ignore-collision = ##t
<ees, c>2
- \once \override NoteColumn #'force-hshift = #0.5
+ \once \override NoteColumn.force-hshift = #0.5
des2
}
\\ % No Voice three (we want stems down)
\\ % Voice four
{ \voiceThreeStyle
- \override NoteColumn #'force-hshift = #0
+ \override NoteColumn.force-hshift = #0
aes'2 f4 fes
}
>> |
@seealso
-Notation Reference: @ruser{Creating contexts}.
+Notation Reference: @ruser{Creating and referencing contexts}.
@node Engravers explained
@tab Engraves clefs
@item Completion_heads_engraver
@tab Splits notes which cross bar lines
-@c The old Dynamic_engraver is deprecated. -jm
-@item New_dynamic_engraver
+@item Dynamic_engraver
@tab Creates hairpins and dynamic texts
@item Forbid_line_break_engraver
@tab Prevents line breaks if a musical element is still active
>>
@end lilypond
-As another example, if @code{clefOctavation} is set in
+As another example, if @code{clefTransposition} is set in
the @code{Score} context this immediately changes the value
-of the octavation in all current staves and sets a new default
+of the transposition in all current staves and sets a new default
value which will be applied to all staves.
The opposite command, @code{\unset}, effectively removes the
context is created. Sometimes this is a clearer way of setting a
property value if it is to remain fixed for the duration of
the context. When a context is created with a @code{\new}
-command it may be followed immediately by a @code{\with @{ .. @}}
+command it may be followed immediately by a @code{\with @{ @dots{} @}}
block in which the default property values are set. For example,
if we wish to suppress the printing of extra naturals for the
duration of a staff we would write:
@code{\context} block within a @code{\layout} block. Each
@code{\context} block will affect all contexts of the type specified
throughout the @code{\score} or @code{\book} block in which the
-@code{\layout} block appears. Here is a example to show the format:
+@code{\layout} block appears. Here is an example to show the format:
@lilypond[verbatim,quote]
\score {
@seealso
The starting templates can be found in the @q{Templates} appendix,
-see @ref{Single staff}.
+see @ref{Single staff templates}.
@node Four-part SATB vocal score
}
@end lilypond
-None of the templates provides this layout exactly. The nearest is
-@q{SATB vocal score and automatic piano reduction} -- see
-@ref{Vocal ensembles} -- but we need to change the layout and add a piano
+@warning{This layout can be achieved very easily using the built-in
+template: @code{satb.ly}, see @ref{Built-in templates}. But for ease
+of use this template deliberately hides the necessary context
+structure, instead providing it automatically. So for purposes of
+learning let us see how to build this up from scratch. You may need
+to do this if the built-in template does not meet your needs
+adequately.}
+
+The nearest copy-and-edit template to this layout is
+@ref{SATB vocal score and automatic piano reduction} -- but we need
+to change the layout and add a piano
accompaniment which is not derived automatically from the vocal parts.
The variables holding the music and words for the vocal parts are
fine, but we shall need to add variables for the piano reduction.
@end example
It is not necessary to use the simultaneous construct
-@code{<< .. >>} for the manual two staff and the pedal organ staff,
+@code{<< @dots{} >>} for the manual two staff and the pedal organ staff,
since they contain only one music expression, but it does no harm,
and always using angle brackets after @code{\new Staff} is a good
habit to cultivate in case there are multiple voices. The opposite
is true for Voices: these should habitually be followed by braces
-@code{@{ .. @}} in case your music is coded in several variables
+@code{@{ @dots{} @}} in case your music is coded in several variables
which need to run consecutively.
Let's add this structure to the score block, and adjust the indenting.
@}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" \with @{
- \override VerticalAxisGroup
- #'staff-staff-spacing #'stretchability = 5
+ \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
@} <<
\keyTime
\clef "bass"
}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" \with {
- \override VerticalAxisGroup
- #'staff-staff-spacing #'stretchability = 5
+ \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
} <<
\keyTime
\clef "bass"
@lilypond[quote,verbatim,ragged-right]
dolce = \markup { \italic \bold dolce }
-padText = { \once \override TextScript #'padding = #5.0 }
+padText = { \once \override TextScript.padding = #5.0 }
fthenp =_\markup {
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
violin = \relative c'' @{
\repeat volta 2 @{
c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
- \once \override TextScript #'padding = #5.0
+ \once \override TextScript.padding = #5.0
c4.^"hi there!" d8 e' f g d |
c,4.\markup @{
\dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
(parser location padding)
(number?)
#{
- \once \override TextScript #'padding = #padding
+ \once \override TextScript.padding = #padding
#})
\relative c''' {