-@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
+@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
* Orchestral music::
* Contemporary notation::
* Educational use::
-* Automatic notation::
@end menu
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::
-* Selecting font sizes::
* Font selection::
* New dynamic marks::
-* Other text markup issues::
@end menu
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
@refcommands
-@cindex @code{\fatText}
+@funindex \fatText
@code{\fatText},
-@cindex @code{\emptyText}
+@funindex \emptyText
@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}.
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 " . "")
c2\startTextSpan b c\stopTextSpan a
+\break
+\textSpannerUp
+\override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
+c2\startTextSpan b c\stopTextSpan a
@end lilypond
@refcommands
@cindex textSpannerUp
@code{textSpannerUp},
-@cindex textSpannerDown
+@cindex textSpannerDown
@code{textSpannerDown},
@cindex textSpannerNeutral
@code{textSpannerNeutral}.
+@commonprop
+
+To print a solid line, use
+
+@example
+\override TextSpanner #'dash-fraction = #'()
+@end example
+
+
@seealso
Program reference: @internalsref{TextSpanner}.
@cindex segno on bar line
@cindex fermata on bar line
@cindex bar lines, symbols on
-@cindex @code{\mark}
+@funindex \mark
The @code{\mark} command is primarily used for
-@internalsref{Rehearsal marks},
+@ref{Rehearsal marks},
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
+access the appropriate symbol (symbols are listed in
+@ref{The Feta font})
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
c1 \mark \markup { \musicglyph #"scripts.ufermata" }
c1
@end lilypond
@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
\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
@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
\set Staff.instrument = \markup{ \column{ Alto solo } }
c2^\markup{ don't be \flat }
- b2
+ \override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
+ b2\startTextSpan
a2\mark \markup{ \large \bold Fine }
- r2
+ r2\stopTextSpan
\bar "||"
}
\addlyrics { bar, foo \markup{ \italic bar! } }
}
@end lilypond
+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 scores in a book}).
+
+@lilypond[quote,ragged-right,verbatim]
+\markup{ Here is some text. }
+@end lilypond
+
@cindex font switching
The markup in the example demonstrates font switching commands. The
-command @code{\bold} and @code{\italic} apply to the first following
+command @code{\bold} and @code{\italic} apply to the first following
word only; to apply a command to more than one word, enclose the
words with braces,
\markup @{ is \italic @{ anyone @} home @}
@end example
-@cindex font size, texts
-
In markup mode you can compose expressions, similar to mathematical
expressions, XML documents, and music expressions. You can stack
expressions grouped vertically with the command @code{\column}.
c1^\markup { \line { a b c } }
@end lilypond
+Lists with no previous command are not kept distinct. The expression
+
+@example
+\center-align @{ @{ a b @} @{ c d @} @}
+@end example
+
+@noindent
+
+is equivalent to
+
+@example
+\center-align @{ a b c d @}
+@end example
+
+@noindent
+
+To keep lists of words distinct, please use quotes @code{"} or
+the @code{\line} command
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\fatText
+c4^\markup{ \center-align { on three lines } }
+c4^\markup{ \center-align { "all one line" } }
+c4^\markup{ \center-align { { on three lines } } }
+c4^\markup{ \center-align { \line { on one line } } }
+@end lilypond
+
Markups can be stored in variables and these variables
may be attached to notes, like
@example
centered, so using @code{\mark \markup @{ \left-align .. @}} has no
effect.
+In addition, vertical placement is performed after creating the
+text markup object. If you wish to move an entire piece of markup,
+you need to use the #'padding property or create an "anchor" point
+inside the markup (generally with @code{\hspace #0}).
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\fatText
+c'4^\markup{ \raise #5 "not raised" }
+\once \override TextScript #'padding = #3
+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
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
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 {
@include markup-commands.tely
-@node Selecting font sizes
-@subsection Selecting font sizes
-
-The easiest method of setting the font size of any context, is by
-setting the @code{fontSize} property.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\set fontSize = #-4
-c f
-\set fontSize = #3
-g
-@end lilypond
-
-@noindent
-It does not change the size of variable symbols, such as beams or
-slurs.
-
-Internally, the @code{fontSize} context property will cause the
-@code{font-size} property to be set in all layout objects. The value
-of @code{font-size} is a number indicating the size relative to the
-standard size for the current staff height. Each step up is an
-increase of approximately 12% of the font size. Six steps is exactly a
-factor two. The Scheme function @code{magstep} converts a
-@code{font-size} number to a scaling factor.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\override NoteHead #'font-size = #-4
-c f
-\override NoteHead #'font-size = #3
-g
-@end lilypond
-
-LilyPond has fonts in different design sizes. The music fonts for
-smaller sizes are chubbier, while the text fonts are relatively wider.
-Font size changes are achieved by scaling the design size that is
-closest to the desired size. The standard font size (for
-@code{font-size} equals 0), depends on the standard staff height. For
-a 20pt staff, a 10pt font is selected.
-
-The @code{font-size} property can only be set on layout objects that
-use fonts. These are the ones supporting the
-@internalsref{font-interface} layout interface.
-
-@refcommands
-
-The following commands set @code{fontSize} for the current voice:
-
-@cindex @code{\tiny}
-@code{\tiny},
-@cindex @code{\small}
-@code{\small},
-@cindex @code{\normalsize}
-@code{\normalsize}.
-
-
@node Font selection
@subsection Font selection
@cindex font selection
@cindex font magnification
-@cindex @code{font-interface}
+@funindex font-interface
By setting the object properties described below, you can select a
font from the preconfigured font families. LilyPond has default
-support for the feta music fonts and @TeX{}'s Computer Modern text
-fonts.
+support for the feta music fonts. Text fonts are selected through
+Pango/FontConfig. The serif font defaults to New Century Schoolbook,
+the sans and typewriter to whatever the Pango installation defaults
+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
@item @code{font-family}
is a symbol indicating the general class of the typeface. Supported are
@code{roman} (Computer Modern), @code{sans}, and @code{typewriter}.
-
+
@item @code{font-shape}
is a symbol indicating the shape of the font. There are typically
several font shapes available for each font family. Choices are
@item @code{font-series}
is a symbol indicating the series of the font. There are typically
several font series for each font family and shape. Choices are
-@code{medium} and @code{bold}.
+@code{medium} and @code{bold}.
@end itemize
Fonts selected in the way sketched above come from a predefined style
-sheet. If you want to use a font from outside the style sheet,
-then set the
-@code{font-name} property,
+sheet. If you want to use a font from outside the style sheet,
+then set the
+@code{font-name} property,
@lilypond[fragment,verbatim]
{
- \override Staff.TimeSignature #'font-name = #"Times"
- \override Staff.TimeSignature #'font-size = #2
+% \override Staff.TimeSignature #'font-name = #"Charter"
+% \override Staff.TimeSignature #'font-size = #2
\time 3/4
c'1_\markup {
- \override #'(font-name . "Vera Bold")
- { This text is in Vera Bold }
+% \override #'(font-name . "Vera Bold")
+% { This text is in Vera Bold }
}
}
@end lilypond
@cindex font size
@cindex font magnification
+
+It is also possible to change the default font family for the entire
+document. This is done by calling the @code{make-pango-font-tree} from
+within the @code{\paper} block. The function takes names for the font
+families to use for roman, sans serif and monospaced text. For
+example,
+
+@cindex font families, setting
+@cindex Pango
+
+
+@lilypond[verbatim]
+\paper {
+ myStaffSize = #20
+
+ #(define fonts
+ (make-pango-font-tree "Times New Roman"
+ "Nimbus Sans"
+ "Luxi Mono"
+ (/ myStaffSize 20)))
+}
+
+{
+ c'^\markup { roman: foo \sans bla \typewriter bar }
+}
+@end lilypond
+
+@c we don't do Helvetica / Courier, since GS incorrectly loads
+@c Apple TTF fonts
+
+
+
@seealso
-Init files: @file{ly/@/declarations@/-init@/.ly} contains hints how new
-fonts may be added to LilyPond.
+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
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 } }
@end lilypond
-@node Other text markup issues
-@subsection Other text markup issues
-
-To use a normal font within a title, you must define it manually
-
-@example
-#(def-markup-command (normal-font layout props arg) (markup?)
- "Switch to normal text font"
- (interpret-markup layout (cons '((font-series . 'medium) (font-shape . 'upright)) props) arg))
-
-\header@{
- title = \markup@{ ABCD \normal-font ABCD @}
-@}
-@end example
-
-
@node Preparing parts
@section Preparing parts
@subsection Multi measure rests
@cindex multi measure rests
+@cindex full measure rests
@cindex Rests, multi measure
+@cindex Rests, full measure
@cindex whole rests for a full measure
-@cindex @code{R}
+@funindex R
-Multi-measure rests are entered using `@code{R}'. It is specifically
-meant for full bar rests and for entering parts: the rest can expand
-to fill a score with rests, or it can be printed as a single
+Rests for one full measure (or many bars) are entered using `@code{R}'. It
+is specifically meant for full bar rests and for entering parts: the rest
+can expand to fill a score with rests, or it can be printed as a single
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
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
(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
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." }
R2.^\fermataMarkup
@end lilypond
+Warning! This text is created by @code{MultiMeasureRestText}, not
+@code{TextScript}.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\override TextScript #'padding = #5
+R1^"low"
+\override MultiMeasureRestText #'padding = #5
+R1^"high"
+@end lilypond
+
If you want to have text on the left end of a multi-measure rest,
attach the text to a zero-length skip note, i.e.,
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]
+@funindex \tempo
+@lilypond[quote,ragged-right,verbatim,fragment]
\tempo 8.=120 c''1
@end lilypond
@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
Collisions are not checked. If you have notes above the top line of
the staff (or notes with articulations, slurs, text, etc), then the
metronome marking may be printed on top of musical symbols. If this
-occurs, increase the padding of the metronome mark to place it
+occurs, increase the padding of the metronome mark to place it
further away from the staff.
@example
@subsection Rehearsal marks
@cindex Rehearsal marks
-@cindex @code{\mark}
+@funindex \mark
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
@end lilypond
@noindent
-(The letter@tie{}`I' is skipped in accordance with engraving traditions.)
+The letter@tie{}`I' is skipped in accordance with engraving traditions.
+If you wish to include the letter `I', then use
+
+@example
+\set Score.markFormatter = #format-mark-alphabet
+@end example
The mark is incremented automatically if you use @code{\mark
\default}, but you can also use an integer argument to set the mark
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
@end lilypond
The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
-of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
+of @code{format-mark-numbers} (the default format),
+@code{format-mark-box-numbers},
@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.
+
+@cindex segno
+@cindex coda
+@cindex D.S al Fine
+
+Music glyphs (such as the segno sign) may be printed inside
+a @code{\mark}
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative]
+c1 \mark \markup { \musicglyph #"scripts.segno" }
+c1 \mark \markup { \musicglyph #"scripts.coda" }
+c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+@end lilypond
+
+@noindent
+See @ref{The Feta font} for a list of symbols which may be
+printed with @code{\musicglyph}.
+
+The horizontal location of rehearsal marks can be adjusted by
+setting @code{break-align-symbol}
+
+@lilypond[fragment,quote,ragged-right,verbatim,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
+@end lilypond
+
+@code{break-align-symbol} may also accept the following values:
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
+@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
+@code{key-signature}, and @code{time-signature}. Setting
+@code{break-align-symbol} will only have an effect if the symbol
+appears at that point in the music.
+
@seealso
@cindex Bar numbers
@cindex measure numbers
-@cindex @code{currentBarNumber}
+@funindex currentBarNumber
Bar numbers are printed by default at the start of the line. The
number itself is stored in the @code{currentBarNumber} property, which
is normally updated automatically for every measure.
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\repeat unfold 4 {c4 c c c} \break
+\set Score.currentBarNumber = #50
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
+Bar numbers may only be printed at bar lines; to print a bar
+number at the beginning of a piece, an empty bar line must
+be added
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\set Score.currentBarNumber = #50
+\bar ""
+\repeat unfold 4 {c4 c c c} \break
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
Bar numbers can be typeset at regular intervals instead of at the
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
+Bar numbers can be removed entirely by removing the Bar number
+engraver from the score.
-@lilypond[verbatim,raggedright,quote]
-\relative c' {
- \set Score.markFormatter
- = #(lambda (mark context)
- (make-bold-markup
- (make-box-markup
- (number->string (ly:context-property context
- 'currentBarNumber)))))
-
- c1 \bar "||" \mark \default c1 c1 \mark \default c1 \bar "|."
+@lilypond[verbatim,ragged-right,quote]
+\layout {
+ \context {
+ \Score
+ \remove "Bar_number_engraver"
+ }
}
-@end lilypond
-
-Bar numbers can be manually changed by setting the
-@code{Staff.currentBarNumber} property
-
-@lilypond[verbatim,raggedright,quote]
-\relative c' {
- \repeat unfold 4 {c4 c c c} \break
- \set Score.currentBarNumber = #50
- \repeat unfold 4 {c4 c c c}
+\relative c''{
+c4 c c c \break
+c4 c c c
}
@end lilypond
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
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 } } }
c''1
@end lilypond
+If you wish to center the instrument names, you must center all of them
+
+@lilypond[quote,verbatim,ragged-right]
+{ <<
+\new Staff {
+ \set Staff.instrument = \markup {
+ \center-align { "Clarinetti"
+ \line { "in B" \smaller \flat } } }
+ c''1
+}
+\new Staff {
+ \set Staff.instrument = \markup{ \center-align { Vibraphone }}
+ c''1
+}
+>>
+}
+@end lilypond
+
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}.
@refbugs
When you put a name on a grand staff or piano staff, the width of the
-brace is not taken into account. You must add extra spaces to the end of
-the name to avoid a collision.
+brace is not taken into account. The following property setting can be
+used to move the instrument names to the left, in such situations.
+
+@example
+\override Score.InstrumentName #'padding = #2.0
+@end example
@node Instrument transpositions
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
@cindex 15ma
@cindex octavation
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
\relative c''' {
a2 b
#(set-octavation 1)
@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"
@node Different editions from one source
@subsection Different editions from one source
-@cindex @code{\tag}
+@funindex \tag
@cindex tag
The @code{\tag} command marks music expressions with a name. These
@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
Multiple rests are not merged if you create the score with both tagged
sections.
-
+
@node Orchestral music
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 }
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
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"
@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 }
}
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}
@node Quoting other voices
@subsection Quoting other voices
+@cindex cues
+
With quotations, fragments of other parts can be inserted into a part
directly. Before a part can be quoted, it must be marked especially as
quotable. This is done with the @code{\addquote} command.
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
@node Formatting cue notes
@subsection Formatting cue notes
+@cindex cues, formatting
+
The previous section deals with inserting notes from another voice.
There is a more advanced music function called @code{\cueDuring},
which makes formatting cue notes easier.
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 {
R1*20
r2 r8 c f f
-}
+}
\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
-
+
\new Voice {
R1*20
\cueDuring #"clarinet" #1 {
R1
}
- g4 g2.
+ g4 g2.
}
>>
-@end lilypond
+@end lilypond
Here are a couple of hints for successful cue notes
when the original part takes over again, this should be marked with
the name of the original instrument.
- @c really? Are you sure about that last point? I'll check after 3.0 -gp
+@c really? Are you sure about that last point? I'll check after 3.0 -gp
@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
+@c notes are
@c finished.
@c -hwn
- any other changes introduced by the cued part should also be
+Any other changes introduced by the cued part should also be
undone. For example, if the cued instrument plays in a different clef,
the original clef should be stated once again.
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
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.
@menu
* Polymetric notation::
* Time administration::
+* Proportional notation::
* Clusters::
-* Special fermatas::
* Special noteheads::
* Feathered beams::
* Improvisation::
+* Selecting notation font size::
@end menu
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.
@end lilypond
Each staff can also have its own time signature. This is done by
-moving the @internalsref{Timing_engraver} to the @internalsref{Staff}
+moving the @internalsref{Timing_translator} to the @internalsref{Staff}
context.
@example
\layout @{
- \context @{ \Score \remove "Timing_engraver" @}
- \context @{ \Staff \consists "Timing_engraver" @}
+ \context @{ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ @}
+ \context @{
+ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ @}
+
@}
@end example
>>
@end example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\layout{
- \context{ \Score \remove "Timing_engraver" }
- \context{ \Staff \consists "Timing_engraver" }
+ \context{
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ \context{ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ }
}
\relative c' <<
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
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
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
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
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
@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
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
+@cindex note heads, special
+
Different noteheads are used by various instruments for various
meanings -- crosses are used for ``parlato'' with vocalists, stopped
notes on guitar; diamonds are used for harmonics on string instruments,
etc. There is a shorthand (@code{\harmonic}) for diamond shapes; the
other notehead styles are produced by tweaking the property
-@lilypond[raggedright,relative=1,fragment,verbatim,quote]
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
c4 d
\override NoteHead #'style = #'cross
e f
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
{
@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' {
@end lilypond
+@node Selecting notation font size
+@subsection Selecting notation font size
+
+The easiest method of setting the font size of any context is by
+setting the @code{fontSize} property.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+It does not change the size of variable symbols, such as beams or
+slurs.
+
+Internally, the @code{fontSize} context property will cause the
+@code{font-size} property to be set in all layout objects. The value
+of @code{font-size} is a number indicating the size relative to the
+standard size for the current staff height. Each step up is an
+increase of approximately 12% of the font size. Six steps is exactly a
+factor two. The Scheme function @code{magstep} converts a
+@code{font-size} number to a scaling factor.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+Font size changes are achieved by scaling the design size that is
+closest to the desired size. The standard font size (for
+@code{font-size} equals 0), depends on the standard staff height. For
+a 20pt staff, a 10pt font is selected.
+
+The @code{font-size} property can only be set on layout objects that
+use fonts. These are the ones supporting the
+@internalsref{font-interface} layout interface.
+
+@refcommands
+
+The following commands set @code{fontSize} for the current voice:
+
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize}.
+
+
+
@node Educational use
@section Educational use
* Balloon help::
* Blank music sheet::
* Hidden notes::
-* Shaped note heads ::
+* Shape note heads::
* Easy Notation note heads::
* Analysis brackets::
* Coloring objects::
+* Parentheses::
@end menu
@node Balloon help
The following example demonstrates its use.
-@lilypond[quote,verbatim,fragment,raggedright,relative=2]
-\context Voice {
- \applyoutput
- #(add-balloon-text 'NoteHead "heads, or tails?"
- '(1 . -3))
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\applyOutput #'Voice
+ #(add-balloon-text 'NoteHead "heads, or tails?"
+ '(1 . -3))
c8
-}
@end lilypond
@noindent
@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}.
defaultBarType = #""
\remove Bar_number_engraver
} <<
- \context Staff \emptymusic
- \context TabStaff \emptymusic
+ \new Staff \emptymusic
+ \new TabStaff \emptymusic
>>
@end lilypond
@cindex Invisible notes
@cindex Transparent notes
-@cindex @code{\hideNotes}
-@cindex @code{\unHideNotes}
+@funindex \hideNotes
+@funindex \unHideNotes
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
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
-@node Shaped note heads
-@subsection Shaped note heads
+@cindex note heads, shape
-In shaped note head notation, the shape of the note head corresponds
+In shape note head notation, the shape of the note head corresponds
to the harmonic function of a note in the scale. This notation was
popular in the 19th century American song books.
-Shaped note heads can be produced by setting @code{\aikenHeads} or
+Shape note heads can be produced by setting @code{\aikenHeads} or
@code{\sacredHarpHeads}, depending on the style desired.
@lilypond[verbatim,relative=1,fragment]
Shapes are determined on the step in the scale, where the base of the
scale is determined by the @code{\key} command
-@findex \key
-@findex shapeNoteStyles
-@findex \aikenHeads
-@findex \sacredHarpHeads
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
-Shaped note heads are implemented through the @code{shapeNoteStyles}
+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)
@node Easy Notation note heads
@subsection Easy Notation note heads
+@cindex note heads, practice
+@cindex note heads, easy notation
@cindex easy notation
@cindex Hal Leonard
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
@refcommands
-@cindex @code{\setEasyHeads}
+@funindex \setEasyHeads
@code{\setEasyHeads}
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
Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
-
-@ignore
-
-I don't think we need this info.
-
-@n ode Stems
-@s ubsection Stems
-
-Whenever a note is found, a @internalsref{Stem} object is created
-automatically. For whole notes and rests, they are also created but
-made invisible.
-
-@refcommands
-
-@cindex @code{\stemUp}
-@code{\stemUp},
-@cindex @code{\stemDown}
-@code{\stemDown},
-@cindex @code{\stemNeutral}
-@code{\stemNeutral}.
-
-@end ignore
-
-
@node Coloring objects
@subsection Coloring objects
-@c FIXME: need link to missing list of colors
-Individual objects may be assigned colors. You may use color names
-listed HERE
+Individual objects may be assigned colors. You may use the
+color names listed in the @ref{List of colors}.
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
\override NoteHead #'color = #red
c4 c
\override NoteHead #'color = #(x11-color 'LimeGreen)
@end lilypond
The full range of colors defined for X11 can be accessed by using the
-scheme function x11-color. The function takes one argument that can be a
+Scheme function x11-color. The function takes one argument that can be a
symbol
@example
defaults to black. It should be obvious from the final score that
something is wrong.
-This example, illustrates the use of x11-color. Notice that the stem
+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 {
@end lilypond
-@refbugs
-Not all x11 colors are distinguishable in a web browser. For web use
-normal colors are recommended.
-
-An x11 color is not necessarily exactly the same shade as a similarly
-named normal color.
-
-
@seealso
-COLORLIST
-
-
-
-@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! :)
-
-@menu
-* Automatic accidentals::
-* Setting automatic beam behavior::
-@end menu
-
-@node Automatic accidentals
-@subsection Automatic accidentals
-@cindex Automatic accidentals
-
-Common rules for typesetting accidentals have been placed in a
-function. This function is called as follows
-
-@cindex @code{set-accidental-style}
-@example
-#(set-accidental-style 'STYLE #('CONTEXT#))
-@end example
-
-The function can take two arguments: the name of the accidental style,
-and an optional argument that denotes the context that should be
-changed. If no context name is supplied, @code{Staff} is the default,
-but you may wish to apply the accidental style to a single @code{Voice}
-instead.
-
-The following accidental styles are supported
-@table @code
-@item default
-This is the default typesetting behavior. It corresponds
-to 18th century common practice: Accidentals are
-remembered to the end of the measure in which they occur and
-only on their own octave.
-
-@item voice
-The normal behavior is to remember the accidentals on
-Staff-level. This variable, however, typesets accidentals
-individually for each voice. Apart from that, the rule is similar to
-@code{default}.
-
-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 <<
- #(set-accidental-style 'voice)
- <<
- { es g } \\
- { c, e }
->> >>
-@end lilypond
-
-The @code{voice} option should be used if the voices
-are to be read solely by individual musicians. If the staff is to be
-used by one musician (e.g., a conductor) then
-@code{modern} or @code{modern-cautionary}
-should be used instead.
-
-@item modern
-@cindex @code{modern} style accidentals
-This rule corresponds to the common practice in the 20th century. This rule
-prints the same accidentals as @code{default}, but temporary
-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]
-#(set-accidental-style 'modern)
-cis' c'' cis'2 | c'' c'
-@end lilypond
-
-@item @code{modern-cautionary}
-@cindex @code{modern-cautionary}
-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]
-#(set-accidental-style 'modern-cautionary)
-cis' c'' cis'2 | c'' c'
-@end lilypond
-
-@cindex @code{modern-voice}
-@item modern-voice
-This rule is used for multivoice accidentals to be read both by musicians
-playing one voice and musicians playing all voices. Accidentals are
-typeset for each voice, but they @emph{are} canceled across voices in
-the same @internalsref{Staff}.
-
-@cindex @code{modern-voice-cautionary}
-@item modern-voice-cautionary
-This rule is the same as @code{modern-voice}, but with the extra
-accidentals (the ones not typeset by @code{voice}) typeset
-as cautionaries. Even though all accidentals typeset by
-@code{default} @emph{are} typeset by this variable,
-some of them are typeset as cautionaries.
-
-@item piano
-@cindex @code{piano} accidentals
-This rule reflects 20th century practice for piano notation. Very similar to
-@code{modern} but accidentals also get canceled
-across the staves in the same @internalsref{GrandStaff} or
-@internalsref{PianoStaff}.
-
-@item piano-cautionary
-@cindex @code{#(set-accidental-style 'piano-cautionary)}
-Same as @code{#(set-accidental-style 'piano)} but with the extra
-accidentals typeset as cautionaries.
-
-@item no-reset
-@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]
-#(set-accidental-style 'no-reset)
-c1 cis cis c
-@end lilypond
-
-@item forget
-This is sort of 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 was
-before in the music
-
-@lilypond[quote,raggedright,fragment,verbatim,relative=1]
-#(set-accidental-style 'forget)
-\key d\major c4 c cis cis d d dis dis
-@end lilypond
-@end table
-
-
-@seealso
-
-Program reference: @internalsref{Accidental_engraver},
-@internalsref{Accidental}, and @internalsref{AccidentalPlacement}.
+Appendix: @ref{List of colors}.
@refbugs
+Not all x11 colors are distinguishable in a web browser. For web use
+normal colors are recommended.
-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 happened once at a time - in the order in which
-they appear in the input file.
-
-This is a problem when accidentals in a chord depend on each other,
-which does not happen for the default accidental style. The problem
-can be solved by manually inserting @code{!} and @code{?} for the
-problematic notes.
+An x11 color is not necessarily exactly the same shade as a similarly
+named normal color.
+Notes in a chord cannot be colored with @code{\override}; use
+@code{\tweak} instead. See @ref{Objects connected to the input}
+for details.
-@node Setting automatic beam behavior
-@subsection Setting automatic beam behavior
-@cindex @code{autoBeamSettings}
-@cindex @code{(end * * * *)}
-@cindex @code{(begin * * * *)}
-@cindex automatic beams, tuning
-@cindex tuning automatic beaming
+@node Parentheses
+@subsection Parentheses
-@c [TODO: use \applycontext]
+@cindex ghost notes
+@cindex notes, ghost
+@cindex notes, parenthesized
-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,
-or at durations specified by the properties in
-@code{autoBeamSettings}. The defaults for @code{autoBeamSettings}
-are defined in @file{scm/@/auto@/-beam@/.scm}.
+Objects may be parenthesized by prefixing @code{\parenthesize} to the music
+event,
-The value of @code{autoBeamSettings} is changed with three functions,
-@example
-#(override-auto-beam-setting
- '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
- [@var{context}])
-#(score-override-auto-beam-setting
- '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b})
-#(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m})
- [@var{context}])
-@end example
-Here, @var{be} is the symbol @code{begin} or @code{end}, and
-@var{context} is an optional context (default: @code{'Voice}). It
-determines whether the rule applies to begin or end-points. The
-quantity @var{p}/@var{q} refers to the length of the beamed notes (and
-`@code{* *}' designates notes of any length), @var{n}/@var{M} refers
-to a time signature (wildcards `@code{* *}' may be entered to
-designate all time signatures), @var{a}/@var{b} is a duration. By
-default, this command changes settings for the current voice. It is
-also possible to adjust settings at higher contexts, by adding a
-@var{context} argument. @code{score-override-auto-beam-setting} is
-equal to @code{override-auto-beam-setting} with the argument
-@var{context} set to @code{'Score}.
-
-For example, if automatic beams should end on the first quarter note, use
-the following
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-@end example
-Since the duration of a quarter note is 1/4 of a whole note, it is
-entered as @code{(ly:make-moment 1 4)}.
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+ c
+ \parenthesize d
+ g
+>4-\parenthesize -.
+@end lilypond
-If automatic beams should end on every quarter in 5/4 time, specify
-all endings
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
-#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
-@dots{}
-@end example
+This only functions inside chords, even for single notes
-The same syntax can be used to specify beam starting points. In this
-example, automatic beams can only end on a dotted quarter note
@example
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 8)
+< \parenthesize NOTE>
@end example
-In 4/4 time signature, this means that automatic beams could end only on
-3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
-3/8, has passed within the measure).
-
-Rules can also be restricted to specific time signatures. A rule that
-should only be applied in @var{N}/@var{M} time signature is formed by
-replacing the second asterisks by @var{N} and @var{M}. For example, a
-rule for 6/8 time exclusively looks like
-@example
-#(override-auto-beam-setting '(begin * * 6 8) @dots{})
-@end example
-
-If a rule should be to applied only to certain types of beams, use the
-first pair of asterisks. Beams are classified according to the
-shortest note they contain. For a beam ending rule that only applies
-to beams with 32nd notes (and no shorter notes), use @code{(end 1 32 *
-*)}.
-
-For example,
-
-@lilypond[quote,raggedright,relative=2,fragment,verbatim]
-\time 5/8
-#(override-auto-beam-setting '(end * * 5 8) 2 8)
-c8 c d d d
-\time 4/4
-e8 e f f e e d d
-\time 5/8
-c8 c d d d
-@end lilypond
-
-@cindex automatic beam generation
-@cindex autobeam
-@cindex @code{autoBeaming}
-@cindex lyrics
-
-If beams are used to indicate melismata in songs, then automatic
-beaming should be switched off. This is done by setting
-@code{autoBeaming} to @code{#f}.
-
-@refcommands
-
-@cindex @code{\autoBeamOff}
-@code{\autoBeamOff},
-@cindex @code{\autoBeamOn}
-@code{\autoBeamOn}.
-
-
-@refbugs
-
-If a score ends while an automatic beam has not been ended and is
-still accepting notes, this last beam will not be typeset at all. The
-same holds polyphonic voices, entered with @code{<< @dots{} \\ @dots{}
->>}. If a polyphonic voice ends while an automatic beam is still
-accepting notes, it is not typeset.
-