Program reference: @internalsref{TupletBracket},
@internalsref{TupletNumber}, and @internalsref{TimeScaledMusic}.
-Examples: @inputfileref{input/@/regression,tuplet@/-nest@/.ly}.
-
@node Scaling durations
@seealso
-Examples: @inputfileref{input/@/regression,completion@/-heads@/.ly}.
-
-@noindent
-
Program reference: @internalsref{Completion_heads_engraver}.
@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.
\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
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
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
@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
Program reference: @internalsref{Fingering}.
-Examples: @inputfileref{input/@/regression,finger@/-chords@/.ly}.
+Examples: @lsr{expressive,fingering-chords.ly}
@node Dynamics
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
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