version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.38"
+@c \version "2.11.51"
@node Tweaking output
@chapter Tweaking output
@code{#f}
@item Vector
@tab A list of three items enclosed in brackets and preceded
-by a hash sign, @code{#}.
- @tab @code{#(#t #t #f)}
+by apostrophe-hash, @code{'#}.
+ @tab @code{'#(#t #t #f)}
@end multitable
@node Appearance of objects
These control respectively whether bar lines are printed at
the end of a line, in the middle of lines, and at the beginning
of lines. For our example we want all bar lines to be suppressed,
-so the value we need is @code{#(#f #f #f)}.
+so the value we 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 two hash signs before the opening bracket.
-One is required as part of the value to introduce a vector,
-and one is required, as always, to precede the value itself in
-the @code{\override} command.
+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 required, as always, to precede
+the value itself in the @code{\override} command.
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
- \override Staff.BarLine #'break-visibility = ##(#f #f #f)
+ \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
c4 b8 c d16 c d8 |
g, a16 b8 c d4 e16 |
e8
page in the IR that the @code{transparent} property is a boolean.
This
should be set to @code{#t} to make the grob transparent.
-In this next example let us make the time signature invisible
-rather than the bar lines.
+In this next example let us make the time signature invisible
+rather than the bar lines.
To do this we need to find the grob name for the time signature.
Back to
the @q{All layout objects} page in the IR to find the properties
@end lilypond
@noindent
-The time signature is gone, but this command leaves a gap where
+The time signature is gone, but this command leaves a gap where
the time signature should be. Maybe this is what is wanted for
-an exercise for the student to fill it in, but in other
-circumstances a gap might be undesirable. To remove it, the
+an exercise for the student to fill it in, but in other
+circumstances a gap might be undesirable. To remove it, the
stencil for the time signature should be set to @code{#f}
instead:
@subheading color
@cindex color property
-Finally we could make the bar lines invisible by coloring
-them white. The @code{grob-interface} specifies that the
+Finally let us try making the bar lines invisible by coloring
+them white. (There is a difficulty with this in that the
+white bar line may or may not blank out the staff lines where
+they cross. You may see in some of the examples below that this
+happens unpredictably. The details of why this is so and how to
+control it are covered in @ruser{Painting objects white}. But at
+the moment we are learning about color, so please just accept this
+limitation for now.)
+
+The @code{grob-interface} specifies that the
color property value is a list, but there is no
explanation of what that list should be. The list it
requires is actually a list of values in internal units,
a symbol, but a @emph{function}. When called, it provides
the list of internal values required to set the color to
white. The other colors in the normal list are functions
-too. To convince yourself this is working you might like
+too. To convince yourself this is working you might like
to change the color to one of the other functions in the
list.
There is yet a third function, one which converts RGB values into
internal colors -- the @code{rgb-color} function. This takes
-three arguments giving the intensities of the red, green and
+three arguments giving the intensities of the red, green and
blue colors. These take values in the range 0 to 1. So to
set the color to red the value should be @code{(rgb-color 1 0 0)}
and to white it should be @code{(rgb-color 1 1 1)}:
@tab Up/Right
@tab Revert
@tab Effect
-@item @code{\arpeggioDown}
- @tab @code{\arpeggioUp}
- @tab @code{\arpeggioNeutral}
+@item @code{\arpeggioArrowDown}
+ @tab @code{\arpeggioArrowUp}
+ @tab @code{\arpeggioNormal}
@tab Arrow is at bottom, at top, or no arrow
@item @code{\dotsDown}
@tab @code{\dotsUp}
% Place dynamics above staff
\dynamicUp
% Start Ottava Bracket
-#(set-octavation 1)
+\ottava #1
c' \startTextSpan
% Add Dynamic Text
c\pp
% Add Dynamic Text
c\ff c \stopTextSpan
% Stop Ottava Bracket
-#(set-octavation 0)
+\ottava #0
c, c c c
@end lilypond
%Place following Ottava Bracket below Text Spanners
\once \override Staff.OttavaBracket #'outside-staff-priority = #340
% Start Ottava Bracket
-#(set-octavation 1)
+\ottava #1
c' \startTextSpan
% Add Dynamic Text
c\pp
% Add Dynamic Text
c\ff c \stopTextSpan
% Stop Ottava Bracket
-#(set-octavation 0)
+\ottava #0
c, c c c
@end lilypond
>>
@end lilypond
-@subheading Simulating a fermata
+@subheading Simulating a fermata in MIDI
@cindex stencil property, use of
@cindex fermata, implementing in MIDI
used many times it may be worth defining variables to hold them.
Suppose we wish to emphasize certain words in lyrics by printing
them in bold italics. The @code{\italic} and @code{\bold}
-commands do not work within lyrics so we must instead use the
-following @code{\override} and @code{\revert} commands:
+commands only work within lyrics if they are also embedded in
+@code{\markup}, which makes them tedious to enter, so as an
+alternative can we instead use the @code{\override} and
+@code{\revert} commands?
@example
@code{\override Lyrics . LyricText #'font-shape = #'italic}
@code{\revert Lyrics . LyricText #'font-series}
@end example
-These would be extremely tedious to enter if there were many words
-requiring emphasis. So instead we define these as two variables,
-and use them as follows:
+These would also be extremely tedious to enter if there were many
+words requiring emphasis. So instead we define these as two
+variables, and use them as follows, although normally we would
+perhaps choose shorter names for the variables to make them
+quicker to type:
@lilypond[quote,verbatim]
emphasize = {
\clef "treble"
\new Voice = "Soprano" { \voiceOne \global \SopranoMusic }
\new Voice = "Alto" { \voiceTwo \AltoMusic }
- \new Lyrics \lyricsto "Sop" { \VerseOne }
- \new Lyrics \lyricsto "Sop" { \VerseTwo }
- \new Lyrics \lyricsto "Sop" { \VerseThree }
- \new Lyrics \lyricsto "Sop" { \VerseFour }
+ \new Lyrics \lyricsto "Soprano" { \VerseOne }
+ \new Lyrics \lyricsto "Soprano" { \VerseTwo }
+ \new Lyrics \lyricsto "Soprano" { \VerseThree }
+ \new Lyrics \lyricsto "Soprano" { \VerseFour }
>>
\new Staff <<
\clef "bass"