-@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
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::
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
@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 " . "")
@code{textSpannerNeutral}.
+@commonprop
+
+To print a solid line, use
+
+@example
+\override TextSpanner #'dash-fraction = #'()
+@end example
+
+
@seealso
Program reference: @internalsref{TextSpanner}.
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
@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
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
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 {
@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
@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
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 } }
@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." }
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
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
@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
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
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
@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
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)
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
}
@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
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 } } }
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 {
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}.
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"
@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
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}
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
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 {
\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
@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
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.
+
+
+@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
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 example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\layout{
\context{
\Score
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
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
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
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' {
* 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
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\new Voice {
+ \applyOutput
#(add-balloon-text 'NoteHead "heads, or tails?"
'(1 . -3))
c8
@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
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
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)
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
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
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)
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 {
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::
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 } \\
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
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
@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
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
@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,
@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}.
@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)
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 |
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
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)
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