Guide, node Updating translation committishes..
@end ignore
-@c \version "2.14.0"
+@c \version "2.15.10"
@node Tweaking output
@chapter Tweaking output
easily understood.
For now, don't worry about the @code{#'}, which must precede the
-layout property, and the @code{#}, which must precede the value.
+layout property, and the@tie{}@code{#}, which must precede the value.
These must always be present in exactly this form. This is the
most common command used in tweaking, and most of the rest of
this chapter will be directed to presenting examples of how it is
@funindex \once
@funindex once
-Both the @code{\override} and the @code{\set} commands may be
-prefixed by @code{\once}. This causes the following
-@code{\override} or @code{\set} command to be effective only
-during the current musical moment before the property reverts
-back to its default value. Using the same example, we can
-change the color of a single note like this:
+Both the @code{\override} and the @code{\set} commands may be prefixed
+by @code{\once}. This causes the following @code{\override} or
+@code{\set} command to be effective only during the current musical
+moment before the property reverts back to its previous value (this can
+be different from the default if another @code{\override} is still in
+effect). Using the same example, we can change the color of a single
+note like this:
@cindex color property, example
@cindex NoteHead, example of overriding
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
c4 d
-\once \override NoteHead #'color = #red
+\override NoteHead #'color = #red
e4 f |
\once \override NoteHead #'color = #green
-g4 a b c |
+g4 a
+\revert NoteHead #'color
+b c |
@end lilypond
@strong{\overrideProperty command}
@funindex \tweak
@funindex tweak
-The final tweaking command which is available is @code{\tweak}.
-This should be used to change the properties of objects which
-occur at the same musical moment, such as the notes within a
-chord. Using @code{\override} would affect all the notes
-within a chord, whereas @code{\tweak} affects just the following
+The final tweaking command which is available is @code{\tweak}. This
+should be used when several objects occur at the same musical moment,
+but you only want to change the properties of selected ones, such as a
+single note within a chord. Using @code{\override} would affect all the
+notes within a chord, whereas @code{\tweak} affects just the following
item in the input stream.
Here's an example. Suppose we wish to change the size of the
it is effective only on objects which are created directly from
the input stream, essentially note heads and articulations;
objects such as stems and accidentals are created later and
-cannot be tweaked in this way. Furthermore, when it is applied
-to note heads these @emph{must} be within a chord, i.e., within
-single angle brackets, so to tweak a single note the @code{\tweak}
-command must be placed inside single angle brackets with the
-note.
+cannot be tweaked in this way.
So to return to our example, the size of the middle note of
a chord would be changed in this way:
@end lilypond
@noindent
-Note that the @code{\tweak} command must be preceded by an
-articulation mark as if it were an articulation itself.
+Note that the @code{\tweak} command must be preceded by an articulation
+mark since the tweaked expression needs to be applied as an articulation
+itself. In case of multiple direction overrides (@code{^} or @code{_}),
+the leftmost override wins since it is applied last.
@cindex tuplets, nested
@cindex triplets, nested
@end example
Don't forget the @code{#'} preceding the
-property name and a @code{#} preceding the new value!
+property name and a@tie{}@code{#} preceding the new value!
The final question is, @q{Where should this command be
placed?} While you are unsure and learning, the best
need is @code{'#(#f #f #f)}. Let's try that, remembering to include
the @code{Staff} context. Note also that in writing this value we
have @code{#'#} before the opening bracket. The @code{'#} is required
-as part of the value to introduce a vector, and the first @code{#} is
+as part of the value to introduce a vector, and the first@tie{}@code{#} is
required, as always, to precede the value itself in the
@code{\override} command.
c,8~
% Reposition the c2 to the right of the merged note
\once \override NoteColumn #'force-hshift = #1.0
- % Move the c2 out of the main note column so the merge will work
+ % Move the c2 out of the main note column
+ % so the merge will work
\shiftOnn
c2
}
\stemDown
% Stem on the d2 should be invisible
\once \override Stem #'transparent = ##t
+ \once \override Flag #'transparent = ##t
d2
}
\new Voice {
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- % Move the c2 out of the main note column so the merge will work
+ % Move the c2 out of the main note column
+ % so the merge will work
c,8~ \shiftOnn c2
}
\new Voice {
c,8~
% Reposition the c2 to the right of the merged note
\once \override NoteColumn #'force-hshift = #1.0
- % Move the c2 out of the main note column so the merge will work
+ % Move the c2 out of the main note column
+ % so the merge will work
\shiftOnn
c2
}
\stemDown
% Stem on the d2 should be invisible
\once \override Stem #'transparent = ##t
+ \once \override Flag #'transparent = ##t
d2
}
\new Voice {
<<
{
\once \override Stem #'transparent = ##t
+ \once \override Flag #'transparent = ##t
b8~ b\noBeam
}
\\
<<
{
\once \override Stem #'transparent = ##t
+ \once \override Flag #'transparent = ##t
\once \override Stem #'length = #8
b8~ b\noBeam
}
}
VerseTwo = \lyricmode {
- O | \emphasize Christ, \normal whose voice the | wa -- ters heard,
+ O | \once \emphasize Christ, whose voice the | wa -- ters heard,
}
VerseThree = \lyricmode {
@lilypond[quote,verbatim,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
\relative c'' {
\tempo 4=50
%%% save this to a file called "definitions.ily"
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #@{ ^\markup \bold \box #string #@})
@end example
We will refer to this file using the @code{\include} command near
@lilypond[quote,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
\relative c'' {
\tempo 4=50
%%% definitions.ily
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #@{ ^\markup \bold \box #string #@})
\layout@{
\context @{
@lilypond[quote,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
\layout{
\context {
%%% definitions.ily
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #@{ ^\markup \bold \box #string #@})
#(set-global-staff-size 23)
@lilypond[quote,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
#(set-global-staff-size 23)
@item Linux
Navigate to
+@example
@file{@var{INSTALLDIR}/lilypond/usr/@/share/lilypond/current/}
+@end example
@item MacOS X
Navigate to
+@example
@file{@var{INSTALLDIR}/LilyPond.app/Contents/@/Resources/share/lilypond/current/}
+@end example
+
by either @code{cd}-ing into this directory from the
Terminal, or control-clicking on the LilyPond application and
selecting @q{Show Package Contents}.
@item Windows
Using Windows Explorer, navigate to
+@example
@file{@var{INSTALLDIR}/LilyPond/usr/@/share/lilypond/current/}
+@end example
@end itemize