@c \version "2.11.38"
+@c Andrew's TODO List
+@c references - first pass complete
+@c manual changes - first pass complete
+@c automatic changes - first pass complete
+@c staff-change lines - first pass complete
+@c cross-staff stems - first pass complete
+@c pedals - first pass complete
+@c accordian discant symbols
+
@node Keyboard instruments
@section Keyboard instruments
@menu
* References for keyboards::
-* The piano staff::
* Changing staff manually::
* Changing staff automatically::
* Staff-change lines::
@node References for keyboards
@subsubsection References for keyboards
-@c TODO add refs
-TBC
+Keyboard instruments are usually notated with Piano staves. These
+are two or more normal staves coupled with a brace. The same
+notation is also used for harps and other keyed instruments.
+Organ music is normally written with two staves inside a
+@code{PianoStaff} group and third, normal staff for the pedals.
+
+The staves in keyboard music are largely independent, but
+sometimes voices can cross between the two staves. In this
+section we discuss some notation techniques particular to keyboard
+music.
+
+Several common issues in keyboard music are covered elsewhere:
+
+@itemize
+@item Keyboard music usually contains multiple voices and the
+number of voices may change regularly; this is described in
+@ref{Collision resolution}.
+
+@item Keyboard music can be written in parallel, as described in
+@ref{Writing music in parallel}.
+
+@item Fingerings are indicated with @ref{Fingering instructions}.
+
+@item Organ pedal indications are inserted as articulations, see
+@ref{List of articulations}.
+
+@item Vertical grid lines can be shown with @ref{Grid lines}.
+
+@item Keyboard music often contains @notation{Laissez vibrer} ties
+as well as ties on arpeggios and tremelos, described in
+@ref{Ties}.
+
+@item Placing arpeggios across multiple voices and staves is
+covered in @ref{Arpeggio}.
+
+@item Tremolo marks are described in @ref{Tremolo repeats}.
+
+@item Several of the tweaks that can occur in keyboard music are
+demonstrated in @rlearning{Real music example}.
+
+@item Hidden notes can be used to produce ties that cross voices,
+as shown in @rlearning{Other uses for tweaks}.
+
+@end itemize
+
+@c @snippets
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@c {creating-slurs-across-voices.ly}
+
+@seealso
+
+Learning Manual:
+@rlearning{Real music example},
+@rlearning{Other uses for tweaks}.
-@node The piano staff
-@subsubsection The piano staff
+Notation Reference:
+@ref{Grouping staves},
+@ref{Instrument names},
+@ref{Writing music in parallel},
+@ref{Fingering instructions},
+@ref{Grid lines},
+@ref{Ties},
+@ref{Arpeggio},
+@ref{Tremolo repeats},
+@ref{List of articulations}.
-Keyboard instruments are usually notated with Piano staves.
-These are two normal staves coupled with a brace. The staves
-are largely independent, but sometimes voices can cross between the
-two staves. The same notation is also used for harps and other key
-instruments. The @internalsref{PianoStaff} is especially built to
-handle this cross-staffing behavior. In this section we discuss the
-@internalsref{PianoStaff} and some other pianistic peculiarities.
+Internals Reference:
+@rinternals{PianoStaff}.
+Snippets:
+@rlsr{Keyboards}.
@knownissues
Dynamics are not centered, but workarounds do exist. See the
@q{piano centered dynamics} template in @rlearning{Piano templates}.
-@cindex cross staff stem
-@cindex stem, cross staff
-@cindex distance between staves in piano music
+@c TODO Find out status of the dynamics engravers
@node Changing staff manually
@subsubsection Changing staff manually
-@cindex manual staff switches
-@cindex staff switch, manual
+@cindex changing staff manually
+@cindex manual staff changes
+@cindex staff changes, manual
+@cindex cross-staff notes
+@cindex notes, cross-staff
+@cindex cross-staff beams
+@cindex beams, cross-staff
+@funindex \change
Voices can be switched between staves manually, using the command
+
@example
-\change Staff = @var{staffname} @var{music}
+\change Staff = @var{staffname}
@end example
@noindent
-The string @var{staffname} is the name of the staff. It switches the
-current voice from its current staff to the Staff called
-@var{staffname}. Typically @var{staffname} is @code{"up"} or
-@code{"down"}. The @code{Staff} referred to must already exist, so
-usually the setup for a score will start with a setup of the staves,
+The string @var{staffname} is the name of the staff. It switches
+the current voice from its current staff to the Staff called
+@var{staffname}. Typical values for @var{staffname} are
+@code{"up"} and @code{"down"}, or @code{"RH"} and @code{"LH"}.
-@example
-<<
- \new Staff = "up" @{
- \skip 1 * 10 % @emph{keep staff alive}
- @}
- \new Staff = "down" @{
- \skip 1 * 10 % @emph{idem}
- @}
+Cross-staff notes are beamed automatically:
+
+@lilypond[verbatim,quote,ragged-right]
+\new PianoStaff <<
+ \new Staff = "up" {
+ <e' c'>8
+ \change Staff = down
+ g fis g
+ \change Staff = up
+ <g'' c''>8
+ \change Staff = down
+ e dis e
+ \change Staff = up
+ }
+ \new Staff = "down" {
+ \clef bass
+ s1 % keep staff alive
+ }
>>
-@end example
+@end lilypond
+If the beaming needs to be tweaked, make any changes to the stem
+directions first. The beam positions are then measured from the
+center of the staff that is closest to the beam. For a simple
+example of beam tweaking, see @rlearning{Fixing overlapping
+notation}.
-and the @code{Voice} is inserted afterwards
+@seealso
-@example
-\context Staff = down
- \new Voice @{ @dots{} \change Staff = up @dots{} @}
-@end example
+Learning Manual:
+@rlearning{Fixing overlapping notation}.
+
+Notation Reference:
+@ref{Stems},
+@ref{Automatic beams}.
+
+Snippets:
+@rlsr{Keyboards}.
+
+Internals Reference:
+@rinternals{Beam}.
@node Changing staff automatically
@subsubsection Changing staff automatically
-@cindex Automatic staff changes
-Voices can be made to switch automatically between the top and the bottom
-staff. The syntax for this is
+@cindex changing staff automatically
+@cindex automatic staff changes
+@cindex staff changes, automatic
+@funindex \autochange
+
+Voices can be made to switch automatically between the top and the
+bottom staff. The syntax for this is
-@quotation
@example
\autochange @dots{}@var{music}@dots{}
@end example
-@end quotation
@noindent
-This will create two staves inside the current PianoStaff, called
-@code{up} and @code{down}. The lower staff will be in bass clef by
-default.
+This will create two staves inside the current staff group
+(usually a @code{PianoStaff}), called @code{"up"} and
+@code{"down"}. The lower staff will be in bass clef by default.
+The autochanger switches on basis of the pitch (middle C is the
+turning point), and it looks ahead skipping over rests to switch
+in advance.
-A @code{\relative} section that is outside of @code{\autochange} has
-no effect on the pitches of @var{music}, so, if necessary, put
-@code{\relative} inside @code{\autochange} like
-
-@quotation
-@example
-\autochange \relative @dots{} @dots{}
-@end example
-@end quotation
+@lilypond[quote,verbatim,ragged-right]
+\new PianoStaff {
+ \autochange {
+ g4 a b c' d' r4 a g
+ }
+}
+@end lilypond
+A @code{\relative} section that is outside of @code{\autochange}
+has no effect on the pitches of the music, so if necessary, put
+@code{\relative} inside @code{\autochange}.
-The autochanger switches on basis of the pitch (middle C is the turning
-point), and it looks ahead skipping over rests to switch in
-advance. Here is a practical example
+If additional control is needed over the individual staves, they
+can be created manually with the names @code{"up"} and
+@code{"down"}. The @code{\autochange} command will then switch
+its voice between the existing staves. For example, this is
+necessary to place a key signature in the lower staff:
@lilypond[quote,verbatim,ragged-right]
-\new PianoStaff
- \autochange \relative c'
- {
- g4 a b c d r4 a g
+\new PianoStaff <<
+ \new Staff = "up" {
+ \new Voice = "melOne" {
+ \key g \major
+ \autochange \relative c' {
+ g8 b a c b d c e
+ d r fis, g a2
+ }
+ }
+ }
+ \new Staff = "down" {
+ \key g \major
+ \clef bass
}
+>>
@end lilypond
-
@seealso
-Notation Reference: @ref{Manual staff switches}.
-
-Internals Reference: @internalsref{AutoChangeMusic}.
+Notation Reference:
+@ref{Changing staff manually}.
+Snippets:
+@rlsr{Keyboards}.
+Internals Reference:
+@rinternals{AutoChangeMusic}.
@knownissues
The staff switches may not end up in optimal places. For high
quality output, staff switches should be specified manually.
+Chords will not be split across the staves; the staff will be
+chosen by the first note named in the chord.
-@code{\autochange} cannot be inside @code{\times}.
@node Staff-change lines
@subsubsection Staff-change lines
-
+@cindex staff-change lines
+@cindex cross-staff lines
+@cindex lines, staff-change follower
@cindex follow voice
@cindex staff switching
-@cindex cross staff
-
+@cindex cross-staff
@funindex followVoice
-Whenever a voice switches to another staff, a line connecting the notes
-can be printed automatically. This is switched on by setting
-@code{followVoice} to true
+Whenever a voice switches to another staff, a line connecting the
+notes can be printed automatically:
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
\new PianoStaff <<
- \new Staff="one" {
- \set followVoice = ##t
+ \new Staff = "one" {
+ \showStaffSwitch
c1
\change Staff=two
b2 a
}
- \new Staff="two" { \clef bass \skip 1*2 }
+ \new Staff = "two" { \clef bass s1*2 }
>>
@end lilypond
-@seealso
-
-Internals Reference: @internalsref{VoiceFollower}.
-
@predefined
@funindex \showStaffSwitch
-@code{\showStaffSwitch},
@funindex \hideStaffSwitch
-@code{\hideStaffSwitch}.
+@code{\showStaffSwitch}, @code{\hideStaffSwitch}.
+
+@seealso
+
+Snippets:
+@rlsr{Keyboards}.
+
+Internals Reference:
+@rinternals{VoiceFollower}.
+
@node Cross-staff stems
@subsubsection Cross-staff stems
+@cindex cross-staff notes
+@cindex notes, cross-staff
+@cindex cross-staff stems
+@cindex stems, cross-staff
+
Chords that cross staves may be produced by increasing the length
of the stem in the lower staff, so it reaches the stem in the upper
staff, or vice versa.
@lilypond[ragged-right,verbatim,quote]
-stemExtend = {
- \once \override Stem #'length = #10
- \once \override Stem #'cross-staff = ##t
-}
-noFlag = \once \override Stem #'flag-style = #'no-flag
\new PianoStaff <<
- \new Staff {
- \stemDown \stemExtend
- f'4
- \stemExtend \noFlag
- f'8
+ \new Staff \relative c' {
+ f8 e4 d8 <f bes,>2
}
- \new Staff {
- \clef bass
- a4 a8
+ \new Staff \relative c' {
+ << {
+ \clef bass
+ \stemUp
+ \override Stem #'length = #12
+ \override Stem #'cross-staff = ##t
+ \override Stem #'flag-style = #'no-flag
+ a8 g4 f8
+ } \\
+ { f,2 d' }
+ >>
}
>>
@end lilypond
+@snippets
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@c {indicating-cross-staff-chords-with-arpeggio-bracket.ly}
+
+
+@seealso
+
+Snippets:
+@rlsr{Keyboards}.
+
+Internals Reference:
+@rinternals{Stem}
+
@node Piano
@subsection Piano
What is printed can be modified by setting @code{pedal@var{X}Strings},
where @var{X} is one of the pedal types: @code{Sustain},
@code{Sostenuto} or @code{UnaCorda}. Refer to
-@internalsref{SustainPedal} in the program reference for more
+@rinternals{SustainPedal} in the program reference for more
information.
Pedals can also be indicated by a sequence of brackets, by setting the
For fine-tuning the appearance of a pedal bracket, the properties
@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of
@code{PianoPedalBracket} objects (see
-@internalsref{PianoPedalBracket} in the Internals Reference) can be
+@rinternals{PianoPedalBracket} in the Internals Reference) can be
modified. For example, the bracket may be extended to the right edge
of the note head
c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
+@noindent
+Note that overrides must be placed before the note at which the
+pedal bracket starts.
+
+@c TODO Check relative positions of the sustain pedal and
+@c dynamics are correct (they collided in 2.11.44).
+@c Give example showing this.
+
@seealso
Notation Reference: @ref{Ties} (laissez vibrer).
@c TODO Add text from -user and lsr 194
TBC
-
-
-
-
-