Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.17.6"
@node Keyboard and other multi-staff instruments
@section Keyboard and other multi-staff instruments
@cindex staves, keyed instruments
@cindex keyboard instrument staves
@cindex keyed instrument staves
+@cindex keyboard music, centering dynamics
+@cindex dynamics, centered in keyboard music
+@cindex piano music, centering dynamics
+@cindex centered dynamics in piano music
@funindex PianoStaff
@item Keyboard music can be written in parallel, as described in
@ref{Writing music in parallel}.
+@item Dynamics may be placed in a @code{Dynamics} context,
+between the two @code{Staff} contexts
+to align the dynamic marks on a horizontal line
+centered between the staves; see @ref{Dynamics}.
+
@item Fingerings are indicated with @ref{Fingering instructions}.
@item Organ pedal indications are inserted as articulations, see
@end itemize
@c @snippets
-@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c @lilypondfile[verbatim,quote,texidoc,doctitle]
@c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
-@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
+@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312
@seealso
Learning Manual:
@rlsr{Keyboards}.
-@knownissues
-
-@cindex keyboard music, centering dynamics
-@cindex dynamics, centered in keyboard music
-@cindex piano music, centering dynamics
-@cindex centered dynamics in piano music
-@funindex staff-padding
-
-Dynamics are not automatically centered, but workarounds do exist. One
-option is the @q{piano centered dynamics} template under
-@rlearning{Piano templates}; another option is to increase the
-@code{staff-padding} of dynamics as discussed in @rlearning{Moving
-objects}.
-
@node Changing staff manually
@unnumberedsubsubsec Changing staff manually
example of beam tweaking, see @rlearning{Fixing overlapping
notation}.
+@cindex cross-staff collisions
+@cindex collisions, cross-staff voices
+
+Overlapping notation can result when voices cross staves:
+
+@lilypond[verbatim,quote]
+\new PianoStaff <<
+ \new Staff = "up" {
+ \voiceOne
+ % Make space for fingering in the cross-staff voice
+ \once\override DynamicLineSpanner.staff-padding = #4
+ e''2\p\< d''\>
+ c''1\!
+ }
+ \new Staff = "down" <<
+ {
+ \clef bass
+ s4. e,8\rest g,2\rest
+ c1
+ } \\ {
+ c8\( g c'
+ \change Staff = "up"
+ e' g' b'-3 a' g'\)
+ f'1
+ }
+ >>
+>>
+@end lilypond
+
+The stem and slur overlap the intervening line of dynamics
+because automatic collision resolution is suspended for beams, slurs
+and other spanners that connect notes on different staves,
+as well as for stems and articulations if their placement is
+affected by a cross-staff spanner.
+The resulting collisions must be resolved manually, where necessary,
+using the methods in @rlearning{Fixing overlapping notation}.
@seealso
Learning Manual:
@rinternals{Beam},
@rinternals{ContextChange}.
+@knownissues
+Beam collision avoidance does not work for automatic beams that end
+right before a change in staff. In this case use manual beams.
+
@node Changing staff automatically
@unnumberedsubsubsec Changing staff automatically
>>
@end lilypond
-
@seealso
Notation Reference:
@ref{Changing staff manually}.
@knownissues
-
@cindex chords, splitting across staves with \autochange
The staff switches may not end up in optimal places. For high
Chords will not be split across the staves; they will be assigned to a
staff based on the first note named in the chord construct.
+
@node Staff-change lines
@unnumberedsubsubsec Staff-change lines
@code{\hideStaffSwitch}.
@endpredefined
-
@seealso
Snippets:
@rlsr{Keyboards}.
@cindex cross staff chords
@funindex Stem
-@funindex cross-staff
-@funindex length
-@funindex flag-style
+@funindex \crossStaff
+@funindex \autoBeamOff
+@funindex Span_stem_engraver
-Chords that cross staves may be produced:
+Chords that cross staves may be produced using the
+@code{Span_stem_engraver}. Care must be taken to ensure that
+automatic beams do not beam the notes on one staff when it’s not
+required on the other.
-@lilypond[verbatim,quote]
-\new PianoStaff <<
- \new Staff {
- \relative c' {
- f8 e4 d8 d f e4
- }
- }
- \new Staff {
- \relative c' {
- << {
- \clef bass
- % stems may overlap the other staff
- \override Stem #'cross-staff = ##t
- % extend the stems to reach the other staff
- \override Stem #'length = #12
- % do not print extra flags
- \override Stem #'flag-style = #'no-flag
- % prevent beaming as needed
- a8 g4 f8 f bes\noBeam g4
- }
- \\
- {
- f,2 bes4 c
- } >>
- }
- }
->>
-@end lilypond
+@lilypondfile[verbatim,quote]
+{cross-staff-stems.ly}
+
+For the time being, this engraver can not be specified by its name in
+double quotes, but rather prefixing its name with a hash symbol
+@code{#}, due to the way it is implemented.
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{indicating-cross-staff-chords-with-arpeggio-bracket.ly}
-
@seealso
Snippets:
@rlsr{Keyboards}.
sustain pedal during piano performance. Pedalling to the final bar line
is indicated by omitting the final pedal off command.
+Pedal indications may be placed in a @code{Dynamics} context,
+which aligns them on a horizontal line.
@seealso
Notation Reference:
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{accordion-discant-symbols.ly}
-
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{accordion-registers.ly}
@seealso
Snippets:
@ref{Arpeggio},
@ref{Harmonics}.
+
@node Harp pedals
@unnumberedsubsubsec Harp pedals