Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.14.0"
@node Pitches
@menu
* Octave checks::
* Transpose::
+* Inversion::
+* Retrograde::
+* Modal transformations::
@end menu
@node Octave checks
@seealso
Notation Reference:
+@ref{Instrument transpositions},
+@ref{Inversion},
+@ref{Modal transformations},
@ref{Relative octave entry},
-@ref{Instrument transpositions}.
+@ref{Retrograde}.
Snippets:
@rlsr{Pitches}.
@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 with:
+
+@example
+\inversion @var{from-pitch} @var{to-pitch} @var{musicexpr}
+@end example
+
+The @code{@var{musicexpr}} is inverted interval-by-interval,
+and then transposed so that @code{@var{from-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
+
+@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.}
+
+@subsubheading 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
+
+@subsubheading 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
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]
{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}.
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 |
}
\\
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 |
}
\\
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 |
}
\\
@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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
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 |
}
\\
@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.
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 |
}
\\
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 |
}
\\
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 |
}
\\
@end lilypond
@end table
-@snippets
-
-@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-{dodecaphonic-style-accidentals-for-each-note-including-naturals.ly}
-
-
@seealso
Snippets:
@rlsr{Pitches}.
@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}
@rinternals{Pitch_squash_engraver},
@rinternals{Voice},
@rinternals{RhythmicStaff}.
-
-