[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Editorial annotations ] | [ Up : Editorial annotations ] | [ Selecting notation font size > ] |
1.7.1 Inside the staff
This section discusses how to add emphasis to elements that are inside the staff.
Selecting notation font size | ||
Fingering instructions | ||
Hidden notes | ||
Coloring objects | ||
Parentheses | ||
Stems |
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Inside the staff ] | [ Up : Inside the staff ] | [ Fingering instructions > ] |
Selecting notation font size
Note:
For font sizes of text, see Selecting font and font size.
For staff size, see Setting the staff size.
For cue notes, see Formatting cue notes.
For ossia staves, see Ossia staves.
To change the size of the notation without changing the staff
size, specify a magnification factor with the \magnifyMusic
command:
\new Staff << \new Voice \relative { \voiceOne <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8 } \new Voice \relative { \voiceTwo \magnifyMusic 0.63 { \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) r32 c'' a c a c a c r c a c a c a c r c a c a c a c a c a c a c a c } } >>
The \override
in the example above is a bug workaround.
See the “Known issues and warnings” at the end of this section.
If a normal sized note head is merged with a smaller one, the size of the smaller note may need to be reset (with ‘\once \normalsize’) so that the stems and accidentals align properly:
\new Staff << \key fis \minor \mergeDifferentlyDottedOn \new Voice \relative { \voiceOne \magnifyMusic 0.63 { \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d' \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis' \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis' \once \normalsize a, a' bis, d cis b \once \normalsize gis gis') } } \new Voice \relative { \voiceTwo cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16 } >>
The \magnifyMusic
command is not intended for cue notes,
grace notes, or ossia staves—there are more appropriate methods
of entering each of those constructs. Instead, it is useful when
the notation size changes in a single instrumental part on one
staff, and where grace notes are not appropriate, such as in
cadenza-like passages or in cases such as the above examples.
Setting the \magnifyMusic
value to 0.63 duplicates the
dimensions of the CueVoice
context.
Note: The \magnifyMusic
command should not be
used when also resizing the staff. See Setting the staff size.
Resizing individual layout objects
An individual layout object can be resized by using the
\tweak
or \override
commands to adjust its
font-size
property:
\relative { % resize a note head <f' \tweak font-size -4 b e>-5 % resize a fingering bes-\tweak font-size 0 -3 % resize an accidental \once \override Accidental.font-size = -4 bes!-^ % resize an articulation \once \override Script.font-size = 4 bes!-^ }
The default font-size
value for each layout object is
listed in the Internals Reference. The font-size
property
can only be set for layout objects that support the
font-interface
layout interface. If font-size
is
not specified in the object’s ‘Standard settings’ list, its
value is 0. See
All layout objects.
Understanding the fontSize
property
The fontSize
context property adjusts the relative size of
all glyph-based notational elements in a context:
\relative { \time 3/4 d''4---5 c8( b a g) | \set fontSize = -6 e'4-- c!8-4( b a g) | \set fontSize = 0 fis4---3 e8( d) fis4 | g2. }
The fontSize
value is a number indicating the size relative
to the standard size for the current staff height. The default
fontSize
is 0; adding 6 to any fontSize
value
doubles the printed size of the glyphs, and subtracting 6 halves
the size. Each step increases the size by approximately 12%.
The scheme function magnification->font-size
is provided
for convenience since the logarithmic units of the
font-size
property are not entirely intuitive. For
example, to adjust the musical notation to 75% of the default
size, use:
\set fontSize = #(magnification->font-size 0.75)
The scheme function magstep
does the opposite: it converts
a font-size
value into a magnification factor.
The fontSize
property will only affect notational elements
that are drawn with glyphs, such as noteheads, accidentals,
scripts, etc. It will not affect the size of the staff itself,
nor will it scale stems, beams, or horizontal spacing. To scale
stems, beams, and horizontal spacing along with the notation size
(without changing the staff size), use the \magnifyMusic
command discussed above. To scale everything, including the staff
size, see Setting the staff size.
Whenever the fontSize
context property is set, its
value is added to the value of the font-size
grob
property for individual layout objects, before any glyphs are
printed. This can cause confusion when setting individual
font-size
properties while fontSize
is already set:
% the default font-size for NoteHead is 0 % the default font-size for Fingering is -5 c''4-3 \set fontSize = -3 % the effective font size for NoteHead is now -3 % the effective font size for Fingering is now -8 c''4-3 \override Fingering.font-size = 0 % the effective font size for Fingering is now -3 c''4-3
The following shorthand commands are also available:
Command | Equivalent to | Relative size |
\teeny | \set fontSize = -3 | 71% |
\tiny | \set fontSize = -2 | 79% |
\small | \set fontSize = -1 | 89% |
\normalsize | \set fontSize = 0 | 100% |
\large | \set fontSize = 1 | 112% |
\huge | \set fontSize = 2 | 126% |
\relative c'' { \teeny c4.-> d8---3 \tiny c4.-> d8---3 \small c4.-> d8---3 \normalsize c4.-> d8---3 \large c4.-> d8---3 \huge c4.-> d8---3 }
Font size changes are achieved by scaling the design size that is
closest to the desired size. The standard font size (for
font-size = 0
) depends on the standard staff height.
For a 20pt staff, an 11pt font is selected.
Predefined commands
\magnifyMusic
,
\teeny
,
\tiny
,
\small
,
\normalsize
,
\large
,
\huge
.
See also
Notation Reference: Selecting font and font size, Setting the staff size, Formatting cue notes, Ossia staves.
Installed Files: ‘ly/music-functions-init.ly’, ‘ly/property-init.ly’.
Snippets: Editorial annotations.
Internals Reference: font-interface.
Known issues and warnings
There are currently two bugs that are preventing proper horizontal
spacing when using \magnifyMusic
. There is only one
available workaround, and it is not guaranteed to work in every
case. In the example below, replace the mag variable with
your own value. You may also try removing one or both of the
\newSpacingSection
commands, and/or the \override
and \revert
commands:
\magnifyMusic mag { \newSpacingSection \override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag) [music] \newSpacingSection \revert Score.SpacingSpanner.spacing-increment }
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Selecting notation font size ] | [ Up : Inside the staff ] | [ Hidden notes > ] |
Fingering instructions
Fingering instructions can be entered using ‘note-digit’:
\relative { c''4-1 d-2 f-4 e-3 }
Markup texts or strings may be used for finger changes.
\relative { c''4-1 d-2 f\finger \markup \tied-lyric #"4~3" c\finger "2 - 3" }
A thumb-script can be added (e.g., cello music) to indicate that a note should be played with the thumb.
\relative { <a'_\thumb a'-3>2 <b_\thumb b'-3> }
Fingerings for chords can also be added to individual notes by adding them after the pitches.
\relative { <c''-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5> }
Fingering instructions may be manually placed above or below the staff, see Direction and placement.
Selected Snippets
Controlling the placement of chord fingerings
The placement of fingering numbers can be controlled precisely. For fingering orientation to apply, you must use a chord construct <> even if it is a single note.
\relative c' { \set fingeringOrientations = #'(left) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down right up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(left) <c-1>2 \set fingeringOrientations = #'(down) <e-3>2 }
Allowing fingerings to be printed inside the staff
By default, vertically oriented fingerings are positioned outside the staff. However, this behavior can be canceled. Note: you must use a chord construct <>, even if it is only a single note.
\relative c' { <c-1 e-2 g-3 b-5>2 \override Fingering.staff-padding = #'() <c-1 e-2 g-3 b-5>4 <g'-0> }
Avoiding collisions with chord fingerings
Fingerings and string numbers applied to individual notes will automatically avoid beams and stems, but this is not true by default for fingerings and string numbers applied to the individual notes of chords. The following example shows how this default behavior can be overridden.
\relative c' { \set fingeringOrientations = #'(up) \set stringNumberOrientations = #'(up) \set strokeFingerOrientations = #'(up) % Default behavior r8 <f c'-5>8 <f c'\5>8 <f c'-\rightHandFinger #2 >8 % No tweak needed r8 <f c'-5>8 <f c'\5>8 % Corrected to avoid collisions \override StrokeFinger.add-stem-support = ##t <f c'-\rightHandFinger #2 >8 }
See also
Notation Reference: Direction and placement.
Snippets: Editorial annotations.
Internals Reference: FingeringEvent, fingering-event, Fingering_engraver, New_fingering_engraver, Fingering.
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Fingering instructions ] | [ Up : Inside the staff ] | [ Coloring objects > ] |
Hidden notes
Hidden (or invisible or transparent) notes can be useful in preparing theory or composition exercises.
\relative { c''4 d \hideNotes e4 f \unHideNotes g a \hideNotes b \unHideNotes c }
Note heads, stems, and flags, and rests are invisible. Beams are invisible if they start on a hidden note. Objects that are attached to invisible notes are still visible.
\relative c'' { e8(\p f g a)-- \hideNotes e8(\p f g a)-- }
Predefined commands
\hideNotes
,
\unHideNotes
.
See also
Learning Manual: Visibility and color of objects.
Notation Reference: Invisible rests, Visibility of objects, Hiding staves.
Snippets: Editorial annotations.
Internals Reference: Note_spacing_engraver, NoteSpacing.
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Hidden notes ] | [ Up : Inside the staff ] | [ Parentheses > ] |
Coloring objects
Individual objects may be assigned colors. Valid color names are listed in the List of colors.
\override NoteHead.color = #red c''4 c'' \override NoteHead.color = #(x11-color 'LimeGreen) d'' \override Stem.color = #blue e''
The full range of colors defined for X11 can be accessed by using
the Scheme function x11-color
. The function takes one
argument; this can be a symbol in the form 'FooBar
or
a string in the form "FooBar"
. The first form is
quicker to write and is more efficient. However, using the second
form it is possible to access X11 colors by the multi-word form of
its name.
If x11-color
cannot make sense of the parameter then the
color returned defaults to black.
\new Staff \with { instrumentName = \markup { \with-color #(x11-color 'red) "Clarinet" } } \relative c'' { \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2) gis8 a \override Beam.color = #(x11-color "medium turquoise") gis a \override Accidental.color = #(x11-color 'DarkRed) gis a \override NoteHead.color = #(x11-color "LimeGreen") gis a % this is deliberate nonsense; note that the stems remain black \override Stem.color = #(x11-color 'Boggle) b2 cis }
Exact RGB colors can be specified using the Scheme function
rgb-color
.
\new Staff \with { instrumentName = \markup { \with-color #(x11-color 'red) "Clarinet" } } \relative c'' { \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2) \override Stem.color = #(rgb-color 0 0 0) gis8 a \override Stem.color = #(rgb-color 1 1 1) gis8 a \override Stem.color = #(rgb-color 0 0 0.5) gis4 a }
See also
Notation Reference:
List of colors, The \tweak
command.
Snippets: Editorial annotations.
Known issues and warnings
An X11 color is not necessarily exactly the same shade as a similarly named normal color.
Not all X11 colors are distinguishable in a web browser, i.e.,
a web browser might not display a difference between LimeGreen
and ForestGreen
. For web use normal colors are recommended
(i.e., blue
, green
, red
).
Notes in a chord cannot be separately colored with
\override
; use \tweak
or the equivalent
\single\override
before the respective note instead, see
The \tweak
command.
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Coloring objects ] | [ Up : Inside the staff ] | [ Stems > ] |
Parentheses
Objects may be parenthesized by prefixing \parenthesize
to
the music event. When prefixed to a chord, it parenthesizes every
note. Individual notes inside a chord may also be parenthesized.
\relative { c''2 \parenthesize d c2 \parenthesize <c e g> c2 <c \parenthesize e g> }
Non-note objects may be parenthesized as well. For articulations,
a hyphen is needed before the \parenthesize
command.
\relative { c''2-\parenthesize -. d c2 \parenthesize r }
See also
Snippets: Editorial annotations.
Internals Reference: Parenthesis_engraver, ParenthesesItem, parentheses-interface.
Known issues and warnings
Parenthesizing a chord prints parentheses around each individual note, instead of a single large parenthesis around the entire chord.
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Parentheses ] | [ Up : Inside the staff ] | [ Outside the staff > ] |
Stems
Whenever a note is found, a Stem
object is created
automatically. For whole notes and rests, they are also created but
made invisible.
Stems may be manually placed to point up or down; see Direction and placement.
Predefined commands
\stemUp
,
\stemDown
,
\stemNeutral
.
Selected Snippets
Default direction of stems on the center line of the staff
The default direction of stems on the center line of the staff is set
by the Stem
property neutral-direction
.
\relative c'' { a4 b c b \override Stem.neutral-direction = #up a4 b c b \override Stem.neutral-direction = #down a4 b c b }
Automatically changing the stem direction of the middle note based on the melody
LilyPond can alter the stem direction of the middle note on a staff so
that it follows the melody, by adding the Melody_engraver
to the
Voice context and overriding the neutral-direction
of Stem.
\relative c'' { \time 3/4 a8 b g f b g | c b d c b c | } \layout { \context { \Voice \consists "Melody_engraver" \autoBeamOff \override Stem.neutral-direction = #'() } }
See also
Notation Reference: Direction and placement.
Snippets: Editorial annotations.
Internals Reference: Stem_engraver, Stem, stem-interface.
[ << Musical notation ] | [Top][Contents][Index][ ? ] | [ Specialist notation >> ] | ||
[ < Parentheses ] | [ Up : Inside the staff ] | [ Outside the staff > ] |
Andere talen: català, deutsch, español, français, italiano, 日本語.
About automatic language selection.