@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.  For details, see the Contributors'
    Guide, node Updating translation committishes..
@end ignore

@c \version "2.21.0"


@node Pitches
@section Pitches

@lilypondfile[quote]{snippets/pitches-headword.ly}

This section discusses how to specify the pitch of notes.  There
are three steps to this process: input, modification, and output.

@menu
* Writing pitches::
* Changing multiple pitches::
* Displaying pitches::
* Note heads::
@end menu


@node Writing pitches
@subsection Writing pitches

This section discusses how to input pitches.  There are two
different ways to place notes in octaves: absolute and relative
mode.  In most cases, relative mode will be more convenient.

@menu
* Absolute octave entry::
* Relative octave entry::
* Accidentals::
* Note names in other languages::
@end menu


@node Absolute octave entry
@unnumberedsubsubsec Absolute octave entry

@cindex pitch name
@cindex pitch
@cindex absolute
@cindex absolute octave specification
@cindex octave specification, absolute
@cindex absolute octave entry
@cindex octave entry, absolute

A pitch name is specified using lowercase letters@tie{}@code{a}
through@tie{}@code{g}.  The note names @code{c} to @code{b} are
engraved in the octave below middle C.

@c don't use c' here.
@lilypond[verbatim,quote]
{
  \clef bass
  c4 d e f
  g4 a b c
  d4 e f g
}
@end lilypond

@cindex octave changing mark

@funindex '
@funindex ,

Other octaves may be specified with a single quote@tie{}(@code{'})
or comma@tie{}(@code{,}) character.  Each@tie{}@code{'} raises the
pitch by one octave; each@tie{}@code{,} lowers the pitch by an
octave.

@lilypond[verbatim,quote]
{
  \clef treble
  c'4 e' g' c''
  c'4 g b c'
  \clef bass
  c,4 e, g, c
  c,4 g,, b,, c,
}
@end lilypond

@funindex \fixed
Common octave marks can be entered just once on a reference pitch
after @code{\fixed} placed before the music.  Pitches inside
@code{\fixed} only need @code{'} or@tie{}@code{,} marks
when they are above or below the octave of the reference pitch.

@lilypond[verbatim,quote]
{
  \fixed c' {
    \clef treble
    c4 e g c'
    c4 g, b, c
  }
  \clef bass
  \fixed c, {
    c4 e g c'
    c4 g, b, c
  }
}
@end lilypond

Pitches in the music expression following @code{\fixed} are
unaffected by any enclosing @code{\relative}, discussed next.

@morerefs
Music Glossary:
@rglos{Pitch names}.

Snippets:
@rlsr{Pitches}.
@endmorerefs


@node Relative octave entry
@unnumberedsubsubsec Relative octave entry

@cindex relative
@cindex relative octave entry
@cindex octave entry, relative
@cindex relative octave specification
@cindex octave specification, relative

@funindex \relative

Absolute octave entry requires specifying the octave for every
single note.  Relative octave entry, in contrast, specifies each
octave in relation to the last note: changing one note's octave
will affect all of the following notes.

Relative note mode has to be entered explicitly using the
@code{\relative} command:

@example
\relative @var{startpitch} @var{musicexpr}
@end example

In relative mode, each note is assumed to be as close to the
previous note as possible.  This means that the octave of each
pitch inside @code{@var{musicexpr}} is calculated as follows:

@itemize
@item
If no octave changing mark is used on a pitch, its octave is
calculated so that the interval with the previous note is less
than a fifth.  This interval is determined without considering
accidentals.

@item
An octave changing mark@tie{}@code{'} or@tie{}@code{,} can be
added to respectively raise or lower a pitch by an extra octave,
relative to the pitch calculated without an octave mark.

@item
Multiple octave changing marks can be used.  For example,
@code{''}@tie{}and@tie{}@code{,,} will alter the pitch by two
octaves.

@item
The pitch of the first note is relative to
@code{@var{startpitch}}.  @code{@var{startpitch}} is specified in
absolute octave mode.  Which choices are meaningful?

@table @asis
@item an octave of @code{c}
Identifying middle C with @code{c'} is quite basic, so finding
octaves of @code{c} tends to be straightforward.  If your music
starts with @code{gis} above @code{c'''}, you'd write something
like @code{\relative c''' @{ gis' @dots{} @}}

@item an octave of the first note inside
Writing @code{\relative gis''' @{ gis @dots{} @}} makes it easy to
determine the absolute pitch of the first note inside.

@item no explicit starting pitch
The form @code{\relative @{ gis''' @dots{} @}} serves
as a compact version of the previous option: the first note
inside is written in absolute pitch itself.  (This happens to be
equivalent to choosing @code{f} as the reference pitch.)
@end table

The documentation will usually employ the last option.
@end itemize

Here is the relative mode shown in action:

@lilypond[verbatim,quote]
\relative {
  \clef bass
  c d e f
  g a b c
  d e f g
}
@end lilypond

Octave changing marks are used for intervals greater than a
fourth:

@lilypond[verbatim,quote]
\relative {
  c'' g c f,
  c' a, e'' c
}
@end lilypond

A note sequence without a single octave mark can nevertheless span
large intervals:

@lilypond[verbatim,quote]
\relative {
  c f b e
  a d g c
}
@end lilypond

When @code{\relative} blocks are nested, the innermost
@code{\relative} block starts with its own reference pitch
independently of the outer @code{\relative}.

@lilypond[verbatim,quote]
\relative {
  c' d e f
  \relative {
    c'' d e f
  }
}
@end lilypond

@code{\relative} has no effect on @code{\chordmode} blocks.

@lilypond[verbatim,quote]
\new Staff {
  \relative c''' {
    \chordmode { c1 }
  }
  \chordmode { c1 }
}
@end lilypond

@code{\relative} is not allowed inside of @code{\chordmode} blocks.

Music inside a @code{\transpose} block is absolute unless a
@code{\relative} is included.

@lilypond[verbatim,quote]
\relative {
  d' e
  \transpose f g {
    d e
    \relative {
      d' e
    }
  }
}
@end lilypond


@cindex chord, and relative octave entry
@cindex relative octave entry, and chords

If the preceding item is a chord, the first note of the chord is
used as the reference point for the octave placement of a
following note or chord.  Inside chords, the next note is always
relative to the preceding one.  Examine the next example
carefully, paying attention to the @code{c} notes.

@lilypond[verbatim,quote]
\relative {
  c'
  <c e g>
  <c' e g'>
  <c, e, g''>
}
@end lilypond

As explained above, the octave of pitches is calculated only with
the note names, regardless of any alterations.  Therefore, an
E-double-sharp following a B will be placed higher, while an
F-double-flat will be placed lower.  In other words, a
double-augmented fourth is considered a smaller interval than a
double-diminished fifth, regardless of the number of semitones
that each interval contains.

@lilypond[verbatim,quote]
\relative {
  c''2 fis
  c2 ges
  b2 eisis
  b2 feses
}
@end lilypond

In complex situations, it is sometimes useful to get back to a
certain pitch regardless of what happened before. This can be
done using @code{\resetRelativeOctave}:

@lilypond[verbatim,quote]
\relative {
  <<
    { c''2 d }
    \\
    { e,,2 f }
  >>
  \resetRelativeOctave c''
  c2
}
@end lilypond

@funindex \resetRelativeOctave


@morerefs
Music Glossary:
@rglos{fifth},
@rglos{interval},
@rglos{Pitch names}.

Notation Reference:
@ref{Octave checks}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{RelativeOctaveMusic}.
@endmorerefs

@cindex relative octave entry, and transposition
@cindex transposition, and relative octave entry

@funindex \transpose
@funindex \chordmode
@funindex \relative


@node Accidentals
@unnumberedsubsubsec Accidentals

@cindex accidental
@cindex key signature
@cindex clef

@c duplicated in Key signature and Accidentals
@warning{New users are sometimes confused about accidentals and
key signatures.  In LilyPond, note names specify pitches; key
signatures and clefs determine how these pitches are displayed.
An unaltered note like@tie{}@code{c} means @q{C natural},
regardless of the key signature or clef.  For more information,
see @rlearning{Pitches and key signatures}.}

@cindex note name, Dutch
@cindex note name, default
@cindex default note name
@cindex sharp
@cindex flat
@cindex double sharp
@cindex sharp, double
@cindex double flat
@cindex flat, double
@cindex natural sign
@cindex natural pitch

A @notation{sharp} pitch is made by adding @code{is} to the note
name, and a @notation{flat} pitch by adding @code{es}.  As you
might expect, a @notation{double sharp} or @notation{double flat}
is made by adding @code{isis} or @code{eses}.  This syntax is
derived from Dutch note naming conventions.  To use other names
for accidentals, see @ref{Note names in other languages}.

@lilypond[verbatim,quote,fragment]
\relative c'' { ais1 aes aisis aeses }
@end lilypond

A natural pitch is entered as a simple note name; no suffix is
required.  A natural sign will be printed when needed to cancel
the effect of an earlier accidental or key signature.

@lilypond[verbatim,quote,fragment]
\relative c'' { a4 aes a2 }
@end lilypond

@cindex quarter tone
@cindex semi-flat
@cindex semi-sharp

Quarter tones may be added; the following is a series of Cs with
increasing pitches:

@lilypond[verbatim,quote,fragment]
\relative c'' { ceseh1 ces ceh c cih cis cisih }
@end lilypond



@cindex accidental, reminder
@cindex accidental, cautionary
@cindex accidental, parenthesized
@cindex reminder accidental
@cindex cautionary accidental
@cindex parenthesized accidental

@funindex ?
@funindex !


Normally accidentals are printed automatically, but you may also
print them manually.  A reminder accidental can be forced by
adding an exclamation mark@tie{}@code{!} after the pitch.  A
cautionary accidental (i.e., an accidental within parentheses) can
be obtained by adding the question mark@tie{}@code{?} after the
pitch.

@lilypond[verbatim,quote,fragment]
\relative c'' { cis cis cis! cis? c c c! c? }
@end lilypond

@cindex accidental, on tied note
@cindex tied note, accidental

Accidentals on tied notes are only printed at the beginning of a
new system:

@lilypond[verbatim,quote,fragment,ragged-right]
\relative c'' {
  cis1~ 1~
  \break
  cis
}
@end lilypond


@snippets

@cindex hiding accidentals, on tied notes at start of system
@cindex accidental, hiding, on tied notes at start of system
@lilypondfile[verbatim,quote,texidoc,doctitle,ragged-right]
{snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly}

@cindex natural sign, extra, preventing
@cindex extra natural sign, preventing
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/preventing-extra-naturals-from-being-automatically-added.ly}

@morerefs
Music Glossary:
@rglos{sharp},
@rglos{flat},
@rglos{double sharp},
@rglos{double flat},
@rglos{Pitch names},
@rglos{quarter tone}.

Learning Manual:
@rlearning{Pitches and key signatures}.

Notation Reference:
@ref{Automatic accidentals},
@ref{Annotational accidentals (musica ficta)},
@ref{Note names in other languages}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{Accidental_engraver},
@rinternals{Accidental},
@rinternals{AccidentalCautionary},
@rinternals{accidental-interface}.
@endmorerefs

@cindex accidental, quarter tone
@cindex quarter tone accidental

@knownissues
There are no generally accepted standards for denoting
quarter tone accidentals, so LilyPond's symbols do not conform to
any standard.


@node Note names in other languages
@unnumberedsubsubsec Note names in other languages

@cindex note name, other languages
@cindex pitch name, other languages
@cindex language, note names in other
@cindex language, pitch names in other

There are predefined sets of note and accidental names for various
other languages.  Selecting the note name language is usually done
at the beginning of the file; the following example is written
using Italian note names:

@lilypond[quote,verbatim]
\language "italiano"

\relative {
  do' re mi sib
}
@end lilypond

The available languages and the note names they define are:

@indentedBlock
@multitable {@w{@code{português} or}} {@code{do} @code{re}/@code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}}
@headitem Language
  @tab Note Names
@item @code{nederlands}
  @tab @code{c} @code{d} @code{e} @code{f} @code{g} @code{a} @code{bes} @code{b}
@item @code{català} or@*@ @code{catalan}
  @tab @code{do} @code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}
@item @code{deutsch}
  @tab @code{c} @code{d} @code{e} @code{f} @code{g} @code{a} @code{b} @code{h}
@item @code{english}
  @tab @code{c} @code{d} @code{e} @code{f} @code{g} @code{a} @code{bf}/@code{b-flat} @code{b}
@item @code{español} or@*@ @code{espanol}
  @tab @code{do} @code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}
@item @code{français}
  @tab @code{do} @code{ré}/@code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}
@item @code{italiano}
  @tab @code{do} @code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}
@item @code{norsk}
  @tab @code{c} @code{d} @code{e} @code{f} @code{g} @code{a} @code{b} @code{h}
@item @code{português} or@*@ @code{portugues}
  @tab @code{do} @code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}
@item @code{suomi}
  @tab @code{c} @code{d} @code{e} @code{f} @code{g} @code{a} @code{b} @code{h}
@item @code{svenska}
  @tab @code{c} @code{d} @code{e} @code{f} @code{g} @code{a} @code{b} @code{h}
@item @code{vlaams}
  @tab @code{do} @code{re} @code{mi} @code{fa} @code{sol} @code{la} @code{sib} @code{si}
@end multitable
@endIndentedBlock

In addition to note names, accidental suffixes may
also vary depending on the language:

@indentedBlock
@multitable {@w{@code{português} or}} {@code{s}/@code{-sharp}} {@code{f}/@code{-flat}} {@code{ss}/@code{x}/@code{-sharpsharp}} {@code{ff}/@code{-flatflat}}
@headitem Language
  @tab sharp @tab flat @tab double sharp @tab double flat
@item @code{nederlands}
  @tab @code{is} @tab @code{es} @tab @code{isis} @tab @code{eses}
@item @code{català} or@*@ @code{catalan}
  @tab @code{d}/@code{s} @tab @code{b} @tab @code{dd}/@code{ss}
    @tab @code{bb}
@item @code{deutsch}
  @tab @code{is} @tab @code{es} @tab @code{isis} @tab @code{eses}
@item @code{english}
  @tab @code{s}/@code{-sharp} @tab @code{f}/@code{-flat}
    @tab @code{ss}/@code{x}/@code{-sharpsharp}
    @tab @code{ff}/@code{-flatflat}
@item @code{español} or@*@ @code{espanol}
  @tab @code{s} @tab @code{b} @tab @code{ss}/@code{x} @tab @code{bb}
@item @code{français}
  @tab @code{d} @tab @code{b} @tab @code{dd}/@code{x} @tab @code{bb}
@item @code{italiano}
  @tab @code{d} @tab @code{b} @tab @code{dd} @tab @code{bb}
@item @code{norsk}
  @tab @code{iss}/@code{is} @tab @code{ess}/@code{es}
    @tab @code{ississ}/@code{isis} @tab @code{essess}/@code{eses}
@item @code{português} or@*@ @code{portugues}
  @tab @code{s} @tab @code{b} @tab @code{ss} @tab @code{bb}
@item @code{suomi}
  @tab @code{is} @tab @code{es} @tab @code{isis} @tab @code{eses}
@item @code{svenska}
  @tab @code{iss} @tab @code{ess} @tab @code{ississ} @tab @code{essess}
@item @code{vlaams}
  @tab @code{k} @tab @code{b} @tab @code{kk} @tab @code{bb}
@end multitable
@endIndentedBlock

In Dutch, German, Norwegian, and Finnish, @code{aes} is contracted to
@code{as}; in Dutch and Norwegian, however, both forms are accepted by
LilyPond.  Exactly the same holds for @code{es} and @code{ees},
@code{aeses} and @code{ases}, and finally @code{eeses} and @code{eses}.

In German and Finnish, LilyPond additionally provides the more frequent
form @code{asas} for @code{ases}.

@lilypond[verbatim,quote,fragment]
\relative c'' { a2 as e es a ases e eses }
@end lilypond


@cindex microtone
@cindex semi-sharp
@cindex semi-flat
@cindex sesqui-sharp
@cindex sesqui-flat

Some music uses microtones whose alterations are fractions of a
@q{normal} sharp or flat.  The following table lists note name suffixes
for quarter tone accidentals; here the prefixes @notation{semi-} and
@notation{sesqui-} respectively mean @q{half} and @q{one and a half}.

@indentedBlock
@multitable {@w{@code{português} or}} {@b{semi-sharp}} {@b{semi-flat}} {@b{sesqui-sharp}} {@code{esseh}/@code{eseh}}
@headitem Language
  @tab semi-sharp @tab semi-flat @tab sesqui-sharp @tab sesqui-flat
@item @code{nederlands}
  @tab @code{ih} @tab @code{eh} @tab @code{isih} @tab @code{eseh}
@item @code{català} or@*@ @code{catalan}
  @tab @code{qd}/@code{qs} @tab @code{qb} @tab @code{tqd}/@code{tqs}
   @tab @code{tqb}
@item @code{deutsch}
  @tab @code{ih} @tab @code{eh} @tab @code{isih} @tab @code{eseh}
@item @code{english}
  @tab @code{qs} @tab @code{qf} @tab @code{tqs} @tab @code{tqf}
@item @code{español} or@*@ @code{espanol}
  @tab @code{cs} @tab @code{cb} @tab @code{tcs} @tab @code{tcb}
@item @code{français}
  @tab @code{sd} @tab @code{sb} @tab @code{dsd} @tab @code{bsb}
@item @code{italiano}
  @tab @code{sd} @tab @code{sb} @tab @code{dsd} @tab @code{bsb}
@item @code{norsk}
  @tab @code{ih} @tab @code{eh} @tab @code{issih}/@code{isih}
   @tab @code{esseh}/@code{eseh}
@item @code{português} or@*@ @code{portugues}
  @tab @code{sqt} @tab @code{bqt} @tab @code{stqt} @tab @code{btqt}
@item @code{suomi}
  @tab @code{ih} @tab @code{eh} @tab @code{isih} @tab @code{eseh}
@item @code{svenska}
  @tab @code{ih} @tab @code{eh} @tab @code{issih} @tab @code{esseh}
@item @code{vlaams}
  @tab @code{hk} @tab @code{hb} @tab @code{khk} @tab @code{bhb}
@end multitable
@endIndentedBlock

In German, there are similar name contractions for microtones as with normal
pitches described above.

@lilypond[verbatim,quote,fragment]
\language "deutsch"

\relative c'' { asah2 eh aih eisih }
@end lilypond

Most languages presented here are commonly associated with
Western classical music, also referred to as
@notation{Common Practice Period}.  However, alternate
pitches and tuning systems are also supported: see
@ref{Common notation for non-Western music}.

@morerefs
Music Glossary:
@rglos{Pitch names},
@rglos{Common Practice Period}.

Notation Reference:
@ref{Common notation for non-Western music}.

Installed Files:
@file{scm/define-note-names.scm}.

Snippets:
@rlsr{Pitches}.
@endmorerefs


@node Changing multiple pitches
@subsection Changing multiple pitches

This section discusses how to modify pitches.

@menu
* Octave checks::
* Transpose::
* Inversion::
* Retrograde::
* Modal transformations::
@end menu

@node Octave checks
@unnumberedsubsubsec Octave checks

@cindex octave correction
@cindex octave check
@cindex control pitch

@c `@funindex \=' is auto-generated
@funindexpre =
@funindex \octaveCheck
@funindex controlpitch

In relative mode, it is easy to forget an octave changing mark.
Octave checks make such errors easier to find by displaying a
warning and correcting the octave if a note is found in an
unexpected octave.

To check the octave of a note, specify the absolute octave after
the @code{=}@tie{}symbol.  This example will generate a warning
(and change the pitch) because the second note is the absolute
octave @code{d''} instead of @code{d'} as indicated by the octave
correction.

@lilypond[verbatim,quote]
\relative {
  c''2 d='
  e2 f
}
@end lilypond

The octave of notes may also be checked with the
@code{\octaveCheck@tie{}@var{controlpitch}} command.
@code{@var{controlpitch}} is specified in absolute mode.  This
checks that the interval between the previous note and the
@code{@var{controlpitch}} is within a fourth (i.e., the normal
calculation of relative mode).  If this check fails, a warning is
printed.  While the previous note itself is not changed, future
notes are relative to the corrected value.

@lilypond[verbatim,quote]
\relative {
  c''2 d
  \octaveCheck c'
  e2 f
}
@end lilypond

Compare the two bars below.  The first and third @code{\octaveCheck}
checks fail, but the second one does not fail.

@lilypond[verbatim,quote]
\relative {
  c''4 f g f

  c4
  \octaveCheck c'
  f
  \octaveCheck c'
  g
  \octaveCheck c'
  f
}
@end lilypond

@morerefs
Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{RelativeOctaveCheck}.
@endmorerefs


@node Transpose
@unnumberedsubsubsec Transpose

@cindex transpose
@cindex transposing
@cindex transposition
@cindex transposition, of pitches
@cindex transposition, of notes
@cindex pitch, transposition of
@cindex note, transposition of

@funindex \transpose

A music expression can be transposed with @code{\transpose}.  The
syntax is

@example
\transpose @var{frompitch} @var{topitch} @var{musicexpr}
@end example

@noindent
This means that @code{@var{musicexpr}} is transposed by the
interval between the pitches @code{@var{frompitch}} and
@code{@var{topitch}}: any note with pitch @code{@var{frompitch}}
is changed to @code{@var{topitch}} and any other note is
transposed by the same interval.  Both pitches are entered in
absolute mode.

@warning{Music inside a @code{@bs{}transpose} block is absolute
unless a @code{@bs{}relative} is included in the block.}

Consider a piece written in the key of D-major.  It can be
transposed up to E-major; note that the key signature is
automatically transposed as well.

@lilypond[verbatim,quote]
\transpose d e {
  \relative {
    \key d \major
    d'4 fis a d
  }
}
@end lilypond

@cindex transposing instrument
@cindex instrument, transposing

If a part written in C (normal @notation{concert pitch}) is to be
played on the A clarinet (for which an A is notated as a C and
thus sounds a minor third lower than notated), the appropriate
part will be produced with:

@lilypond[verbatim,quote]
\transpose a c' {
  \relative {
    \key c \major
    c'4 d e g
  }
}
@end lilypond

@noindent
Note that we specify @w{@code{\key c \major}} explicitly.  If we
do not specify a key signature, the notes will be transposed but
no key signature will be printed.

@code{\transpose} distinguishes between enharmonic pitches: both
@w{@code{\transpose c cis}} or @w{@code{\transpose c des}} will
transpose up a semitone.  The first version will print sharps and
the notes will remain on the same scale step, the second version
will print flats on the scale step above.

@lilypond[verbatim,quote]
music = \relative { c' d e f }
\new Staff {
  \transpose c cis { \music }
  \transpose c des { \music }
}
@end lilypond


@code{\transpose} may also be used in a different way, to input
written notes for a transposing instrument.  The previous examples
show how to enter pitches in C (or @notation{concert pitch}) and
typeset them for a transposing instrument, but the opposite is
also possible if you for example have a set of instrumental parts
and want to print a conductor's score.  For example, when entering
music for a B-flat trumpet that begins on a notated E (concert D),
one would write:

@example
musicInBflat = @{ e4 @dots{} @}
\transpose c bes, \musicInBflat
@end example

@noindent
To print this music in F (e.g., rearranging to a French horn) you
could wrap the existing music with another @code{\transpose}:

@example
musicInBflat = @{ e4 @dots{} @}
\transpose f c' @{ \transpose c bes, \musicInBflat @}
@end example

@noindent
For more information about transposing instruments,
see @ref{Instrument transpositions}.


@snippets

@cindex transposition, pitches, @q{smart}
@cindex pitches, @q{smart} transposition
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/transposing-pitches-with-minimum-accidentals-smart-transpose.ly}


@morerefs
Notation Reference:
@ref{Instrument transpositions},
@ref{Inversion},
@ref{Modal transformations},
@ref{Relative octave entry},
@ref{Retrograde}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{TransposedMusic}.
@endmorerefs

@funindex \transpose
@funindex \chordmode
@funindex \relative

@knownissues
The relative conversion will not affect @code{\transpose},
@code{\chordmode} or @code{\relative} sections in its argument.  To use
relative mode within transposed music, an additional @code{\relative}
must be placed inside @code{\transpose}.

Triple accidentals will not be printed if using @code{\transpose}. An
@q{enharmonically equivalent} pitch will be used instead (e.g., d-flat
rather than e-triple-flat).


@node Inversion
@unnumberedsubsubsec Inversion

@cindex inversion
@cindex operation, inversion
@funindex \inversion

A music expression can be inverted and transposed in a single
operation with:

@example
\inversion @var{around-pitch} @var{to-pitch} @var{musicexpr}
@end example

The @code{@var{musicexpr}} is inverted interval by interval around
@code{@var{around-pitch}}, and then transposed so that
@code{@var{around-pitch}} is mapped to @code{@var{to-pitch}}.

@lilypond[verbatim,quote]
music = \relative { c' d e f }
\new Staff {
  \music
  \inversion d' d' \music
  \inversion d' ees' \music
}
@end lilypond

@warning{Motifs to be inverted should be expressed in absolute form
or be first converted to absolute form by enclosing them in a
@code{@bs{}relative} block.}

@morerefs
Notation Reference:
@ref{Modal transformations},
@ref{Retrograde},
@ref{Transpose}.
@endmorerefs


@node Retrograde
@unnumberedsubsubsec Retrograde

@cindex retrograde transformation
@cindex transformation, retrograde
@cindex operation, retrograde
@funindex \retrograde

A music expression can be reversed to produce its retrograde:

@lilypond[verbatim,quote]
music = \relative { c'8. ees16( fis8. a16 b8.) gis16 f8. d16 }

\new Staff {
  \music
  \retrograde \music
}
@end lilypond

@knownissues
@code{\retrograde} is a rather simple tool.  Since many events are
@q{mirrored} rather than exchanged, tweaks and directional
modifiers for opening spanners need to be added at the matching
closing spanners: @code{^(} needs to be ended by @code{^)}, every
@code{\<} or @code{\cresc} needs to be ended by @code{\!} or
@code{\endcr}, every @code{\>} or @code{\decr} needs to be ended
by @code{\enddecr}.  Property-changing commands/overrides with a
lasting effect will likely cause surprises.

@morerefs
Notation Reference:
@ref{Inversion},
@ref{Modal transformations},
@ref{Transpose}.
@endmorerefs


@node Modal transformations
@unnumberedsubsubsec Modal transformations

@cindex modal transformation
@cindex transformation, modal
@cindex operation, modal

In a musical composition that is based on a scale, a motif is
frequently transformed in various ways.  It may be
@notation{transposed} to start at different places in the scale or
it may be @notation{inverted} around a pivot point in the scale.
It may also be reversed to produce its @notation{retrograde}, see
@ref{Retrograde}.

@warning{Any note that does not lie within the given scale will be
left untransformed.}

@subsubsubheading Modal transposition

@cindex modal transposition
@cindex transposition, modal
@cindex operation, transposition
@funindex \modalTranspose

A motif can be transposed within a given scale with:

@example
\modalTranspose @var{from-pitch} @var{to-pitch} @var{scale} @var{motif}
@end example

The notes of @var{motif} are shifted within the @var{scale} by the
number of scale degrees given by the interval between @var{to-pitch}
and @var{from-pitch}:

@lilypond[verbatim,quote]
diatonicScale = \relative { c' d e f g a b }
motif = \relative { c'8 d e f g a b c }

\new Staff {
  \motif
  \modalTranspose c f \diatonicScale \motif
  \modalTranspose c b, \diatonicScale \motif
}
@end lilypond

An ascending scale of any length and with any intervals may be
specified:

@lilypond[verbatim,quote]
pentatonicScale = \relative { ges aes bes des ees }
motif = \relative { ees'8 des ges,4 <ges' bes,> <ges bes,> }

\new Staff {
  \motif
  \modalTranspose ges ees' \pentatonicScale \motif
}
@end lilypond

When used with a chromatic scale @code{\modalTranspose} has a
similar effect to @code{\transpose}, but with the ability to
specify the names of the notes to be used:

@lilypond[verbatim,quote]
chromaticScale = \relative { c' cis d dis e f fis g gis a ais b }
motif = \relative { c'8 d e f g a b c }

\new Staff {
  \motif
  \transpose c f \motif
  \modalTranspose c f \chromaticScale \motif
}
@end lilypond

@subsubsubheading Modal inversion

@cindex modal inversion
@cindex inversion, modal
@cindex operation, modal inversion
@funindex \modalInversion

A motif can be inverted within a given scale around a given pivot
note and transposed in a single operation with:

@example
\modalInversion @var{around-pitch} @var{to-pitch} @var{scale} @var{motif}
@end example

The notes of @var{motif} are placed the same number of scale degrees
from the @var{around-pitch} note within the @var{scale}, but in the
opposite direction, and the result is then shifted within the
@var{scale} by the number of scale degrees given by the interval between
@var{to-pitch} and @var{around-pitch}.

So to simply invert around a note in the scale use the same value for
@var{around-pitch} and @var{to-pitch}:

@lilypond[verbatim,quote]
octatonicScale = \relative { ees' f fis gis a b c d }
motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }

\new Staff {
  \motif
  \modalInversion fis' fis' \octatonicScale \motif
}
@end lilypond

To invert around a pivot between two notes in the scale, invert around
one of the notes and then transpose by one scale degree.  The two notes
specified can be interpreted as bracketing the pivot point:

@lilypond[verbatim,quote]
scale = \relative { c' g' }
motive = \relative { c' c g' c, }

\new Staff {
  \motive
  \modalInversion c' g' \scale \motive
}
@end lilypond

The combined operation of inversion and retrograde produce the
retrograde inversion:

@lilypond[verbatim,quote]
octatonicScale = \relative { ees' f fis gis a b c d }
motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }

\new Staff {
  \motif
  \retrograde \modalInversion c' c' \octatonicScale \motif
}
@end lilypond

@morerefs
Notation Reference:
@ref{Inversion},
@ref{Retrograde},
@ref{Transpose}.
@endmorerefs


@node Displaying pitches
@subsection Displaying pitches

This section discusses how to alter the output of pitches.

@menu
* Clef::
* Key signature::
* Ottava brackets::
* Instrument transpositions::
* Automatic accidentals::
* Alternate accidental glyphs::
* Ambitus::
@end menu


@node Clef
@unnumberedsubsubsec Clef

@cindex G clef
@cindex C clef
@cindex F clef
@cindex treble clef
@cindex violin clef
@cindex alto clef
@cindex tenor clef
@cindex bass clef
@cindex French clef
@cindex soprano clef
@cindex mezzosoprano clef
@cindex baritone clef
@cindex varbaritone clef
@cindex subbass clef
@cindex clef
@cindex ancient clef
@cindex clef, ancient
@cindex clef, G
@cindex clef, C
@cindex clef, F
@cindex clef, treble
@cindex clef, violin
@cindex clef, alto
@cindex clef, tenor
@cindex clef, bass
@cindex clef, french
@cindex clef, soprano
@cindex clef, mezzosoprano
@cindex clef, baritone
@cindex clef, varbaritone
@cindex clef, subbass


@funindex \clef

Without any explicit command, the default clef for LilyPond is the
treble (or @emph{G}) clef.

@lilypond[verbatim,quote,fragment,ragged-right]
c'2 c'
@end lilypond

However, the clef can be changed by using the @code{\clef} command and
an appropriate clef name.  @emph{Middle C} is shown in each of the
following examples.

@lilypond[verbatim,quote,fragment]
\clef treble
c'2 c'
\clef alto
c'2 c'
\clef tenor
c'2 c'
\clef bass
c'2 c'
@end lilypond

For the full range of possible clef names see @ref{Clef styles}.

Specialized clefs, such as those used in @emph{Ancient} music, are
described in @ref{Mensural clefs} and @ref{Gregorian clefs}.  Music that
requires tablature clefs is discussed in @ref{Default tablatures} and
@ref{Custom tablatures}.

@cindex cue clef
@cindex clef, with cue notes
For mixing clefs when using cue notes, see the @code{\cueClef} and
@code{\cueDuringWithClef} commands in @ref{Formatting cue notes}.

@cindex transposing clef
@cindex clef, transposing
@cindex octave transposition
@cindex optional octave transposition
@cindex octave transposition, optional
@cindex choral tenor clef
@cindex tenor clef, choral

By adding@tie{}@code{_8} or@tie{}@code{^8} to the clef name, the
clef is transposed one octave down or up respectively,
and@tie{}@code{_15} and@tie{}@code{^15} transpose by two octaves.
Other integers can be used if required.  Clef names containing
non-alphabetic characters must be enclosed in quotes

@lilypond[verbatim,quote,fragment]
\clef treble
c'2 c'
\clef "treble_8"
c'2 c'
\clef "bass^15"
c'2 c'
\clef "alto_2"
c'2 c'
\clef "G_8"
c'2 c'
\clef "F^5"
c'2 c'
@end lilypond

Optional octavation can be obtained by enclosing the numeric
argument in parentheses or brackets:

@lilypond[verbatim,quote,fragment]
\clef "treble_(8)"
c'2 c'
\clef "bass^[15]"
c'2 c'
@end lilypond

The pitches are displayed as if the numeric argument were
given without parentheses/@/brackets.

By default, a clef change taking place at a line break will cause
the new clef symbol to be printed at the end of the previous line,
as a @emph{warning} clef, as well as the beginning of the next.
This @emph{warning} clef can be suppressed.

@lilypond[verbatim,quote,fragment]
\clef treble { c'2 c' } \break
\clef bass { c'2 c' } \break
\clef alto
  \set Staff.explicitClefVisibility = #end-of-line-invisible
  { c'2 c' } \break
  \unset Staff.explicitClefVisibility
\clef bass { c'2 c' } \break
@end lilypond

By default, a clef that has previously been printed will not be
reprinted if the same @code{\clef} command is issued again and
will be ignored.  The command
@code{\set Staff.forceClef = ##t} changes this behavior.

@lilypond[verbatim,quote,fragment]
  \clef treble
  c'1
  \clef treble
  c'1
  \set Staff.forceClef = ##t
  c'1
  \clef treble
  c'1
@end lilypond

@noindent
To be more precise, it is not the @code{\clef} command itself that
prints a clef.  Instead, it sets or changes a property of the
@code{Clef_engraver}, which then decides by its own whether to
display a clef or not in the current staff.  The @code{forceClef}
property overrides this decision locally to reprint a clef once.

When there is a manual clef change, the glyph of the changed clef
will be smaller than normal.  This behavior can be overridden.

@lilypond[verbatim,quote,fragment]
  \clef "treble"
  c'1
  \clef "bass"
  c'1
  \clef "treble"
  c'1
  \override Staff.Clef.full-size-change = ##t
  \clef "bass"
  c'1
  \clef "treble"
  c'1
  \revert Staff.Clef.full-size-change
  \clef "bass"
  c'1
  \clef "treble"
  c'1
@end lilypond


@snippets

@cindex clef, tweaking properties
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/tweaking-clef-properties.ly}


@morerefs
Notation Reference:
@ref{Mensural clefs},
@ref{Gregorian clefs},
@ref{Default tablatures},
@ref{Custom tablatures},
@ref{Formatting cue notes}.

Installed Files:
@file{scm/parser-clef.scm}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{Clef_engraver},
@rinternals{Clef},
@rinternals{ClefModifier},
@rinternals{clef-interface}.
@endmorerefs

@knownissues
Ottavation numbers attached to clefs are treated as separate
grobs.  So any @code{\override} done to the @var{Clef} will also
need to be applied, as a separate @code{\override}, to the
@var{ClefModifier} grob.

@lilypond[fragment,quote,verbatim]
\new Staff \with {
  \override Clef.color = #(universal-color 'blue)
  \override ClefModifier.color = #(universal-color 'vermillion)
}

\clef "treble_8" c'4
@end lilypond


@node Key signature
@unnumberedsubsubsec Key signature

@cindex key signature

@funindex \key

@c duplicated in Key signature and Accidentals
@warning{New users are sometimes confused about accidentals and
key signatures.  In LilyPond, note names are the raw input; key
signatures and clefs determine how this raw input is displayed.
An unaltered note like@tie{}@code{c} means @q{C natural},
regardless of the key signature or clef.  For more information,
see @rlearning{Pitches and key signatures}.}

The key signature indicates the tonality in which a piece is
played.  It is denoted by a set of alterations (flats or sharps)
at the start of the staff.  The key signature may be altered:

@example
\key @var{pitch} @var{mode}
@end example

@funindex \major
@funindex \minor
@funindex \ionian
@funindex \locrian
@funindex \aeolian
@funindex \mixolydian
@funindex \lydian
@funindex \phrygian
@funindex \dorian

@cindex church mode
@cindex mode
@cindex major
@cindex minor
@cindex ionian
@cindex locrian
@cindex aeolian
@cindex mixolydian
@cindex lydian
@cindex phrygian
@cindex dorian

@noindent
Here, @code{@var{mode}} should be @code{\major} or @code{\minor}
to get a key signature of @code{@var{pitch}}-major or
@code{@var{pitch}}-minor, respectively.  You may also use the
standard mode names, also called @notation{church modes}:
@code{\ionian}, @code{\dorian}, @code{\phrygian}, @code{\lydian},
@code{\mixolydian}, @code{\aeolian}, and @code{\locrian}.

@lilypond[verbatim,quote,fragment]
\relative {
  \key g \major
  fis''1
  f
  fis
}
@end lilypond

Additional modes can be defined, by listing the alterations
for each scale step when the mode starts on C.

@lilypond[verbatim,quote]
freygish = #`((0 . ,NATURAL) (1 . ,FLAT) (2 . ,NATURAL)
    (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,FLAT) (6 . ,FLAT))

\relative {
  \key c \freygish c'4 des e f
  \bar "||" \key d \freygish d es fis g
}
@end lilypond

Accidentals in the key signature may be printed in octaves other
than their traditional positions, or in multiple octaves, by
using the @code{flat-positions} and @code{sharp-positions}
properties of @code{KeySignature}.  Entries in these properties
specify the range of staff positions where accidentals will be
printed.  If a single position is specified in an entry, the
accidentals are placed within the octave ending at that staff
position.

@lilypond[verbatim, quote,fragment]
\override Staff.KeySignature.flat-positions = #'((-5 . 5))
\override Staff.KeyCancellation.flat-positions = #'((-5 . 5))
\clef bass \key es \major es g bes d'
\clef treble \bar "||" \key es \major es' g' bes' d''

\override Staff.KeySignature.sharp-positions = #'(2)
\bar "||" \key b \major b' fis' b'2
@end lilypond


@snippets

@cindex key signature, preventing natural signs
@cindex natural sign, preventing in key signatures
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}

@cindex key signature, non-traditional
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/non-traditional-key-signatures.ly}


@morerefs
Music Glossary:
@rglos{church mode},
@rglos{scordatura}.

Learning Manual:
@rlearning{Pitches and key signatures}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{KeyChangeEvent},
@rinternals{Key_engraver},
@rinternals{Key_performer},
@rinternals{KeyCancellation},
@rinternals{KeySignature},
@rinternals{key-signature-interface}.
@endmorerefs


@node Ottava brackets
@unnumberedsubsubsec Ottava brackets

@cindex ottava
@cindex 15ma
@cindex 15mb
@cindex 8va
@cindex 8vb
@cindex octavation

@funindex \ottava

@notation{Ottava brackets} introduce an extra transposition of an
octave for the staff:

@lilypond[verbatim,quote]
\relative c'' {
  a2 b
  \ottava #-2
  a2 b
  \ottava #-1
  a2 b
  \ottava #0
  a2 b
  \ottava #1
  a2 b
  \ottava #2
  a2 b
}
@end lilypond

@funindex ottavationMarkups
@funindex ottavation-ordinals
@funindex ottavation-simple-ordinals
@funindex ottavation-numbers

By default, only a number is printed at the start of the
bracket.  That setting may be changed to include an abbreviated
ordinal, either in superscript or in normal letters (the latter
was formerly used by default); the default bold font weight of
these characters may also be altered, as explained in
@ref{Selecting font and font size}.

The following example demonstrates various options, as well as
how to go back to the current default behavior:

@lilypond[verbatim,quote]
\relative c'' {
  \ottava #1
  a'2 b
  \ottava #2
  a'2 b
  \bar "||"
  \set Staff.ottavationMarkups = #ottavation-ordinals
  \ottava #1
  a,2 b
  \ottava #2
  a'2 b
  \bar "||"
  \override Staff.OttavaBracket.font-series = #'medium
  \set Staff.ottavationMarkups = #ottavation-simple-ordinals
  \ottava #1
  a,2 b
  \ottava #2
  a'2 b
  \bar "||"
  \revert Staff.OttavaBracket.font-series
  \set Staff.ottavationMarkups = #ottavation-numbers
  \ottava #1
  a,2 b
  \ottava #2
  a'2 b
}
@end lilypond


@snippets

@funindex ottavation
@cindex ottava text
@cindex text, ottavation
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/changing-ottava-text.ly}

@cindex ottava, for single voice
@cindex voice, with ottavation
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/adding-an-ottava-marking-to-a-single-voice.ly}

@cindex ottava spanner, modify slope
@cindex slope, ottava spanner, modification
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/modifying-the-ottava-spanner-slope.ly}


@morerefs
Music Glossary:
@rglos{octavation}.

Notation Reference:
@ref{Selecting font and font size}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{Ottava_spanner_engraver},
@rinternals{OttavaBracket},
@rinternals{ottava-bracket-interface}.
@endmorerefs


@node Instrument transpositions
@unnumberedsubsubsec Instrument transpositions

@cindex transposition, MIDI
@cindex transposition, instrument
@cindex transposing instrument
@cindex MIDI
@cindex MIDI, transposition

@funindex \transposition

When typesetting scores that involve transposing instruments, some
parts can be typeset in a different pitch than the
@notation{concert pitch}.  In these cases, the key of the
@notation{transposing instrument} should be specified; otherwise
the MIDI output and cues in other parts will produce incorrect
pitches.  For more information about quotations, see
@ref{Quoting other voices}.

@example
\transposition @var{pitch}
@end example

The pitch to use for @code{\transposition} should correspond to
the real sound heard when a@tie{}@code{c'} written on the staff is
played by the transposing instrument.  This pitch is entered in
absolute mode, so an instrument that produces a real sound which
is one tone higher than the printed music should use
@w{@code{\transposition d'}}.  @code{\transposition} should
@emph{only} be used if the pitches are @emph{not} being entered in
concert pitch.

Here are a few notes for violin and B-flat clarinet where the
parts have been entered using the notes and key as they appear in
each part of the conductor's score.  The two instruments are
playing in unison.

@lilypond[verbatim,quote]
\new GrandStaff <<
  \new Staff = "violin" \with {
    instrumentName = "Vln"
    midiInstrument = "violin"
  }
  \relative c'' {
    % not strictly necessary, but a good reminder
    \transposition c'
    \key c \major
    g4( c8) r c r c4
  }
  \new Staff = "clarinet" \with {
    instrumentName = \markup { Cl (B\flat) }
    midiInstrument = "clarinet"
  }
  \relative c'' {
    \transposition bes
    \key d \major
    a4( d8) r d r d4
  }
>>
@end lilypond

The @code{\transposition} may be changed during a piece.  For
example, a clarinetist may be required to switch from an A clarinet
to a B-flat clarinet.

@lilypond[verbatim,quote]
flute = \relative c'' {
  \key f \major
  \cueDuring "clarinet" #DOWN {
    R1 _\markup\tiny "clarinet"
    c4 f e d
    R1 _\markup\tiny "clarinet"
  }
}
clarinet = \relative c'' {
  \key aes \major
  \transposition a
  aes4 bes c des
  R1^\markup { muta in B\flat }
  \key g \major
  \transposition bes
  d2 g,
}
\addQuote "clarinet" \clarinet
<<
  \new Staff \with { instrumentName = "Flute" }
    \flute
  \new Staff \with { instrumentName = "Cl (A)" }
    \clarinet
>>
@end lilypond

@morerefs
Music Glossary:
@rglos{concert pitch},
@rglos{transposing instrument}.

Notation Reference:
@ref{Quoting other voices},
@ref{Transpose}.

Snippets:
@rlsr{Pitches}.
@endmorerefs


@node Automatic accidentals
@unnumberedsubsubsec Automatic accidentals

@cindex accidental style
@cindex accidental style, default
@cindex accidental
@cindex accidental, automatic
@cindex automatic accidental
@cindex default accidental style

@funindex \accidentalStyle
@funindex voice
@funindex default

There are many different conventions on how to typeset
accidentals.  LilyPond provides a function to specify which
accidental style to use.  This function is called as follows:

@example
\new Staff <<
  \accidentalStyle voice
  @{ @dots{} @}
>>
@end example

The accidental style normally applies to the current
@code{Staff} (with the exception of the styles @code{choral},
@code{piano} and @code{piano-cautionary}, which are explained
below).  Optionally, the function can take a second argument
that determines in which scope the style should be changed.
For example, to use the same style in all staves of the
current @code{StaffGroup}, use:

@example
\accidentalStyle StaffGroup.voice
@end example

The following accidental styles are supported.  To demonstrate
each style, we use the following example:


@lilypond[verbatim,quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle default
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle default
      \musicB
    }
  >>
}
@end lilypond

Note that the last lines of this example can be replaced by the
following, as long as the same accidental style should be used in
both staves.

@example
\new PianoStaff @{
  <<
    \new Staff = "up" @{
      %%% change the next line as desired:
      \accidentalStyle Score.default
      \musicA
    @}
    \new Staff = "down" @{
      \musicB
    @}
  >>
@}
@end example


@c don't use verbatim in this table.
@c See regression test accidental-styles.ly.
@table @code
@item default

@cindex default accidental style
@cindex accidental style, default

@funindex default

This is the default typesetting behavior.  It corresponds to
eighteenth-century common practice: accidentals are remembered to
the end of the measure in which they occur and only in their own
octave.  Thus, in the example below, no natural signs are printed
before the@tie{}@code{b} in the second measure or the
last@tie{}@code{c}:

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle default
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle default
      \musicB
    }
  >>
}
@end lilypond

@item voice

@cindex accidental style, voice
@cindex voice accidental style
@cindex accidental style, modern
@cindex modern accidental style
@cindex accidental style, modern-cautionary
@cindex modern-cautionary accidental style

@funindex voice

The normal behavior is to remember the accidentals at
@code{Staff}-level.  In this style, however, accidentals are
typeset individually for each voice.  Apart from that, the rule is
similar to @code{default}.

As a result, accidentals from one voice do not get canceled in
other voices, which is often an unwanted result: in the following
example, it is hard to determine whether the second@tie{}@code{a}
should be played natural or sharp.  The @code{voice} option should
therefore be used only if the voices are to be read solely by
individual musicians.  If the staff is to be used by one musician
(e.g., a conductor or in a piano score) then @code{modern} or
@code{modern-cautionary} should be used instead.


@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle voice
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle voice
      \musicB
    }
  >>
}
@end lilypond

@item modern

@cindex accidental, modern style
@cindex modern style accidental

@funindex modern

This rule corresponds to the common practice in the twentieth
century.  It omits some extra natural signs, which were
traditionally prefixed to a sharp following a double sharp,
or a flat following a double flat.  The @code{modern} rule
prints the same accidentals as @code{default}, with
two additions that serve to avoid ambiguity: after temporary
accidentals, cancellation marks are printed also in the following
measure (for notes in the same octave) and, in the same measure,
for notes in other octaves.  Hence the naturals before
the@tie{}@code{b} and the@tie{}@code{c} in the second measure of
the upper staff:

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle modern
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle modern
      \musicB
    }
  >>
}
@end lilypond

@item modern-cautionary

@cindex accidental style, modern-cautionary
@cindex modern-cautionary accidental style

@funindex modern-cautionary

This rule is similar to @code{modern}, but the @q{extra} accidentals
are printed as cautionary accidentals (with parentheses).  They can also
be printed at a different size by overriding
@code{AccidentalCautionary}'s @code{font-size} property.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle modern-cautionary
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle modern-cautionary
      \musicB
    }
  >>
}
@end lilypond

@item modern-voice

@cindex accidental style, modern
@cindex accidental, multi-voice
@cindex modern accidental style
@cindex modern accidental
@cindex multi-voice accidental

@funindex modern-voice

This rule is used for multivoice accidentals to be read both by
musicians playing one voice and musicians playing all voices.
Accidentals are typeset for each voice, but they @emph{are}
canceled across voices in the same @code{Staff}.  Hence,
the@tie{}@code{a} in the last measure is canceled because the
previous cancellation was in a different voice, and
the@tie{}@code{d} in the lower staff is canceled because of the
accidental in a different voice in the previous measure:

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle modern-voice
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle modern-voice
      \musicB
    }
  >>
}
@end lilypond

@cindex accidental style, modern-voice-cautionary
@cindex modern-voice-cautionary accidental style

@funindex modern-voice-cautionary

@item modern-voice-cautionary

This rule is the same as @code{modern-voice}, but with the extra
accidentals (the ones not typeset by @code{voice}) typeset as
cautionaries.  Even though all accidentals typeset by
@code{default} @emph{are} typeset with this rule, some of them are
typeset as cautionaries.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle modern-voice-cautionary
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle modern-voice-cautionary
      \musicB
    }
  >>
}
@end lilypond

@item piano

@cindex accidental style, piano
@cindex piano accidental style

@funindex piano

This rule reflects twentieth-century practice for piano notation.
Its behavior is very similar to @code{modern} style, but here
accidentals also get canceled across the staves in the same
@code{GrandStaff} or @code{PianoStaff}, hence all the
cancellations of the final notes.

This accidental style applies to the current @code{GrandStaff} or
@code{PianoStaff} unless qualified with a second argument.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle piano
      \musicA
    }
    \new Staff = "down" {
      \musicB
    }
  >>
}
@end lilypond

@item piano-cautionary

@cindex accidental style, piano-cautionary
@cindex piano-cautionary accidental style

@funindex piano-cautionary

This is the same as @code{piano} but with the extra accidentals
typeset as cautionaries.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle piano-cautionary
      \musicA
    }
    \new Staff = "down" {
      \musicB
    }
  >>
}
@end lilypond


@item choral

@cindex accidental style, choral
@cindex choral accidental style

@funindex choral

This rule is a combination of the @code{modern-voice} and the @code{piano}
style. It shows all accidentals required for singers that only follow their
own voice, as well as additional accidentals for readers that follow all
voices of an entire @code{ChoirStaff} simultaneously.

This accidental style applies to the current @code{ChoirStaff} unless
qualified with a second argument.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new ChoirStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle choral
      \musicA
    }
    \new Staff = "down" {
      \musicB
    }
  >>
}
@end lilypond

@item choral-cautionary

@cindex accidental style, choral-cautionary
@cindex choral-cautionary accidental style

@funindex choral-cautionary

This is the same as @code{choral} but with the extra accidentals
typeset as cautionaries.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new ChoirStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle choral-cautionary
      \musicA
    }
    \new Staff = "down" {
      \musicB
    }
  >>
}
@end lilypond


@item neo-modern

@cindex neo-modern accidental style
@cindex accidental style, neo-modern

@funindex neo-modern

This rule reproduces a common practice in contemporary music:
accidentals are printed like with @code{modern}, but they are printed
again if the same note appears later in the same measure -- except
if the note is immediately repeated.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle neo-modern
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle neo-modern
      \musicB
    }
  >>
}
@end lilypond

@item neo-modern-cautionary

@cindex neo-modern-cautionary accidental style
@cindex accidental style, neo-modern-cautionary

@funindex neo-modern-cautionary

This rule is similar to @code{neo-modern}, but the @q{extra} accidentals
are printed as cautionary accidentals (with parentheses).  They can also
be printed at a different size by overriding
@code{AccidentalCautionary}'s @code{font-size} property.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle neo-modern-cautionary
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle neo-modern-cautionary
      \musicB
    }
  >>
}
@end lilypond


@item neo-modern-voice

@cindex neo-modern-voice accidental style
@cindex accidental style, neo-modern-voice

@funindex neo-modern-voice

This rule is used for multivoice accidentals to be read both by
musicians playing one voice and musicians playing all voices.
Accidentals are typeset for each voice as with @code{neo-modern},
but they are canceled across voices in the same @code{Staff}.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle neo-modern-voice
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle neo-modern-voice
      \musicB
    }
  >>
}
@end lilypond

@item neo-modern-voice-cautionary

@cindex neo-modern-voice-cautionary accidental style
@cindex accidental style, neo-modern-voice-cautionary

@funindex neo-modern-voice-cautionary

This rule is similar to @code{neo-modern-voice}, but the extra
accidentals are printed as cautionary accidentals.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle neo-modern-voice-cautionary
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle neo-modern-voice-cautionary
      \musicB
    }
  >>
}
@end lilypond

@item dodecaphonic

@cindex dodecaphonic accidental style
@cindex accidental style, dodecaphonic

@funindex dodecaphonic

This rule reflects a practice introduced by composers at
the beginning of the 20th century, in an attempt to
abolish the hierarchy between natural and non-natural notes.
With this style, @emph{every} note gets an accidental sign,
including natural signs.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle dodecaphonic
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle dodecaphonic
      \musicB
    }
  >>
}
@end lilypond

@item dodecaphonic-no-repeat

@cindex dodecaphonic-no-repeat accidental style
@cindex accidental style, dodecaphonic-no-repeat

@funindex dodecaphonic-no-repeat

Like with the dodecaphonic accidental style @emph{every} note
gets an accidental sign by default, but accidentals are
suppressed for pitches immediately repeated within the same staff.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle dodecaphonic-no-repeat
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle dodecaphonic-no-repeat
      \musicB
    }
  >>
}
@end lilypond


@item dodecaphonic-first

@cindex dodecaphonic-first accidental style
@cindex accidental style, dodecaphonic-first

@funindex dodecaphonic-first

Similar to the dodecaphonic accidental style @emph{every} pitch
gets an accidental sign, but only the first time it is encountered
in a measure.  Accidentals are only remembered for the actual octave
but throughout voices.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle dodecaphonic-first
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle dodecaphonic-first
      \musicB
    }
  >>
}
@end lilypond


@item teaching

@cindex teaching accidental style
@cindex accidental style, teaching

@funindex teaching

This rule is intended for students, and makes it easy to create
scale sheets with automatically created cautionary accidentals.
Accidentals are printed like with @code{modern}, but cautionary
accidentals are added for all sharp or flat tones specified by the
key signature, except if the note is immediately repeated.

@lilypond[quote,staffsize=18]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \key fis \minor
      \accidentalStyle teaching
      \musicA
    }
    \new Staff = "down" {
      \key fis \minor
      \accidentalStyle teaching
      \musicB
    }
  >>
}
@end lilypond



@item no-reset

@cindex accidental style, no-reset
@cindex no-reset accidental style

@funindex no-reset

This is the same as @code{default} but with accidentals lasting
@q{forever} and not only within the same measure:

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle no-reset
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle no-reset
      \musicB
    }
  >>
}
@end lilypond

@item forget

@cindex forget accidental style
@cindex accidental style, forget

@funindex forget

This is the opposite of @code{no-reset}: Accidentals are not
remembered at all -- and hence all accidentals are typeset
relative to the key signature, regardless of what came before in
the music.

@lilypond[quote]
musicA = {
  <<
    \relative {
      cis''8 fis, bes4 <a cis>8 f bis4 |
      cis2. <c, g'>4 |
    }
    \\
    \relative {
      ais'2 cis, |
      fis8 b a4 cis2 |
    }
  >>
}

musicB = {
  \clef bass
  \new Voice {
    \voiceTwo \relative {
      <fis a cis>8[ <fis a cis>
      \change Staff = up
      cis' cis
      \change Staff = down
      <fis, a> <fis a>]
      \showStaffSwitch
      \change Staff = up
      dis'4 |
      \change Staff = down
      <fis, a cis>4 gis <f a d>2 |
    }
  }
}

\new PianoStaff {
  <<
    \new Staff = "up" {
      \accidentalStyle forget
      \musicA
    }
    \new Staff = "down" {
      \accidentalStyle forget
      \musicB
    }
  >>
}
@end lilypond
@end table

@morerefs
Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{Accidental},
@rinternals{Accidental_engraver},
@rinternals{GrandStaff},
@rinternals{PianoStaff},
@rinternals{Staff},
@rinternals{AccidentalSuggestion},
@rinternals{AccidentalPlacement},
@rinternals{accidental-suggestion-interface}.
@endmorerefs

@cindex accidental, and simultaneous notes
@cindex simultaneous notes and accidentals
@cindex accidental, in chords
@cindex chord, accidentals in

@knownissues
Simultaneous notes are not considered in the automatic
determination of accidentals; only previous notes and the key
signature are considered.  Forcing accidentals with@tie{}@code{!}
or@tie{}@code{?} may be required when the same note name occurs
simultaneously with different alterations, as in @samp{<f! fis!>}.

In alternative endings, cautionary cancellation should be based on
the previous @emph{played} measure, but it is based on the
previous @emph{printed} measure.  In the following example, the
natural @code{c} in the second alternative does not need a natural
sign:

@lilypond[quote]
{
  \accidentalStyle modern
  \time 2/4
  \repeat volta 2 {
    c'2
  }
  \alternative {
     \volta 1 { cis' }
     \volta 2 { c' }
  }
}
@end lilypond

The following workaround can be used: define a function that locally changes
the accidental style to @code{forget}:

@lilypond[verbatim,quote]
forget = #(define-music-function (music) (ly:music?) #{
  \accidentalStyle forget
  #music
  \accidentalStyle modern
#})
{
  \accidentalStyle modern
  \time 2/4
  \repeat volta 2 {
    c'2
  }
  \alternative {
     \volta 1 { cis' }
     \volta 2 { \forget c' }
  }
}
@end lilypond

@node Alternate accidental glyphs
@unnumberedsubsubsec Alternate accidental glyphs

@cindex alternate accidental glyph
@cindex accidental, alternate glyphs
@cindex glyph, alternate accidentals

Non-Western and ancient notation systems have their own accidentals.
The glyphs are controlled through the @code{alterationGlyphs}
property of the @code{Staff} context and similar context types.
The predefined values for this property are listed in
@ref{Accidental glyph sets}.

@lilypond[verbatim,quote]
\layout {
  \context {
    \Staff
    alterationGlyphs = #alteration-vaticana-glyph-name-alist
  }
}

{ ces' c' cis' }
@end lilypond

The property may also be set to a custom associative list mapping
alterations to glyph names.  Alterations are given as fractions in
tones.  Glyphs are listed at @ref{Accidental glyphs}.

@lilypond[verbatim,quote]
\layout {
  \context {
    \Staff
    alterationGlyphs =
      #'((-1/2 . "accidentals.flat.arrowdown")
         (0 . "accidentals.natural.arrowup")
         (1/2 . "accidentals.sharp.arrowup"))
  }
}

{ ces' c' cis' }
@end lilypond

The @code{padding-pairs} property of @code{KeySignature} and
@code{KeyCancellation} objects is an associative list mapping
pairs of glyphs to the padding that should be added between
these glyphs in key signatures.

@lilypond[verbatim]
\layout {
  \context {
    \Staff
    alterationGlyphs =
      #'((-1/2 . "accidentals.flat.arrowdown")
         (0 . "accidentals.natural.arrowup")
         (1/2 . "accidentals.sharp.arrowup"))
    \override KeySignature.padding-pairs =
      #'((("accidentals.sharp.arrowup" . "accidentals.sharp.arrowup")
            . 0.25)
         (("accidentals.flat.arrowdown" . "accidentals.flat.arrowdown")
            . 0.3))
    \override KeyCancellation.padding-pairs =
      #'((("accidentals.natural.arrowup" . "accidentals.natural.arrowup")
            . 0.7))
  }
}

{
  \key cis \major
  ces' c'
  \key ces \major
  cis'
}
@end lilypond

@morerefs
Notation Reference:
@ref{Accidental glyph sets},
@ref{Accidental glyphs}.

Internals Reference:
@rinternals{accidental-switch-interface},
@rinternals{Alteration_glyph_engraver},
@rinternals{key-signature-interface}.
@endmorerefs


@node Ambitus
@unnumberedsubsubsec Ambitus

@cindex ambitus
@cindex range of pitches
@cindex pitch range

The term @notation{ambitus} (pl.@: ambitus) denotes a range of
pitches for a given voice in a part of music.  It may also denote
the pitch range that a musical instrument is capable of playing.
Ambitus are printed on vocal parts so that performers can easily
determine if it matches their capabilities.

Ambitus are denoted at the beginning of a piece near the initial
clef.  The range is graphically specified by two note heads that
represent the lowest and highest pitches.  Accidentals are only
printed if they are not part of the key signature.

@lilypond[verbatim,quote]
\layout {
  \context {
    \Voice
    \consists Ambitus_engraver
  }
}

\relative {
  aes' c e2
  cis,1
}
@end lilypond


@snippets

@cindex ambitus, per voice
@cindex voice, ambitus
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/adding-ambitus-per-voice.ly}

@cindex ambitus, multiple voices
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/ambitus-with-multiple-voices.ly}

@cindex ambitus, line gap
@funindex AmbitusLine
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/changing-the-ambitus-gap.ly}

@cindex ambitus, placement
@funindex ambitusAfter
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/ambitus-after-key-signature.ly}

@morerefs
Music Glossary:
@rglos{ambitus}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{Ambitus_engraver},
@rinternals{Voice},
@rinternals{Staff},
@rinternals{Ambitus},
@rinternals{AmbitusAccidental},
@rinternals{AmbitusLine},
@rinternals{AmbitusNoteHead},
@rinternals{ambitus-interface}.
@endmorerefs

@knownissues
There is no collision handling in the case of multiple per-voice
ambitus.


@node Note heads
@subsection Note heads

This section suggests ways of altering note heads.

@menu
* Special note heads::
* Easy notation note heads::
* Shape note heads::
* Improvisation::
@end menu

@node Special note heads
@unnumberedsubsubsec Special note heads

@cindex note head, special
@cindex note head, cross
@cindex note head, diamond
@cindex note head, parlato
@cindex note head, harmonic
@cindex note head, guitar
@cindex special note head
@cindex cross note head
@cindex diamond note head
@cindex parlato note head
@cindex harmonic note head
@cindex guitar note head
@cindex note head style
@cindex style, note heads

@funindex cross

The appearance of note heads may be altered:

@lilypond[verbatim,quote]
\relative c'' {
  c4 b
  \override NoteHead.style = #'cross
  c4 b
  \revert NoteHead.style
  a b
  \override NoteHead.style = #'harmonic
  a b
  \revert NoteHead.style
  c4 d e f
}
@end lilypond

To see all note head styles, see @ref{Note head styles}.

@funindex \xNote
@funindex \xNotesOn
@funindex \xNotesOff

The @code{cross} style is used to represent a variety of musical
intentions.  The following generic predefined commands modify the
note head in both staff and tablature contexts and can be used to
represent any musical meaning:

@lilypond[verbatim,quote]
\relative {
  c''4 b
  \xNotesOn
   a b c4 b
  \xNotesOff
  c4 d
}
@end lilypond

The music function form of this predefined command may be used
inside and outside chords to generate crossed note heads in both
staff and tablature contexts:

@lilypond[verbatim,quote]
\relative {
  c''4 b
  \xNote { e f }
  c b < g \xNote c f > b
}
@end lilypond

@funindex \deadNote
@funindex \deadNotesOn
@funindex \deadNotesOff

As synonyms for @code{\xNote}, @code{\xNotesOn} and @code{\xNotesOff},
@code{\deadNote}, @code{\deadNotesOn} and @code{\deadNotesOff} can
be used.  The term @notation{dead note} is commonly used by guitarists.

@funindex \harmonic

There is also a similar shorthand for diamond shapes:

@lilypond[verbatim,quote]
\relative c'' {
  <c f\harmonic>2 <d a'\harmonic>4 <c g'\harmonic> f\harmonic
}
@end lilypond

@predefined
@code{\harmonic},
@code{\xNotesOn},
@code{\xNotesOff},
@code{\xNote}.
@endpredefined

@morerefs
Snippets:
@rlsr{Pitches}.

Notation Reference:
@ref{Note head styles},
@ref{Chorded notes},
@ref{Indicating harmonics and dampened notes}.

Internals Reference:
@rinternals{note-event},
@rinternals{Note_heads_engraver},
@rinternals{Ledger_line_engraver},
@rinternals{NoteHead},
@rinternals{LedgerLineSpanner},
@rinternals{note-head-interface},
@rinternals{ledger-line-spanner-interface}.
@endmorerefs


@node Easy notation note heads
@unnumberedsubsubsec Easy notation note heads

@cindex note head, practice
@cindex practice note head
@cindex note head, easy notation
@cindex easy notation
@cindex beginners' music
@cindex music, beginners'
@cindex easy play note head
@cindex note head, easy play

@funindex \easyHeadsOn
@funindex \easyHeadsOff

The @q{easy play} note head includes a note name inside the head.
It is used in music for beginners.  To make the letters readable,
it should be printed in a large font size.  To print with a larger
font, see @ref{Setting the staff size}.

@lilypond[verbatim,quote]
#(set-global-staff-size 26)
\relative c' {
  \easyHeadsOn
  c2 e4 f
  g1
  \easyHeadsOff
  c,1
}
@end lilypond


@predefined
@code{\easyHeadsOn},
@code{\easyHeadsOff}.
@endpredefined


@snippets

@cindex easy notation, using numbers
@cindex number, in easy notation
@funindex Ez_numbers_engraver
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/numbers-as-easy-note-heads.ly}


@morerefs
Notation Reference:
@ref{Setting the staff size}.

Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{note-event},
@rinternals{Note_heads_engraver},
@rinternals{NoteHead},
@rinternals{note-head-interface}.
@endmorerefs


@node Shape note heads
@unnumberedsubsubsec Shape note heads

@cindex note head, shape
@cindex note head, Aiken
@cindex note head, Sacred Harp
@cindex shape note
@cindex Aiken shape note head
@cindex Sacred Harp note head
@cindex note head, Southern Harmony
@cindex Southern Harmony note head
@cindex funk shape note head
@cindex note head, funk
@cindex note head, Harmonia Sacra
@cindex Harmonia Sacra note head
@cindex Christian Harmony note head
@cindex note head, Christian Harmony
@cindex Walker shape note head
@cindex note head, Walker

@funindex \aikenHeads
@funindex \aikenThinHeads
@funindex \sacredHarpHeads
@funindex \southernHarmonyHeads
@funindex \funkHeads
@funindex \walkerHeads

In shape note head notation, the shape of the note head
corresponds to the harmonic function of a note in the scale.  This
notation was popular in nineteenth-century American song books.
Shape note heads can be produced in Sacred Harp, Southern Harmony,
Funk (Harmonia Sacra), Walker, and Aiken (Christian Harmony) styles:

@lilypond[verbatim,quote]
\relative c'' {
  \aikenHeads
  c, d e f g2 a b1 c \break
  \aikenThinHeads
  c,4 d e f g2 a b1 c \break
  \sacredHarpHeads
  c,4 d e f g2 a b1 c \break
  \southernHarmonyHeads
  c,4 d e f g2 a b1 c \break
  \funkHeads
  c,4 d e f g2 a b1 c \break
  \walkerHeads
  c,4 d e f g2 a b1 c \break
}
@end lilypond

@funindex \key
@funindex \aikenHeadsMinor
@funindex \aikenThinHeadsMinor
@funindex \sacredHarpHeadsMinor
@funindex \southernHarmonyHeadsMinor
@funindex \funkHeadsMinor
@funindex \walkerHeadsMinor

Shapes are typeset according to the step in the scale, where the base
of the scale is determined by the @code{\key} command.  When writing
in a minor key, the scale step can be determined from the relative
major:

@lilypond[verbatim,quote]
\relative c'' {
  \key a \minor
  \aikenHeads
  a b c d e2 f g1 a \break
  \aikenHeadsMinor
  a,4 b c d e2 f g1 a \break
  \aikenThinHeadsMinor
  a,4 b c d e2 f g1 a \break
  \sacredHarpHeadsMinor
  a,2 b c d \break
  \southernHarmonyHeadsMinor
  a2 b c d \break
  \funkHeadsMinor
  a2 b c d \break
  \walkerHeadsMinor
  a2 b c d \break
}
@end lilypond


@predefined
@code{\aikenHeads},
@code{\aikenHeadsMinor},
@code{\aikenThinHeads},
@code{\aikenThinHeadsMinor},
@code{\funkHeads},
@code{\funkHeadsMinor},
@code{\sacredHarpHeads},
@code{\sacredHarpHeadsMinor},
@code{\southernHarmonyHeads},
@code{\southernHarmonyHeadsMinor},
@code{\walkerHeads},
@code{\walkerHeadsMinor}.
@endpredefined


@snippets

@cindex note head, Aiken, thin variant
@cindex Aiken shape note head, thin variant
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/aiken-head-thin-variant-noteheads.ly}

@cindex note head, shape, merging
@cindex shape note, merging
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/direction-of-merged-fa-shape-note-heads.ly}

@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/applying-note-head-styles-depending-on-the-step-of-the-scale.ly}

To see all note head styles, see @ref{Note head styles}.


@morerefs
Snippets:
@rlsr{Pitches}.

Notation Reference:
@ref{Note head styles}.

Internals Reference:
@rinternals{note-event},
@rinternals{Note_heads_engraver},
@rinternals{NoteHead},
@rinternals{note-head-interface}.
@endmorerefs


@node Improvisation
@unnumberedsubsubsec Improvisation

@cindex improvisation
@cindex slashed note head
@cindex note head, improvisation
@cindex note head, slashed

@funindex \improvisationOn
@funindex \improvisationOff

Improvisation is sometimes denoted with slashed note heads, where
the performer may choose any pitch but should play the specified
rhythm.  Such note heads can be created:

@lilypond[verbatim,quote]
\new Voice \with {
  \consists Pitch_squash_engraver
} \relative {
  e''8 e g a a16( bes) a8 g
  \improvisationOn
  e8 ~
  2 ~ 8 f4 f8 ~
  2
  \improvisationOff
  a16( bes) a8 g e
}
@end lilypond

@predefined
@code{\improvisationOn},
@code{\improvisationOff}.
@endpredefined

@morerefs
Snippets:
@rlsr{Pitches}.

Internals Reference:
@rinternals{Pitch_squash_engraver},
@rinternals{Voice},
@rinternals{RhythmicStaff}.
@endmorerefs
