]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/advanced-notation.itely
Really minor fix.
[lilypond.git] / Documentation / user / advanced-notation.itely
index 0f4181862fe18a747f353fb5513160f03297dda6..c41f5638e4e8182e9e8599bdbf97e65d9a102458 100644 (file)
@@ -1,4 +1,4 @@
-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 
 @c A menu is needed before every deeper *section nesting of @node's; run 
@@ -28,12 +28,16 @@ This chapter deals with rarely-used and advanced notation.
 This section explains how to include text (with various formatting) in
 your scores.
 
+@cindex Text, other languages
+To write non-ascii text (such as characters from other languages), simply
+insert the characters directly into the lilypond file.  The file must be
+saved as UTF-8.  For more information, see @ref{Text encoding}.
+
 @menu
 * Text scripts::                
 * Text spanners::               
 * Text marks::                  
 * Text markup::                 
-* Text encoding::               
 * Nested scores::               
 * Overview of text markup commands::  
 * Font selection::              
@@ -53,13 +57,16 @@ above or below notes by using a string @code{c^"text"}.  By default,
 these indications do not influence the note spacing, but by using the
 command @code{\fatText}, the widths will be taken into account
 
-@lilypond[quote,fragment,raggedright,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4^"longtext" \fatText c4_"longlongtext" c4
 @end lilypond
 
+@noindent
+To prevent text from influencing spacing, use @code{\emptyText}.
+
 More complex formatting may also be added to a note by using the
 markup command,
-@lilypond[fragment,raggedright,verbatim,quote]
+@lilypond[fragment,ragged-right,verbatim,quote]
 c'4^\markup { bla \bold bla }
 @end lilypond
 
@@ -75,6 +82,15 @@ The @code{\markup} is described in more detail in
 @code{\emptyText}.
 
 
+@commonprop
+
+Checking to make sure that text scripts and lyrics are within the margins is a relatively large computational task.  To speed up processing, lilypond does not perform such calculations by default; to enable it, use
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+
 @seealso
 
 In this manual: @ref{Text markup}.
@@ -96,7 +112,7 @@ notes of the spanner.
 The string to be printed, as well as the style, is set through object
 properties
 
-@lilypond[quote,raggedright,fragment,relative=1,verbatim]
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
 c1
 \textSpannerDown
 \override TextSpanner #'edge-text = #'("rall " . "")
@@ -117,6 +133,15 @@ c2\startTextSpan b c\stopTextSpan a
 @code{textSpannerNeutral}.
 
 
+@commonprop
+
+To print a solid line, use
+
+@example
+\override TextSpanner #'dash-fraction = #'() 
+@end example
+
+
 @seealso
 
 Program reference: @internalsref{TextSpanner}.
@@ -139,7 +164,7 @@ but it can also be used to put signs like coda,
 segno, and fermata on a bar line.  Use @code{\markup} to
 access the appropriate symbol
 
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
 c1
 @end lilypond
@@ -170,7 +195,7 @@ To print the mark at the end of the current line, use
 @code{\mark} is often useful for adding text to the end of bar.  In
 such cases, changing the @code{#'self-alignment} is very useful
 
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 \override Score.RehearsalMark
   #'break-visibility = #begin-of-line-invisible
 c1 c c c4 c c c
@@ -178,6 +203,52 @@ c1 c c c4 c c c
 \mark "D.S. al Fine "
 @end lilypond
 
+Text marks may be aligned with notation objects other than
+bar lines,
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+\relative {
+  c1
+  \key cis \major
+  \clef alto
+  \override Score.RehearsalMark #'break-align-symbol = #'key-signature
+  \mark "on key"
+  cis
+  \key ces \major
+  \override Score.RehearsalMark #'break-align-symbol = #'clef
+  \clef treble
+  \mark "on clef"
+  ces
+  \override Score.RehearsalMark #'break-align-symbol = #'time-signature
+  \key d \minor
+  \clef tenor
+  \time 3/4
+  \mark "on time"
+  c
+}
+@end lilypond
+
+Although text marks are normally only printed above the topmost
+staff, you may alter this to print them on every staff,
+
+@lilypond[quote,ragged-right,verbatim,relative=2]
+{
+  \new Score \with {
+    \remove "Mark_engraver"
+  }
+  <<
+    \new Staff \with {
+      \consists "Mark_engraver"
+    }
+    { c''1 \mark "foo" c'' }
+    \new Staff \with {
+      \consists "Mark_engraver"
+    }
+    { c'1 \mark "foo" c' }
+  >>
+}
+@end lilypond
+
 
 @seealso
 
@@ -193,12 +264,14 @@ Program reference: @internalsref{RehearsalMark}.
 @cindex typeset text
 
 Use @code{\markup} to typeset text.  Commands are entered with the
-backslash @code{\}.
+backslash @code{\}.  To enter @code{\} and @code{#}, use double
+quotation marks.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 c1^\markup { hello }
 c1_\markup { hi there }
-c1^\markup { hi \bold there, is \italic anyone home? }
+c1^\markup { hi \bold there, is \italic {anyone home?} }
+c1_\markup { "\special {weird} #characters" }
 @end lilypond
 
 @noindent
@@ -232,7 +305,7 @@ Text can also be placed on its own, away from any @code{\score}
 block.  This is primarily used in a @code{\book} (see
 @ref{Multiple movements}).
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \markup{ Here is some text. }
 @end lilypond
 
@@ -318,6 +391,12 @@ c'4^\markup{ raised }
 c'4^\markup{ \hspace #0 \raise #1.5 raised }
 @end lilypond
 
+Some situations (such as dynamic marks) have preset font-related
+properties.  If you are creating text in such situations, it
+is advisable to cancel those properties with
+@code{normal-text}.  See @ref{Overview of text markup commands}
+for more details.
+
 
 @seealso
 
@@ -337,53 +416,6 @@ texts will be spaced slightly too wide.
 Syntax errors for markup mode are confusing.
 
 
-@node Text encoding
-@subsection Text encoding
-
-LilyPond uses the Pango library to format multi-lingual texts, and
-does not perform any input-encoding conversions.  This means that any
-text, be it title, lyric text, or musical instruction containing
-non-ASCII characters, must be utf-8.  Easiest to enter such texts is
-by using a Unicode-aware editor, and save using utf-8 encoding.  Most
-popular modern editors have utf-8 support, for example, vim, Emacs,
-jEdit, and GEdit do.
-
-Depending on the fonts installed, the following fragment shows Hebrew
-and Cyrillic lyrics,
-
-@cindex Cyrillic
-@cindex Hebrew
-@cindex ASCII, non
-
-@lilypondfile[fontload]{utf-8.ly}
-
-The @TeX{} backend does not handle encoding specially at all.  Strings
-in the input are put in the output as-is.  Extents of text items in the
-@TeX{} backend, are determined by reading a file created via the
-@file{texstr} backend,
-
-@example
-lilypond -b texstr input/les-nereides.ly
-latex les-nereides.texstr
-@end example
-
-The last command produces @file{les-nereides.textmetrics}, which is
-read when you execute
-
-@example
-lilypond -b tex input/les-nereides.ly
-@end example
-
-Both @file{les-nereides.texstr} and @file{les-nereides.tex} need
-suitable LaTeX wrappers to load appropriate La@TeX{} packages for
-interpreting non-ASCII strings.
-
-
-@seealso
-
-@inputfileref{input/regression,utf-8.ly}
-
-
 @node Nested scores
 @subsection Nested scores
 
@@ -391,7 +423,7 @@ It is possible to nest music inside markups, by adding a @code{\score}
 block to a markup expression.  Such a score must contain a @code{\layout}
 block.
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 \relative {
   c4 d^\markup {
     \score {
@@ -430,7 +462,7 @@ to.
 @itemize @bullet
 @item @code{font-encoding}
 is a symbol that sets layout of the glyphs.  This should only be set to
-select different types of non-text fonts, eg.
+select different types of non-text fonts, e.g.
 
 @code{fetaBraces} for piano staff braces, @code{fetaMusic} the
 standard music font, including ancient glyphs, @code{fetaDynamic} for
@@ -513,18 +545,26 @@ example,
 
 @seealso
 
-Examples: @file{ly/@/font@/-family@/-override.ly}
+Examples: @inputfileref{input/@/regression,font@/-family@/-override.ly}.
 
 
 @node New dynamic marks
 @subsection New dynamic marks
 
 It is possible to print new dynamic marks or text that should be aligned
-with dynamics.  Use @code{make-dynamic-script} to create these marks.
+with dynamics.  Use @code{make-dynamic-script} to create these
+marks.  Note that the dynamic font only contains the characters
+@code{f,m,p,r,s} and @code{z}.
+
+Some situations (such as dynamic marks) have preset font-related
+properties.  If you are creating text in such situations, it
+is advisable to cancel those properties with
+@code{normal-text}.  See @ref{Overview of text markup commands}
+for more details.
 
 @cindex make-dynamic-script
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 sfzp = #(make-dynamic-script "sfzp")
 \relative c' {
   c4 c c\sfzp c
@@ -537,7 +577,7 @@ sfzp = #(make-dynamic-script "sfzp")
 It is also possible to print dynamics in round parenthesis or square
 brackets.  These are often used for adding editorial dynamics.
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 rndf = \markup{ \center-align {\line { \bold{\italic (}
   \dynamic f \bold{\italic )} }} }
 boxf = \markup{ \bracket { \dynamic f } }
@@ -581,8 +621,8 @@ multi-measure rest.  This expansion is controlled by the property
 @code{Score.skipBars}.  If this is set to true, empty measures will not
 be expanded, and the appropriate number is added automatically
 
-@lilypond[quote,raggedright,fragment,verbatim]
-\time 4/4 r1 | R1 | R1*2
+@lilypond[quote,ragged-right,fragment,verbatim]
+\time 4/4 r1 | R1 | R1*2 \time 3/4 R2. \time 2/4 R2 \time 4/4
 \set Score.skipBars = ##t R1*17 R1*4
 @end lilypond
 
@@ -590,7 +630,7 @@ The @code{1} in @code{R1} is similar to the duration notation used for
 notes.  Hence, for time signatures other than 4/4, you must enter other
 durations.  This can be done with augmentation dots or fractions
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \set Score.skipBars = ##t
 \time 3/4
 R2. | R2.*2
@@ -607,7 +647,7 @@ If there are only a few measures of rest, LilyPond prints ``church rests''
 (a series of rectangles) in the staff.  To replace that with a simple
 rest, use @code{MultiMeasureRest.expand-limit}.
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \set Score.skipBars = ##t
 R1*2 | R1*5 | R1*9
 \override MultiMeasureRest #'expand-limit = 1
@@ -623,7 +663,7 @@ Texts can be added to multi-measure rests by using the
 A variable (@code{\fermataMarkup}) is provided for
 adding fermatas
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \set Score.skipBars = ##t
 \time 3/4
 R2.*10^\markup { \italic "ad lib." }
@@ -633,7 +673,7 @@ R2.^\fermataMarkup
 Warning!  This text is created by @code{MultiMeasureRestText}, not
 @code{TextScript}.
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \override TextScript #'padding = #5
 R1^"low"
 \override MultiMeasureRestText #'padding = #5
@@ -695,7 +735,7 @@ Metronome settings can be entered as follows
 In the MIDI output, they are interpreted as a tempo change.  In the
 layout output, a metronome marking is printed
 @cindex @code{\tempo}
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \tempo 8.=120 c''1
 @end lilypond
 
@@ -709,13 +749,13 @@ the metronome marking invisible
 @end example
 
 To print other metronome markings, use these markup commands
-@lilypond[quote,raggedright,verbatim,relative,fragment]
+@lilypond[quote,ragged-right,verbatim,relative,fragment]
 c4^\markup {
-  "("
+  (
   \smaller \general-align #Y #DOWN \note #"16." #1
-  "="
-  \smaller \general-align #Y #DOWN \note #"8" #1"
-  ")" }
+  =
+  \smaller \general-align #Y #DOWN \note #"8" #1
+  ) }
 @end lilypond
 
 @noindent
@@ -748,7 +788,7 @@ further away from the staff.
 
 To print a rehearsal mark, use the @code{\mark} command
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 c1 \mark \default
 c1 \mark \default
 c1 \mark #8
@@ -775,7 +815,7 @@ as argument.  It should return a markup object.  In the following
 example, @code{markFormatter} is set to a canned procedure.  After a
 few measures, it is set to function that produces a boxed number.
 
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 \set Score.markFormatter = #format-mark-numbers
 c1 \mark \default
 c1 \mark \default
@@ -790,6 +830,10 @@ of @code{format-mark-numbers} (the default format), @code{format-mark-box-number
 @code{format-mark-letters} and @code{format-mark-box-letters}.
 These can be used as inspiration for other formatting functions.
 
+You may use @code{format-mark-barnumbers}, @code{format-mark-box-barnumbers},
+and @code{format-mark-circle-barnumbers} to get bar numbers instead of
+incremented numbers or letters.
+
 
 @seealso
 
@@ -821,12 +865,12 @@ beginning of each line.  This is illustrated in the following example,
 whose source is available as
 @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}
 
-@lilypondfile[raggedright,quote]{bar-number-regular-interval.ly}
+@lilypondfile[ragged-right,quote]{bar-number-regular-interval.ly}
 
 Bar numbers can be typeset manually by tweaking the
 @code{markFormatter} property
 
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
 \relative c' {
   \set Score.markFormatter
     = #(lambda (mark context)
@@ -842,7 +886,7 @@ Bar numbers can be typeset manually by tweaking the
 Bar numbers can be manually changed by setting the
 @code{Staff.currentBarNumber} property
 
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
 \relative c' {
   \repeat unfold 4 {c4 c c c} \break
   \set Score.currentBarNumber = #50
@@ -850,6 +894,22 @@ Bar numbers can be manually changed by setting the
 }
 @end lilypond
 
+Bar numbers can be removed entirely by removing the Bar number
+engraver from the score.
+
+@lilypond[verbatim,ragged-right,quote,relative=2]
+\layout {
+  \context {
+    \Score
+    \remove "Bar_number_engraver"
+  }
+}
+{
+c4 c c c \break
+c4 c c c
+}
+@end lilypond
+
 
 @seealso
 
@@ -879,7 +939,7 @@ and @internalsref{Staff}.@code{instr}.  This will print a string before
 the start of the staff.  For the first staff, @code{instrument} is
 used, for the following ones, @code{instr} is used.
 
-@lilypond[quote,verbatim,raggedright,relative=1,fragment]
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
 \set Staff.instrument = "Ploink "
 \set Staff.instr = "Plk "
 c1
@@ -890,7 +950,7 @@ c''
 You can also use markup texts to construct more complicated instrument
 names, for example
 
-@lilypond[quote,fragment,verbatim,raggedright]
+@lilypond[quote,fragment,verbatim,ragged-right]
 \set Staff.instrument = \markup {
   \column { "Clarinetti"
             \line { "in B" \smaller \flat } } }
@@ -899,7 +959,7 @@ c''1
 
 If you wish to center the instrument names, you must center all of them
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 { <<
 \new Staff {
   \set Staff.instrument = \markup {
@@ -918,6 +978,25 @@ If you wish to center the instrument names, you must center all of them
 For longer instrument names, it may be useful to increase the
 @code{indent} setting in the @code{\layout} block.
 
+To center instrument names while leaving extra space to the right,
+
+@lilypond[quote,verbatim,ragged-right]
+\new StaffGroup \relative
+<<
+  \new Staff {
+    \set Staff.instrument
+    = \markup { \hcenter-in #10 "blabla" }
+    c1 c1
+  }
+  \new Staff {
+    \set Staff.instrument
+    = \markup { \hcenter-in #10 "blo" }
+    c1 c1
+  }
+>>
+@end lilypond
+
+
 @seealso
 
 Program reference: @internalsref{InstrumentName}.
@@ -956,7 +1035,8 @@ affect how notes are printed in the current staff.  To change the printed
 output, see @ref{Transpose}.
 
 The pitch to use for @code{\transposition} should correspond to the
-transposition of the notes.  For example, when entering a score in
+real sound heard when a @code{c'} written on the staff is played by the
+transposing instrument.  For example, when entering a score in
 concert pitch, typically all voices are entered in C, so
 they should be entered as
 
@@ -998,7 +1078,7 @@ the staff.  They are created by invoking the function
 @cindex 15ma
 @cindex octavation
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \relative c''' {
   a2 b
   #(set-octavation 1)
@@ -1014,7 +1094,7 @@ The @code{set-octavation} function also takes -1 (for 8va bassa) and 2
 @code{centralCPosition}.  For overriding the text of the bracket, set
 @code{ottavation} after invoking @code{set-octavation}, i.e.,
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 {
   #(set-octavation 1)
   \set Staff.ottavation = #"8"
@@ -1089,12 +1169,15 @@ commands, tagged expressions can be filtered.  For example,
 @end example
 would yield
 
-@lilypondfile[raggedright,quote]{tag-filter.ly}
+@lilypondfile[ragged-right,quote]{tag-filter.ly}
+
+The arguments of the @code{\tag} command should be a symbol
+(such as @code{#'score} or @code{#'part}), followed by a
+music expression.  It is possible to put multiple tags on
+a piece of music with multiple @code{\tag} entries,
 
-The argument of the @code{\tag} command should be a symbol, or a list
-of symbols, for example,
 @example
-\tag #'(original-part transposed-part) @dots{}
+  \tag #'original-part \tag #'transposed-part @dots{}
 @end example
 
 
@@ -1149,7 +1232,7 @@ The following example demonstrates the basic functionality of the part
 combiner: putting parts on one staff, and setting stem directions and
 polyphony
 
-@lilypond[quote,verbatim,raggedright,fragment]
+@lilypond[quote,verbatim,ragged-right,fragment]
 \new Staff \partcombine
   \relative g' { g g a( b) c c r r }
   \relative g' { g g r4 r e e g g }
@@ -1165,7 +1248,7 @@ first part (with context called @code{one}) always gets up stems, and
 If you just want the merging parts, and not the textual markings, you
 may set the property @code{printPartCombineTexts} to false
 
-@lilypond[quote,verbatim,raggedright,fragment,relative=2]
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
 \new Staff <<
   \set Staff.printPartCombineTexts = ##f
   \partcombine
@@ -1178,7 +1261,7 @@ To change the text that is printed for solos or merging, you may
 set the @code{soloText}, @code{soloIIText}, and @code{aDueText}
 properties.
 
-@lilypond[quote,verbatim,raggedright,fragment,relative=2]
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
 \new Staff <<
   \set Score.soloText = #"ichi"
   \set Score.soloIIText = #"ni"
@@ -1243,7 +1326,7 @@ multi-measure rests) are removed.  The context definition is stored in
 @code{\RemoveEmptyStaffContext} variable.  Observe how the second staff
 in this example disappears in the second line
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \layout {
   \context { \RemoveEmptyStaffContext }
 }
@@ -1258,10 +1341,10 @@ in this example disappears in the second line
 
 The first system shows all staves in full.  If empty staves should be
 removed from the first system too, set @code{remove-first} to true in
-@internalsref{RemoveEmptyVerticalGroup}.
+@internalsref{VerticalAxisGroup}.
 
 @example
-\override Score.RemoveEmptyVerticalGroup #'remove-first = ##t
+\override Score.VerticalAxisGroup #'remove-first = ##t
 @end example
 
 To remove other types of contexts, use @code{\AncientRemoveEmptyStaffContext}
@@ -1324,7 +1407,7 @@ rests at the beginning.
 Quotations take into account the transposition of both source and target
 instruments, if they are specified using the @code{\transposition} command.
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \addquote clarinet \relative c' {
   \transposition bes
   f4 fis g gis
@@ -1389,13 +1472,12 @@ the staff in effect becomes polyphonic for a moment.  The argument
 first or second voice.
 
 
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,ragged-right]
 smaller = {
   \set fontSize = #-2
-  \override Stem #'length = #5.5
+  \override Stem #'length-fraction = #0.8
   \override Beam #'thickness = #0.384
-  \override Beam #'space-function =
-    #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
+  \override Beam #'length-fraction = #0.8
 }
 
 \addquote clarinet \relative {
@@ -1406,7 +1488,7 @@ smaller = {
 \new Staff \relative  <<
 
   % setup a context for  cue  notes.
-  \context Voice = cue { \smaller \skip 1*21 }
+  \new Voice = "cue" { \smaller \skip 1*21 }
   
   \set Score.skipBars = ##t
   
@@ -1437,7 +1519,7 @@ Cue notes have smaller font sizes.
 @c Yes, this is good practice.  Otherwise, the start of the original
 @c part can only be seen from the font size.  This is not good enough
 @c for sight-reading.  It is possilbe to use other
-@c markers (eg. a big close-bracket over the staff) to indicate the cue notes are
+@c markers (e.g. a big close-bracket over the staff) to indicate the cue notes are
 @c finished.
 @c -hwn
 
@@ -1463,7 +1545,7 @@ as argument, and generate a @code{\skip} or multi-rest, exactly as
 long as the piece.  The use of @code{mmrest-of-length} is demonstrated
 in the following example.
 
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
 cadenza = \relative c' {
   c4 d8 << { e f g } \\ { d4. } >>
   g4 f2 g4 g
@@ -1488,19 +1570,30 @@ In the 20th century, composers have greatly expanded the musical
 vocabulary.  With this expansion, many innovations in musical notation
 have been tried.  The book ``Music Notation in the 20th century'' by
 Kurt Stone gives a comprehensive overview (see @ref{Literature
-list}).  In general, the use of new, innovative notation makes a piece
-harder to understand and perform and its use should therefore be
-avoided.  For this reason, support for contemporary notation in
-LilyPond is limited.
+list}).
+
+This section describes notation that does
+not fit into traditional notation categories, such as pitches,
+tuplet beams, and articulation.  For contemporary notation
+that fits into traditional notation categories, such as
+microtones, nested tuplet beams, and unusual fermatas, please
+see those sections of the documentation.
+
+
+@c I don't think we should discourage modern composers who might
+@c want to sponsor new features.  :)
+@c  In general, the use of new, innovative notation makes a piece
+@c harder to understand and perform and its use should therefore be
+@c avoided.  For this reason, support for contemporary notation in
+@c LilyPond is limited.
 
 
 @menu
 * Polymetric notation::         
 * Time administration::         
+* Proportional notation::       
 * Clusters::                    
-* Special fermatas::            
 * Special noteheads::           
-* Pitched trills::              
 * Feathered beams::             
 * Improvisation::               
 @end menu
@@ -1512,20 +1605,21 @@ LilyPond is limited.
 Double time signatures are not supported explicitly, but they can be
 faked.  In the next example, the markup for the time signature is
 created with a markup text.  This markup text is inserted in the
-@internalsref{TimeSignature} grob.
+@internalsref{TimeSignature} grob. See also 
+@inputfileref{input/@/test,compound@/-time@/.ly}).
 
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,ragged-right]
 % create 2/4 + 5/8
 tsMarkup =\markup {
-  \number {
+  \override #'(baseline-skip . 2) \number {
     \column { "2" "4" }
-    \musicglyph #"scripts.stopped"
+    \lower #1 "+"
     \bracket \column { "5" "8" }
   }
 }
 
 {
-  \override Staff.TimeSignature #'print-function = #Text_interface::print
+  \override Staff.TimeSignature #'stencil = #ly:text-interface::print
   \override Staff.TimeSignature #'text = #tsMarkup
   \time 3/2
   c'2 \bar ":" c'4 c'4.
@@ -1570,7 +1664,7 @@ Now, each staff has its own time signature.
 >>
 @end example
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \layout{
   \context{
      \Score
@@ -1607,8 +1701,12 @@ This notation can be created by setting a common time signature for
 each staff but replacing it manually using
 @code{timeSignatureFraction} to the desired fraction.  Then the printed
 durations in each staff are scaled to the common time signature.
-The latter is done with @code{\compressMusic}, which is similar to
-@code{\times}, but does not create a tuplet bracket.
+The latter is done with @code{\compressMusic}, which is used similar
+to @code{\times}, but does not create a tuplet bracket. The syntax is
+@example
+\compressMusic #'(@var{numerator} . @var{denominator}) @var{musicexpr}
+@end example
+
 
 
 In this example, music with the time signatures of 3/4, 9/8, and 10/8 are
@@ -1616,7 +1714,7 @@ used in parallel.  In the second staff, shown durations are multiplied by
 2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
 multiplied by 3/5, so that 3/5 * 10/8 = 3/4.
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \relative c' { <<
   \new Staff {
     \time 3/4
@@ -1685,7 +1783,7 @@ in the measure, so the next bar line will fall at 2/4 + 3/8.  The
 3/8 arises because 5/4 normally has 10/8, but we have manually
 set the measure position to be 7/8 and 10/8 - 7/8 = 3/8.
 
-@lilypond[quote,raggedright,verbatim,relative,fragment]
+@lilypond[quote,ragged-right,verbatim,relative,fragment]
 \set Score.measureLength = #(ly:make-moment 5 4)
 c1 c4
 c1 c4
@@ -1695,6 +1793,27 @@ b8 b b
 c4 c1
 @end lilypond
 
+@noindent
+As the example illustrates, @code{ly:make-moment n m} constructs a
+duration of n/m of a whole note.  For example, @code{ly:make-moment 1 8} is an eighth
+note duration and @code{ly:make-moment 7 16} is the duration of
+seven sixteenths notes.
+
+
+@node Proportional notation
+@subsection Proportional notation
+@cindex Proportional notation
+
+Notes can be spaced proportional to their time-difference by
+assigning a duration to @code{proportionalNotationDuration}
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+<<
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  \new Staff { c8[ c c c c c]  c4 c2 r2 }
+  \new Staff { c2  \times 2/3 { c8 c c } c4 c1 }
+>>
+@end lilypond
 
 
 @node Clusters
@@ -1706,7 +1825,7 @@ A cluster indicates a continuous range of pitches to be played.  They
 can be denoted as the envelope of a set of notes.  They are entered by
 applying the function @code{makeClusters} to a sequence of
 chords, e.g.,
-@lilypond[quote,raggedright,relative=2,fragment,verbatim]
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
 \makeClusters { <c e > <b f'> }
 @end lilypond
 
@@ -1714,7 +1833,7 @@ The following example (from
 @inputfileref{input/@/regression,cluster@/.ly}) shows what the result
 looks like
 
-@lilypondfile[raggedright,quote]{cluster.ly}
+@lilypondfile[ragged-right,quote]{cluster.ly}
 
 Ordinary notes and clusters can be put together in the same staff,
 even simultaneously.  In such a case no attempt is made to
@@ -1734,49 +1853,6 @@ Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
 accurately.  Use @code{<g a>8 <e a>8} instead.
 
 
-
-@node Special fermatas
-@subsection Special fermatas
-
-@cindex fermatas, special
-
-In contemporary music notation, special fermata symbols denote breaks
-of differing lengths.  The following fermatas are supported
-
-@lilypond[quote,raggedright]
-<<
-  \oldaddlyrics {
-    b'2
-    ^\shortfermata
-    _\shortfermata
-    r
-
-    b'
-    ^\fermata
-    _\fermata
-    r
-
-    b'
-    ^\longfermata
-    _\longfermata
-    r
-
-    b'
-    ^\verylongfermata
-    _\verylongfermata
-    r
-  }
-  \context Lyrics \lyricmode {
-    \override LyricText #'font-family = #'typewriter
-    "shortfermata" "fermata" "longfermata" "verylongfermata"
-  }
->>
-@end lilypond
-
-See @ref{Articulations} for general instructions how to apply scripts
-such as fermatas to notes.
-
-
 @node Special noteheads
 @subsection Special noteheads
 
@@ -1786,7 +1862,7 @@ 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[raggedright,relative=1,fragment,verbatim,quote]
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
 c4 d
 \override NoteHead #'style = #'cross
 e f
@@ -1803,19 +1879,6 @@ To see all notehead styles, please see
 
 Program reference: @internalsref{NoteHead}.
 
-@node Pitched trills
-@subsection Pitched trills
-
-Trills that should be executed on an explicitly specified pitch can be
-typeset with the command @code{pitchedTrill}, 
-
-@lilypond[raggedright,verbatim,fragment]
-  \pitchedTrill c'4\startTrillSpan fis
-  f'\stopTrillSpan
-@end lilypond
-
-The first argument is the main note. The absolute pitch of the second
-is printed as a stemless note head in parentheses.
 
 @node Feathered beams
 @subsection Feathered beams
@@ -1824,7 +1887,7 @@ Feathered beams are not supported natively, but they can be faked by
 forcing two beams to overlap.  Here is an example,
 
 @c don't change relative setting witout changing positions!
-@lilypond[raggedright,relative=1,fragment,verbatim,quote]
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
 \new Staff <<
   \new Voice
   {
@@ -1861,7 +1924,7 @@ There are shortcuts @code{\improvisationOn} (and an accompanying
 @code{\improvisationOff}) for this command sequence.  They are used in
 the following example
 
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
 \new Staff \with {
   \consists Pitch_squash_engraver
 } \transpose c c' {
@@ -1887,6 +1950,7 @@ teaching tools in addition to great musical scores.
 * Easy Notation note heads::    
 * Analysis brackets::           
 * Coloring objects::            
+* Parentheses::                 
 @end menu
 
 @node Balloon help
@@ -1897,9 +1961,9 @@ balloon.  The primary purpose of this feature is to explain notation.
 
 The following example demonstrates its use.
 
-@lilypond[quote,verbatim,fragment,raggedright,relative=2]
-\context Voice {
-  \applyoutput
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\new Voice {
+  \applyOutput
     #(add-balloon-text 'NoteHead "heads, or tails?"
     '(1 . -3))
   c8
@@ -1927,6 +1991,9 @@ Examples: @inputfileref{input/@/regression,balloon@/.ly}.
 @node Blank music sheet
 @subsection Blank music sheet
 
+@cindex Sheet music, empty
+@cindex Staves, blank sheet
+
 A blank music sheet can be produced also by using invisible notes, and
 removing @code{Bar_number_engraver}.
 
@@ -1942,8 +2009,8 @@ emptymusic = {
   defaultBarType = #""
   \remove Bar_number_engraver
 } <<
-  \context Staff \emptymusic
-  \context TabStaff \emptymusic
+  \new Staff \emptymusic
+  \new TabStaff \emptymusic
 >>
 @end lilypond
 
@@ -1960,7 +2027,7 @@ emptymusic = {
 Hidden (or invisible or transparent) notes can be useful in preparing theory
 or composition exercises.
 
-@lilypond[quote,raggedright,verbatim,relative=2,fragment]
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
 c4 d4
 \hideNotes
 e4 f4
@@ -1968,22 +2035,6 @@ e4 f4
 g4 a
 @end lilypond
 
-Hidden notes are also great for performing weird tricks.  For example,
-slurs cannot be attached to rests or spacer rests, but you may wish
-to include that in your score -- string instruments use this notation
-when doing pizzicato to indicate that the note should ring for as long
-as possible.
-
-@lilypond[quote,raggedright,verbatim,relative=0,fragment]
-\clef bass
-<< {
-  c4^"pizz"( \hideNotes c)
-  \unHideNotes c( \hideNotes c)
-} {
-  s4 r s r
-} >>
-@end lilypond
-
 
 @node Shape note heads 
 @subsection Shape note heads 
@@ -2013,8 +2064,7 @@ scale is determined by  the @code{\key} command
 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, eg.,
-
+combinations are possible, e.g.
 
 @lilypond[verbatim,relative=1,fragment]
   \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
@@ -2031,7 +2081,7 @@ combinations are possible, eg.,
 The `easy play' note head includes a note name inside the head.  It is
 used in music for beginners
 
-@lilypond[quote,raggedright,verbatim,fragment,staffsize=26]
+@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
   \setEasyHeads
   c'2 e'4 f' | g'1
 @end lilypond
@@ -2060,7 +2110,7 @@ brackets.  To use this, add the @internalsref{Horizontal_bracket_engraver}
 to @internalsref{Staff} context.  A bracket is started with
 @code{\startGroup} and closed with @code{\stopGroup}
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \score {
   \relative c'' {
     c4\startGroup\startGroup
@@ -2087,7 +2137,7 @@ Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
 Individual objects may be assigned colors.  You may use the
 color names listed in the @ref{List of colors}.
 
-@lilypond[quote,raggedright,verbatim,fragment,relative=1]
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \override NoteHead #'color = #red
 c4 c
 \override NoteHead #'color = #(x11-color 'LimeGreen)
@@ -2126,7 +2176,7 @@ This example, illustrates the use of x11-color.  Notice that the stem
 color remains black after being set to (x11-color 'Boggle), which is
 deliberate nonsense.
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 {
   \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
   \set Staff.instrument = \markup {
@@ -2157,14 +2207,40 @@ An x11 color is not necessarily exactly the same shade as a similarly
 named normal color. 
 
 
+@node Parentheses
+@subsection Parentheses
+
+@cindex ghost notes
+@cindex notes, ghost
+@cindex notes, parenthesized
+
+Objects may be parenthesized by prefixing @code{\parenthesize} to the music event, 
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+  c
+  \parenthesize d
+  g
+>4-\parenthesize -. 
+@end lilypond
+
+
 @node Automatic notation
 @section Automatic notation
 
 This section describes how to change the way that accidentals and
 beams are automatically displayed.
 
-FIXME: this might get moved into Changing Defaults.  Please send
-opinions to lilypond-devel.  Thanks!  :)
+@c FIXME: this might get moved into Changing Defaults.  Please send
+@c opinions to lilypond-devel.  Thanks!  :)
+@c    wow, this is embarrassing.  I changed added this a year
+@c    ago, and it was supposed to be a "fix in 2 weeks" thing.
+@c    unfortunately, I forgot to add -gp to it, so when I was
+@c    searching for last-minute stuff before 2.8 came out, I
+@c    missed it.  :(
+@c
+@c  BTW, this will definitely be moved.  :)
+
 
 @menu
 * Automatic accidentals::       
@@ -2206,8 +2282,8 @@ individually for each voice.  Apart from that, the rule is similar to
 As a result, accidentals from one voice do not get canceled in other
 voices, which is often an unwanted result
 
-@lilypond[quote,raggedright,relative=1,fragment,verbatim]
-\context Staff <<
+@lilypond[quote,ragged-right,relative=1,fragment,verbatim]
+\new Staff <<
   #(set-accidental-style 'voice)
   <<
     { es g } \\
@@ -2229,7 +2305,7 @@ accidentals also are canceled in other octaves.  Furthermore,
 in the same octave, they also get canceled in the following
 measure
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 #(set-accidental-style 'modern)
 cis' c'' cis'2 | c'' c'
 @end lilypond
@@ -2239,7 +2315,7 @@ cis' c'' cis'2 | c'' c'
 This rule is similar to @code{modern}, but the ``extra'' accidentals
 (the ones not typeset by @code{default}) are typeset as cautionary
 accidentals.  They are printed in reduced size or with parentheses
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 #(set-accidental-style 'modern-cautionary)
 cis' c'' cis'2 | c'' c'
 @end lilypond
@@ -2275,7 +2351,7 @@ accidentals typeset as cautionaries.
 @cindex @code{no-reset} accidental style
 This is the same as @code{default} but with accidentals lasting
 ``forever'' and not only until the next measure
-@lilypond[quote,raggedright,fragment,verbatim,relative=1]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
 #(set-accidental-style 'no-reset)
 c1 cis cis c
 @end lilypond
@@ -2286,7 +2362,7 @@ are not remembered at all---and hence all accidentals are
 typeset relative to the key signature, regardless of what was
 before in the music
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=1]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
 #(set-accidental-style 'forget)
 \key d\major c4 c cis cis d d dis dis
 @end lilypond
@@ -2321,7 +2397,7 @@ problematic notes.
 @cindex automatic beams, tuning
 @cindex tuning automatic beaming
 
-@c [TODO: use \applycontext]
+@c [TODO: use \applyContext]
 
 In normal time signatures, automatic beams can start on any note but can
 only end in a few positions within the measure: beams can end on a beat,
@@ -2340,16 +2416,16 @@ In order to add a rule to the list, use
 
 @item @code{be} is either "begin" or "end".
 
-@item @code{b/q} is the duration of the note for which you want
+@item @code{p/q} is the duration of the note for which you want
 to add a rule.  A beam is considered to have the duration of its
 shortest note.  Set @code{p} and @code{q} to @code{'*'} to
 have this apply to any beam.
 
-@item @code{n/m} is the position in the time signature to which
+@item @code{n/m} is the time signature to which
 this rule should apply.  Set @code{n} and @code{m} to @code{'*'}
 to have this apply in any time signature.
 
-@item @code{a/b} is the position in the bar at which the beam should end.
+@item @code{a/b} is the position in the bar at which the beam should begin/end.
 
 @item @code{context} is optional, and it specifies the context at which
 the change should be made.  The default is @code{'Voice}.
@@ -2359,7 +2435,7 @@ the change should be made.  The default is @code{'Voice}.
 @end itemize
 
 For example, if automatic beams should always end on the first quarter
-node, use
+note, use
 
 @example
 #(override-auto-beam-setting '(end * * * *) 1 4)
@@ -2368,7 +2444,7 @@ node, use
 You can force the beam settings to only take effect on beams whose shortest
 note is a certain duration
 
-@lilypond[quote,fragment,raggedright,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 2/4
 #(override-auto-beam-setting '(end 1 16 * *) 1 16)
 a16 a a a a a a a |
@@ -2380,7 +2456,7 @@ a32 a a a a16 a a a a a |
 You can force the beam settings to only take effect in certain time
 signatures
 
-@lilypond[quote,fragment,raggedright,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 5/8
 #(override-auto-beam-setting '(end * * 5 8) 2 8)
 c8 c d d d
@@ -2401,7 +2477,7 @@ be, p, q, n, m, a, b and context are the same as above.  Note that the
 default rules are specified in @file{scm/@/auto@/-beam@/.scm},
 so you can revert rules that you did not explicitly create.
 
-@lilypond[quote,fragment,raggedright,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 4/4
 a16 a a a a a a a a a a a a a a a
 #(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
@@ -2411,7 +2487,7 @@ a16 a a a a a a a a a a a a a a a
 The rule in a revert-auto-beam-setting statement must exactly match the
 original rule.  That is, no wildcard expansion is taken into account.
 
-@lilypond[quote,fragment,raggedright,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 1/4
 #(override-auto-beam-setting '(end 1 16 1 4) 1 8)
 a16 a a a