@node Pitches
@section Pitches
-@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
+@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
{pitches-headword.ly}
This section discusses how to specify the pitch of notes. There
-are three steps to this process: input, modifying, and output.
+are three steps to this process: input, modification, and output.
@menu
* Writing pitches::
@node Writing pitches
@subsection Writing pitches
-This section discusses how to input 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::
@node Absolute octave entry
-@unnumberedsubsubsec Absolute octave entry
+@subsubsection Absolute octave entry
-@cindex Pitch names
+@cindex pitch names
@cindex pitches
+@cindex absolute
+@cindex absolute octave specification
-@c don't use @samp here because that might get confused with
-@c octave marks
-A pitch name is specified using lowercase letters @code{a} through
-@code{g}. An ascending C-major scale is engraved with
+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.
-@lilypond[quote,fragment,verbatim,ragged-right]
+@c NOTE: don't use c' here.
+@lilypond[verbatim,quote,ragged-right,fragment]
\clef bass
-c d e f g a b c'
-@end lilypond
-
-There are two different ways to enter these note names with regard
-to octave placement: absolute and relative. The relative mode
-will in most cases be the most convenient, but the absolute mode
-is more fundamental and will be presented first.
-
-@cindex Absolute
-@cindex Absolute octave specification
-
-In absolute mode, every note is placed explicitly in a certain
-octave. The note names @code{c} to @code{b} are engraved in the
-octave below middle C, as in the previous example.
-
-@lilypond[quote,fragment,verbatim,ragged-right]
-\clef treble
-c1
-\clef bass
-c1
+c d e f
+g a b c
+d e f g
@end lilypond
@funindex '
@funindex ,
-If a note should be in another octave than this, an octave
-specification must be given. It takes the form of a series of
-single quote (@code{'}) or comma (@code{,}) characters. Each
-@code{'} raises the pitch by one octave; each @code{,} lowers the
-pitch by an octave.
+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[quote,ragged-right,fragment,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment]
\clef treble
-c' c'' e' g d'' d' d c
+c' c'' e' g
+d'' d' d c
\clef bass
-c, c,, e, g d,, d, d c
+c, c,, e, g
+d,, d, d c
@end lilypond
@seealso
-Snippets: @lsrdir{pitches}
+Music Glossary: @rglos{Pitch names}.
-Internals Reference: @internalsref{LedgerLineSpanner},
-@internalsref{NoteHead}.
+Snippets: @lsrdir{Pitches,Pitches}.
@node Relative octave entry
-@unnumberedsubsubsec Relative octaves entry
+@subsubsection Relative octave entry
-@cindex Relative
-@cindex Relative octave specification
+@cindex relative
+@cindex relative octave specification
@funindex \relative
-The absolute mode requires a lot of octave specifications, which
-not only becomes tedious but also easily leads to errors.
-Therefore, it is usually more convenient to let notes be entered
-relative to the previous note. This is done with the relative
-mode.
+When octaves are specified in absolute mode it is easy to
+accidentally put a pitch in the wrong octave. Relative octave
+mode reduces these errors since most of the time it is not
+necessary to indicate any octaves at all. Furthermore, in
+absolute mode a single mistake may be difficult to spot, while in
+relative mode a single error puts the rest of the piece off by one
+octave.
@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 notes
-that appear in @var{musicexpr} are calculated as follows:
+previous note as possible. This means that the octave of pitches
+in @var{musicexpr} is calculated as follows:
@itemize
-@item
-The pitch of the first note is relative to @code{\relative
-@var{startpitch} }.
-
@item
-If no octave changing marks are used, the basic interval between a
-note and the one that precedes it is always taken to be a fourth
-or less.
+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
-This distance is determined without regarding alterations or the
-actual sounding pitches; a @code{fisis} following a @code{ceses}
-will be put above the @code{ceses}. In other words, a
-doubly-augmented fourth is considered a smaller interval than a
-diminished fifth, even though the doubly-augmented fourth spans
-seven semitones while the diminished fifth only spans six
-semitones.
+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
-The octave changing marks @code{'} and @code{,} can be added to
-raise or lower the pitch by an extra octave from the basic
-interval.
+Multiple octave changing marks can be used. For example, @code{''}@tie{}and
+@code{,,}@tie{} will alter the pitch by two octaves.
@item
-Multiple octave changing marks can be used. @code{''} will raise
-the pitch by two octaves.
+The pitch of the first note is relative to
+@code{@var{startpitch}}. @var{startpitch} is specified in
+absolute octave mode, and it is recommended that it be a octave of
+@code{c}.
-@end itemize
+@end itemize
Here is the relative mode shown in action:
-@lilypond[quote,fragment,ragged-right,verbatim]
-\relative c'' {
- b c d c b c bes a
+@lilypond[verbatim,quote,ragged-right]
+\relative c {
+ \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[quote,ragged-right,fragment,verbatim]
+@lilypond[verbatim,quote,ragged-right]
\relative c'' {
- c g c f, c' a, e''
+ c g c f,
+ c' a, e'' c
}
@end lilypond
A note sequence without a single octave mark can nevertheless span
large intervals:
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[verbatim,quote,ragged-right]
\relative c {
- c f b e a d g
+ c f b e
+ a d g c
}
@end lilypond
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:
+following note or chord. Inside chords, the next note is always
+relative to the preceding one.
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[verbatim,quote,ragged-right]
\relative c' {
- c <c e g>
- <c' e g>
- <c, e' g> c
+ c
+ <c e g>
+ % the C is now an octave higher
+ <c' e g'>
+ % the C returns to the original pitch
+ <c, e, g''>
}
@end lilypond
-The @var{startpitch} (after @code{\relative}) is a note name in
-absolute mode. In principle it can be any note name, but common
-practice is to use @code{c} in various octave positions.
+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.
-When octaves are specified as above by adding @code{'} and
-@code{,} to pitch names, it is easy to accidentally put a pitch in
-the wrong octave. The relative octave mode prevents these errors
-since most of the time it is not necessary to indicate any octaves
-at all. Furthermore, in absolute mode, a single mistake may be
-difficult to spot; in relative mode, a single error puts the rest
-of the piece off by one octave.
-
-LilyPond examines pitches based on the note names -- in other
-words, an augmented fourth is @emph{not} treated the same as a
-diminished fifth. If we begin at a C, then an F-sharp will be placed a
-higher than the C, while a G-flat will be placed lower than the C.
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c2 fis
-c2 ges
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' {
+ c2 fis
+ c2 ges
+ b2 eisis
+ b2 feses
+}
@end lilypond
+
@seealso
-Snippets: @lsrdir{pitches}
+Music Glossary: @rglos{fifth}, @rglos{interval}, @rglos{Pitch names}.
+
+Notation Reference: @ref{Octave checks}.
+Snippets: @lsrdir{Pitches,Pitches}.
-@refbugs
+
+@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 within transposed music, an additional
+To use relative mode within transposed music, an additional
@code{\relative} must be placed inside @code{\transpose}.
-@c DEPRECATED
-If no @var{startpitch} is specified for @code{\relative}, then
-@code{c'} is assumed. However, this is a deprecated option and
-may disappear in future versions, so its use is discouraged.
+@c NOTE: DEPRECATED
+If no @var{startpitch} is specified for @code{\relative},
+then@tie{}@code{c'} is assumed. However, this is a deprecated
+option and may disappear in future versions, so its use is
+discouraged.
@node Accidentals
-@unnumberedsubsubsec Accidentals
+@subsubsection Accidentals
+
+@cindex accidental
+@cindex key signature
+@cindex clef
@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 @code{c} means @q{C natural}, regardless of
-the key signature or clef. For more information, see
-@rlearning{Accidentals and key signatures}.}
+An unaltered note like@tie{}@code{c} means @q{C natural},
+regardless of the key signature or clef. For more information,
+see @rlearning{Accidentals and key signatures}.}
@cindex note names, Dutch
@cindex note names, default
-
-A @notation{sharp} pitch is made by adding @code{is} to the 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 derived
-from note naming conventions in Nordic and Germanic languages,
-like German and Dutch. To use other names for accidentals, see
+@cindex sharp
+@cindex flat
+@cindex double sharp
+@cindex sharp, double
+@cindex double flat
+@cindex flat, double
+@cindex natural sign
+
+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[quote,ragged-right,fragment,verbatim,relative=2]
-a2 ais a aes
-a2 aisis a aeses
-@end lilypond
-
-@noindent
-These are the Dutch note names. In Dutch, @code{aes} is
-contracted to @code{as}, but both forms are accepted. Similarly,
-both @code{es} and @code{ees} are accepted:
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-a2 as e es
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+ais1 aes aisis aeses
@end lilypond
A natural will cancel the effect of an accidental or key
syntax with a suffix; a natural pitch is shown as a simple note
name:
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
a4 aes a2
@end lilypond
+@cindex quarter tones
+@cindex semi-flats, semi-sharps
+
+Quarter tones may be added; the following is a series of Cs with
+increasing pitches
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+ceseh1 ces ceh c cih cis cisih
+@end lilypond
+
+
@cindex accidental, reminder
@cindex accidental, cautionary
Normally accidentals are printed automatically, but you may also
print them manually. A reminder accidental can be forced by
-adding an exclamation mark @code{!} after the pitch. A cautionary
-accidental (i.e., an accidental within parentheses) can be
-obtained by adding the question mark @code{?} after the pitch.
-These extra accidentals can be used to produce natural signs, too.
+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. These extra accidentals can also be used to produce
+natural signs.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
-cis cis cis! cis? c c? c! c
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+cis cis cis! cis? c c c! c?
@end lilypond
+Accidentals on tied notes are only printed at the beginning of a
+new system:
-@cindex quarter tones
-@cindex semi-flats, semi-sharps
-
-Half-flats and half-sharps are formed by adding @code{eh} and
-@code{ih}; the following is a series of Cs with increasing
-pitches
-
-@lilypond[verbatim,ragged-right,quote,relative=2,fragment]
-\set Staff.extraNatural = ##f
-ceseh ceh cih cisih
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+cis1 ~ cis ~
+\break
+cis
@end lilypond
-Micro tones are also exported to the MIDI file.
+@snippets
-@commonprop
-
-In accordance with standard typesetting rules, a natural sign is
-printed before a sharp or flat if a previous accidental needs to
-be canceled. To change this behavior, use
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-ceses4 ces cis c
-\set Staff.extraNatural = ##f
-ceses4 ces cis c
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{preventing-extra-naturals-from-being-automatically-added.ly}
@seealso
-Music glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
-@rglos{double flat}.
+Music Glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
+@rglos{double flat}, @rglos{Pitch names}, @rglos{quarter-tone}.
+
+Learning Manual: @rlearning{Accidentals and key signatures}.
-Notation reference: @ref{Automatic accidentals}, @ref{Musica ficta
-accidentals}.
+Notation Reference: @ref{Automatic accidentals},
+@ref{Musica ficta accidentals},
+@ref{Note names in other languages}.
-Snippets: @lsrdir{pitches}
+Snippets: @lsrdir{Pitches,Pitches}.
-@refbugs
+@knownissues
There are no generally accepted standards for denoting
-three-quarter flats, so LilyPond's symbol does not conform to any
-standard.
+quarter-tone accidentals, so LilyPond's symbol does not conform to
+any standard.
@node Note names in other languages
-@unnumberedsubsubsec Note names in other languages
+@subsubsection Note names in other languages
There are predefined sets of note names for various other
-languages. To use them, include the language specific init file.
-For example, add @code{\include "english.ly"} to the top of the
-input file. The available language files and the note names they
-define are:
+languages. To use them, include the language-specific init file.
+For example, to use English notes names, add @code{\include
+"english.ly"} to the top of the input file. The available
+language files and the note names they define are:
@cindex note names, other languages
+@cindex pitch names, other languages
-@example
-@multitable @columnfractions .2 .6 .05 .05 .05 .05
+@smallexample
+@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
@headitem Language
@tab Note names
@tab sharp @tab flat @tab double sharp @tab double flat
-@item netherlands.ly
+@item nederlands.ly
@tab c d e f g a bes b
@tab -is @tab -es @tab -isis @tab -eses
@item english.ly
- @tab c d e f g a bf b
+ @tab c d e f g a bf b
@tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
@tab -ff/-flatflat
@item deutsch.ly
- @tab c d e f g a b h
+ @tab c d e f g a b h
@tab -is @tab -es @tab -isis @tab -eses
@item norsk.ly
- @tab c d e f g a b h
+ @tab c d e f g a b h
@tab -iss/-is @tab -ess/-es @tab -ississ/-isis
@tab -essess/-eses
@item svenska.ly
- @tab c d e f g a b h
+ @tab c d e f g a b h
@tab -iss @tab -ess @tab -ississ @tab -essess
+@item suomi.ly
+ @tab c d e f g a b h
+ @tab -is @tab -es @tab -isis @tab -eses
@item italiano.ly
- @tab do re mi fa sol la sib si
+ @tab do re mi fa sol la sib si
@tab -d @tab -b @tab -dd @tab -bb
@item catalan.ly
- @tab do re mi fa sol la sib si
+ @tab do re mi fa sol la sib si
@tab -d/-s @tab -b @tab -dd/-ss @tab -bb
@item espanol.ly
- @tab do re mi fa sol la sib si
+ @tab do re mi fa sol la sib si
@tab -s @tab -b @tab -ss @tab -bb
+@item portugues.ly
+ @tab do re mi fa sol la sib si
+ @tab -s @tab -b @tab -ss @tab -bb
+@item vlaams.ly
+ @tab do re mi fa sol la sib si
+ @tab -k @tab -b @tab -kk @tab -bb
@end multitable
-@end example
+@end smallexample
-@noindent
-Note that in Dutch, German, Norwegian, and Swedish, the flat
-alterations of @code{a} like for example @code{aes} and
-@code{aeses} are usually contracted to @code{as} and @code{ases}
-(or more commonly @code{asas}). Sometimes only these contracted
-names are defined in the corresponding language files (this also
-applies to the suffixes for quartertones below).
-
-@noindent
-Some music uses microtones whose alterations are fractions of a
-@q{normal} sharp or flat. The note names for quartertones defined
-in the various language files are listed in the following table.
-Here the prefixes @q{semi-} and @q{sesqui-} mean @q{half} and
-@q{one and a half}, respectively. For Norwegian, Swedish, Catalan
-and Spanish no special names have been defined yet.
+In Dutch, @code{aes} is contracted to @code{as}, but both forms
+are accepted in LilyPond. Similarly, both @code{es} and
+@code{ees} are accepted. This also applies to
+@code{aeses}@tie{}/@tie{}@code{ases} and
+@code{eeses}@tie{}/@tie{}@code{eses}. Sometimes only these
+contracted names are defined in the corresponding language files.
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+a2 as e es a ases e eses
+@end lilypond
-@c What about Turkish Maquam music and similar microtonal systems?
-@c
-@c Note that the term "three-quarter-sharp/-flat" used in lilypond's source code
-@c is actually misleading since the alteration is in fact one and a half
-@c of a regular sharp/flat. Whence the naming "sesqui-sharp/-flat" used below.
-@example
-@multitable @columnfractions .2 .6 .05 .05 .05 .05
+Some music uses microtones whose alterations are fractions of a
+@q{normal} sharp or flat. The note names for quarter-tones
+defined in the various language files are listed in the following
+table. Here the prefixes @notation{semi-} and @notation{sesqui-}
+mean @q{half} and @q{one and a half}, respectively. For the other
+languages, no special names have been defined yet.
+
+@smallexample
+@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ississ/-isis} {-ississ/-isis}
@headitem Language
@tab Note names
- @tab semi- @tab semi- @tab sesqui- @tab sesqui-
+ @tab semi-sharp @tab semi-flat @tab sesqui-sharp @tab sesqui-flat
@item nederlands.ly
- @tab c d e f g a bes b
+ @tab c d e f g a bes b
@tab -ih @tab -eh @tab -isih @tab -eseh
@item english.ly
- @tab c d e f g a bf b
+ @tab c d e f g a bf b
@tab -qs @tab -qf @tab -tqs @tab -tqf
@item deutsch.ly
- @tab c d e f g a b h
+ @tab c d e f g a b h
@tab -ih @tab -eh @tab -isih @tab -eseh
-@c @item norsk.ly
-@c @tab c d e f g a b h
-@c @item svenska.ly
-@c @tab c d e f g a b h
@item italiano.ly
- @tab do re mi fa sol la sib si
+ @tab do re mi fa sol la sib si
@tab -sd @tab -sb @tab -dsd @tab -bsb
-@c @item catalan.ly
-@c @tab do re mi fa sol la sib si
-@c @item espanol.ly
-@c @tab do re mi fa sol la sib si
+@item portugues.ly
+ @tab do re mi fa sol la sib si
+ @tab -sqt @tab -bqt @tab -stqt @tab -btqt
@end multitable
-@end example
+@end smallexample
+
@seealso
-Snippets: @lsrdir{pitches}
+Music Glossary: @rglos{Pitch names}.
+Snippets: @lsrdir{Pitches,Pitches}.
@node Changing multiple pitches
This section discusses how to modify pitches.
@menu
-* Octave check::
+* Octave checks::
* Transpose::
@end menu
-@node Octave check
-@unnumberedsubsubsec Octave check
+@node Octave checks
+@subsubsection Octave checks
-@cindex Octave check
+@cindex octave correction
+@cindex octave check
+@funindex =
+@funindex \octave
In relative mode, it is easy to forget an octave changing mark.
-Octave checks make such errors easier to correct. A note may be
-followed by @code{=}@var{quotes} to indicate what its absolute
-octave should be. In the following example,
+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.
-@example
-\relative c'' @{ c g d='' @}
-@end example
-
-@noindent
-the @code{d} will generate a warning, because a
-@code{d''} is expected, as indicated by the octave check
-@code{=''}, but a @code{d'} is found, since both @code{c}-@code{g}
-and @code{g}-@code{d} without octavation marks are descending
-fourths. In the output, the octave is corrected to be a
-@code{d''} and the next note is calculated relative to @code{d''}
-instead of @code{d'}.
+To check the octave of a specific 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.
-There is also an octave check that produces no visible output.
-The syntax is:
-
-@example
-@var{pitch} \octave @var{controlpitch}
-@end example
-
-where @var{pitch} is a regular note within a music expression in
-relative mode and @var{controlpitch} is a pitch in absolute mode.
-This checks that @var{pitch} lies within the octave surrounding
-@var{controlpitch}, i.e. not more than a fourth above or below it.
-If this is not the case, a warning is printed and the octave is
-corrected. The @var{controlpitch} is not printed as a note.
-
-In the example below, the first check passes without incident,
-since the @code{e} (in @code{relative} mode) is within the octave
-range of @code{a'}. However, the second check produces a warning,
-since the @code{e} is not within the octave range of @code{b'}.
-The warning message is printed, and the octave is adjusted so that
-the following notes are in the correct octave once again.
-
-@example
-\relative c' @{
- e
- \octave a'
- \octave b'
-@}
-@end example
+@lilypond[verbatim,quote,ragged-right,fragment]
+\relative c'' {
+ c2 d='4 d
+ e2 f
+}
+@end lilypond
+The octave of notes may also be checked with the
+@code{\octave}@tie{}@var{controlpitch} command. @var{controlpitch} is
+specified in absolute mode. This checks that the interval between the
+previous note and the @var{controlpitch} is within a fourth (i.e. the
+normal calculation of relative mode). If this check fails, a warning
+is printed, but the previous note is not changed. Future notes are
+relative to the @var{controlpitch}.
-The octave of a note following an @code{\octave} check is
-determined with respect to the note preceding it, as modified by
-the outcome of the octave check. In the next fragment, the first
-note, an @code{e'}, lies within the octave of @code{b}, and the
-@code{\octave} check passes successfully. The second note is then
-calculated relative to (absolute) @code{e'}, which yields an
-@code{a'}, above middle C. In this case, the check had no
-influence on the output of the piece.
+@lilypond[verbatim,quote,ragged-right,fragment]
+\relative c'' {
+ c2 d
+ \octave c'
+ e2 f
+}
+@end lilypond
-The second @code{\octave} check fails: @code{a'} is not within the
-range of @code{b}. A warning is issued, and the last note is
-calculated relative to @code{a}, not to @code{a'}, and we get a
-@code{d'}. Without the last @code{\octave} check, the last note
-would have been a @code{d''}
+Compare the two bars below. The first and third @code{\octave}
+check fail, but the second one does not fail.
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' {
- e
- \octave b
- a
- \octave b
- d
+@lilypond[verbatim,quote,ragged-right,fragment]
+\relative c'' {
+ c4 f g f
+
+ c4
+ \octave c'
+ f
+ \octave c'
+ g
+ \octave c'
+ f
}
@end lilypond
+
@seealso
-Snippets: @lsrdir{pitches}
+Snippets: @lsrdir{Pitches,Pitches}.
@node Transpose
-@unnumberedsubsubsec Transpose
+@subsubsection Transpose
-@cindex Transpose
-@cindex Transposition of pitches
+@cindex transpose
+@cindex transposition
+@cindex transposition of pitches
@funindex \transpose
A music expression can be transposed with @code{\transpose}. The
syntax is
@example
-\transpose @var{from} @var{to} @var{musicexpr}
+\transpose @var{frompitch} @var{topitch} @var{musicexpr}
@end example
+@noindent
This means that @var{musicexpr} is transposed by the interval
-between the pitches @var{from} and @var{to}: any note with pitch
-@var{from} is changed to @var{to} and any other note is transposed
-by the same interval.
-
-Consider a piece written in the key of D-major. If this piece is
-a little too low for its performer, it can be transposed up to
-E-major with
-
-@example
-\transpose d e @dots{}
-@end example
-
-Consider a part written for violin (a C instrument). If this part
-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
-following transposition will produce the appropriate part:
-
-@example
-\transpose a c @dots{}
-@end example
+between the pitches @var{frompitch} and @var{topitch}: any note
+with pitch @var{frompitch} is changed to @var{topitch} and any
+other note is transposed by the same interval. Both pitches are
+entered in absolute mode.
+
+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,ragged-right]
+\transpose d e {
+ \relative c' {
+ \key d \major
+ d4 fis a d
+ }
+}
+@end lilypond
-@code{\transpose} will also transpose key signatures:
+If a part written in C (normal 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[quote,ragged-right,verbatim]
-mus = { \key d \major cis d fis g }
-\new Staff {
- \clef "F" \mus
- \clef "G"
- \transpose c g' \mus
- \transpose c f' \mus
+@lilypond[verbatim,quote,ragged-right]
+\transpose a c' {
+ \relative c' {
+ \key c \major
+ c4 d e g
+ }
}
@end lilypond
+@noindent
+Note that we specify @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
@code{\transpose c cis} or @code{\transpose c des} will transpose
-up half a tone. The first version will print sharps and the notes
+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[quote,ragged-right,verbatim]
-mus = { c d e f }
+@lilypond[verbatim,quote,ragged-right]
+mus = \relative c' { c d e f }
\new Staff {
- \transpose c cis { \relative c' \mus }
- \transpose c des { \relative c' \mus }
+ \transpose c cis { \mus }
+ \transpose c des { \mus }
}
@end lilypond
-@code{\transpose} may also be used 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 which begins on a notated E (concert D), one would write:
+@cindex transposing instruments
+
+@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
+\transpose c bes, \musicInBflat
@end example
-To print this music in F (e.g., rearranging to a french horn) you
-would wrap the existing music with another @code{\transpose}
+@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 @}
+\transpose f c' @{ \transpose c bes, \musicInBflat @}
@end example
+@noindent
+For more information about transposing instruments,
+see @ref{Instrument transpositions}.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
+
+
@seealso
-Snippets: @lsrdir{pitches}, @lsr{scheme,
-transpose-pitches-with-minimum-accidentals.ly}.
+Notation Reference: @ref{Instrument transpositions}.
+
+Snippets: @lsrdir{Pitches,Pitches}.
Internals Reference: @internalsref{TransposedMusic}.
-@refbugs
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
+
+@knownissues
+
-If you want to use both @code{\transpose} and @code{\relative},
-you must put @code{\transpose} outside of @code{\relative}, since
-@code{\relative} will have no effect on music that appears inside
-a @code{\transpose}. See the previous example.
+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}.
@node Displaying pitches
* Ambitus::
@end menu
+
@node Clef
-@unnumberedsubsubsec Clef
+@subsubsection Clef
@funindex \clef
-
@cindex G clef
@cindex C clef
@cindex F clef
@cindex baritone clef
@cindex varbaritone clef
@cindex subbass clef
-
-The clef is set with the @code{\clef} @var{clefname}
-command:
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-<<
- \new Staff {
- % treble clef by default
- c'1^"middle C"
- }
- \new Staff {
- \clef alto
- c'1^"middle C"
- }
- \new Staff {
- \clef bass
- c'1^"middle C"
- }
->>
+@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 subbass clef, subbass
+
+The clef is set with the @code{\clef} @var{clefname} command.
+Middle C is shown in every example.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef treble
+c2 c
+\clef alto
+c2 c
+\clef tenor
+c2 c
+\clef bass
+c2 c
@end lilypond
-The clef can also be changed inside the staff:
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new PianoStaff <<
- \new Staff {
- \time 2/4
- \clef treble
- r16
- \clef bass
- e g c' e' e g c'
- }
- \new Staff {
- \clef bass
- c,8 r \clef treble g''4
- }
->>
+Other clefs include:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef french
+c2 c
+\clef soprano
+c2 c
+\clef mezzosoprano
+c2 c
+\clef baritone
+c2 c
+
+\break
+
+\clef varbaritone
+c2 c
+\clef subbass
+c2 c
+\clef percussion
+c2 c
+\clef tab
+c2 c
@end lilypond
-These same clef symbols are used in different positions on
-the staff to change the range of notes shown by that staff.
-The treble (alto, bass) clef is always positioned to show
-the line on which a g' (c', f) note is printed.
-
-Supported clefs include
-
-@multitable @columnfractions .4 .6
-@headitem Clef @tab Position
-@item @code{treble, violin, G, G2} @tab
-G clef (g') on 2nd line
-@item @code{alto, C} @tab
-C clef (c') on 3rd line
-@item @code{tenor} @tab
-C clef (c') on 4th line.
-@item @code{bass, F} @tab
-F clef (f) on 4th line
-@item @code{french} @tab
-G clef (g') on 1st line, so-called French violin clef
-@item @code{soprano} @tab
-C clef (c') on 1st line
-@item @code{mezzosoprano} @tab
-C clef (c') on 2nd line
-@item @code{baritone} @tab
-C clef (c') on 5th line
-@item @code{varbaritone} @tab
-F clef (f) on 3rd line
-@item @code{subbass} @tab
-F clef (f) on 5th line
-@item @code{percussion} @tab
-percussion clef
-@item @code{tab} @tab
-tablature clef
-@end multitable
-
Further supported clefs are described under @ref{Ancient clefs}.
+@cindex transposing clefs
+@cindex clef, transposing
+@cindex octave transposition
+
By adding @code{_8} or @code{^8} to the clef name, the clef is
transposed one octave down or up, respectively, and @code{_15} and
@code{^15} transposes by two octaves. The argument @var{clefname}
must be enclosed in quotes when it contains underscores or digits.
-For example,
@cindex choral tenor clef
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\clef "G_8" c4
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef "treble_8"
+c2 c
+\clef "bass^15"
+c2 c
@end lilypond
-@commonprop
-
-When a clef change takes place at a line break the new clef symbol
-is printed at both the end of the previous line and the beginning
-of the new line by default. If the warning clef at the end of the
-previous line in not required it can be suppressed by setting the
-@code{explicitClefVisibility} Staff property to the value
-@var{end-of-line-invisible}: @code{\set
-Staff.explicitClefVisibility = #end-of-line-invisible} The default
-behaviour can be recovered with @code{\unset
-Staff.explicitClefVisibility}
-
-The command @code{\clef "treble_8"} is equivalent to setting
-@code{clefGlyph}, @code{clefPosition} (which controls the Y
-position of the clef), @code{middleCPosition} and
-@code{clefOctavation}. A clef is printed when either the
-@code{clefGlyph}, @code{clefPosition} or @code{clefOctavation}
-properties are changed. Note that changing the glyph, the
-position of the clef, or the octavation, does not in itself change
-the position of subsequent notes on the staff: the position of
-middle C must also be specified to do this. The positional
-parameters are relative to the staff centre line, positive numbers
-displacing upwards, counting 1 for each line and space. The
-clefOctavation value would normally be set to 7, -7, 15 or -15,
-but other values are not invalid.
-
-The following examples show the possibilities when setting these
-properties manually. First some manual changes which preserve the
-standard relative positioning of clefs and notes:
-
-@lilypond[quote,ragged-right,verbatim]
-{
- % The default treble clef
- c'4
- % The standard bass clef
- \set Staff.clefGlyph = #"clefs.F"
- \set Staff.clefPosition = #2
- \set Staff.middleCPosition = #6
- c'4
- % The baritone clef
- \set Staff.clefGlyph = #"clefs.C"
- \set Staff.clefPosition = #4
- \set Staff.middleCPosition = #4
- c'4
- % The standard choral tenor clef
- \set Staff.clefGlyph = #"clefs.G"
- \set Staff.clefPosition = #-2
- \set Staff.clefOctavation = #-7
- \set Staff.middleCPosition = #1
- c'4
- % A non-standard clef
- \set Staff.clefPosition = #0
- \set Staff.clefOctavation = #0
- \set Staff.middleCPosition = #-4
- c'4
-}
-@end lilypond
-and some which do not:
-
-@lilypond[quote,ragged-right,verbatim]
-{
- \set Staff.clefGlyph = #"clefs.F"
- \set Staff.clefPosition = #2
- c'4
- \set Staff.clefGlyph = #"clefs.G"
- c'4
- \set Staff.clefGlyph = #"clefs.C"
- c'4
- \set Staff.clefOctavation = #7
- c'4
- \set Staff.clefOctavation = #0
- \set Staff.clefPosition = #0
- c'4
- \set Staff.middleCPosition = #4
- c'4
-}
-@end lilypond
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{clefs-commonly-tweaked-properties.ly}
+
@seealso
-Notation reference: @ref{Ancient clefs}.
+Notation Reference: @ref{Ancient clefs}.
-Snippets: @lsrdir{pitches}
+Snippets: @lsrdir{Pitches,Pitches}.
Internals Reference: @internalsref{Clef}.
@node Key signature
-@unnumberedsubsubsec Key signature
+@subsubsection Key signature
-@cindex Key signature
+@cindex key signature
@funindex \key
@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 @code{c} means @q{C natural}, regardless of
-the key signature or clef. For more information, see
-@rlearning{Accidentals and key signatures}.}
+An unaltered note like@tie{}@code{c} means @q{C natural},
+regardless of the key signature or clef. For more information,
+see @rlearning{Accidentals 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.
-
-Setting or changing the key signature is done with the @code{\key}
-command:
+at the start of the staff. Setting or changing the key signature
+is done with the @code{\key} command:
@example
-\key @var{pitch} @var{type}
+\key @var{pitch} @var{mode}
@end example
-@funindex \minor
@funindex \major
@funindex \minor
@funindex \ionian
@funindex \phrygian
@funindex \dorian
@cindex church modes
+@cindex modes
-Here, @var{type} should be @code{\major} or @code{\minor} to get
-@var{pitch}-major or @var{pitch}-minor, respectively. You may
-also use the standard mode names (also called @q{church modes}):
-@code{\ionian}, @code{\locrian}, @code{\aeolian},
-@code{\mixolydian}, @code{\lydian}, @code{\phrygian}, and
-@code{\dorian}.
+Here, @var{mode} should be @code{\major} or @code{\minor} to get a
+key signature of @var{pitch}-major or @var{pitch}-minor,
+respectively. You may also use the standard mode names, also
+called @q{church modes}: @code{\ionian}, @code{\dorian},
+@code{\phrygian}, @code{\lydian}, @code{\mixolydian},
+@code{\aeolian}, and @code{\locrian}.
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\key g \major
-f1
+fis1
+f
fis
@end lilypond
-@commonprop
-
-A natural sign is printed to cancel any previous accidentals.
-This may be altered:
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-\set Staff.printKeyCancellation = ##f
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-@end lilypond
+@snippets
-The @code{\key} command sets the context property
-@code{Staff.keySignature}. Non-standard key signatures can be
-specified by setting this property directly. The format of this
-command is a list:
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
-@example
-\set Staff.keySignature = #'((@var{octave} . @var{step}) . @var{alter})
-@end example
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{non-traditional-key-signatures.ly}
-@noindent
-where, for each element in the list, @var{octave} specifies the
-octave (0 being the octave from middle C to the B above),
-@var{step} specifies the note within the octave (0 means C and 6
-means B), and @var{alter} is ,SHARP ,FLAT ,DOUBLE-SHARP etc.
-(Note the leading comma.) Here is an example of a possible key
-signature for generating a whole-tone scale:
-
-@lilypond[quote,ragged-right,verbatim]
-\relative c'
- \new Staff {
- \set Staff.keySignature =
- #`(((0 . 3) . ,SHARP) ((0 . 5) . ,FLAT) ((0 . 6) . ,FLAT))
- c d e fis aes bes c
-}
-@end lilypond
@seealso
-Music glossary: @rglos{Church mode}, @rglos{scordatura}.
+Music Glossary: @rglos{church mode}, @rglos{scordatura}.
+
+Learning Manual: @rlearning{Accidentals and key signatures}.
-Snippets: @lsrdir{pitches},
-FIXME link to snippet 248,
-FIXME link to a snippet about scordatura.
+Snippets: @lsrdir{Pitches,Pitches}.
Internals Reference: @internalsref{KeyCancellation},
-@internalsref{KeySignature}, @internalsref{Key_engraver}
+@internalsref{KeySignature}, @internalsref{Key_engraver}.
@node Ottava brackets
-@unnumberedsubsubsec Ottava brackets
+@subsubsection Ottava brackets
@cindex ottava
@cindex 15ma
@notation{Ottava brackets} introduce an extra transposition of an
octave for the staff:
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c''' {
- a2 b
- #(set-octavation 1)
- a b
- #(set-octavation 0)
- a b
-}
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+a'2 b
+#(set-octavation 1)
+a b
+#(set-octavation 0)
+a b
@end lilypond
The @code{set-octavation} function also takes -1 (for 8va bassa),
2@tie{}(for 15ma), and -2 (for 15ma bassa) as arguments.
-Internally the function sets the properties @code{ottavation}
-(e.g., to @code{"8va"} or @code{"8vb"}) and
-@code{middleCPosition}. To override the text of the bracket, set
-@code{ottavation} after invoking @code{set-octavation}, i.e.,
-
-@lilypond[quote,ragged-right,verbatim]
-{
- #(set-octavation 1)
- \set Staff.ottavation = #"8"
- c'''
-}
-@end lilypond
-@seealso
+@snippets
-Snippets: @lsrdir{pitches}
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ottava-text.ly}
-Internals Reference: @internalsref{OttavaBracket}.
+@seealso
-@refbugs
+Music Glossary: @rglos{octavation}.
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
+Internals Reference: @internalsref{OttavaBracket}.
-@code{set-octavation} will get confused when clef changes happen
-during an octavation bracket.
@node Instrument transpositions
-@unnumberedsubsubsec Instrument transpositions
+@subsubsection Instrument transpositions
@cindex transposition, MIDI
@cindex transposition, instrument
-
-The key of a @notation{transposing instrument} can be specified.
-This applies to many wind instruments, for example, clarinets
-(B-flat, A, and E-flat), horn (F) and trumpet (B-flat, C, D, and
-E-flat).
-
-The transposition is entered with the command
+@cindex transposing instrument
+@cindex MIDI
+@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
-@noindent
-where @var{pitch} specifies the key in which the instrument plays.
-For example, a part for B-flat clarinet would include
-
-@example
-\transposition bes
-@end example
-
-This command sets the property @code{instrumentTransposition}.
-The value of this property is used for MIDI output and quotations.
-MIDI output is transposed to play at concert pitch, and cue notes
-and quotations are automatically transposed to the key of the
-instrument in which they are quoted. For more information about
-quotations, see @ref{Quoting other voices}.
-
The pitch to use for @code{\transposition} should correspond to
-the real sound heard when a @code{c'} written on the staff is
-played by the transposing instrument. @code{\transposition}
-should be used when the music is entered from an orchestral part
-written for the instrument. For example, in classical horn parts,
-the tuning of the instrument is often changed during a piece.
-Here are a few notes for a violin and a B-flat clarinet where the
+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
+@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 or the conductor's score:
+each part of the conductor's score. The two instruments are
+playing in unison.
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[verbatim,quote,ragged-right]
\new GrandStaff <<
- \new Staff = "Violin I" {
+ \new Staff = "Vln" {
+ \relative c'' {
\set Staff.instrumentName = "Vln"
\set Staff.midiInstrument="violin"
+ % strictly speaking not necessary, but a good reminder
+ \transposition c'
+
\key c \major
- \transposition c
- g'4( c''8) r c'' r c''4
+ g4( c8) r c r c4
}
- \new Staff = "Clarinet" {
- \set Staff.instrumentName = "Cl"
+ }
+ \new Staff = "clarinet" {
+ \relative c'' {
+ \set Staff.instrumentName = \markup {Cl (B\flat)}
\set Staff.midiInstrument="clarinet"
- \key d \major
\transposition bes
- a'4( d''8) r d'' r d''4
+
+ % not concert pitch
+ \key d \major
+ a4( d8) r d r d4
}
+ }
>>
@end lilypond
-Without the @code{\transposition} command the midi output of this
-music would play the notes a tone apart; with it the notes are
-played correctly in unison.
-
-However, when entering the notes of a score in concert pitch, when
-all voices are entered in C, they may be prefaced by (the default)
-@code{\transposition c'}:
+The @code{\transposition} may be changed during a piece. For
+example, a clarinetist may switch from an A clarinet to a B-flat
+clarinet.
-@example
-clarinet = @{
- \transposition c'
- ...
-@}
-saxophone = @{
- \transposition c'
- ...
-@}
-@end example
-
-@noindent
-to serve as a reminder that these parts are written in C.
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+\set Staff.instrumentName = "Cl (A)"
+\key a \major
+\transposition a
+c d e f
+\textLengthOn
+r1^\markup{Switch to B\flat clarinet}
+
+\key bes \major
+\transposition bes
+c2 g
+@end lilypond
@seealso
-Notation reference: @ref{Quoting other voices}, @ref{Transpose}.
-
-Snippets: @lsrdir{pitches}
+Music Glossary: @rglos{concert pitch}, @rglos{transposing instrument}.
+Notation Reference: @ref{Quoting other voices}, @ref{Transpose}.
-@node Automatic accidentals
-@unnumberedsubsubsec Automatic accidentals
-@cindex Automatic accidentals
+Snippets: @lsrdir{Pitches,Pitches}.
-Common rules for typesetting accidentals have been placed in a
-function. This function is called as follows
+@node Automatic accidentals
+@subsubsection Automatic accidentals
+
+@cindex automatic accidentals
+@cindex accidentals, automatic
+@cindex accidentals
+@cindex accidental style
+@cindex default accidental style
+@cindex accidental style, default
@funindex set-accidental-style
+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 <<
#(set-accidental-style 'voice)
>>
@end example
-@c TODO: check the context stuff below
-@c -does it *really* work?
-@c -the default contexts as specified in
-@c scm/music-function.scm seem to be different -vv
-
-If no context name is supplied, the accidental style applies to
-the @code{Staff} by default. Optionally, the function can take
-the context for which the style should be changed as a second
-argument:
+The accidental style applies to the current @code{Staff} by
+default (with the exception of the styles @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
-#(set-accidental-style 'STYLE #('CONTEXT))
+#(set-accidental-style 'voice 'StaffGroup)
@end example
The following accidental styles are supported. To demonstrate
each style, we use the following example:
-@c TODO: a Formatter, please clean this up.
-@lilypond[quote,ragged-right,verbatim]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+@lilypond[verbatim,quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
\new PianoStaff {
- << \context Staff = "up" {
- %%% change the next line as desired:
- %#(set-accidental-style 'default)
- \musicA }
- \context Staff = "down"{
- %%% change the next line as desired:
- %#(set-accidental-style 'default)
- \musicB } >> }
+ <<
+ \context Staff = "up" {
+ %%% change the next line as desired:
+ #(set-accidental-style 'default)
+ \musicA
+ }
+ \context Staff = "down" {
+ %%% change the next line as desired:
+ #(set-accidental-style 'default)
+ \musicB
+ }
+ >>
+}
@end lilypond
-@c don't use verbatim in this table.
+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 @{
+ <<
+ \context Staff = "up" @{
+ %%% change the next line as desired:
+ #(set-accidental-style 'default 'Score)
+ \musicA
+ @}
+ \context Staff = "down" @{
+ \musicB
+ @}
+ >>
+@}
+@end example
+
+
+@c NOTE: don't use verbatim in this table.
@table @code
@item default
This is the default typesetting behavior. It corresponds to
-eighteenth-century common practice: Accidentals are remembered to
+eighteenth-century common practice: accidentals are remembered to
the end of the measure in which they occur and only on their own
octave. Thus, in the example below, no natural signs are printed
-before the @code{b} in the second measure or the last @code{c}:
+before the@tie{}@code{b} in the second measure or the
+last@tie{}@code{c}:
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
- \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
-musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
\new PianoStaff {
- << \context Staff = "up" {
- %#(set-accidental-style 'default)
- \musicA }
- \context Staff = "down"{
- %#(set-accidental-style 'default)
- \musicB } >> }
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'default)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'default)
+ \musicB
+ }
+ >>
+}
@end lilypond
@item voice
-The normal behavior is to remember the accidentals on
-Staff-level. This variable, however, typesets accidentals
-individually for each voice. Apart from that, the rule is similar to
+The normal behavior is to remember the accidentals on 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 @code{a}
+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
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'voice)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'voice)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'voice)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'voice)
+ \musicB
+ }
+ >>
+}
@end lilypond
@item modern
+@cindex accidentals, modern style
+@cindex modern style accidentals
@funindex modern style accidentals
This rule corresponds to the common practice in the twentieth
century. It prints the same accidentals as @code{default}, with
-two exceptions which serve to avoid ambiguity: after temporary
+two exceptions 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
-@code{b} and the @code{c} in the second measure of the upper
-staff:
+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,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern)
+ \musicB
+ }
+ >>
+}
@end lilypond
@item modern-cautionary
+@cindex accidentals, modern cautionary style
+@cindex modern style accidentals
+@cindex modern style cautionary accidentals
+@cindex modern accidental style
+@cindex modern cautionary accidental style
@funindex modern-cautionary
This rule is similar to @code{modern}, but the @q{extra}
accidentals (the ones not typeset by @code{default}) are typeset
as cautionary accidentals. They are by default printed with
parentheses, but they can also be printed in reduced size by
-defining the @code{cautionary-style} property of the
-@internalsref{AccidentalSuggestion} object.
+defining the @code{cautionary-style} property of
+@code{AccidentalSuggestion}.
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern-cautionary)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern-cautionary)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern-cautionary)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern-cautionary)
+ \musicB
+ }
+ >>
+}
@end lilypond
@item modern-voice
+@cindex accidentals, multivoice
+@cindex accidentals, modern
+@cindex modern accidentals
+@cindex multivoice accidentals
+@cindex accidental style, modern
+@cindex modern accidental style
@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 @internalsref{Staff}. Hence,
-the @code{a} in the last measure is canceled because the previous
-cancellation was in a different voice, and the @code{d} in the
-lower staff is canceled because of the accidental in a different
-voice in the previous measure:
+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,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern-voice)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern-voice)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern-voice)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern-voice)
+ \musicB
+ }
+ >>
+}
@end lilypond
+@cindex accidental style, modern voice cautionary
+@cindex accidental style, cautionary, modern voice
+@cindex accidental style, voice, modern cautionary
@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 by this variable,
+@code{default} @emph{are} typeset with this rule,
some of them are typeset as cautionaries.
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'modern-voice-cautionary)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'modern-voice-cautionary)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern-voice-cautionary)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern-voice-cautionary)
+ \musicB
+ }
+ >>
+}
@end lilypond
@item piano
-@funindex piano accidentals
+@cindex piano accidentals
+@cindex piano accidentals
+@cindex accidentals, piano
+@cindex piano accidental style
+@cindex accidental style, 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
-@internalsref{GrandStaff} or @internalsref{PianoStaff}, hence all
-the cancellations of the final notes.
+GrandStaff or PianoStaff, hence all the cancellations of the final
+notes.
-This accidental style takes place in a GrandStaff context.
-However, you have to explicitly set it for @emph{each} individual
-Staff of the GrandStaff:
+This accidental style applies to the current @code{GrandStaff} or
+@code{PianoStaff} by default.
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
-@example
-\new GrandStaff @{ <<
- \new Staff = "up" @{ <<
- #(set-accidental-style 'piano)
- @{ @dots{} @}
- >> @}
- \new Staff = "down"@{ <<
- #(set-accidental-style 'piano)
- @{ @dots{} @}
- >> @}
->> @}
-@end example
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
-@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'piano)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'piano)
- \musicB } >> }
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'piano)
+ \musicA
+ }
+ \context Staff = "down" {
+ \musicB
+ }
+ >>
+}
@end lilypond
@item piano-cautionary
@funindex #(set-accidental-style 'piano-cautionary)
+@cindex accidentals, piano cautionary
+@cindex cautionary accidentals, piano
+@cindex piano cautionary accidentals
+@cindex accidental style, piano cautionary
+@cindex cautionary accidental style, piano
+@cindex piano cautionary accidental style
Same as @code{#(set-accidental-style 'piano)} but with the extra
accidentals typeset as cautionaries.
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'piano-cautionary)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'piano-cautionary)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'piano-cautionary)
+ \musicA
+ }
+ \context Staff = "down" {
+ \musicB
+ }
+ >>
+}
@end lilypond
@item no-reset
@funindex no-reset accidental style
+@cindex accidental style, no reset
+@cindex no reset accidental style
This is the same as @code{default} but with accidentals lasting
@q{forever} and not only within the same measure:
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'no-reset)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'no-reset)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'no-reset)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'no-reset)
+ \musicB
+ }
+ >>
+}
@end lilypond
@item forget
@funindex forget accidental style
+@cindex forget accidental style
+@cindex accidental style, forget
This is the opposite of @code{no-reset}: Accidentals are not
remembered at all -- and hence all accidentals are typeset
the music:
@lilypond[quote,ragged-right]
-musicA = { << \relative { cis'8 fis, d'4 <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>4
- \change Staff = up cis' \change Staff = down <fis, a>
- \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
- <f a d>2 | } }}
-
- \new PianoStaff {
- << \context Staff = "up" {
- #(set-accidental-style 'forget)
- \musicA }
- \context Staff = "down"{
- #(set-accidental-style 'forget)
- \musicB } >> }
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'forget)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'forget)
+ \musicB
+ }
+ >>
+}
@end lilypond
@end table
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{dodecaphonic-style-accidentals-for-each-note-including-naturals.ly}
+
@seealso
-Snippets: @lsrdir{pitches}
+Snippets: @lsrdir{Pitches,Pitches}.
Internals Reference: @internalsref{Accidental_engraver},
-@internalsref{Accidental}, @internalsref{AccidentalSuggestion} and @internalsref{AccidentalPlacement}.
+@internalsref{Accidental}, @internalsref{AccidentalSuggestion},
+@internalsref{AccidentalPlacement}, @internalsref{GrandStaff} and
+@internalsref{PianoStaff}, @internalsref{Staff}.
-@refbugs
+@cindex accidentals and simultaneous notes
+@cindex simultaneous notes and accidentals
+@cindex accidentals in chords
+@cindex chords, accidentals in
+
+@knownissues
Simultaneous notes are considered to be entered in sequential
-mode. This means that in a chord the accidentals are typeset as if the
-notes in the chord happen one at a time, in the order in which
-they appear in the input file. This is a problem when accidentals
-in a chord depend on each other,
-which does not happen for the default accidental style. The problem
-can be solved by manually inserting @code{!} and @code{?} for the
+mode. This means that in a chord the accidentals are typeset as
+if the notes in the chord happen one at a time, in the order in
+which they appear in the input file. This is a problem when
+accidentals in a chord depend on each other, which does not happen
+for the default accidental style. The problem can be solved by
+manually inserting@tie{}@code{!} and@tie{}@code{?} for the
problematic notes.
@node Ambitus
-@unnumberedsubsubsec Ambitus
+@subsubsection Ambitus
+
@cindex ambitus
+@cindex range of pitches
+@cindex pitch range
-The term @notation{ambitus} or @notation{ambit} 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.
-Ambits are printed on vocal parts, so performers can easily
-determine if it meets their capabilities.
+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.
-Ambits are denoted at the beginning of a piece near the initial
+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 minimum and maximum pitch. To print such ambits,
-add the @internalsref{Ambitus_engraver} to the
-@internalsref{Voice} context, for example:
+represent the lowest and highest pitches. Accidentals are only
+printed if they are not part of the key signature.
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
\layout {
\context {
- \Staff
+ \Voice
\consists Ambitus_engraver
}
}
-\relative \new Staff {
- as'' c e2 cis,2
+\relative c'' {
+ aes c e2 cis,2
}
@end lilypond
-If you have multiple voices in a single staff and you want a
-single ambitus per staff rather than per voice, add the
-@internalsref{Ambitus_engraver} to the @internalsref{Staff}
-context rather than to the @internalsref{Voice} context:
-@lilypond[verbatim,ragged-right,quote]
-\new Staff \with {
- \consists "Ambitus_engraver"
-}
-<<
- \new Voice \with {
- \remove "Ambitus_engraver"
- } \relative c'' {
- \override Ambitus #'X-offset = #-1.0
- \voiceOne
- c4 a d e f2
- }
- \new Voice \with {
- \remove "Ambitus_engraver"
- } \relative c' {
- \voiceTwo
- es4 f g as b2
- }
->>
-@end lilypond
+@snippets
-@noindent
-This example uses one advanced feature,
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{adding-ambiti-per-voice.ly}
-@example
-\override Ambitus #'X-offset = #-1.0
-@end example
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ambiti-multiple-voices.ly}
-@noindent
-This code moves the ambitus to the left. The same effect could
-have been achieved with @code{extra-offset}, but then the
-formatting system would not reserve space for the moved object.
@seealso
+Music Glossary: @rglos{ambitus}.
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
Internals Reference: @internalsref{Ambitus},
@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
-
-Snippets: @lsrdir{pitches},
-@lsr{vocal,ambitus@/.ly}.
+@internalsref{AmbitusAccidental}, @internalsref{Ambitus_engraver},
+@internalsref{Staff}, @internalsref{Voice}.
-@refbugs
+@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::
-* Special noteheads::
@end menu
+@node Special note heads
+@subsubsection Special note heads
+
+@cindex note heads, special
+@cindex note heads, cross
+@cindex note heads, diamond
+@cindex note heads, parlato
+@cindex note heads, harmonic
+@cindex note heads, guitar
+@cindex special note heads
+@cindex cross note heads
+@cindex diamond note heads
+@cindex parlato note heads
+@cindex harmonic note heads
+@cindex guitar note heads
+
+Different note heads are used by various instruments for various
+meanings -- crosses are used for @q{parlato} with vocalists,
+stopped notes on guitar; diamonds are used for harmonics on string
+instruments, etc. There is a shorthand (@code{\harmonic}) for
+diamond shapes; the other note head styles are produced by
+tweaking the property:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+c4 d
+\override NoteHead #'style = #'cross
+e f
+\revert NoteHead #'style
+e d <c f\harmonic> <d a'\harmonic>
+@end lilypond
+
+@noindent
+To see all note head styles, see @ref{Note head styles}.
+
+
+@seealso
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
+Notation Reference: @ref{Note head styles}.
+
+Internals Reference: @internalsref{NoteHead},
+@internalsref{LedgerLineSpanner}.
+
+
@node Easy notation note heads
-@unnumberedsubsubsec Easy notation note heads
+@subsubsection Easy notation note heads
@cindex note heads, practice
@cindex note heads, easy notation
@cindex easy notation
@cindex Hal Leonard
+@cindex beginners' music
+@cindex music, beginners'
+@cindex easy play note heads
+@cindex note heads, easy play
The @q{easy play} note head includes a note name inside the head.
-It is used in music for beginners
+It is used in music for beginners.
-@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
- \setEasyHeads
- c'2 e'4 f' | g'1
+@lilypond[verbatim,quote,ragged-right]
+#(set-global-staff-size 26)
+\relative c' {
+ \easyHeadsOn
+ c2 e4 f
+ g1
+ \easyHeadsOff
+ c,1
+}
@end lilypond
-The command @code{\setEasyHeads} overrides settings for the
-@internalsref{NoteHead} object. To make the letters readable, it
-has to be printed in a large font size. To print with a larger
-font, see @ref{Setting the staff size}.
+The command @code{\easyHeadsOn} overrides settings for the
+@code{NoteHead} object. These settings can be reverted with the command
+@code{\easyHeadsOff}. To make the letters readable, it has to be printed
+in a large font size. To print with a larger font, see @ref{Setting the
+staff size}.
-@refcommands
+@predefined
-@funindex \setEasyHeads
-@code{\setEasyHeads}
+@funindex \easyHeadsOn
+@funindex \easyHeadsOff
+@code{\easyHeadsOn}, @code{\easyHeadsOff}
@seealso
-Snippets: @lsrdir{pitches},
+Notation Reference: @ref{Setting the staff size}.
+
+Snippets: @lsrdir{Pitches,Pitches},
+
+Internals Reference: @internalsref{NoteHead}.
@node Shape note heads
-@unnumberedsubsubsec Shape note heads
+@subsubsection Shape note heads
@cindex note heads, shape
+@cindex note heads, Aiken
+@cindex note heads, sacred harp
+@cindex shape notes
+@cindex Aiken shape note heads
+@cindex sacred harp note heads
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
In shape note head notation, the shape of the note head
corresponds to the harmonic function of a note in the scale. This
Shape note heads can be produced by setting @code{\aikenHeads} or
@code{\sacredHarpHeads}, depending on the style desired.
-@lilypond[verbatim,relative=1,fragment]
- \aikenHeads
- c8 d4 e8 a2 g1
- \sacredHarpHeads
- c,8 d4. e8 a2 g1
+@lilypond[verbatim,fragment,quote,ragged-right,relative=1]
+\aikenHeads
+c8 d4 e8 a2 g1
+\sacredHarpHeads
+c,8 d4 e8 a2 g1
@end lilypond
Shapes are typeset according to the step in the scale, where
the base of the scale is determined by the @code{\key} command.
-@funindex \key
-@funindex shapeNoteStyles
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
+@snippets
-Shape note heads are implemented through the
-@code{shapeNoteStyles} property. Its value is a vector of
-symbols. The k-th element indicates the style to use for the k-th
-step of the scale. Arbitrary combinations are possible, e.g.:
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{applying-noteheads-styles-depending-on-the-step-of-the-scale.ly}
-@lilypond[verbatim,relative=1,fragment]
-\set shapeNoteStyles =
- ##(cross triangle fa #f mensural xcircle diamond)
-c8 d4. e8 a2 g1
-@end lilypond
+@noindent
+To see all note head styles, see @ref{Note head styles}.
@seealso
-Snippets: @lsrdir{pitches},
+Snippets: @lsrdir{Pitches,Pitches}.
+Notation Reference: @ref{Note head styles}.
-@node Improvisation
-@unnumberedsubsubsec Improvisation
-Improvisation is sometimes denoted with slashed note heads. Such
-note heads can be created by adding a
-@internalsref{Pitch_squash_engraver} to the @internalsref{Voice}
-context. Then, the following command
+@node Improvisation
+@subsubsection Improvisation
-@example
-\set squashedPosition = #0
-\override NoteHead #'style = #'slash
-@end example
+@cindex improvisation
+@cindex slashed note heads
+@cindex note heads, improvisation
+@cindex note heads, slashed
-@noindent
-switches on the slashes.
+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:
-There are shortcuts @code{\improvisationOn} (and an accompanying
-@code{\improvisationOff}) for this command sequence. They are
-used in the following example
-
-@lilypond[verbatim,ragged-right,quote]
+@lilypond[verbatim,quote,ragged-right]
\new Voice \with {
\consists Pitch_squash_engraver
} \transpose c c' {
- e8 e g a a16(bes)(a8) g \improvisationOn
+ e8 e g a a16( bes) a8 g
+ \improvisationOn
e8
~e2~e8 f4 fis8
- ~fis2 \improvisationOff a16(bes) a8 g e
+ ~fis2
+ \improvisationOff
+ a16(bes) a8 g e
}
@end lilypond
-@seealso
-
-Snippets: @lsrdir{pitches},
+@predefined
+@funindex \improvisationOn
+@funindex \improvisationOff
-@node Special noteheads
-@unnumberedsubsubsec Special noteheads
-
-@cindex note heads, special
-
-Different noteheads are used by various instruments for various
-meanings -- crosses are used for @q{parlato} with vocalists,
-stopped notes on guitar; diamonds are used for harmonics on string
-instruments, etc. There is a shorthand (@code{\harmonic}) for
-diamond shapes; the other notehead styles are produced by tweaking
-the property
-
-@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
-c4 d
-\override NoteHead #'style = #'cross
-e f
-\revert NoteHead #'style
-e d <c f\harmonic> <d a'\harmonic>
-@end lilypond
-
-@noindent
-To see all notehead styles, please see @ref{Note head styles}.
-
+@code{\improvisationOn}, @code{\improvisationOff}
@seealso
-Snippets: @lsrdir{pitches}.
-
-Internals Reference: @internalsref{NoteHead}.
+Snippets: @lsrdir{Pitches,Pitches}.
+Internals Reference: @internalsref{Pitch_squash_engraver},
+@internalsref{Voice}.