Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.17.18"
@node Pitches
* Relative octave entry::
* Accidentals::
* Note names in other languages::
-* Non-Western note names and accidentals::
@end menu
engraved in the octave below middle C.
@c don't use c' here.
-@lilypond[verbatim,quote,fragment]
-\clef bass
-c d e f
-g a b c
-d e f g
+@lilypond[verbatim,quote]
+{
+ \clef bass
+ c4 d e f
+ g4 a b c
+ d4 e f g
+}
@end lilypond
@cindex octave changing mark
pitch by one octave; each@tie{}@code{,} lowers the pitch by an
octave.
-@lilypond[verbatim,quote,fragment]
-\clef treble
-c' c'' e' g
-d'' d' d c
-\clef bass
-c, c,, e, g
-d,, d, d c
+@lilypond[verbatim,quote]
+{
+ \clef treble
+ c'4 c'' e' g
+ d''4 d' d c
+ \clef bass
+ c,4 c,, e, g
+ d,,4 d, d c
+}
@end lilypond
+@funindex absolute
+@funindex \absolute
+Music can be marked explicitly as being in absolute octave
+notation by preceding it with @code{\absolute}:
+
+@example
+\absolute @var{musicexpr}
+@end example
+
+will be interpreted in absolute octave entry mode regardless of
+the context it appears in.
@seealso
Music Glossary:
@funindex relative
@funindex \relative
-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.
+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}
@item
The pitch of the first note is relative to
@code{@var{startpitch}}. @code{@var{startpitch}} is specified in
-absolute octave mode, and it is recommended that it be a octave of
-@code{c}.
+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
+This (namely writing @code{\relative @{ gis''' @dots{} @}}) can be
+viewed 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 first option.
@end itemize
Here is the relative mode shown in action:
}
@end lilypond
+One consequence of these rules is that the first note inside
+@code{@w{\relative f}} music is interpreted just the same as
+if it was written in absolute pitch mode.
@seealso
Music Glossary:
Internals Reference:
@rinternals{RelativeOctaveMusic}.
-
@cindex relative octave entry and transposition
@cindex transposition and relative octave entry
@funindex relative
-@c DEPRECATED
-If no @code{@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
Accidentals on tied notes are only printed at the beginning of a
new system:
-@lilypond[verbatim,quote,relative=2]
+@lilypond[verbatim,quote,relative=2,ragged-right]
cis1~ cis~
\break
cis
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle,ragged-right]
+@lilypondfile[verbatim,quote,texidoc,doctitle,ragged-right]
{hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly}
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{preventing-extra-naturals-from-being-automatically-added.ly}
@seealso
@rinternals{AccidentalCautionary},
@rinternals{accidental-interface}.
-
@cindex accidental, quarter-tone
@cindex quarter-tone accidental
@knownissues
-
There are no generally accepted standards for denoting
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
@cindex language, pitch names in other
There are predefined sets of note and accidental names for various
-other languages. To use them, include the language-specific init
-file listed below. For example, to use English note names, add
-@code{@w{\include "english.ly"}} to the input file.
+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"
-@warning{Because some other include files (such as @code{@w{predefined-fretboards.ly}})
-use default (Nederlands) note names, the @code{@bs{}include}
-command for the language file should be placed after all other
-LilyPond distribution files.}
+\relative do' {
+ do re mi sib
+}
+@end lilypond
-The available language files and the note names they define are:
+The available languages and the note names they define are:
@quotation
-@multitable {@file{nederlands.ly}} {do re mi fa sol la sib si}
-@headitem Language File
+@multitable {@code{nederlands}} {do re mi fa sol la sib si}
+@headitem Language
@tab Note Names
-@item @file{nederlands.ly}
+@item @code{nederlands}
@tab c d e f g a bes b
-@item @file{arabic.ly}
+@item @code{catalan}
@tab do re mi fa sol la sib si
-@item @file{catalan.ly}
- @tab do re mi fa sol la sib si
-@item @file{deutsch.ly}
+@item @code{deutsch}
@tab c d e f g a b h
-@item @file{english.ly}
+@item @code{english}
@tab c d e f g a bf b
-@item @file{espanol.ly}
+@item @code{espanol} or @code{español}
@tab do re mi fa sol la sib si
-@item @file{italiano.ly}
+@item @code{italiano} or @code{français}
@tab do re mi fa sol la sib si
-@item @file{norsk.ly}
+@item @code{norsk}
@tab c d e f g a b h
-@item @file{portugues.ly}
+@item @code{portugues}
@tab do re mi fa sol la sib si
-@item @file{suomi.ly}
+@item @code{suomi}
@tab c d e f g a b h
-@item @file{svenska.ly}
+@item @code{svenska}
@tab c d e f g a b h
-@item @file{vlaams.ly}
+@item @code{vlaams}
@tab do re mi fa sol la sib si
@end multitable
@end quotation
-@noindent
-and the accidental suffixes they define are:
+In addition to note names, accidental suffixes may
+also vary depending on the language:
@quotation
-@multitable {@file{nederlands.ly}} {-s/-sharp} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
-@headitem Language File
+@multitable {@code{nederlands}} {-s/-sharp} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
+@headitem Language
@tab sharp @tab flat @tab double sharp @tab double flat
-@item @file{nederlands.ly}
+@item @code{nederlands}
@tab -is @tab -es @tab -isis @tab -eses
-@item @file{arabic.ly}
- @tab -d @tab -b @tab -dd @tab -bb
-@item @file{catalan.ly}
+@item @code{catalan}
@tab -d/-s @tab -b @tab -dd/-ss @tab -bb
-@item @file{deutsch.ly}
+@item @code{deutsch}
@tab -is @tab -es @tab -isis @tab -eses
-@item @file{english.ly}
+@item @code{english}
@tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
@tab -ff/-flatflat
-@item @file{espanol.ly}
+@item @code{espanol} or @code{español}
@tab -s @tab -b @tab -ss/-x @tab -bb
-@item @file{italiano.ly}
+@item @code{italiano} or @code{français}
@tab -d @tab -b @tab -dd @tab -bb
-@item @file{norsk.ly}
+@item @code{norsk}
@tab -iss/-is @tab -ess/-es @tab -ississ/-isis
@tab -essess/-eses
-@item @file{portugues.ly}
+@item @code{portugues}
@tab -s @tab -b @tab -ss @tab -bb
-@item @file{suomi.ly}
+@item @code{suomi}
@tab -is @tab -es @tab -isis @tab -eses
-@item @file{svenska.ly}
+@item @code{svenska}
@tab -iss @tab -ess @tab -ississ @tab -essess
-@item @file{vlaams.ly}
+@item @code{vlaams}
@tab -k @tab -b @tab -kk @tab -bb
@end multitable
@end quotation
@cindex sesqui-flat
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.
+@q{normal} sharp or flat. The following table lists note names
+for quarter-tone accidentals in various languages; here the prefixes
+@notation{semi-} and @notation{sesqui-} respectively
+mean @q{half} and @q{one and a half}. Languages that do not
+appear in this table do not provide special note names yet.
@quotation
-@multitable {@file{nederlands.ly}} {@b{semi-sharp}} {@b{semi-flat}} {@b{sesqui-sharp}} {@b{sesqui-flat}}
-@headitem Language File
+@multitable {@code{nederlands}} {@b{semi-sharp}} {@b{semi-flat}} {@b{sesqui-sharp}} {@b{sesqui-flat}}
+@headitem Language
@tab semi-sharp @tab semi-flat @tab sesqui-sharp @tab sesqui-flat
-@item @file{nederlands.ly}
+@item @code{nederlands}
@tab -ih @tab -eh @tab -isih @tab -eseh
-@item @file{arabic.ly}
- @tab -sd @tab -sb @tab -dsd @tab -bsb
-@item @file{deutsch.ly}
+@item @code{deutsch}
@tab -ih @tab -eh @tab -isih @tab -eseh
-@item @file{english.ly}
+@item @code{english}
@tab -qs @tab -qf @tab -tqs @tab -tqf
-@item @file{espanol.ly}
+@item @code{espanol} or @code{español}
@tab -cs @tab -cb @tab -tcs @tab -tcb
-@item @file{italiano.ly}
+@item @code{italiano} or @code{français}
@tab -sd @tab -sb @tab -dsd @tab -bsb
-@item @file{portugues.ly}
+@item @code{portugues}
@tab -sqt @tab -bqt @tab -stqt @tab -btqt
@end multitable
@end quotation
+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}.
@seealso
Music Glossary:
-@rglos{Pitch names}.
-
-Snippets:
-@rlsr{Pitches}.
-
-
-@node Non-Western note names and accidentals
-@unnumberedsubsubsec Non-Western note names and accidentals
-
-Many non-Western musics (and some Western folk and
-traditional musics) employ alternative or extended tuning
-systems that do not fit readily into standard classical
-notation.
-
-In some cases standard notation is still used, with the
-pitch differences being implicit. For example, Arabic
-music is notated with standard semitone and quarter-tone
-accidentals, with the precise pitch alterations being
-determined by context. Others require extended or unique
-notations.
-
-@notation{Turkish classical music}, or Ottoman music,
-employs melodic forms known as @notation{makamlar}, whose
-intervals are based on 1/9 divisions of the whole tone.
-From a modern notational point of view, it is convenient
-to use the standard Western staff notes (c, d, e, ...)
-with special accidentals unique to Turkish music. These
-accidentals are defined in @file{makam.ly} (to locate this
-file on your system, see
-@rlearning{Other sources of information}). The following
-table gives their names, the accidental suffix that must
-be added to notes, and their pitch alteration as a
-fraction of one whole tone.
-
-@c TODO: can we include the actual accidentals in this table?
-@quotation
-@multitable {@b{büyük mücenneb (sharp)}} {@b{suffix}} {@b{pitch alteration}}
-@headitem Accidental name
- @tab suffix @tab pitch alteration
-
-@item büyük mücenneb (sharp)
- @tab -bm @tab +8/9
-@item kücük mücenneb (sharp)
- @tab -k @tab +5/9
-@item bakiye (sharp)
- @tab -b @tab +4/9
-@item koma (sharp)
- @tab -c @tab +1/9
-
-@item koma (flat)
- @tab -fc @tab -1/9
-@item bakiye (flat)
- @tab -fb @tab -4/9
-@item kücük mücenneb (flat)
- @tab -fk @tab -5/9
-@item büyük mücenneb (flat)
- @tab -fbm @tab -8/9
-@end multitable
-@end quotation
-
-For further information on Turkish classical music and
-makamlar, see @ref{Turkish classical music}.
+@rglos{Pitch names},
+@rglos{Common Practice Period}.
+Notation Reference:
+@ref{Common notation for non-Western music}.
-@snippets
+Installed Files:
+@file{scm/define-note-names.scm}.
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{makam-example.ly}
+Snippets:
+@rlsr{Pitches}.
@node Changing multiple pitches
@menu
* Octave checks::
* Transpose::
+* Inversion::
+* Retrograde::
+* Modal transformations::
@end menu
@node Octave checks
}
@end lilypond
-
@seealso
Snippets:
@rlsr{Pitches}.
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
-
@seealso
Notation Reference:
+@ref{Instrument transpositions},
+@ref{Inversion},
+@ref{Modal transformations},
@ref{Relative octave entry},
-@ref{Instrument transpositions}.
+@ref{Retrograde}.
Snippets:
@rlsr{Pitches}.
Internals Reference:
@rinternals{TransposedMusic}.
-
@funindex \transpose
@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}.
+@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' { 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{\relative} block.}
+
+@seealso
+Notation Reference:
+@ref{Modal transformations},
+@ref{Retrograde},
+@ref{Transpose}.
+
+
+@node Retrograde
+@unnumberedsubsubsec Retrograde
+
+@cindex retrograde transformation
+@cindex transformation, retrograde
+@cindex operation, retrograde
+@funindex \retrograde
+@funindex retrograde
+
+A music expression can be reversed to produce its retrograde:
+
+@lilypond[verbatim,quote]
+music = \relative c' { c8. ees16( fis8. a16 b8.) gis16 f8. d16 }
+
+\new Staff {
+ \music
+ \retrograde \music
+}
+@end lilypond
+
+@knownissues
+Manual ties inside @code{\retrograde} will be broken and
+generate warnings. Some ties can be generated automatically
+by enabling @ref{Automatic note splitting}.
+
+@seealso
+Notation Reference:
+@ref{Inversion},
+@ref{Modal transformations},
+@ref{Transpose}.
+
+
+@node Modal transformations
+@unnumberedsubsubsec Modal transformations
+
+@cindex modal transformations
+@cindex transformations, modal
+@cindex operations, 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
+@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' { c d e f g a b }
+motif = \relative c' { c8 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 c' { ges aes bes des ees }
+motif = \relative c' { ees8 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' { c cis d dis e f fis g gis a ais b }
+motif = \relative c' { c8 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
+@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 c' { ees f fis gis a b c d }
+motif = \relative c' { c8. 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' { c g' }
+motive = \relative c' { 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 c' { ees f fis gis a b c d }
+motif = \relative c' { c8. ees16 fis8. a16 b8. gis16 f8. d16 }
+
+\new Staff {
+ \motif
+ \retrograde \modalInversion c' c' \octatonicScale \motif
+}
+@end lilypond
+
+@seealso
+Notation Reference:
+@ref{Inversion},
+@ref{Retrograde},
+@ref{Transpose}.
+
@node Displaying pitches
@subsection Displaying pitches
@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
c2 c
@end lilypond
+Optional octavation can be obtained by enclosing the numeric
+argument in parentheses or brackets:
+
+@lilypond[verbatim,quote,relative=1]
+\clef "treble_(8)"
+c2 c
+\clef "bass^[15]"
+c2 c
+@end lilypond
+
+The pitches are displayed as if the numeric argument were
+given without parentheses/brackets.
+
Some special purpose clefs are described in @ref{Mensural clefs},
@ref{Gregorian clefs}, @ref{Default tablatures}, and @ref{Custom
-tablatures}.
+tablatures}. For mixing different clefs when using cue notes within a
+score, see the @code{\cueClef} and @code{\cueDuringWithClef} functions
+in @ref{Formatting cue notes}.
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{tweaking-clef-properties.ly}
-
@seealso
Notation Reference:
@ref{Mensural clefs},
@ref{Gregorian clefs},
@ref{Default tablatures},
-@ref{Custom tablatures}.
+@ref{Custom tablatures},
+@ref{Formatting cue notes}.
Snippets:
@rlsr{Pitches}.
Internals Reference:
@rinternals{Clef_engraver},
@rinternals{Clef},
-@rinternals{OctavateEight},
+@rinternals{ClefModifier},
@rinternals{clef-interface}.
+@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,relative=1]
+\new Staff \with {
+ \override ClefModifier.color = #red
+ \override Clef.color = #blue
+}
+
+\clef "treble_8" c4
+@end lilypond
+
@node Key signature
@unnumberedsubsubsec Key signature
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 c' {
+ \key c \freygish c4 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,relative=0]
+\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 b2
+@end lilypond
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{non-traditional-key-signatures.ly}
-
@seealso
Music Glossary:
@rglos{church mode},
@rinternals{Key_performer},
@rinternals{KeyCancellation},
@rinternals{KeySignature},
-@rinternals{key-cancellation-interface},
@rinternals{key-signature-interface}.
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{ottava-text.ly}
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{adding-an-ottava-marking-to-a-single-voice.ly}
@seealso
Music Glossary:
@end lilypond
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, a clarinetist may be required to switch from an A clarinet
+to a B-flat clarinet.
-@lilypond[verbatim,quote,relative=2]
-\set Staff.instrumentName = #"Cl (A)"
-\key a \major
-\transposition a
-c d e f
-\textLengthOn
-s1*0^\markup { Switch to B\flat clarinet }
-R1
-
-\key bes \major
-\transposition bes
-c2 g
+@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
-
@seealso
Music Glossary:
@rglos{concert pitch},
@cindex automatic accidentals
@cindex default accidental style
-@funindex set-accidental-style
+@funindex \accidentalStyle
@funindex voice
@funindex default
@example
\new Staff <<
- #(set-accidental-style 'voice)
+ \accidentalStyle voice
@{ @dots{} @}
>>
@end example
style in all staves of the current @code{StaffGroup}, use:
@example
-#(set-accidental-style 'voice 'StaffGroup)
+\accidentalStyle StaffGroup.voice
@end example
The following accidental styles are supported. To demonstrate
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'default)
+ \accidentalStyle default
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'default)
+ \accidentalStyle default
\musicB
}
>>
<<
\context Staff = "up" @{
%%% change the next line as desired:
- #(set-accidental-style 'default 'Score)
+ \accidentalStyle Score.default
\musicA
@}
\context Staff = "down" @{
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'default)
+ \accidentalStyle default
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'default)
+ \accidentalStyle default
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'voice)
+ \accidentalStyle voice
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'voice)
+ \accidentalStyle voice
\musicB
}
>>
@funindex modern
This rule corresponds to the common practice in the twentieth
-century. It prints the same accidentals as @code{default}, with
-two exceptions that serve to avoid ambiguity: after temporary
+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
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'modern)
+ \accidentalStyle modern
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'modern)
+ \accidentalStyle modern
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'modern-cautionary)
+ \accidentalStyle modern-cautionary
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'modern-cautionary)
+ \accidentalStyle modern-cautionary
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'modern-voice)
+ \accidentalStyle modern-voice
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'modern-voice)
+ \accidentalStyle modern-voice
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'modern-voice-cautionary)
+ \accidentalStyle modern-voice-cautionary
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'modern-voice-cautionary)
+ \accidentalStyle modern-voice-cautionary
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'piano)
+ \accidentalStyle piano
\musicA
}
\context Staff = "down" {
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'piano-cautionary)
+ \accidentalStyle piano-cautionary
\musicA
}
\context Staff = "down" {
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'neo-modern)
+ \accidentalStyle neo-modern
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'neo-modern)
+ \accidentalStyle neo-modern
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'neo-modern-cautionary)
+ \accidentalStyle neo-modern-cautionary
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'neo-modern-cautionary)
+ \accidentalStyle neo-modern-cautionary
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'neo-modern-voice)
+ \accidentalStyle neo-modern-voice
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'neo-modern-voice)
+ \accidentalStyle neo-modern-voice
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'neo-modern-voice-cautionary)
+ \accidentalStyle neo-modern-voice-cautionary
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'neo-modern-voice-cautionary)
+ \accidentalStyle neo-modern-voice-cautionary
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'dodecaphonic)
+ \accidentalStyle dodecaphonic
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'dodecaphonic)
+ \accidentalStyle dodecaphonic
\musicB
}
>>
@funindex teaching
This rule is intended for students, and makes it easy to create
-scale sheets with automagically created cautionary accidentals.
+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]
+@lilypond[quote,staffsize=18]
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
<<
\context Staff = "up" {
\key fis \minor
- #(set-accidental-style 'teaching)
+ \accidentalStyle teaching
\musicA
}
\context Staff = "down" {
\key fis \minor
- #(set-accidental-style 'teaching)
+ \accidentalStyle teaching
\musicB
}
>>
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'no-reset)
+ \accidentalStyle no-reset
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'no-reset)
+ \accidentalStyle no-reset
\musicB
}
>>
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. Unlike @code{dodecaphonic}, this rule never prints
-any naturals.
+the music.
@lilypond[quote]
musicA = {
<<
\relative c' {
- cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis'8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\clef bass
\new Voice {
\voiceTwo \relative c' {
- <fis, a cis>8 <fis a cis>
+ <fis, a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
- <fis, a> <fis a>
+ <fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\new PianoStaff {
<<
\context Staff = "up" {
- #(set-accidental-style 'forget)
+ \accidentalStyle forget
\musicA
}
\context Staff = "down" {
- #(set-accidental-style 'forget)
+ \accidentalStyle forget
\musicB
}
>>
@end lilypond
@end table
-@snippets
-
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{dodecaphonic-style-accidentals-for-each-note-including-naturals.ly}
-
-
@seealso
Snippets:
@rlsr{Pitches}.
@rinternals{AccidentalPlacement},
@rinternals{accidental-suggestion-interface}.
-
@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@tie{}@code{!} and@tie{}@code{?} for the
-problematic notes.
-
+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!>}.
Cautionary cancellation of accidentals is done by looking at previous measure.
However, in the @code{\alternative} block following a @code{\repeat volta N}
@lilypond[quote]
{
- #(set-accidental-style 'modern)
+ \accidentalStyle modern
\time 2/4
\repeat volta 2 {
c'2
@lilypond[verbatim,quote]
forget = #(define-music-function (parser location music) (ly:music?) #{
- #(set-accidental-style 'forget)
- $music
- #(set-accidental-style 'modern)
+ \accidentalStyle forget
+ #music
+ \accidentalStyle modern
#})
{
- #(set-accidental-style 'modern)
+ \accidentalStyle modern
\time 2/4
\repeat volta 2 {
c'2
}
@end lilypond
+
@node Ambitus
@unnumberedsubsubsec Ambitus
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{adding-ambitus-per-voice.ly}
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{ambitus-with-multiple-voices.ly}
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{changing-the-ambitus-gap.ly}
-
@seealso
Music Glossary:
@rglos{ambitus}.
@rinternals{AmbitusNoteHead},
@rinternals{ambitus-interface}.
-
@knownissues
-
There is no collision handling in the case of multiple per-voice
ambitus.
@lilypond[verbatim,quote,relative=2]
c4 b
-\override NoteHead #'style = #'cross
+\override NoteHead.style = #'cross
c4 b
-\revert NoteHead #'style
+\revert NoteHead.style
a b
-\override NoteHead #'style = #'harmonic
+\override NoteHead.style = #'harmonic
a b
-\revert NoteHead #'style
+\revert NoteHead.style
c4 d e f
@end lilypond
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{numbers-as-easy-note-heads.ly}
-
@seealso
Notation Reference:
@ref{Setting the staff size}.
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@lilypondfile[verbatim,quote,texidoc,doctitle]
{applying-note-head-styles-depending-on-the-step-of-the-scale.ly}
To see all note head styles, see @ref{Note head styles}.
-
@seealso
Snippets:
@rlsr{Pitches}.
}
@end lilypond
-
@predefined
@code{\improvisationOn},
@code{\improvisationOff}.
@endpredefined
-
@seealso
Snippets:
@rlsr{Pitches}.
@rinternals{Pitch_squash_engraver},
@rinternals{Voice},
@rinternals{RhythmicStaff}.
-
-