]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/pitches.itely
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / Documentation / user / pitches.itely
index 06395ce87f3d25791cf18d01bef64a36ff0f3aee..5813221d26dffde57763fb16c29c24ef87bc73e3 100644 (file)
@@ -43,8 +43,6 @@ This section discusses how to input pitches.
 @cindex pitch names
 @cindex pitches
 
-@c don't use @samp here because that might get confused with
-@c octave marks
 A pitch name is specified using lowercase letters@tie{}@code{a}
 through@tie{}@code{g}.  An ascending C-major scale is engraved
 with
@@ -54,17 +52,16 @@ with
 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 specific
-octave.  The note names @code{c} to @code{b} are engraved in the
-octave below middle C, as in the previous example.
+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.  In absolute
+mode, every note is placed explicitly in a specific octave.  The
+note names @code{c} to @code{b} are engraved in the octave below
+middle C, as in the previous example.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \clef treble
@@ -176,7 +173,8 @@ large intervals:
 
 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 of chords the next note is always
+relative to the preceding one.
 
 @lilypond[verbatim,quote,ragged-right,fragment]
 \relative c' {
@@ -256,9 +254,9 @@ 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:
+The above notes are the Dutch note names.  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:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 a2 as e es
@@ -305,7 +303,7 @@ pitches
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 \set Staff.extraNatural = ##f
-ceseh ceh cih cisih
+ceseh ces ceh c cih cis cisih
 @end lilypond
 
 Micro tones are also exported to the MIDI file.
@@ -313,20 +311,11 @@ Micro tones are also exported to the MIDI file.
 
 @commonprop
 
-@lsr{pitches,preventing-extra-naturals-from-being-automatically-added.ly}
+@lilypondfile[quote,ragged-right,texidoc]{pitches/preventing-extra-naturals-from-being-automatically-added.ly}
 
-LSR toremove:
-@quotation
-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
+@lilypondfile[quote,ragged-right,texidoc]{pitches/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly}
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-ceses4 ces cis c
-\set Staff.extraNatural = ##f
-ceses4 ces cis c
-@end lilypond
-@end quotation
+@lilypondfile[quote,ragged-right,texidoc]{pitches/makam.ly}
 
 @seealso
 
@@ -421,13 +410,6 @@ Here the prefixes @q{semi-} and @q{sesqui-} mean @q{half} and
 special names have been defined yet.
 
 
-@c What about Turkish Maquam music and similar microtonal systems?
-@c
-@c Note that the term "three-quarter-sharp/-flat" used in
-@c lilypond's source code is actually misleading since the
-@c alteration is in fact one and a half of a regular sharp/flat.
-@c Whence the naming "sesqui-sharp/-flat" used below.
-
 @example
 @multitable @columnfractions .2 .6 .05 .05 .05 .05
 @headitem Language
@@ -566,6 +548,7 @@ Snippets: @lsrdir{pitches}.
 
 @cindex transpose
 @cindex transposition of pitches
+@cindex transposing instruments
 @funindex \transpose
 
 A music expression can be transposed with @code{\transpose}.  The
@@ -616,10 +599,10 @@ will remain on the same scale step, the second version will print
 flats on the scale step above.
 
 @lilypond[verbatim,quote,ragged-right]
-mus = { c d e f }
+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
 
@@ -644,10 +627,15 @@ musicInBflat = @{ e4 @dots{} @}
 \transpose f c @{ \transpose c bes \musicInBflat @}
 @end example
 
+@commonprop
+
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
+
+
 @seealso
 
-Snippets: @lsrdir{pitches}, @lsr{scheme,
-transpose-pitches-with-minimum-accidentals.ly}.
+Snippets: @lsrdir{pitches}.
 
 Internals reference: @internalsref{TransposedMusic}.
 
@@ -693,24 +681,17 @@ This section discusses how to alter the output of pitches.
 @cindex varbaritone clef
 @cindex subbass clef
 
-The clef is set with the @code{\clef} @var{clefname}
-command:
+The clef is set with the @code{\clef} @var{clefname} command:
 
-@lilypond[verbatim,quote,ragged-right,fragment]
-<<
-  \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"
-  }
->>
+@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:
@@ -782,84 +763,12 @@ For example,
 \clef "G_8" c4
 @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[verbatim,quote,ragged-right]
-{
-  % 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
+@commonprop
 
-and some which do not:
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/clefs-commonly-tweaked-properties.ly}
 
-@lilypond[verbatim,quote,ragged-right]
-{
-  \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
 
 @seealso
 
@@ -922,54 +831,15 @@ fis
 
 @commonprop
 
-@lsr{pitches,preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
-
-LSR toremove:
-@quotation
-A natural sign is printed to cancel any previous accidentals.
-This may be altered:
-
-@lilypond[verbatim,quote,ragged-right,fragment,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
-@end quotation
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
 
-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[quote,ragged-right,texidoc]
+{pitches/non-traditional-key-signatures.ly}
 
-@example
-\set Staff.keySignature =
-  #'((@var{octave} . @var{step}) . @var{alter})
-@end example
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/dodecaphonic-style-accidentals-for-each-note-including-naturals.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 @code{,SHARP} @code{,FLAT}
-@code{,DOUBLE-SHARP} etc.  (Note the leading comma.)  Here is an
-example of a possible key signature for generating a whole-tone
-scale:
-
-@lilypond[verbatim,quote,ragged-right]
-\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
 
@@ -977,9 +847,7 @@ 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}.
 
 Internals reference: @internalsref{KeyCancellation},
 @internalsref{KeySignature}, @internalsref{Key_engraver}.
@@ -997,14 +865,12 @@ Internals reference: @internalsref{KeyCancellation},
 @notation{Ottava brackets} introduce an extra transposition of an
 octave for the staff:
 
-@lilypond[verbatim,quote,ragged-right,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),
@@ -1014,18 +880,16 @@ Internally the function sets the properties @code{ottavation}
 @code{middleCPosition}.  To override the text of the bracket, set
 @code{ottavation} after invoking @code{set-octavation}, i.e.,
 
-@lilypond[verbatim,quote,ragged-right]
-{
-  #(set-octavation 1)
-  \set Staff.ottavation = #"8"
-  c'''
-}
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+#(set-octavation 1)
+\set Staff.ottavation = #"8"
+c'
 @end lilypond
 
 
 @seealso
 
-Music Glossary: @c FIXME add link once it's in the glossary @c @rgloss{ottava}.
+Music Glossary: @rglos{ottava}.
 
 Snippets: @lsrdir{pitches}.
 
@@ -1124,8 +988,6 @@ to serve as a reminder that these parts are written in C.
 
 @seealso
 
-Music Glossary: @c FIXME add link once it's in the glossary @c @rgloss{instrument transposition}.
-
 Notation Reference: @ref{Quoting other voices}, @ref{Transpose}.
 
 Snippets: @lsrdir{pitches}.
@@ -1135,11 +997,12 @@ Snippets: @lsrdir{pitches}.
 @unnumberedsubsubsec Automatic accidentals
 @cindex automatic accidentals
 
-Common rules for typesetting accidentals have been placed in a
-function.  This function is called as follows
-
 @funindex set-accidental-style
 
+There are many different conventions on how to typeset accidentals. 
+LilyPond provides a function to specify which such accidental style to
+use.   This function is called as follows
+
 @example
 \new Staff <<
   #(set-accidental-style 'voice)
@@ -1147,18 +1010,15 @@ function.  This function is called as follows
 >>
 @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}, see below.  
+Optionally, the function can take second argument which 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
@@ -1200,18 +1060,37 @@ musicB = {
   <<
     \context Staff = "up" {
       %%% change the next line as desired:
-      %#(set-accidental-style 'default)
+      #(set-accidental-style 'default)
       \musicA
     }
     \context Staff = "down" {
       %%% change the next line as desired:
-      %#(set-accidental-style 'default)
+      #(set-accidental-style 'default)
       \musicB
     }
   >>
 }
 @end lilypond
 
+Note that the last lines of this example can be replaced by the
+followin, 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 don't use verbatim in this table.
 @table @code
 @item default
@@ -1257,11 +1136,11 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      %#(set-accidental-style 'default)
+      #(set-accidental-style 'default)
       \musicA
     }
     \context Staff = "down" {
-      %#(set-accidental-style 'default)
+      #(set-accidental-style 'default)
       \musicB
     }
   >>
@@ -1451,7 +1330,7 @@ musicB = {
 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,
+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
@@ -1566,25 +1445,10 @@ 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
 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:
-
+notes. 
 
-@example
-\new GrandStaff @{ <<
-  \new Staff = "up" @{ <<
-    #(set-accidental-style 'piano)
-    @{ @dots{} @}
-  >> @}
-  \new Staff = "down" @{ <<
-    #(set-accidental-style 'piano)
-    @{ @dots{} @}
-  >> @}
->> @}
-@end example
+This accidental style applies to the current @code{GrandStaff} or
+@code{PianoStaff} by default.
 
 @lilypond[quote,ragged-right]
 musicA = {
@@ -1625,7 +1489,6 @@ musicB = {
       \musicA
     }
     \context Staff = "down" {
-      #(set-accidental-style 'piano)
       \musicB
     }
   >>
@@ -1677,7 +1540,6 @@ musicB = {
       \musicA
     }
     \context Staff = "down" {
-      #(set-accidental-style 'piano-cautionary)
       \musicB
     }
   >>
@@ -1826,71 +1688,40 @@ determine if it matches their capabilities.
 
 Ambits 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 @code{Ambitus_engraver} to the @code{Voice} context, for
-example:
+represent the minimum and maximum pitch.  Accidentals are only
+printed if they are not part of the key signature.
 
 @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
-@code{Ambitus_engraver} to the @code{Staff} context rather than to
-the @code{Voice} context:
 
-@lilypond[verbatim,quote,ragged-right]
-\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
+@commonprop
 
-@noindent
-This example uses one advanced feature,
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/adding-ambiti-per-voice.ly}
 
-@example
-\override Ambitus #'X-offset = #-1.0
-@end example
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/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
 
 Snippets: @lsrdir{pitches}.
-@c FIXME: lsr stuff.
-@c @lsr{vocal,ambitus@/.ly}.
 
 Internals reference: @internalsref{Ambitus},
 @internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
 @internalsref{AmbitusAccidental}, @internalsref{Ambitus_engraver},
-@internalsref{Staff} and @internalsref{Voice}.
+@internalsref{Staff}, @internalsref{Voice}.
 
 
 @refbugs
@@ -1961,7 +1792,7 @@ Shape note heads can be produced by setting @code{\aikenHeads} or
 \aikenHeads
 c8 d4 e8 a2 g1
 \sacredHarpHeads
-c,8 d4. e8 a2 g1
+c,8 d4 e8 a2 g1
 @end lilypond
 
 Shapes are typeset according to the step in the scale, where
@@ -1980,9 +1811,15 @@ step of the scale.  Arbitrary combinations are possible, e.g.:
 @lilypond[verbatim,fragment,relative=1]
 \set shapeNoteStyles =
   ##(cross triangle fa #f mensural xcircle diamond)
-c8 d4. e8 a2 g1
+c8 d4 e8 a2 g1
 @end lilypond
 
+@commonprop
+
+@lilypondfile[quote,ragged-right,texidoc]
+{pitches/applying-noteheads-styles-depending-on-the-step-of-the-scale.ly}
+
+
 @seealso
 
 Snippets: @lsrdir{pitches}.