g1\espressivo
@end lilypond
+@funindex \cresc
+@funindex cresc
+@funindex \decresc
+@funindex decresc
+@funindex \dim
+@funindex dim
+Textual crescendo marks begin with @code{\cresc}.
+Textual decrescendos begin with @code{\decresc} or @code{\dim}.
+Extender lines are engraved as required.
+
+@lilypond[verbatim,quote,relative=2]
+g8\cresc a b c b c d e\mf |
+f8\decresc e d c e\> d c b |
+a1\dim ~ |
+a2. r4\! |
+@end lilypond
@funindex \crescTextCresc
@funindex crescTextCresc
@funindex \dimHairpin
@funindex dimHairpin
-Crescendos and decrescendos can be engraved as textual markings
-instead of hairpins. Dashed lines are printed to indicate their
-extent. The built-in commands @code{\crescTextCresc},
-@code{\dimTextDecresc}, @code{\dimTextDecr}, and @code{\dimTextDim}
-will tell LilyPond to use such textual marks instead of hairpins
-for all subsequent @code{\<} and @code{\>} commands. The corresponding
-@code{\crescHairpin} and @code{\dimHairpin} commands will revert
-to hairpins again:
-
+Textual marks for dynamic changes can also replace hairpins:
@lilypond[verbatim,quote,relative=2]
\crescTextCresc
-c2\< d | e f\!
+c4\< d e f\! |
\dimTextDecresc
-e2\> d | c b\!
+g4\> e d c\! |
+\dimTextDecr
+e4\> d c b\! |
+\dimTextDim
+d4\> c b a\! |
\crescHairpin
-c2\< d | e f\!
\dimHairpin
-e2\> d\!
+c4\< d\! e\> d\! |
@end lilypond
@funindex \dynamicNeutral
@funindex dynamicNeutral
+A @code{Dynamics} context is available to engrave dynamics on
+their own horizontal line. Use spacer rests to indicate timing.
+(Notes in a @code{Dynamics} context will also take up
+musical time, but will not be engraved.)
+The @code{Dynamics} context can usefully contain some other
+items such as text scripts, text spanners, and piano pedal marks.
+
+@lilypond[verbatim,quote]
+<<
+ \new Staff \relative c' {
+ c2 d4 e |
+ c4 e e,2 |
+ g'4 a g a |
+ c1 |
+ }
+ \new Dynamics {
+ s1\< |
+ s1\f |
+ s2\dim s2-"rit." |
+ s1\p |
+ }
+>>
+@end lilypond
@predefined
@code{\dynamicUp},
Internals Reference:
@rinternals{DynamicText},
@rinternals{Hairpin},
-@rinternals{DynamicLineSpanner}.
+@rinternals{DynamicLineSpanner},
+@rinternals{Dynamics}.
@node New dynamic marks
@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
Snippets:
@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
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:
The line style, as well as the text string, can be defined as an
object property. This syntax is described in @ref{Line styles}.
-Text spanners are part of the @code{Dynamics} context; see
-@rinternals{Dynamics}.
-
@funindex \textSpannerUp
@funindex textSpannerUp
@rlsr{Expressive marks}.
Internals Reference:
-@rinternals{TextSpanner},
-@rinternals{Dynamics}.
+@rinternals{TextSpanner}.
@node Text marks
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
- texidoc = "The \cresc, \dim and \decresc spanners can now be redefined as
-postfix operators and produce one text spanner. Defining custom spanners is
-also easy. Hairpin and text crescendi can be easily mixed. \< and \> produce
-hairpins by default, \cresc etc. produce text spanners by default.
-"
+ texidoc = "Custom text spanners can be defined and used with hairpin
+ and text crescendos. @code{\<} and @code{\>} produce hairpins by
+ default, @code{\cresc} etc. produce text spanners by default."
doctitle = "Dynamics text spanner postfix"
}
'span-direction START
'span-type 'text
'span-text "cresc. poco a poco")
-% Redefine the existing \cresc, \dim and \decresc commands to use postfix syntax
-cresc =
-#(make-music 'CrescendoEvent
- 'span-direction START
- 'span-type 'text
- 'span-text "cresc.")
-dim =
-#(make-music 'DecrescendoEvent
- 'span-direction START
- 'span-type 'text
- 'span-text "dim.")
-decresc =
-#(make-music 'DecrescendoEvent
- 'span-direction START
- 'span-type 'text
- 'span-text "decresc.")
\relative c' {
c4\cresc d4 e4 f4 |