@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
@end ignore

@node Editorial annotations
@section Editorial annotations

@lilypondfile[quote]{editorial-headword.ly}

This section discusses the various ways to change the appearance of 
notes and add analysis or educational emphasis.

@menu
* Inside the staff::            
* Outside the staff::           
@end menu


@node Inside the staff
@subsection Inside the staff

This section discusses how to add emphasis to elements that are 
inside the staff.

@menu
* Selecting notation font size::  
* Fingering instructions::      
* Hidden notes::                
* Coloring objects::            
* Parentheses::                 
* Stems::                       
@end menu

@node Selecting notation font size
@subsubsection Selecting notation font size

@cindex font size
@cindex font size, selecting
@cindex selecting font size

The easiest method of setting the font size of any context is by
setting the @code{fontSize} property.

@lilypond[quote,fragment,relative=2,verbatim,ragged-right]
c4
\set fontSize = #-4
c f
\set fontSize = #3
g8 a
@end lilypond

@noindent
It does not change the size of variable symbols, such as beams or
slurs.

@cindex font size scaling

Internally, the @code{fontSize} context property will cause the
@code{font-size} property to be set in all layout objects.  The
value of @code{font-size} is a number indicating the size relative
to the standard size for the current staff height.  Each step up
is an increase of approximately 12% of the font size.  Six steps
is exactly a factor two.  The Scheme function @code{magstep}
converts a @code{font-size} number to a scaling factor.  The
@code{font-size} property can also be set directly, so that only
certain layout objects are affected.

@lilypond[quote,fragment,relative=2,verbatim,ragged-right]
c4
\override NoteHead #'font-size = #-4
c f
\override NoteHead #'font-size = #3
g8 a
@end lilypond

@cindex standard font size
@cindex font size, standard

Font size changes are achieved by scaling the design size that is
closest to the desired size.  The standard font size (for
@code{font-size} equals 0), depends on the standard staff height.
For a 20pt staff, a 10pt font is selected.

The @code{font-size} property can only be set on layout objects that
use fonts.  These are the ones supporting the @code{font-interface}
layout interface.

@predefined

The following commands set @code{fontSize} for the current voice:

@funindex \tiny
@code{\tiny},
@funindex \small
@code{\small},
@funindex \normalsize
@code{\normalsize}.

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.

Internals Reference: @internalsref{font-interface}.


@node Fingering instructions
@subsubsection Fingering instructions

@cindex fingering
@cindex finger change

Fingering instructions can be entered using
@var{note}-@var{digit}:

Fingering instructions may be manually placed above or below the
staff, see @ref{Controlling direction and placement}.

@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
c4-1 d-2 f-4 e-3
@end lilypond

Use markup texts for finger changes. 

@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
@end lilypond

@cindex thumb-script

You can use the thumb-script (e.g., in cello music)to indicate that a 
note should be played with the thumb. 

@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
<a_\thumb a'-3>2 <b_\thumb b'-3>
@end lilypond

@cindex fingering chords
@cindex chords, fingering

Fingerings for chords can also be added to individual notes of the
chord by adding them after the pitches.

@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
< c-1 e-2 g-3 b-5 >2 < d-1 f-2 a-3 c-5 >
@end lilypond


@snippets

@code{fingeringOrientations} are used to control where the fingering
numbers are placed.

@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
\set fingeringOrientations = #'(left)
<c-1 e-3 a-5 > 4
\set fingeringOrientations = #'(down)
<c-1 e-3 a-5 > 
\set fingeringOrientations = #'(right)
<c-1 e-3 a-5 > 
\set fingeringOrientations = #'(up)
<c-1 e-3 a-5 > 
\set fingeringOrientations = #'(left down)
<c-1 e-3 a-5 > 2
\set fingeringOrientations = #'(up right down)
<c-1 e-3 a-5 >
@end lilypond

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.

Internals Reference: @internalsref{Fingering}.


@node Hidden notes
@subsubsection Hidden notes

@cindex Hidden notes
@cindex Invisible notes
@cindex Transparent notes
@funindex \hideNotes
@funindex \unHideNotes

Hidden (or invisible or transparent) notes can be useful in
preparing theory or composition exercises.

@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
c4 d
\hideNotes
e4 f
\unHideNotes
g a
\hideNotes 
b
\unHideNotes
c
@end lilypond

@predefined

@code{\hideNotes}, @code{\unHideNotes}

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.


@node Coloring objects
@subsubsection Coloring objects

@cindex colored objects
@cindex colors
@cindex coloring objects
@cindex colored notes
@cindex coloring notes
@cindex notes, colored

Individual objects may be assigned colors.  You may use the color
names listed in the @ref{List of colors}.

@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
\override NoteHead #'color = #red
c4 c
\override NoteHead #'color = #(x11-color 'LimeGreen)
d
\override Stem #'color = #blue
e
@end lilypond

@cindex x11-color

The full range of colors defined for X11 can be accessed by using
the Scheme function @code{x11-color}.  The function takes one
argument; this can be a symbol in the form @var{'FooBar} or a
string in the form @var{"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 @code{x11-color} cannot make sense of the parameter then the
color returned defaults to black. 

@lilypond[quote,ragged-right,verbatim,fragment,relative=2]

\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
\set Staff.instrumentName = \markup {
  \with-color #(x11-color 'navy) "Clarinet"
}

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

@end lilypond

You can get exact RGB colors by specifying the rgb-color number.

@lilypond[quote,ragged-right,verbatim,fragment,relative=2]

  \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
  \set Staff.instrumentName = \markup {
    \with-color #(x11-color 'navy) "Clarinet"
  }
  
  %black
  \override Stem #'color = #(rgb-color 0 0 0)
  gis8 a
  % white
  \override Stem #'color = #(rgb-color 1 1 1)
  gis8 a
  % dark blue
  \override Stem #'color = #(rgb-color 0 0 0.5) 
  gis4 a

@end lilypond

@seealso

Notation Reference: @ref{List of colors}, @ref{Objects connected to
the input}.

Snippets: @lsrdir{Editorial,Editorial-annotations}.

@knownissues
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 colored with @code{\override}; use
@code{\tweak} instead, see @ref{Objects connected to the input}.


@node Parentheses
@subsubsection Parentheses

@cindex ghost notes
@cindex notes, ghost
@cindex notes, parenthesized
@cindex parentheses

Objects may be parenthesized by prefixing @code{\parenthesize} to
the music event.  This only functions inside chords; to
parenthesize a single note it must be enclosed with @code{<>} as
if it is a chord.

@lilypond[relative=2,fragment,verbatim,ragged-right]
c2 < \parenthesize d>
@end lilypond

Non-note objects may be parenthesized as well.

@lilypond[relative=2,fragment,verbatim,ragged-right]
< c d g >2-\parenthesize -. d
@end lilypond

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.


@node Stems
@subsubsection Stems

@cindex stem

Whenever a note is found, a @code{Stem} object is created
automatically.  For whole notes and rests, they are also created but
made invisible.

@predefined

@funindex \stemUp
@code{\stemUp},
@funindex \stemDown
@code{\stemDown},
@funindex \stemNeutral
@code{\stemNeutral}.


@snippets

@cindex stem, direction
@cindex stem, up
@cindex stem, down
@cindex stem, neutral

To change the direction of stems on the center line of the staff, use

@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
a4 b c b
\override Stem #'neutral-direction = #up
a4 b c b
\override Stem #'neutral-direction = #down
a4 b c b
@end lilypond

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.


@node Outside the staff
@subsection Outside the staff

This section discusses how to add emphasis to elements in the staff 
from outside of the staff. 

@menu
* Balloon help::                
* Grid lines::                  
* Analysis brackets::           
@end menu

@node Balloon help
@subsubsection Balloon help

Elements of notation can be marked and named with the help of a
square balloon.  The primary purpose of this feature is to explain
notation.

The following example demonstrates its use.

@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Voice \with { \consists "Balloon_engraver" }
     {
      \time 2/4
       \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
       a8
       <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } 
c>4. 
     }

@end lilypond

There are two music functions, @code{balloonGrobText} and
@code{balloonText};  The former is used like \once \override to 
attach text to any grob, and the latter is used like \tweak, 
typically within chords, to attach text to an individual note.

@cindex balloon
@cindex notation, explaining

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.

Internals Reference: @internalsref{text-balloon-interface}.


@node Grid lines
@subsubsection Grid lines

Vertical lines can be drawn between staves synchronized with the
notes.

@lilypond[ragged-right,quote,verbatim]
\layout {
  \context {
    \Staff
    \consists "Grid_point_engraver" 
    % sets up grids
    gridInterval = #(ly:make-moment 1 4)
    % this sets the grid interval to 1 quarternote (crotchet)
  }
}

\new Score \with {
  \consists "Grid_line_span_engraver"
  %% by default this centers grid lines horizontally below and to the 
  % left side of the notehead, the grid lines extend from 
  % the middle lines of each staff
}

\new ChoirStaff <<
  \new Staff {
    \stemUp
    \relative {
      c'4. d8 e8 f g4
    }
  }
  \new Staff {
    \stemDown
    \clef bass
    \relative c {
      c4  g'  f  e
    }
  }
>>
@end lilypond

To change the grid lines use \override.


@lilypond[ragged-right,quote,verbatim]
\layout {
  \context {
    \Staff
    \consists "Grid_point_engraver" 
    % sets up grids
       gridInterval = #(ly:make-moment 1 4)
       % this sets the grid interval to 1 quarternote (crotchet)
  }
}

\new Score \with {
  \consists "Grid_line_span_engraver"
  \override NoteColumn #'X-offset = #-0.5
  % this moves them to the right half a staff space
}

\new ChoirStaff <<
  \new Staff {
    \stemUp
    \relative {
      c'4. d8 e8 f g4
    }
  }
  \new Staff {
    \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
    % this moves them up one staff space from the default position
    \stemDown
    \clef bass
    \relative c {
      c4  g'  f  e
    }
  }
>>
@end lilypond

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.




@node Analysis brackets
@subsubsection Analysis brackets

@cindex brackets
@cindex phrasing brackets
@cindex musicological analysis
@cindex note grouping bracket

Brackets are used in musical analysis to indicate structure in musical
pieces.  LilyPond supports a simple form of nested horizontal
brackets.  To use this, add the @code{Horizontal_bracket_engraver} to
the @code{Staff} context.  A bracket is started with
@code{\startGroup} and closed with @code{\stopGroup}.

@lilypond[quote,ragged-right,verbatim]
\score {
  \relative c'' {
    c4\startGroup\startGroup
    c4\stopGroup
    c4\startGroup
    c4\stopGroup\stopGroup
  }
  \layout {
    \context {
      \Staff \consists "Horizontal_bracket_engraver"
    }
  }
}
@end lilypond

@seealso

Snippets: @lsrdir{Editorial,Editorial-annotations}.

Internals Reference: @internalsref{HorizontalBracket},
@internalsref{Horizontal_bracket_engraver}, @internalsref{Staff}.

