@c Translation checker:
@c Translation checker committish:
-@c \version "2.13.36"
+@c \version "2.14.0"
@node Fundamentele concepten
@translationof Fundamental concepts
allemaal samengevoegd in een enkel uitvoerbestand. Een
@code{\book}-commando is niet nodig -- die wordt impliciet
aangemaakt. Echter, als je afzonderlijke uitvoerbestanden
-vanuit een @code{.ly}-bestand wil maken, dan moet het
+vanuit een @file{.ly}-bestand wil maken, dan moet het
@code{\book}-commando worden gebruikt om de verschillende
secties aan te geven: elk @code{\book}-blok produceert
een apart uitvoerbestand.
inserted beam and end before the end of the beam -- not very
musical, perhaps, but possible:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
- { g8\( a b[ c b\) a] g4 }
+@lilypond[quote,verbatim,ragged-right,relative=2]
+g8\( a b[ c b\) a] g4
@end lilypond
In general, different kinds of brackets, bracket-like constructs,
extending into a tuplet, a tie crossing two tuplets, and a
phrasing slur extending out of a tuplet (lines 3 and 4).
-@lilypond[quote,verbatim,fragment,ragged-right]
-{
- r16[ g \times 2/3 { r16 e'8] }
- g16( a \times 2/3 { b16 d) e' }
- g8[( a \times 2/3 { b8 d') e'~] } |
- \times 4/5 { e'32\( a b d' e' } a'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.\)
@end lilypond
so when exactly are multiple voices needed? Look first at
this example of four chords:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+@lilypond[quote,verbatim,ragged-right,relative=1]
\key g \major
<d g>4 <d fis> <d a'> <d g>
@end lilypond
Here's how we split the chords above into two voices and add both
the passing note and a slur:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+@lilypond[quote,verbatim,ragged-right,relative=2]
\key g \major
% Voice "1" Voice "2"
<< { g4 fis8( g) a4 g } \\ { d4 d d d } >>
Here's another simple example:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+@lilypond[quote,verbatim,ragged-right,relative=2]
\key d \minor
% Voice "1" Voice "2"
<< { r4 g g4. a8 } \\ { d,2 d4 g } >> |
@end lilypond
It is not necessary to use a separate @code{<< \\ >>} construct
-for each bar. For music with few notes in each bar this layout
+for each bar. For music with few notes in each bar this layout
can help the legibility of the code, but if there are many
notes in each bar it may be better to split out each voice
separately, like this:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+@lilypond[quote,verbatim,ragged-right,relative=2]
\key d \minor
<< {
% Voice "1"
@cindex voices, naming
@cindex voices crossing brackets
@cindex slurs crossing brackets
-@cindex ties crossing brackest
+@cindex ties crossing brackets
This example has just two voices, but the same construct may be
used to encode three or more voices by adding more back-slash
In each of these contexts, the vertical direction of slurs,
stems, ties, dynamics etc., is set appropriately.
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim]
\new Staff \relative c' {
% Main voice
c16 d e f
we have learnt, using the @code{<< \\ >>} construct to
enter the music of the first bar in three voices:
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
\new Staff \relative c'' {
\key aes \major
<<
voices downward ones. The stems for voices 1 and 2 are right,
but the stems in voice 3 should go down in this particular piece
of music. We can correct this by skipping voice three
-and placing the music in voice four. This is done by simply
+and placing the music in voice four. This is done by simply
adding another pair of @code{\\}.
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
\new Staff \relative c'' {
\key aes \major
<< % Voice one
in opposite directions, but the notes from the third and fourth voices
are displaced, if necessary, to avoid the note heads colliding. This
usually works well, but in this example the notes of the lowest voice
-are clearly not well placed by default. LilyPond provides several ways
+are clearly not well placed by default. LilyPond provides several ways
to adjust the horizontal placing of notes. We are not quite ready yet
to see how to correct this, so we shall leave this problem until a
-later section --- see the @code{force-hshift} property in @ref{Fixing
-overlapping notation}.
+later section --- see the @code{force-hshift} property in
+@ref{Fixing overlapping notation}.
@seealso
The @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, and
@code{\shiftOff} commands specify the degree to which notes and
chords of the voice should be shifted if a collision
-would otherwise occur. By default, the outer voices (normally
+would otherwise occur. By default, the outer voices (normally
voices one and two) have @code{\shiftOff} specified, while the
inner voices (three and four) have @code{\shiftOn} specified.
When a shift is applied, voices one and three are shifted to
the lyrics to the notes with @code{\lyricsto@{@}}, using the
name assigned to the Voice.
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim]
<<
\new Voice = "one" {
\relative c'' {
output. For example, compare the input and output of the
following example:
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
cis4 cis2. | a4 a2. |
@end lilypond
@code{Voice}). This command creates a new context, and starts
interpreting the @var{music-expression} within that context.
-(Note that a @code{\new Score} command is not normally required,
-as the essential top-level @code{Score} context is created
-automatically when the music expression within the @code{\score}
-block is interpreted. The only reason for creating a @code{Score}
-context explicitly using @code{\new Score} is to introduce a
-@code{\with} block in which one or more score-wide default values
-of context properties may be specified. Information on using
-@code{\with} blocks can be found under the heading
-@qq{Setting context properties with @code{\\with} } in
-@ref{Modifying context properties}.)
+@warning{@bs{}@code{new Score} should not be used as the essential
+top-level @code{Score} context is created automatically when the music
+expression within the @bs{}@code{score} block is interpreted. Score-wide
+default values of context properties can be changed within the
+@bs{}@code{layout} block. See @ref{Modifying context properties}}
You have seen many practical examples which created new
@code{Staff} and @code{Voice} contexts in earlier sections, but
other things) several times. The change is from the default
value, not the most recently set value.
-@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
+@lilypond[quote,verbatim,ragged-right,relative=1]
c4 d
% make note heads smaller
\set fontSize = #-4
>>
@end lilypond
-Or, if the property override is to be applied to all staves
-within the score, it may be appended to an explicit
-@code{\new Score} command, like this:
-
-@lilypond[quote,verbatim,ragged-right]
-\score {
- \new Score \with { extraNatural = ##f } <<
- \new Staff {
- \relative c'' {
- gis4 ges aes ais
- }
- }
- \new Staff {
- \relative c'' {
- gis4 ges aes ais
- }
- }
- >>
-}
-@end lilypond
-
Properties set in this way may still be changed dynamically using
@code{\set} and returned to the default value set in the
@code{\with} block with @code{\unset}.
}
@end lilypond
+If the property override is to be applied to all staves
+within the score:
+
+@lilypond[quote,verbatim]
+\score {
+ <<
+ \new Staff {
+ \relative c'' {
+ gis4 ges aes ais
+ }
+ }
+ \new Staff {
+ \relative c'' {
+ gis4 ges aes ais
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score extraNatural = ##f
+ }
+ }
+}
+@end lilypond
+
@noindent
Context properties set in this way may be overridden for particular
instances of contexts by statements in a @code{\with} block, and by
@code{\set} command in a @code{\context} block in the
same way.
-
@seealso
Notation Reference: @ruser{Modifying context plug-ins},
@ruser{Changing context default settings}.
+@knownissues
+The @code{Stem_engraver} and @code{Beam_engraver} attach their
+objects to note heads. If the @code{Note_heads_engraver} is removed
+no note heads are produced and therefore no stems or beams are created
+either.
+
@node Extending the templates
@section Extending the templates
@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
+@q{SATB vocal score and automatic piano reduction} -- see
+@ref{Vocal ensembles} -- 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 Score context
@end example
+@cindex stretchability of staves
+@cindex staves, stretchability
+
+The above layout of the organ staves is almost perfect; however,
+there is a slight defect which is not visible by looking at just a
+single system: The distance of the pedal staff to the left hand staff
+should behave approximately the same as the right hand staff to the
+left hand staff. In particular, the stretchability of staves in a
+@code{PianoStaff} context is limited (so that the distance between
+the staves for the left and right hand can't become too large), and
+the pedal staff should behave similarly.
+
+@cindex sub-properties
+@cindex properties, sub-properties
+@cindex graphical objects
+@cindex objects, graphical
+@cindex grobs
+
+Stretchability of staves can be controlled with the
+@code{staff-staff-spacing} property of the
+@code{VerticalAxisGroup} @q{graphical object} (commonly called
+@q{grob}s within the lilypond documentation) -- don't worry about
+the details right now; this is fully explained later. For the
+curious, have a look at @ruser{Overview of modifying properties}.
+In this case, we want to modify the @code{stretchability}
+sub-property only. Again, for the curious, you can find the
+default values for the staff-staff-spacing property
+in file @file{scm/define-grobs.scm} by looking up the definition
+of the @code{VerticalAxisGroup} grob. The value for
+@code{stretchability} is taken from the definition of the
+@code{PianoStaff} context (in file @file{ly/engraver-init.ly})
+so that the values are identical.
+
+@example
+\score @{
+ << % PianoStaff and Pedal Staff must be simultaneous
+ \new PianoStaff <<
+ \new Staff = "ManualOne" <<
+ \keyTime % set key and time signature
+ \clef "treble"
+ \new Voice @{
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ @}
+ >> % end ManualOne Staff context
+ \new Staff = "ManualTwo" \with @{
+ \override VerticalAxisGroup
+ #'staff-staff-spacing #'stretchability = 5
+ @} <<
+ \keyTime
+ \clef "bass"
+ \new Voice @{
+ \ManualTwoMusic
+ @}
+ >> % end ManualTwo Staff context
+ >> % end PianoStaff context
+ \new Staff = "PedalOrgan" <<
+ \keyTime
+ \clef "bass"
+ \new Voice @{
+ \PedalOrganMusic
+ @}
+ >> % end PedalOrgan Staff
+ >>
+@} % end Score context
+@end example
That completes the structure. Any three-staff organ music
will have a similar structure, although the number of voices
may vary. All that remains now
\ManualOneVoiceTwoMusic
}
>> % end ManualOne Staff context
- \new Staff = "ManualTwo" <<
+ \new Staff = "ManualTwo" \with {
+ \override VerticalAxisGroup
+ #'staff-staff-spacing #'stretchability = 5
+ } <<
\keyTime
\clef "bass"
\new Voice {
} % end Score context
@end lilypond
+@seealso
+Music Glossary:
+@rglos{system}.
@node Saving typing with variables and functions
@subsection Saving typing with variables and functions
you have a single definition (such as @code{\dolce}) for all your
input files (see @ref{Style sheets}), then if the syntax changes, you
only need to update your single @code{\dolce} definition,
-instead of making changes throughout every @code{.ly} file.
+instead of making changes throughout every @file{.ly} file.
@node Scores and parts
>>
@end lilypond
-