SOURCES
-The sources live in a GIT repository. Git 1.4.4.1 or newer is
-required, and Git 1.5.x is highly recommended. To get a fresh version
-of LilyPond sources run
+The sources live in a GIT repository. Git 1.5.x is required, and
+latest version available on your platform is always recommended. To
+get a fresh version of LilyPond sources run
- mkdir lily ; cd lily
- git init-db
- git fetch git://git.sv.gnu.org/lilypond.git/ refs/heads/lilypond/translation:lilypond/translation
- git checkout -b mytranslations lilypond/translation
+ mkdir lily ; cd lily ; git init-db ; mkdir .git/refs/remotes/origin
+
+then write the two following lines to a text file named .git/remotes/trans
+
+URL: git://git.sv.gnu.org/lilypond.git/
+Pull: lilypond/translation:refs/remotes/origin/lilypond/translation
+
+then run
+
+ git fetch trans
+ git checkout -b lilypond/translation origin/lilypond/translation
GIT
This command is mainly intended to be used by the Translation meister.
+MISCELLANEOUS: DEALING WITH SEVERAL GIT BRANCHES
+
+* It is possible to work with several branches on the same local Git
+repository; this is especially useful for translators who may have to
+deal with both lilypond/translation and a stable branch
+(e.g. stable/2.12 or lilypond/translation-2.12). To fetch and check
+out a new branch named BRANCH on git.sv.gnu.org, write the two
+following lines to a text file named .git/remotes/SHORTHAND --
+SHORTHAND is the name of the remote file, i.e. whatever easy-to-type
+name you would like to use when pulling or pushing BRANCH, and usually
+SHORTHAND is an abbreviation of BRANCH without slashes
+
+URL: git://git.sv.gnu.org/lilypond.git/
+Pull: BRANCH:refs/remotes/origin/BRANCH
+
+Then, run
+
+ git fetch SHORTHAND
+ git checkout -b BRANCH origin/BRANCH
+
+After this, you are able to pull BRANCH from git.sv.gnu.org with
+
+ git pull SHORTHAND
+
+You can check out another branch OTHER_BRANCH, i.e. check out
+OTHER_BRANCH to the working tree, with
+
+ git checkout OTHER_BRANCH
+
+E.g. lilypond/translation, which you still have in your local Git
+repository but is no longer checked out since you have created the new
+branch BRANCH.
+
+Note that it is possible to check out another branch while having
+uncommitted changes, but it is not recommended unless you know what
+you are doing; it is recommended to run 'git status' to check this
+kind of issue before checking ouy another branch.
+
+When pulling using SHORTHAND, do not forget to check first that the
+right branch is checked out, i.e. the branch named A in the first part
+of the "A:B" refspec in .git/remotes/SHORTHAND: as a matter of fact,
+when you pull using A:B refspec, Git fetch A on the server as B remote
+branch on your local repository, then tries to merge B into the
+currently checked out branch.
+
+To remember which branch is currently checked out, run 'git branch',
+which will list all branches and mark the currently checked out branch
+with a star, or 'git status'.
+
+
+* To merge branch FOO into branch BAR, i.e. to "add" all changes made
+in branch FOO to branch BAR, run
+
+ git checkout BAR
+ git merge FOO
+
+If any conflict happens, please carefully follow the instructions
+given by 'git merge' -- you usually must resolve conflicts with a text
+editor by merging pieces of files marked with "<<<" "===" and ">>>",
+removing these 3 kinds of conflict marks, then commit the result
+exactly like a usual commit.
+
+For example, as a translator, you will often want to merge master into
+lilypond/translation; on the other hand, the Translations meister
+wants to merge lilypond/translation into master whenever he has
+checked that lilypond/translation builds successfully.
+
+
+* If you play with several Git branches (e.g. master,
+lilypond/translation, stable/2.12), you may want to have one source
+and build tree for each branch; this is possible with subdirectories
+of your local Git repository, used as local cloned subrepositories.
+To create a local clone for the branch named BRANCH, run
+
+ git checkout BRANCH
+ git clone -l -s -n . SUBDIR
+ cd SUBDIR
+ git reset --hard
+
+Note that SUBDIR must be a directory name which does not already
+exist. In SUBDIR, you can use all Git commands to browse revisions
+history, commit and uncommit changes; to update the cloned
+subrepository with changes made on the main repository, cd into SUBDIR
+and run 'git pull'; to send changes made on the subrepository back to
+the main repository, run 'git push' from SUBDIR. Note that only one
+branch (the currently checked out branch) is created in the
+subrepository by deafult; it is possible to have several branches in a
+subrepository and do usual operations (checkout, merge, create,
+delete...) on these branches, but this is more difficult to manage
+them and sync them with the main repository, so this possibility is
+not detailed here.
+
+
TECHNICAL BACKGROUND
A number of Python scripts handle a part of the documentation
useful when transcribing mensural music, e.g., for the incipit. The
@code{mensural} style produces note heads that mimic the look of note
heads in historic printings of the 16th century. Finally, the
-@code{petrucci} style also mimicks historic printings, but uses bigger
+@code{petrucci} style also mimics historic printings, but uses bigger
note heads.
The following example demonstrates the @code{neomensural} style
Spaces may be inserted by using @code{_}. Brackets are
introduced with @code{[} and @code{]}. You can also include text
-strings and text markups, see @ref{Overview of text markup commands}.
+strings and text markups, see @ref{Text markup commands}.
@example
< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} >
@end example
@noindent
-at the top of your input file. This lets you add the special gracenotes
+at the top of your input file. This lets you add the special grace notes
common to bagpipe music with short commands. For example, you could
write @code{\taor} instead of
signatures are normally synchronized across the score. This is done
by the @code{Timing_translator} and @code{Default_bar_line_engraver}.
This plug-in keeps an administration of time signature, location
-within the measure, etc. By moving thes engraver from @code{Score} to
+within the measure, etc. By moving these engraver from @code{Score} to
@code{Staff} context, we can have a score where each staff has its own
time signature.
@node Aligning contexts
@subsection Aligning contexts
-New contexts may be aligned above or below exisiting contexts. This
+New contexts may be aligned above or below existing contexts. This
could be useful in setting up a vocal staff (@rlearning{Vocal ensembles}) and
in ossia,
-FIXME: this section doens't work in pdf. (?)
+FIXME: this section doesn't work in pdf. (?)
@cindex ossia
@findex alignAboveContext
For many properties, regardless of the data type of the property, setting the
property to false ( @code{##f} ) will result in turning it off, causing
-Lilypond to ignore that property entirely. This is particularly useful for
+LilyPond to ignore that property entirely. This is particularly useful for
turning off grob properties which may otherwise be causing problems.
We demonstrate how to glean this information from the notation manual
Contexts can have properties, which are usually named in
@code{studlyCaps}. They mostly control the translation from
-music to notatino, eg. @code{localKeySignature} (for determining
+music to notation, eg. @code{localKeySignature} (for determining
whether to print accidentals), @code{measurePosition} (for
determining when to print a bar line). Context properties can
change value over time while interpreting a piece of music;
\set @var{context}.@var{name} #'@var{property} = #(cons (cons '@var{property} @var{value}) <previous value of @var{context})
@end example
-The value of @code{context} (the alist) is used to initalize
+The value of @code{context} (the alist) is used to initialize
the properties of individual grobs. Grobs also have
properties, named in Scheme style, with
@code{dashed-words}. The values of grob properties change
@node Line styles
@subsection Line styles
-Valentin: write stuff here.
+@c TODO: split the following explanations between expressive marks and
+@c text-related stuff. Perhaps create a new subsection named
+@c "Spanner limits", "Spanner boundaries"? -vv
+
+Some performance indications, e.g., @i{rallentando} and
+@i{accelerando} and @i{trills} are written as text and are
+extended over many measures with lines, sometimes dotted or wavy.
+
+These all use the same routines as the glissando for drawing the
+texts and the lines, and tuning their behavior is therefore also
+done in the same way. It is done with a spanner, and the routine
+responsible for drawing the spanners is
+@code{ly:line-interface::print}. This routine determines the
+exact location of the two @i{span points} and draws a line in
+between, in the style requested.
+
+Here is an example of the different line styles available, and how
+to tune them.
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+d2 \glissando d'2
+\once \override Glissando #'style = #'dashed-line
+d,2 \glissando d'2
+\override Glissando #'style = #'dotted-line
+d,2 \glissando d'2
+\override Glissando #'style = #'zigzag
+d,2 \glissando d'2
+\override Glissando #'style = #'trill
+d,2 \glissando d'2
+@end lilypond
+
+The information that determines the end-points is computed
+on-the-fly for every graphic object, but it is possible to
+override these.
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+e2 \glissando f
+\once \override Glissando #'bound-details #'right #'Y = #-2
+e2 \glissando f
+@end lilypond
+
+The @code{Glissando} object, like any other using the
+@code{ly:line-interface::print} routine, carries a nested
+association list. In the above statement, the value for @code{Y}
+is set to @code{-2} for the association list corresponding to the
+right end point. Of course, it is also possible to adjust the
+left side with @code{left} instead of @code{right}.
+
+If @code{Y} is not set, the value is computed from the vertical
+position of right attachment point of the spanner.
+
+In case of a line break, the values for the span-points are
+extended with contents of the @code{left-broken} and
+@code{right-broken} sublists, for example
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+\override Glissando #'breakable = ##T
+\override Glissando #'bound-details #'right-broken #'Y = #-3
+c1 \glissando \break
+f1
+@end lilypond
+
+The following properties can be used for the
+
+@table @code
+@item Y
+This sets the Y-coordinate of the end point, in staff space. By
+default, it is the center of the bound object, so for a glissando
+it points to the vertical center of the note head.
+
+For horizontal spanners, such as text spanner and trill spanners,
+it is hardcoded to 0.
+
+@item attach-dir
+This determines where the line starts and ends in X-direction,
+relative to the bound object. So, a value of @code{-1} (or
+@code{LEFT}) makes the line start/end at the left side of the note
+head it is attached to.
+
+@item X
+This is the absolute coordinate of the end point. It is usually
+computed on the fly, and there is little use in overriding it.
+
+@item stencil
+Line spanners may have symbols at the beginning or end, which is
+contained in this sub-property. This is for internal use, it is
+recommended to use @code{text}.
+
+@item text
+This is a markup that is evaluated to yield stencil. It is used
+to put @i{cresc.} and @i{tr} on horizontal spanners.
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+\override TextSpanner #'bound-details #'left #'text
+ = \markup { \small \bold Slower }
+c2\startTextSpan b c a\stopTextSpan
+@end lilypond
+
+@item stencil-align-dir-y
+@item stencil-offset
+Without setting this, the stencil is simply put there at the
+end-point, as defined by the @code{X} and @code{Y} sub properties.
+Setting either @code{stencil-align-dir-y} or @code{stencil-offset}
+will move the symbol at the edge relative to the end point of the
+line
+
+@lilypond[relative=1,fragment,verbatim]
+\override TextSpanner #'bound-details
+ #'left #'stencil-align-dir-y = #DOWN
+\override TextSpanner #'bound-details
+ #'right #'stencil-align-dir-y = #UP
+
+\override TextSpanner #'bound-details
+ #'left #'text = #"gggg"
+\override TextSpanner #'bound-details
+ #'right #'text = #"hhhh"
+c4^\startTextSpan c c c \stopTextSpan
+@end lilypond
+
+@item arrow
+Setting this sub property to @code{#t} produce an arrowhead at the
+end of the line.
+
+@item padding
+This sub property controls the space between the specified
+end-point of the line and the actual end. Without padding, a
+glissando would start and end in the center of each note head.
+
+@end table
+
+FIXME: should this be in NR 3?
+
+The music function \endSpanners terminates spanners and hairpins
+after exactly one note.
+
+@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+\endSpanners
+c2 \startTextSpan c2
+c2 \< c2
+@end lilypond
+
+When using \endSpanners it is not necessary to close
+\startTextSpan with \stopTextSpan, nor is it necessary to close
+hairpins with \!.
+
+
+
+@seealso
+
+Internals Reference: @internalsref{TextSpanner},
+@internalsref{Glissando}, @internalsref{VoiceFollower},
+@internalsref{TrillSpanner},
+@internalsref{line-spanner-interface}.
+
@node Controlling visibility of objects
@end example
To get this information into @code{chordNameExceptions} takes a little
-manoeuvring. The following code transforms @code{chExceptionMusic}
+maneuvering. The following code transforms @code{chExceptionMusic}
(which is a sequential music) into a list of exceptions.
@example
(sequential-music-to-chord-exceptions chExceptionMusic #t)
sequencers and XML converters. Refer to the
@uref{http://@/lilypond@/.org,website} for more details.
-These are separate programs from lilypond itself, and are run
+These are separate programs from @command{lilypond} itself, and are run
on the command-line; see @ref{Command-line usage} for more information.
instruments: it specifies cabling, a serial protocol and a file
format. The MIDI file format is a de facto standard format for
exporting music from other programs, so this capability may come in
-useful when importing files from a program that has a convertor for a
+useful when importing files from a program that has a converter for a
direct format.
@command{midi2ly} converts tracks into @internalsref{Staff} and
@end menu
@node Selecting notation font size
-@subsubsection Selecting notation font size
+@unnumberedsubsubsec Selecting notation font size
@cindex font size
@cindex font size, selecting
@seealso
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
-Internals Reference: @internalsref{font-interface}.
+Internals Reference:
+@internalsref{font-interface}.
@node Fingering instructions
-@subsubsection Fingering instructions
+@unnumberedsubsubsec Fingering instructions
@cindex fingering
@cindex finger change
@seealso
-Notation Reference: @ref{Controlling direction and placement}
+Notation Reference:
+@ref{Controlling direction and placement}
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
-Internals Reference: @internalsref{Fingering}.
+Internals Reference:
+@internalsref{Fingering}.
@node Hidden notes
-@subsubsection Hidden notes
+@unnumberedsubsubsec Hidden notes
@cindex Hidden notes
@cindex Invisible notes
@seealso
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
@node Coloring objects
-@subsubsection Coloring objects
+@unnumberedsubsubsec Coloring objects
@cindex colored objects
@cindex colors
@seealso
-Notation Reference: @ref{List of colors}, @ref{Objects connected to
+Notation Reference:
+@ref{List of colors}, @ref{Objects connected to
the input}.
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
@knownissues
An x11 color is not necessarily exactly the same shade as a
@node Parentheses
-@subsubsection Parentheses
+@unnumberedsubsubsec Parentheses
@cindex ghost notes
@cindex notes, ghost
parenthesize a single note it must be enclosed with @code{<>} as
if it is a chord.
+FIXME: after 2.11.44 is out,
+@c \parenthesize c4-. \parenthesize r4 \parenthesize <c e g>4->
+
@lilypond[quote,relative=2,fragment,verbatim,ragged-right]
c2 < \parenthesize d>
@end lilypond
@seealso
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
+
+@knownissues
+
+Rests cannot be parenthesized.
@node Stems
-@subsubsection Stems
+@unnumberedsubsubsec Stems
@cindex stem
{default-direction-of-stems-on-the-center-line-of-the-staff.ly}
@seealso
-Notation Reference: @ref{Controlling direction and placement}.
+Notation Reference:
+@ref{Controlling direction and placement}.
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
@node Outside the staff
@end menu
@node Balloon help
-@subsubsection Balloon help
+@unnumberedsubsubsec Balloon help
Elements of notation can be marked and named with the help of a
square balloon. The primary purpose of this feature is to explain
@seealso
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
-Internals Reference: @internalsref{text-balloon-interface}.
+Internals Reference:
+@internalsref{text-balloon-interface}.
@node Grid lines
-@subsubsection Grid lines
+@unnumberedsubsubsec Grid lines
Vertical lines can be drawn between staves synchronized with the
notes.
}
\new Score \with {
- %% by default this centers grid lines horizontally below and to the
+ % by default this centers grid lines horizontally below and to the
% left side of the notehead, the grid lines extend from
% the middle lines of each staff
\consists "Grid_line_span_engraver"
@seealso
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
@node Analysis brackets
-@subsubsection Analysis brackets
+@unnumberedsubsubsec Analysis brackets
@cindex brackets
@cindex phrasing brackets
@seealso
-Snippets: @lsrdir{Editorial,Editorial-annotations}.
+Snippets:
+@lsrdir{Editorial,Editorial-annotations}.
-Internals Reference: @internalsref{HorizontalBracket},
-@internalsref{Horizontal_bracket_engraver}, @internalsref{Staff}.
+Internals Reference:
+@internalsref{HorizontalBracket},
+@internalsref{Horizontal_bracket_engraver},
+@internalsref{Staff}.
@menu
* Articulations and ornamentations::
* Dynamics::
+* New dynamic marks::
@end menu
@node Articulations and ornamentations
Text style dynamic changes (such as @notation{cresc.} and
@notation{dim.}) are printed with a dashed line showing their
-extent. To surpress printing this line, use
+extent. To suppress printing this line, use
@example
\override DynamicTextSpanner #'dash-period = #-1.0
handled by @internalsref{DynamicLineSpanner}.
+@node New dynamic marks
+@subsubsection 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. 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{Text markup commands}, for more details.
+
+@cindex make-dynamic-script
+
+@lilypond[quote,verbatim,ragged-right]
+sfzp = #(make-dynamic-script "sfzp")
+\relative c' {
+ c4 c c\sfzp c
+}
+@end lilypond
+
+@cindex Dynamics, editorial
+@cindex Dynamics, parenthesis
+
+It is also possible to print dynamics in round parenthesis or
+square brackets. These are often used for adding editorial
+dynamics.
+
+@lilypond[quote,verbatim,ragged-right]
+rndf = \markup{ \center-align {\line { \bold{\italic (}
+ \dynamic f \bold{\italic )} }} }
+boxf = \markup{ \bracket { \dynamic f } }
+{ c'1_\rndf c'1_\boxf }
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Expressive,Expressive-marks}
+
+
@node Curves
@subsection Curves
@node Introduction to the LilyPond file structure
@subsection Introduction to the LilyPond file structure
-A basic example of a lilypond input file is
+A basic example of a LilyPond input file is
@example
\version @w{"@version{}"}
@noindent
Note that the size of the clef is the same as a clef printed
following a clef change -- slightly smaller than the clef
-at the begining of the line. This is usual for clefs printed
+at the beginning of the line. This is usual for clefs printed
in the middle of a line.
The ossia section may be placed above the staff
@end lilypond
This example uses @code{\with}, which will be explained more
-fully later. It is a means of modifying the default behaviour
+fully later. It is a means of modifying the default behavior
of a single Staff. Here it says that the new staff should be
placed above the staff called @qq{main} instead of the default
position which is below.
@end lilypond
-This example has just two voices, but the same contruct may be
+This example has just two voices, but the same construct may be
used to encode three or more voices by adding more back-slash
separators.
\relative c' @{ noteE ... @}
@end example
-Let us finally analyse the voices in a more complex piece of
+Let us finally analyze the voices in a more complex piece of
music. Here are
the notes from the first two bars of the second of Chopin's
Deux Nocturnes, Op 32. This example will be used at later
@lilypond[quote,ragged-right,verbatim]
\relative c'{
- % Default behaviour or behaviour after \oneVoice
+ % Default behavior or behavior after \oneVoice
c d8 ~ d e4 ( f g a ) b-> c
}
@end lilypond
@funindex \shiftOnn
@funindex \shiftOnnn
-Closely spaced notes in a chord, or notes occuring at the same
+Closely spaced notes in a chord, or notes occurring at the same
time in different voices, are arranged in two, occasionally more,
columns to prevent the note heads overlapping. These are called
note columns. There are separate columns for each voice, and
in @emph{Contexts}. We have already met the
@code{Voice} context.
Others are the @code{Staff} and @code{Score} contexts.
-Contexts are hierarchical to reflect the heirarchical nature of
+Contexts are hierarchical to reflect the hierarchical nature of
a musical score.
For example: a @code{Staff} context can contain many
@code{Voice} contexts, and a @code{Score} context can
lyrics, percussion, fret boards, figured bass, etc.
The names of all context types are formed from one or more
-words, each word being capitalised and joined immediately to the
+words, each word being capitalized and joined immediately to the
preceding word with no hyphen or underscore, e.g.,
@code{GregorianTranscriptionStaff}.
in the printed score.
Engravers all have compound names formed from words which
-describe their function. Just the first word is capitalised,
+describe their function. Just the first word is capitalized,
and the remainder are joined to it with underscores. Thus
the @code{Staff_symbol_engraver} is responsible for creating the
lines of the staff, the @code{Clef_engraver} determines and sets
@item Staff_symbol_engraver
@tab Engraves the five (by default) lines of the staff
@item Stem_engraver
- @tab Creates stems and single-stem tremulos
+ @tab Creates stems and single-stem tremolos
@item Time_signature_engraver
@tab Creates time signatures
@end multitable
individual contexts. It is also possible to remove or add
engravers to every context of a specific type by placing the
commands in the appropriate context in a @code{\layout}
-block. For example, If we wanted to show ambiti for every
+block. For example, if we wanted to show an ambitus for every
staff in a four-staff score we could write
@lilypond[quote,verbatim,ragged-right]
\clef "bass"
\new Voice = "basses" @{ \global \bassMusic @}
>>
- \new Lyrics \lyricsto "basses" @{ bassWords @}
+ \new Lyrics \lyricsto "basses" @{ \bassWords @}
>> % end ChoirStaff
\new PianoStaff <<
There are three different fret-diagram markup interfaces: standard, terse,
and verbose. The three interfaces produce equivalent markups, but have
varying amounts of information in the markup string. Details about the
-markup interfaces are found at @ref{Overview of text markup commands}.
+markup interfaces are found at @ref{Text markup commands}.
You can set a number of graphical properties according to your preference.
Details about the property interface to fret diagrams are found at
@node Input syntax
@chapter Input syntax
-This section deals with general lilypond input syntax issues,
+This section deals with general LilyPond input syntax issues,
rather than specific notation.
FIXME: don't complain about anything in this chapter. It's still
the output. This can be compared to clipping a piece of a paper score
with scissors.
-This is done by definining the measures that need to be cut out
+This is done by defining the measures that need to be cut out
separately. For example, including the following definition
@code{-dclip-systems}. The clips are output as EPS files, and are
converted to PDF and PNG if these formats are switched on as well.
-For more information on output formats, see @rprogram{Invoking lilypond}.
+For more information on output formats, see @rprogram{Invoking LilyPond}.
@seealso
The initialization of LilyPond is done in a number of files that are
included by default when you start the program, normally transparent to the
-user. Run lilypond --verbose to see a list of paths and files that Lily
+user. Run @code{lilypond --verbose} to see a list of paths and files that Lily
finds.
Files placed in directory @file{PATH/TO/share/lilypond/VERSION/ly/} (where
option when invoking @code{lilypond --include=DIR} which adds DIR to the
search path.
-The @code{\include} statement can use full path information, but with the Unix
+The @code{\include} statement can use full path information, but with the UNIX
convention @code{/} rather than the DOS/Windows @code{\}. For example,
if @file{stuff.ly} is located one directory higher than the current working
directory, use
TODO: everything
-By default, lilypnod does a pretty jazz'n job of picking
+By default, LilyPond does a pretty jazz'n job of picking
directions. But in some cases, it may be desirable to force a
direction.
brief
description of what they do (perhaps also with a note about what
default
-behaviour is associated with each of them, but this may be
+behavior is associated with each of them, but this may be
unmanageable),
should be there, and then we could simply list the remaining ones
without
@unnumberedsubsubsec Compilation
-In addition to the packages needed for running Lilypond (see below), you
+In addition to the packages needed for running LilyPond (see below), you
need the following extra packages for building.
When installing a binary package FOO, you may need to install the
You can view the documentation online at
@uref{http://lilypond.org/doc/}, but you can also build it locally.
-This process requires a successful compile of lilypond, and some
+This process requires a successful compile of LilyPond, and some
additional tools and packages
@itemize
It is also possible to build a documentation tree in
@file{out-www/online-root/}, with special processing, so it can be used
-on a website with content negociation for automatic language selection;
+on a website with content negotiation for automatic language selection;
this can be achieved by issuing
@example
@node Building documentation without compiling LilyPond
@subsection Building documentation without compiling LilyPond
-The documentation can be built locally without compiling lilypond from
+The documentation can be built locally without compiling LilyPond from
scratch.
From a fresh git checkout, do
exec /usr/bin/pngtopnm "$@"
@end verbatim
-On OSX, I use this:
+On MacOS@tie{}X, I use this:
@verbatim
export DYLD_LIBRARY_PATH=/sw/lib
@verbatim
### run from Documentation/user/
-# possibly required on OSX and/or old texinfo
+# possibly required on OS X and/or old texinfo
# ulimit -n 4096
if [ -e out-www/lilypond.texi ]; then rm out-www/lilypond.* ; fi;
if [ -e out-www/lilypond-program.texi ]; then rm
@unnumberedsubsubsec International fonts
-On MacOs X, all fonts are installed by default. However, finding all
+On MacOS@tie{}X, all fonts are installed by default. However, finding all
system fonts requires a bit of configuration; see
@uref{http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00472.html,
this post} on the @code{lilypond-user} mailing list.
@item
@emph{@ref{Fundamental concepts}},
-explains some general concepts about the lilypond file format. If
+explains some general concepts about the LilyPond file format. If
you are not certain where to place a command, read this chapter!
@item
input files relative to the top-directory of the source archive. For
example, @file{input/@/lsr/@/dirname/@/bla@/.ly} may refer to the file
@file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly}. On binary
-packages for the Unix platform, the documentation and examples can
+packages for the UNIX platform, the documentation and examples can
typically be found somewhere below
@file{/usr/@/share/@/doc/@/lilypond/}. Initialization files, for
example @file{scm/@/lily@/.scm}, or @file{ly/@/engraver@/-init@/.ly},
@cindex lilypond-internals
@cindex internal documentation
@cindex Scheme
-@cindex extending lilypond
+@cindex extending LilyPond
@cindex index
Finally, this and all other manuals, are available online both as PDF
Sometimes it is useful to display music elements (such as ties and slurs)
as if they continued after the end of the fragment. This can be done by
-breaking the staff and suppressing inclusion of the rest of the lilypond
+breaking the staff and suppressing inclusion of the rest of the LilyPond
output.
In @LaTeX{}, define @code{\betweenLilyPondSystem} in such a way that
possible to enclose verbatim only a part of the source file. If the
source file contain a comment containing @samp{begin verbatim} (without
quotes), quoting the source in the verbatim block will start after the
-last occurence of such a comment; similarly, quoting the source verbatim
-will stop just before the first occurence of a comment containing
+last occurrence of such a comment; similarly, quoting the source verbatim
+will stop just before the first occurrence of a comment containing
@samp{end verbatim}, it there is any. In the following source file
example, the music will be interpreted in relative mode, but the
verbatim quote will not show the @code{relative} block, i.e.
@end example
@itemx --left-padding=@var{amount}
-Pad EPS boxes by this much. @var{amount} is measured in milimeters,
+Pad EPS boxes by this much. @var{amount} is measured in millimeters,
and is 3.0 by default. This option should be used if the lines of
music stick out of the right margin.
To insert LilyPond output in other programs, use @code{lilypond}
instead of @code{lilypond-book}. Each example must be created
individually and added to the document; consult the documentation for
-that program. Most programs will be able to insert lilypond output in
+that program. Most programs will be able to insert LilyPond output in
@file{PNG}, @file{EPS}, or @file{PDF} formats.
-To reduce the white space around your lilypond score, use
+To reduce the white space around your LilyPond score, use
the following options
@example
@c @value{version}
@macro version
-2.11.41
+2.11.43
@end macro
@c ***** Displaying text *****
@c we need this since @q{\} doesn't work with makeinfo 4.8 --
-@c say @q{@value{backslash}} instead
-@set backslash \
+@c say @q{@bs{}} instead
+@macro bs
+\\
+@end macro
@c to get decent quotes in `foo' and ``foo''
@macro q{TEXT}
@c usage: @lsr{ancient,Ancient-notation,custodes.ly}
@macro lsr{SECTION,DIR,TEXT}
@ifhtml
-@uref{source/input/lsr/snippets/\DIR\.html#\TEXT\,@file{\SECTION\/\TEXT\}}
+@uref{source/input/lsr/lilypond-snippets/\DIR\.html#\TEXT\,@file{\SECTION\/\TEXT\}}
@end ifhtml
@ifnothtml
@file{\SECTION\/\TEXT\}
@c usage: @lsrdir{ancient,Ancient-notation}
@macro lsrdir{SECTION,DIR}
@ifhtml
-@uref{source/input/lsr/snippets/\DIR\.html,\SECTION\}
+@uref{source/input/lsr/lilypond-snippets/\DIR\.html,\SECTION\}
@end ifhtml
@ifnothtml
\DIR\
@macro internalsref{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-internals-big-page}
+@ref{\TEXT\,,,lilypond-internals-big-page,Internals Reference}
@end macro
@macro rglos{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,music-glossary-big-page}
+@ref{\TEXT\,,,music-glossary-big-page,Music Glossary}
@end macro
@macro rprogram{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-program-big-page}
+@ref{\TEXT\,,,lilypond-program-big-page,Application Usage}
@end macro
@macro ruser{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-big-page}
+@ref{\TEXT\,,,lilypond-big-page,Notation Reference}
@end macro
@macro rlearning{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-learning-big-page}
+@ref{\TEXT\,,,lilypond-learning-big-page,Learning Manual}
@end macro
@macro rlsr{TEXT}
-@ref{\TEXT\,,,lilypond-snippets-big-page}
+@ref{\TEXT\,,,lilypond-snippets-big-page,Snippets}
@end macro
@end ifset
@macro internalsref{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-internals}
+@ref{\TEXT\,,,lilypond-internals,Internals Reference}
@end macro
@macro rglos{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,music-glossary}
+@ref{\TEXT\,,,music-glossary,Music Glossary}
@end macro
@macro rprogram{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-program}
+@ref{\TEXT\,,,lilypond-program,Application Usage}
@end macro
@macro ruser{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond}
+@ref{\TEXT\,,,lilypond,Notation Reference}
@end macro
@macro rlearning{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-learning}
+@ref{\TEXT\,,,lilypond-learning,Learning Manual}
@end macro
@macro rlsr{TEXT}
-@ref{\TEXT\,,,lilypond-snippets}
+@ref{\TEXT\,,,lilypond-snippets,Snippets}
@end macro
@end ifclear
@macro internalsref{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-internals}
+@ref{\TEXT\,,,lilypond-internals,Internals Reference}
@end macro
@macro rglos{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,music-glossary}
+@ref{\TEXT\,,,music-glossary,Music Glossary}
@end macro
@macro rprogram{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-program}
+@ref{\TEXT\,,,lilypond-program,Application Usage}
@end macro
@macro ruser{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond}
+@ref{\TEXT\,,,lilypond,Notation Reference}
@end macro
@macro rlearning{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-learning}
+@ref{\TEXT\,,,lilypond-learning,Learning Manual}
@end macro
@macro rlsr{TEXT}
-@ref{\TEXT\,,,lilypond-snippets}
+@ref{\TEXT\,,,lilypond-snippets,Snippets}
@end macro
@end ifdocbook
@macro internalsref{TEXT}
@vindex \TEXT\
-@inforef{\TEXT\,,lilypond-internals}
+@inforef{\TEXT\,,lilypond-internals,Internals Reference}
@end macro
@macro rglos{TEXT}
@vindex \TEXT\
-@inforef{\TEXT\,,music-glossary}
+@inforef{\TEXT\,,music-glossary,Music Glossary}
@end macro
@macro rprogram{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-program}
+@ref{\TEXT\,,,lilypond-program,Application Usage}
@end macro
@macro ruser{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond}
+@ref{\TEXT\,,,lilypond,Notation Reference}
@end macro
@macro rlearning{TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-learning}
+@ref{\TEXT\,,,lilypond-learning,Learning Manual}
@end macro
@macro rlsr{TEXT}
-@ref{\TEXT\,,,lilypond-snippets}
+@ref{\TEXT\,,,lilypond-snippets,Snippets}
@end macro
@end ifinfo
@macro rglos {TEXT}
@vindex \TEXT\
-@ref{\TEXT\,,,music-glossary}
+@ref{\TEXT\,,,music-glossary,Music Glossary}
@end macro
@macro rprogram{TEXT}
-program usage manual, @ref{\TEXT\,,,lilypond-program}
+program usage manual, @ref{\TEXT\,,,lilypond-program,Application Usage}
@end macro
@macro ruser{TEXT}
-notation reference, @ref{\TEXT\,,,lilypond}
+notation reference, @ref{\TEXT\,,,lilypond,Notation Reference}
@end macro
@macro rlearning{TEXT}
-learning manual, @ref{\TEXT\,,,lilypond-learning}
+learning manual, @ref{\TEXT\,,,lilypond-learning,Learning Manual}
@end macro
@macro rlsr{TEXT}
-@ref{\TEXT\,,,lilypond-snippets}
+@ref{\TEXT\,,,lilypond-snippets,Snippets}
@end macro
@end iftex
* note value::
* octavation::
* octave::
+* octave mark::
* octave marking::
* octave sign::
* ornament::
* unison::
* upbeat::
* voice::
+* volta::
* weak beat::
* whole note::
* whole rest::
F: intervalle ascendant,
D: steigendes Intervall,
NL: stijgend interval,
-DK:@w{ }stigende interval,
+DK: stigende interval,
S: stigande intervall,
FI: nouseva intervalli.
@itemize
-@item A manuscript in the composer's own hand.
+@item A manuscript written in the composer's own hand.
@item Music prepared for photoreproduction by freehand drawing, with
the aid of a straightedge ruler and T-square only, which attempts to
S: ackord,
FI: sointu.
-Three or more tones sounding simultaneously. In traditional European
-music the base chord is a @emph{triad} consisting of 2@w{ }thirds.
-@emph{Major} (major + minor @ref{third}) as well as @emph{minor}
-(minor + major third) chords may be extended with more thirds.
-Four-tone @emph{seventh chords} and five-tone @emph{ninth} major
-chords are most often used as dominants (@ref{functional harmony}). A
-special case is chords having no third above the lower notes to define
-their quality as major or minor. Such chords are denoted open chords
+Three or more tones sounding simultaneously. In traditional European music the
+base chord is a @emph{triad} consisting of 2@w{ }thirds. @emph{Major} (major +
+minor @ref{third}) as well as @emph{minor} (minor + major third) chords may be
+extended with more thirds. Four-tone @emph{seventh chords} and five-tone
+@emph{ninth} major chords are most often used as dominants (@ref{functional
+harmony}). A special case is chords having no third above the lower notes to
+define their quality as major or minor: such chords are called @q{open chords}.
@lilypond[fragment,notime,line-width=13.0\cm]
\set Score.automaticBars = ##f
@enumerate
-@item
-A time signature that additively combines two or more unequal meters, e.g.
-"3/8 + 2/8" instead of "5/8". Sometimes called additive time signatures.
-@c See
-@c @lsr{Rhythms/compound-time-signatures.ly}.
-
@item
A meter that includes a triplet subdivision within the beat: see
@ref{compound meter}.
-@end enumerate
+@item
+A time signature that additively combines two or more unequal meters, e.g.
+"3/8 + 2/8" instead of "5/8". Sometimes called additive time signatures.
+
+@lilypond[fragment,line-width=13.0\cm]
+#(define (compound-time grob one two three num)
+ (interpret-markup
+ (ly:grob-layout grob)
+ '(((baseline-skip . 2)
+ (word-space . 1.5)
+ (font-family . number)))
+ (markup
+ #:line ( #:column (one) "+" #:column (two num) "+" #:column (three)))))
+
+ \relative c' {
+ \key f \major
+ #(set-time-signature 8 8 '(3 2 3))
+ \override Staff.TimeSignature #'stencil
+ = #(lambda (grob) (compound-time grob "3" "2" "3" "8"))
+ #(override-auto-beam-setting '(end 1 8 8 8) 3 8)
+ #(override-auto-beam-setting '(end 1 8 8 8) 5 8)
+ \set Staff.beatGrouping = #'(3 2 3)
+
+ c8 d e f4 d8 c bes | c4 g'8 e c f4. \bar "||"
+ }
+@end lilypond
-@ref{compound meter}
+@end enumerate
@seealso
-@ref{meter}.
-@c @lsr{Rhythms/compound-time-signatures.ly}
+@ref{compound meter}, @ref{meter}.
@node concert pitch
@item
In figured (or thorough) bass to indicate that:
- @itemize
-
- @item The extended note should be held through a change in
- harmony, when applied to one figure --OR--
-
- @item The chord thus represented should be held above a moving
- bass line, when applied to more than one figure.
+@itemize
- @item These uses were not completely standardized, and some
- composers used a single extender line to indicate the
- latter case.
+@item The extended note should be held through a change in harmony, when applied
+to one figure --OR--
+@item The chord thus represented should be held above a moving bass line, when
+applied to more than one figure.
+@item These uses were not completely standardized, and some composers used a
+single extender line to indicate the latter case.
- @end itemize
+@end itemize
@item
-In string music to indicate that all notes in the passage thus
-indicated should be played on the same string. On the violin, for
-example, a series of notes to be played on the G string would be
-indicated @samp{sul G}, another series to be played on the D string
-would be indicated @samp{sul D}, and so on.
+In string music to indicate that all notes in the passage thus indicated should
+be played on the same string. On the violin, for example, a series of notes to
+be played on the G string would be indicated @samp{sul G}, another series to be
+played on the D string would be indicated @samp{sul D}, and so on.
@item
-With an octave indication (also called @emph{octavation}, q.v.) to indicate that
-a passage is to be played higher or lower by the given number of octaves.
+With an octave mark to indicate that a passage is to be played higher or lower
+by the given number of octaves.
@end itemize
@seealso
-@ref{melisma}, @ref{sul G}, @ref{thorough bass}, @ref{octavation}.
+@ref{melisma}, @ref{sul G}, @ref{thorough bass}, @ref{octave mark}, @ref{octave
+marking}.
@node F
FI: ?.
[From Italian, @q{place}]. Instruction to play the following passage at the
-written pitch. Cancels octavation (q.v.).
+written pitch. Cancels octave mark (q.v.).
@seealso
-@ref{octavation}.
+@ref{octave mark}, @ref{octave marking}.
@node long appoggiatura
S: ?,
FI: ?.
-The system of music notation that was first developed in the mid-13th
-century, and which forms the basis of modern musical notation. From its
-creation by Franco of Cologne until the 15th century,
+A system of duration notation whose principles were first established in the
+mid-13th century, and that (with various changes) remained in use until about
+1600. As such, it forms the basis of the notation of rhythms in Western musical
+notation.
+
+Franco of Cologne (ca. 1250) is credited with the first systematic explanation
+of the notation's principles, so the notation of this earliest period is called
+@q{Franconian}. Franco's system made use of three note values -- long, breve,
+and semibreve -- each of which was normally equivalent to three of the next
+lower note value.
-@c TODO: add definition (inc. info on proportional notation)
+Then, in the first half of the 14th century, Philippe de Vitry and Jehan de Murs
+added several note values (the minim, semiminim and fusa) and extended Franco's
+principles to govern the relationship between these values. They also put the
+duple division of note values on an equal footing with the earlier (preferred)
+triple division.
+
+TODO: continue description of French and Italian black notation, and the
+relationship betwixt them.
+
+@b{White or void mensural notation}
+
+In the 15th century, hollow (or void) notes began to substitute for the earlier
+solid black ones, which were then free to assume the function of red (or
+colored) notes in the earlier notation. ...
+
+TODO: add to definition (including summary info on proportional notation)
@seealso
S: taktart,
FI: aika-arvo.
-The basic pattern of @ref{note value}s and @ref{accent}s that remains
-unaltered throughout a composition or a section of it. Meters can be
-@emph{duple} or @emph{triple} depending on how the beat is grouped in
-the composition (or in sections thereof):
+The pattern of note values and accents in a composition or a section thereof.
+There are a couple ways to classify @q{traditional} meter (i.e. not polymeter):
+by grouping beats and by subdividing the primary beat.
+
+@b{By grouping beats}:
@itemize
-@item In duple meters, the beat recurs in groups of two.
+ @item @b{duple}: groups of two.
+ @item @b{triple}: groups of three.
+ @item @b{quadruple}: groups of four. A special case of duple meter.
+ @item @b{quintuple}: groups of five beats.
+ @item @b{sextuple} meter: groups of six. A special case of:
-@item In triple meters, the beat recurs in groups of three.
+ @itemize
-@end itemize
+ @item duple meter, subdivided in three; or
+ @item triple meter, subdivided in two.
-Other recurrence patterns are possible:
+ @end itemize
-@itemize
+ @item @b{septuple} meter: groups of seven.
+ @item and so on.
-@item Quadruple meter: groups of four. A special case of duple meter.
+@end itemize
-@item Quintuple meter: groups of five
+Other than triple meter and its subdivided variants (see below), meters that
+feature odd groupings of beats (e.g. quintuple or septuple meter) are not
+frequently used prior to the 20th Century.
-@item Sextuple meter: groups of six. A special case of:
+@b{By subdividing the primary beat}:
@itemize
-@item Duple meter, subdivided in three (less frequent); or
-@item Triple meter, subdivided in two (more frequent).
-@end itemize
-
-@item Septuple meter: groups of seven.
-@item etc.
+ @item simple: groups of two.
-@end itemize
+ @itemize
-Other than quadruple and sextuple meters, these other recurrence
-patterns were not frequently used prior to the 20th Century.
+ @item duple: 2/2, 2/4, 2/8
+ @item triple: 3/2, 3/4, 3/8
+ @item quadruple: 4/2, 4/4 (also called common time), 4/8
-In addition to classification by primary beat grouping, meters can be further
-classified by how the primary beat is subdivided: if in two, the meter is
-@emph{simple}; if in three, the meter is @emph{compound}.
+ @end itemize
-@itemize
+ @item compound: groups of three.
-@item Simple meter
-
-@itemize
-@item duple: 2/2, 2/4, 2/8
-@item triple: 3/2, 3/4, 3/8
-@item quadruple: 4/2, 4/4 (also called common time), 4/8
-@end itemize
+ @itemize
-@item Compound meter
+ @item duple: 6/8
+ @item triple: 9/8
+ @item quadruple: 12/8
-@itemize
-@item duple: 6/8
-@item triple: 9/8
-@item quadruple: 12/8
-@end itemize
+ @end itemize
@end itemize
-Time signatures are placed at the beginning of a composition (or
-section) to indicate the meter. For instance, a piece written in
-simple triple meter with a beat on each quarter note has a time
-signature of 3/4.
+Time signatures are placed at the beginning of a composition (or section) to
+indicate the meter. For instance, a piece written in simple triple meter with a
+beat on each quarter note is conventionally written with a time signature of
+3/4. Here are some combinations of the two classifications above:
-Simple duple meter:
+Simple duple meter (F.J. Haydn, 1732-1809; or a Croatian folk tune):
@lilypond[fragment,line-width=13.0\cm]
\relative c'' {
\time 2/4
- \key c \major
- c4. d8 | e4 d | f e | d8 b c4 \bar "||"}
+ \key g \major
+ g8. a16 b8 a | c b a16( fis) g8 | e' d c b | a2 \bar "||"}
@end lilypond
Simple triple meter:
\bar "||"}
@end lilypond
+@b{@q{Monometer} vs Polymeter}
+
+TODO: add information from discussion on lilypond-user related to polymeter.
+
@seealso
-@ref{hemiola}, @ref{time signature}
+@ref{accent}, @ref{hemiola}, @ref{note value}, @ref{time signature}
@node metronome
@node octavation
@section octavation
-ES: a la octava,
-I: all'ottava,
-F: octaviation,
-D: Oktavierung,
-NL: octaveren,
-DK: oktavering,
-S: oktavering,
-FI: oktaavamerkintä.
+@seealso
+
+@ref{octave marking}.
+
-The use of a phrase or abbreviation with an extender line or bracket to indicate
-that a passage is to be played in a different octave:
+@node octave
+@section octave
+
+ES: octava,
+I: ottava,
+F: octave,
+D: Oktave,
+NL: octaaf,
+DK: oktav,
+S: oktav,
+FI: oktaavi.
+
+The interval of an octave, sometimes abbreviated @samp{8ve}.
+
+For uses like @emph{all'ottava} or @emph{8va} with an extender line or
+bracket, or @samp{loco} see octave marking.
+
+@seealso
+
+@ref{interval}, @ref{octave marking}.
+
+
+@node octave mark
+@section octave mark
+
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: oktaavamerkki.
+
+The phrase, abbreviation, or other mark used (with or without an extender line
+or bracket) to indicate that the music is to be played in a different octave:
@itemize
@item @samp{15ma}: play two octaves higher
@item @samp{8va}: play one octave higher
@item @samp{8vb}: play one octave lower
-@item @samp{8va} written below the passage: same as @samp{8vb}
+@item @samp{8va} (written below the passage): same as @samp{8vb}
@item @samp{15vb}: play two octaves lower
-@item @samp{15va} written below the passage: same as @samp{15vb}
+@item @samp{15va} (written below the passage): same as @samp{15vb}
@end itemize
-Another practice, which may be useful for longer passages, is to indicate the
-different octave with a phrase at the beginning (see below). When the music
-returns to the written pitch, the octavation is cancelled with the word
-@emph{loco} (q.v.).
+For longer passages, it may be more practical to mark the octave change at the
+beginning with a phrase (see the list below for examples), but without a bracket
+or extender line. Then, when the music returns to the written pitch, the octave
+change is cancelled with the word @emph{loco} (q.v.).
To parallel the list above:
@end itemize
-@emph{Quindicesima} can be replaced with @emph{quindecima}, which is Latin.
-
-@seealso
-
-@ref{interval}, @ref{loco}, @ref{octave}.
-
-
-@node octave
-@section octave
-
-ES: octava,
-I: ottava,
-F: octave,
-D: Oktave,
-NL: octaaf,
-DK: oktav,
-S: oktav,
-FI: oktaavi.
+In the phrases above, @emph{quindicesima} is sometimes replaced with
+@emph{quindecima}, which is Latin.
-The interval of an octave, sometimes abbreviated @samp{8ve}.
-
-For uses like @emph{all'ottava} or @emph{8va} with an extender line or
-bracket, or @samp{loco} see octavation.
+Finally, the music on an entire staff can be marked to be played in a different
+octave by putting an 8 or 15 above or below the clef at the beginning. This
+octave mark can be applied to any clef, but it is most frequently used with the
+G and F clefs.
@seealso
-@ref{interval}, @ref{octavation}.
+@ref{F clef}, @ref{G clef}, @ref{loco}, @ref{octave marking}.
@node octave marking
@section octave marking
+ES: a la octava,
+I: all'ottava,
+F: octaviation,
+D: Oktavierung,
+NL: octaveren,
+DK: oktavering,
+S: oktavering,
+FI: oktaavamerkintä.
+
+The practice of marking music -- an entire staff, a passage, etc. -- to indicate
+that it is to be played in a different octave. If applied to the clef at the
+beginning of the staff, all music on that staff is to played at the indicated
+octave.
+
+For a list of the specific marks used, see @ref{octave mark}.
+
@seealso
-@ref{octavation}.
+@ref{interval}, @ref{loco}, @ref{octave}, @ref{octave mark}.
@node octave sign
@section octave sign
-ES: ?,
-I: ?,
-F: ?,
-D: ?,
-NL: ?,
-DK: ?,
-S: ?,
-FI: ?.
-
-Putting 8 or 15 above or below the clef to indicate that the entire part is
-played in the indicated octave: a clef-wide octavation. An octave sign can be
-applied to any clef, though it is most frequently used with the G and F clefs.
-
@seealso
-@ref{G clef}, @ref{F clef}.
+@ref{octave mark}.
@node ornament
S: tonhöjd,
FI: sävelkorkeus.
+@enumerate
+
+@item The perceived quality of a sound that is primarily a function of its
+fundamental frequency.
+
+@item [FR. ton; DE. Ton; ES. tono] Any point on the continuum of musical pitch.
+
+@item [FR. diapason; DE. Kammerton, Stimmung; ES. diapasón] The standardized
+association of a particular frequency with a particular pitch name, e.g., c' =
+256 Hz.
+
+@end enumerate
+
+@seealso
+
+@ref{Pitch names}.
+
@node pizzicato
@section pizzicato
S: pizzicato,
FI: pizzicato, näppäillen.
-Abbr. @emph{pizz}. Play by plucking the strings. (Technique for
-stringed instruments.)
+A technique for stringed instruments, abbr. @emph{pizz}. To play by plucking
+the strings.
@node polymeter
S: ?,
FI: ?.
-Using two or more metric frameworks simultaneously or in regular
-alternation
+Using two or more metric frameworks simultaneously or in alternation.
@seealso
S: ?,
FI: ?.
-Time signature indicating regularly alternating polymetric time.
+A time signature that indicates regularly alternating polymetric time.
@seealso
S: ?,
FI: ?.
-[From Latin @emph{proportio}] In mensural notation, a ratio that
-expresses the relationship between the note values that follow with
-those that precede; or between the note values of a passage and an
-assumed @q{normal} relationship of note values to the metrical pulse.
+[From Latin @emph{proportio}] In mensural notation, a ratio that expresses the
+relationship between the note values that follow with those that precede; or
+between the note values of a passage and the @q{normal} relationship of note
+values to the metrical pulse.
@c TODO: add an example or two. O => 4/3, and its modern equivalent
@itemize
-@item Human voices: @ref{soprano}, @ref{mezzo-soprano}, @ref{contralto},
-@ref{tenor}, @ref{baritone}, @ref{bass}.
+@item Human voices:
+
+@itemize
+
+@item @ref{soprano}
+
+@item @ref{mezzo-soprano}
+
+@item @ref{contralto}
+
+@item @ref{tenor}
+
+@item @ref{baritone}
+
+@item @ref{bass}
+
+@end itemize
@item A melodic layer or part of a polyphonic composition.
@end itemize
+@node volta
+@section volta
+
+ES: ?,
+I: volta,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+[From Italian, @q{time} (instance, not duration)]. An ending, such as a first
+or second ending. LilyPond extends this idea to any number, and allows any text
+(not just a number) -- to serve as the @q{volta} text.
+
+
@node weak beat
@section weak beat
@multitable @columnfractions .12 .22 .22 .22 .22
-@headitem lang.
- @tab note name
+@headitem Lang. @tab note name
@tab rest name
@tab note name
@tab rest name
-@item @strong{US}
- @tab long
+@item @strong{US} @tab long
@tab long rest
@tab breve
@tab breve rest
-@item @strong{UK}
- @tab longa
+@item @strong{UK} @tab longa
@tab longa rest
@tab breve
@tab breve rest
-@item @strong{ES}
- @tab longa
+@item @strong{ES} @tab longa
@tab silencio de longa
@tab cuadrada
@tab silencio de cuadrada
-@item @strong{IT}
- @tab longa
+@item @strong{IT} @tab longa
@tab pausa di longa
@tab breve
@tab pausa di breve
-@item @strong{FR}
- @tab longa
+@item @strong{FR} @tab longa
@tab quadruple-pause
@tab brève
@tab double-pause
-@item @strong{DE}
- @tab Longa
+@item @strong{DE} @tab Longa
@tab longa Pause
@tab Brevis
@tab brevis Pause
-@item @strong{NL}
- @tab longa
+@item @strong{NL} @tab longa
@tab longa rust
@tab brevis
@tab brevis rust
-@item @strong{DK}
- @tab longa
+@item @strong{DK} @tab longa
@tab longanodespause
@tab brevis
@tab brevis(nodes)pause
-@item @strong{SE}
- @tab longa
+@item @strong{SE} @tab longa
@tab longapaus
@tab brevis
@tab brevispaus
-@item @strong{FI}
- @tab longa-nuotti
+@item @strong{FI} @tab longa-nuotti
@tab longa-tauko
@tab brevis-nuotti, kaksoiskokonuotti
@tab brevis-tauko, kaksoiskokotauko
@multitable @columnfractions .12 .22 .22 .22 .22
-@headitem lang.
- @tab note name
+@headitem Lang. @tab note name
@tab rest name
@tab note name
@tab rest name
-@item @strong{US}
- @tab whole note
+@item @strong{US} @tab whole note
@tab whole rest
@tab half note
@tab half rest
-@item @strong{UK}
- @tab semibreve
+@item @strong{UK} @tab semibreve
@tab semibreve rest
@tab minim
@tab minim rest
-@item @strong{ES}
- @tab redonda
+@item @strong{ES} @tab redonda
@tab silencio de redonda
@tab blanca
@tab silencio de blanca
-@item @strong{IT}
- @tab semibreve
+@item @strong{IT} @tab semibreve
@tab pause di semibreve
@tab minima
@tab pausa di minima
-@item @strong{FR}
- @tab ronde
+@item @strong{FR} @tab ronde
@tab pause
@tab blanche
@tab demi-pause
-@item @strong{DE}
- @tab ganze Note
+@item @strong{DE} @tab ganze Note
@tab ganze Pause
@tab halbe Note
@tab halbe Pause
-@item @strong{NL}
- @tab hele noot
+@item @strong{NL} @tab hele noot
@tab hele rust
@tab halve noot
@tab halve rust
-@item @strong{DK}
- @tab helnode
+@item @strong{DK} @tab helnode
@tab helnodespause
@tab halvnode
@tab halvnodespause
-@item @strong{SE}
- @tab helnot
+@item @strong{SE} @tab helnot
@tab helpaus
@tab halvnot
@tab halvpaus
-@item @strong{FI}
- @tab kokonuotti
+@item @strong{FI} @tab kokonuotti
@tab kokotauko
@tab puolinuotti
@tab puolitauko
@multitable @columnfractions .12 .22 .22 .22 .22
-@headitem lang.
- @tab note name
+@headitem Lang. @tab note name
@tab rest name
@tab note name
@tab rest name
-@item @strong{US}
- @tab quarter note
+@item @strong{US} @tab quarter note
@tab quarter rest
@tab eighth note
@tab eighth rest
-@item @strong{UK}
- @tab crotchet
+@item @strong{UK} @tab crotchet
@tab crotchet rest
@tab quaver
@tab quaver rest
-@item @strong{ES}
- @tab negra
+@item @strong{ES} @tab negra
@tab silencio de negra
@tab corchea
@tab silencio de corchea
-@item @strong{IT}
- @tab semiminima, nera
+@item @strong{IT} @tab semiminima, nera
@tab pausa di semiminima, pausa di nera
@tab croma
@tab pausa di croma
-@item @strong{FR}
- @tab noire
+@item @strong{FR} @tab noire
@tab soupir*
@tab croche*
@tab demi-soupir
-@item @strong{DE}
- @tab Viertelnote
+@item @strong{DE} @tab Viertelnote
@tab Viertelpause
@tab Achtelnote
@tab Achtelpause
-@item @strong{NL}
- @tab kwartnoot
+@item @strong{NL} @tab kwartnoot
@tab kwartrust
@tab achtste noot
@tab achtste rust
-@item @strong{DK}
- @tab fjerdedelsnode
+@item @strong{DK} @tab fjerdedelsnode
@tab fjerdedelspause
@tab ottendedelsnode
@tab ottendedelspause
-@item @strong{SE}
- @tab fjärdedelsnot
+@item @strong{SE} @tab fjärdedelsnot
@tab fjärdedelspaus
@tab åttondelsnot
@tab åttondelspaus
-@item @strong{FI}
- @tab neljäsosanuotti
+@item @strong{FI} @tab neljäsosanuotti
@tab neljäsosatauko
@tab kahdeksasosanuotti
@tab kahdeksasosatauko
@multitable @columnfractions .10 .35 .35 .20
-@headitem Lang.
- @tab Note name
+@headitem Lang. @tab Note name
@tab Rest name
@tab Abbr.
-@item @strong{US}
- @tab sixteenth note
+@item @strong{US} @tab sixteenth note
@tab sixteenth rest
@tab 16th note
-@item @strong{UK}
- @tab semiquaver
+@item @strong{UK} @tab semiquaver
@tab semiquaver rest
@tab -
-@item @strong{ES}
- @tab semicorchea
+@item @strong{ES} @tab semicorchea
@tab silencio de semicorchea
@tab -
-@item @strong{IT}
- @tab semicroma
+@item @strong{IT} @tab semicroma
@tab pausa di semicroma
@tab -
-@item @strong{FR}
- @tab double croche
+@item @strong{FR} @tab double croche
@tab quart de soupir
@tab -
-@item @strong{DE}
- @tab Sechzehntelnote
+@item @strong{DE} @tab Sechzehntelnote
@tab Sechzehntelpause
@tab 16tel-Note
-@item @strong{NL}
- @tab zestiende noot
+@item @strong{NL} @tab zestiende noot
@tab zestiende rust
@tab 16e noot
-@item @strong{DK}
- @tab sekstendedelsnode
+@item @strong{DK} @tab sekstendedelsnode
@tab sekstendedelspause
@tab -
-@item @strong{SE}
- @tab sextondelsnot
+@item @strong{SE} @tab sextondelsnot
@tab sextondelspaus
@tab -
-@item @strong{FI}
- @tab kuudestoistaosanuotti
+@item @strong{FI} @tab kuudestoistaosanuotti
@tab kuudestoistaosatauko
@tab 16-osanuotti
@multitable @columnfractions .10 .35 .35 .20
-@headitem Lang.
- @tab Note name
+@headitem Lang. @tab Note name
@tab Rest name
@tab Abbr.
-@item @strong{US}
- @tab thirty-second note
+@item @strong{US} @tab thirty-second note
@tab thirty-second rest
@tab 32nd note
-@item @strong{UK}
- @tab demisemiquaver
+@item @strong{UK} @tab demisemiquaver
@tab demisemiquaver rest
@tab -
-@item @strong{ES}
- @tab fusa
+@item @strong{ES} @tab fusa
@tab silencio de fusa
@tab -
-@item @strong{IT}
- @tab biscroma
+@item @strong{IT} @tab biscroma
@tab pausa di biscroma
@tab -
-@item @strong{FR}
- @tab triple croche
+@item @strong{FR} @tab triple croche
@tab huitième de soupir
@tab -
-@item @strong{DE}
- @tab Zweiunddreißigstelnote
+@item @strong{DE} @tab Zweiunddreißigstelnote
@tab Zweiunddreißigstelpause
@tab 32tel-Note
-@item @strong{NL}
- @tab tweeendertigste noot
+@item @strong{NL} @tab tweeendertigste noot
@tab tweeendertigste rust
@tab 32e noot
-@item @strong{DK}
- @tab toogtredivtedelsnode
+@item @strong{DK} @tab toogtredivtedelsnode
@tab toogtredivtedelspause
@tab -
-@item @strong{SE}
- @tab trettiotvåondelsnot
+@item @strong{SE} @tab trettiotvåondelsnot
@tab trettiotvåondelspaus
@tab -
-@item @strong{FI}
- @tab kolmaskymmeneskahdesosanuotti
+@item @strong{FI} @tab kolmaskymmeneskahdesosanuotti
@tab kolmaskymmeneskahdesosatauko
@tab 32-osanuotti
@multitable @columnfractions .10 .35 .35 .20
-@headitem Lang.
- @tab Note name
+@headitem Lang. @tab Note name
@tab Rest name
@tab Abbr.
-@item @strong{US}
- @tab sixty-fourth note
+@item @strong{US} @tab sixty-fourth note
@tab sixty-fourth rest
@tab 64th note
-@item @strong{UK}
- @tab hemidemisemiquaver
+@item @strong{UK} @tab hemidemisemiquaver
@tab hemidemisemiquaver rest
@tab -
-@item @strong{ES}
- @tab semifusa
+@item @strong{ES} @tab semifusa
@tab silencio de semifusa
@tab -
-@item @strong{IT}
- @tab semibiscroma
+@item @strong{IT} @tab semibiscroma
@tab pausa di semibiscroma
@tab -
-@item @strong{FR}
- @tab quadruple croche
+@item @strong{FR} @tab quadruple croche
@tab seizième de soupir
@tab -
-@item @strong{DE}
- @tab Vierundsechzigstelnote
+@item @strong{DE} @tab Vierundsechzigstelnote
@tab Vierundsechzigstelpause
@tab 64tel-Note
-@item @strong{NL}
- @tab vierenzestigste noot
+@item @strong{NL} @tab vierenzestigste noot
@tab vierenzestigste rust
@tab 64e noot
-@item @strong{DK}
- @tab fireogtredsindstyvendedelsnode
+@item @strong{DK} @tab fireogtredsindstyvendedelsnode
@tab fireogtredsindstyvendedelspause
@tab -
-@item @strong{SE}
- @tab sextiofjärdedelsnot
+@item @strong{SE} @tab sextiofjärdedelsnot
@tab sextiofjärdedelspaus
@tab -
-@item @strong{FI}
- @tab kuudeskymmenesneljäsosanuotti
+@item @strong{FI} @tab kuudeskymmenesneljäsosanuotti
@tab kuudeskymmenesneljäsosatauko
@tab 64-osanuotti
@multitable @columnfractions .10 .35 .35 .20
-@headitem Lang.
- @tab Note name
+@headitem Lang. @tab Note name
@tab Rest name
@tab Abbr.
-@item @strong{US}
- @tab one-hundred-twenty-eighth note
+@item @strong{US} @tab one-hundred-twenty-eighth note
@tab one-hundred-twenty-eighth rest
@tab 128th note
-@item @strong{UK}
- @tab semihemidemisemiquaver
+@item @strong{UK} @tab semihemidemisemiquaver
@tab semihemidemisemiquaver rest
@tab -
-@item @strong{ES}
- @tab garrapatea @tab silencio de garrapatea @tab -
-@item @strong{IT}
- @tab fusa
+@item @strong{ES} @tab garrapatea
+ @tab silencio de garrapatea
+ @tab -
+@item @strong{IT} @tab fusa
@tab pausa di fusa
@tab -
-@item @strong{FR}
- @tab quintuple croche
+@item @strong{FR} @tab quintuple croche
@tab trente-deuxième de soupir @tab -
-@item @strong{DE}
- @tab Hundertundachtundzwanzigstel @tab Hundertundachtundzwanzigstel @tab 128tel-Note
-@item @strong{NL}
- @tab honderdachtentwintigste noot
+@item @strong{DE} @tab Hundertundachtundzwanzigstel @tab Hundertundachtundzwanzigstel @tab 128tel-Note
+@item @strong{NL} @tab honderdachtentwintigste noot
@tab honderdachtentwintigste rust
@tab 128e noot
-@item @strong{DK}
- @tab hundredeotteogtyvendedelsnode
+@item @strong{DK} @tab hundredeotteogtyvendedelsnode
@tab hundredeotteogtyvendedelspause
@tab -
-@item @strong{SE}
- @tab hundratjugoåttondelsnot
+@item @strong{SE} @tab hundratjugoåttondelsnot
@tab hundratjugoåttondelspaus
@tab -
-@item @strong{FI}
- @tab sadaskahdeskymmeneskahdeksasosanuotti
+@item @strong{FI} @tab sadaskahdeskymmeneskahdeksasosanuotti
@tab sadaskahdeskymmeneskahdeksasosatauko
@tab 128-osanuotti
@multitable @columnfractions .10 .35 .35 .20
-@headitem Lang.
- @tab Note name
+@headitem Lang. @tab Note name
@tab Rest name
@tab Abbr.
-@item @strong{US}
- @tab two-hundred-fifty-sixth @tab two-hundred-fifty-sixth @tab 256th note
-@item @strong{UK}
- @tab demisemihemidemisemiquaver
+@item @strong{US} @tab two-hundred-fifty-sixth @tab 256th note
+@item @strong{UK} @tab demisemihemidemisemiquaver
@tab demisemihemidemisemiquaver rest
@tab -
-@item @strong{ES}
- @tab semigarrapatea @tab silencio de semigarrapatea @tab -
-@item @strong{IT}
- @tab semifusa
+@item @strong{ES} @tab semigarrapatea @tab silencio de semigarrapatea @tab -
+@item @strong{IT} @tab semifusa
@tab pausa di semifusa
@tab -
-@item @strong{FR}
- @tab sextuple croche
+@item @strong{FR} @tab sextuple croche
@tab soixante-quatrième de soupir @tab -
-@item @strong{DE}
- @tab Zweihundertundsechsundfünfzigstelnote @tab Zweihundertundsechsundfünfzigstel @tab 256tel-Note
-@item @strong{NL}
- @tab tweehonderdzesenvijftigste noot
+@item @strong{DE} @tab Zweihundertundsechsundfünfzigstelnote @tab Zweihundertundsechsundfünfzigstel @tab 256tel-Note
+@item @strong{NL} @tab tweehonderdzesenvijftigste noot
@tab tweehonderdzesenvijftigste rust
@tab 256e noot
-@item @strong{DK}
- @tab tohundredeseksoghalvtredsendedelsnode
+@item @strong{DK} @tab tohundredeseksoghalvtredsendedelsnode
@tab tohundredeseksoghalvtredsendedelspause
@tab -
-@item @strong{SE}
- @tab tvåhundrafemtiosjättedelsnot
+@item @strong{SE} @tab tvåhundrafemtiosjättedelsnot
@tab tvåhundrafemtiosjättedelspaus
@tab -
-@item @strong{FI}
- @tab kahdessadasviideskymmeneskuudesosanuotti
+@item @strong{FI} @tab kahdessadasviideskymmeneskuudesosanuotti
@tab kahdessadasviideskymmeneskuudesosatauko
@tab 256-osanuotti
@headitem EN
@tab ES @tab I @tab F @tab D
@tab NL @tab DK @tab S @tab FI
-@item @strong{c}
- @tab do @tab do @tab ut @tab C
+@item @strong{c} @tab do @tab do @tab ut @tab C
@tab c @tab c @tab c @tab c
-@item @strong{c-sharp}
- @tab do sostenido @tab do diesis @tab ut dièse @tab Cis
+@item @strong{c-sharp} @tab do sostenido @tab do diesis @tab ut dièse @tab Cis
@tab cis @tab cis @tab ciss @tab cis
-@item @strong{d-flat}
- @tab re bemol @tab re bemolle @tab ré bémol @tab Des
+@item @strong{d-flat} @tab re bemol @tab re bemolle @tab ré bémol @tab Des
@tab des @tab des @tab dess @tab des
-@item @strong{d}
- @tab re @tab re @tab ré @tab D
+@item @strong{d} @tab re @tab re @tab ré @tab D
@tab d @tab d @tab d @tab d
-@item @strong{d-sharp}
- @tab re sostenido @tab re diesis @tab re dièse @tab Dis
+@item @strong{d-sharp} @tab re sostenido @tab re diesis @tab re dièse @tab Dis
@tab dis @tab dis @tab diss @tab dis
-@item @strong{e-flat}
- @tab mi bemol @tab mi bemolle @tab mi bémol @tab Es
+@item @strong{e-flat} @tab mi bemol @tab mi bemolle @tab mi bémol @tab Es
@tab es @tab es @tab ess @tab es
-@item @strong{e}
- @tab mi @tab mi @tab mi @tab E
+@item @strong{e} @tab mi @tab mi @tab mi @tab E
@tab e @tab e @tab e @tab e
@item @strong{f-flat} = e
@tab fa bemol @tab fa bemolle @tab fa bémol @tab Fes
@tab fes @tab fes @tab fess @tab fes
-@item @strong{f}
- @tab fa @tab fa @tab fa @tab F
+@item @strong{f} @tab fa @tab fa @tab fa @tab F
@tab f @tab f @tab f @tab f
@item @strong{e-sharp} = f
@tab mi sostenido @tab mi diesis @tab mi dièse @tab Eis
@tab eis @tab eis @tab eiss @tab eis
-@item @strong{f-sharp}
- @tab fa sostenido @tab fa diesis @tab fa dièse @tab Fis
+@item @strong{f-sharp} @tab fa sostenido @tab fa diesis @tab fa dièse @tab Fis
@tab fis @tab fis @tab fiss @tab fis
-@item @strong{g-flat}
- @tab sol bemol @tab sol bemolle @tab sol bémol @tab Ges
+@item @strong{g-flat} @tab sol bemol @tab sol bemolle @tab sol bémol @tab Ges
@tab ges @tab ges @tab gess @tab ges
-@item @strong{g}
- @tab sol @tab sol @tab sol @tab G
+@item @strong{g} @tab sol @tab sol @tab sol @tab G
@tab g @tab g @tab g @tab g
-@item @strong{g-sharp}
- @tab sol sostenido @tab sol diesis @tab sol dièse @tab Gis
+@item @strong{g-sharp} @tab sol sostenido @tab sol diesis @tab sol dièse @tab Gis
@tab gis @tab gis @tab giss @tab gis
-@item @strong{a-flat}
- @tab la bemol @tab la bemolle @tab la bémol @tab As
+@item @strong{a-flat} @tab la bemol @tab la bemolle @tab la bémol @tab As
@tab as @tab as @tab ass @tab as
-@item @strong{a}
- @tab la @tab la @tab la @tab A
+@item @strong{a} @tab la @tab la @tab la @tab A
@tab a @tab a @tab a @tab a
-@item @strong{a-sharp}
- @tab la sostenido @tab la diesis @tab la dièse @tab Ais
+@item @strong{a-sharp} @tab la sostenido @tab la diesis @tab la dièse @tab Ais
@tab ais @tab ais @tab aiss @tab ais
-@item @strong{b-flat}
- @tab si bemol @tab si bemolle @tab si bémol @tab B
+@item @strong{b-flat} @tab si bemol @tab si bemolle @tab si bémol @tab B
@tab bes @tab b @tab b @tab b
-@item @strong{b}
- @tab si @tab si @tab si @tab H
+@item @strong{b} @tab si @tab si @tab si @tab H
@tab b @tab h @tab h @tab h
@end multitable
@node Non-musical notation
@chapter Non-musical notation
-This section deals with general lilypond issues, rather than
+This section deals with general LilyPond issues, rather than
specific notation.
@menu
A particular place of a score can be marked using the @code{\label}
command, either at top-level or inside music. This label can then be
-refered to in a markup, to get the number of the page where the marked
+referred to in a markup, to get the number of the page where the marked
point is placed, using the @code{\page-ref} markup command.
@lilypond[verbatim,line-width=11.0\cm]
@end enumerate
The reason why a gauge is needed is that, at the time markups are
-interpreted, the page breaking has not yet occured, so the page numbers
+interpreted, the page breaking has not yet occurred, so the page numbers
are not yet known. To work around this issue, the actual markup
interpretation is delayed to a later time; however, the dimensions of
the markup have to be known before, so a gauge is used to decide these
\fill-line { \null "Table des matières" \null }
\hspace #1
}
- %% use larfer font size
+ %% use larger font size
tocItemMarkup = \markup \large \fill-line {
\fromproperty #'toc:text \fromproperty #'toc:page
}
}
@end verbatim
-Note how the toc element text and page number are refered to in
+Note how the toc element text and page number are referred to in
the @code{tocItemMarkup} definition.
New commands and markups may also be defined to build more elaborated
* List of colors::
* The Feta font::
* Note head styles::
-* Overview of text markup commands::
-* Overview of text markup list commands::
+* Text markup commands::
+* Text markup list commands::
* List of articulations::
* All context properties::
* Layout properties::
X color names come several variants:
-Any name that is spelled as a single word with capitalisation
+Any name that is spelled as a single word with capitalization
(e.g. @q{LightSlateBlue}) can also be spelled as space separated
-words without capitalisation (e.g. @q{light slate blue}).
+words without capitalization (e.g. @q{light slate blue}).
The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
@lilypondfile[noindent]{note-head-style.ly}
-@node Overview of text markup commands
-@appendixsec Overview of text markup commands
+@node Text markup commands
+@appendixsec Text markup commands
The following commands can all be used inside @code{\markup @{ @}}.
@include markup-commands.tely
-@node Overview of text markup list commands
-@appendixsec Overview of text markup list commands
+@node Text markup list commands
+@appendixsec Text markup list commands
The following commands can all be used with @code{\markuplines}.
through@tie{}@code{g}. The note names @code{c} to @code{b} are
engraved in the octave below middle C.
-@c NOTE: don't use c' here.
+@c don't use c' here.
@lilypond[verbatim,quote,ragged-right,fragment]
\clef bass
c d e f
@seealso
-Music Glossary: @rglos{Pitch names}.
+Music Glossary:
+@rglos{Pitch names}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@node Relative octave entry
@seealso
-Music Glossary: @rglos{fifth}, @rglos{interval}, @rglos{Pitch names}.
+Music Glossary:
+@rglos{fifth},
+@rglos{interval},
+@rglos{Pitch names}.
-Notation Reference: @ref{Octave checks}.
+Notation Reference:
+@ref{Octave checks}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@funindex \transpose
To use relative mode within transposed music, an additional
@code{\relative} must be placed inside @code{\transpose}.
-@c NOTE: DEPRECATED
+@c DEPRECATED
If no @var{startpitch} is specified for @code{\relative},
then@tie{}@code{c'} is assumed. However, this is a deprecated
option and may disappear in future versions, so its use is
@cindex key signature
@cindex clef
+@c duplicated in Key signature and Accidentals
@warning{New users are sometimes confused about accidentals and
key signatures. In LilyPond, note names are the raw input; key
signatures and clefs determine how this raw input is displayed.
@seealso
-Music Glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
-@rglos{double flat}, @rglos{Pitch names}, @rglos{quarter-tone}.
+Music Glossary:
+@rglos{sharp},
+@rglos{flat},
+@rglos{double sharp},
+@rglos{double flat},
+@rglos{Pitch names},
+@rglos{quarter-tone}.
-Learning Manual: @rlearning{Accidentals and key signatures}.
+Learning Manual:
+@rlearning{Accidentals and key signatures}.
-Notation Reference: @ref{Automatic accidentals},
+Notation Reference:
+@ref{Automatic accidentals},
@ref{Musica ficta accidentals},
@ref{Note names in other languages}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@knownissues
@seealso
-Music Glossary: @rglos{Pitch names}.
+Music Glossary:
+@rglos{Pitch names}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@node Changing multiple pitches
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@node Transpose
@seealso
-Notation Reference: @ref{Instrument transpositions}.
+Notation Reference:
+@ref{Instrument transpositions}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{TransposedMusic}.
+Internals Reference:
+@internalsref{TransposedMusic}.
@funindex \transpose
@funindex \chordmode
@seealso
-Notation Reference: @ref{Ancient clefs}.
+Notation Reference:
+@ref{Ancient clefs}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{Clef}.
+Internals Reference:
+@internalsref{Clef}.
@node Key signature
@cindex key signature
@funindex \key
+@c duplicated in Key signature and Accidentals
@warning{New users are sometimes confused about accidentals and
key signatures. In LilyPond, note names are the raw input; key
signatures and clefs determine how this raw input is displayed.
Here, @var{mode} should be @code{\major} or @code{\minor} to get a
key signature of @var{pitch}-major or @var{pitch}-minor,
respectively. You may also use the standard mode names, also
-called @q{church modes}: @code{\ionian}, @code{\dorian},
+called @notation{church modes}: @code{\ionian}, @code{\dorian},
@code{\phrygian}, @code{\lydian}, @code{\mixolydian},
@code{\aeolian}, and @code{\locrian}.
@seealso
-Music Glossary: @rglos{church mode}, @rglos{scordatura}.
+Music Glossary:
+@rglos{church mode},
+@rglos{scordatura}.
-Learning Manual: @rlearning{Accidentals and key signatures}.
+Learning Manual:
+@rlearning{Accidentals and key signatures}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{KeyCancellation},
+Internals Reference:
+@internalsref{KeyCancellation},
@internalsref{KeySignature}, @internalsref{Key_engraver}.
@seealso
-Music Glossary: @rglos{octavation}.
+Music Glossary:
+@rglos{octavation}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{OttavaBracket}.
+Internals Reference:
+@internalsref{OttavaBracket}.
@seealso
-Music Glossary: @rglos{concert pitch}, @rglos{transposing instrument}.
+Music Glossary:
+@rglos{concert pitch},
+@rglos{transposing instrument}.
-Notation Reference: @ref{Quoting other voices}, @ref{Transpose}.
+Notation Reference:
+@ref{Quoting other voices}, @ref{Transpose}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@node Automatic accidentals
@end example
-@c NOTE: don't use verbatim in this table.
+@c don't use verbatim in this table.
@table @code
@item default
This is the default typesetting behavior. It corresponds to
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{Accidental_engraver},
+Internals Reference:
+@internalsref{Accidental_engraver},
@internalsref{Accidental}, @internalsref{AccidentalSuggestion},
@internalsref{AccidentalPlacement}, @internalsref{GrandStaff} and
@internalsref{PianoStaff}, @internalsref{Staff}.
@seealso
-Music Glossary: @rglos{ambitus}.
+Music Glossary:
+@rglos{ambitus}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{Ambitus},
+Internals Reference:
+@internalsref{Ambitus},
@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
@internalsref{AmbitusAccidental}, @internalsref{Ambitus_engraver},
@internalsref{Staff}, @internalsref{Voice}.
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Notation Reference: @ref{Note head styles}.
+Notation Reference:
+@ref{Note head styles}.
-Internals Reference: @internalsref{NoteHead},
+Internals Reference:
+@internalsref{NoteHead},
@internalsref{LedgerLineSpanner}.
@seealso
-Notation Reference: @ref{Setting the staff size}.
+Notation Reference:
+@ref{Setting the staff size}.
-Snippets: @lsrdir{Pitches,Pitches},
+Snippets:
+@lsrdir{Pitches,Pitches},
-Internals Reference: @internalsref{NoteHead}.
+Internals Reference:
+@internalsref{NoteHead}.
@node Shape note heads
Shapes are typeset according to the step in the scale, where
the base of the scale is determined by the @code{\key} command.
+@predefined
+
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+@code{\aikenHeads}, @code{\sacredHarpHeads}
+
@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Notation Reference: @ref{Note head styles}.
+Notation Reference:
+@ref{Note head styles}.
@node Improvisation
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-Internals Reference: @internalsref{Pitch_squash_engraver},
+Internals Reference:
+@internalsref{Pitch_squash_engraver},
@internalsref{Voice}.
* You _must_ include a @seealso. The order of items inside the
@seealso section is
- Music Glossary: @rglos{foo}, @rglos{bar}.
+ Music Glossary:
+ @rglos{foo},
+ @rglos{bar}.
- Learning Manual: @rlearning{baz}, @rlearning{foozle}
+ Learning Manual:
+ @rlearning{baz},
+ @rlearning{foozle}
- Notation Reference: @ruser{faazle}, @ruser{boo}.
+ Notation Reference:
+ @ruser{faazle},
+ @ruser{boo}.
- Application Usage: @rprogram{blah}.
+ Application Usage:
+ @rprogram{blah}.
- Installed Files: @file{path/to/dir/blahz}.
+ Installed Files:
+ @file{path/to/dir/blahz}.
- Snippets: @lsrdir{section}, @lsr{specific/example-name.ly}.
- (if there is only one entry, omit a final period. If there
- are multiple entries, separate them by commas, do not
- include an `and', and end with a period.)
+ Snippets:
+ @lsrdir{section},
+ @lsr{specific/example-name.ly}.
- Internals Reference: @internalsref{fazzle}, @internalsref{booar}.
+ Internals Reference:
+ @internalsref{fazzle},
+ @internalsref{booar}.
+
+ If there are multiple entries, separate them by commas
+ but do not include an `and'.
+
+ Always end with a period.
+
+ Place each link on a new line as above; this makes it much
+ easier to add or remove links. In the output, they
+ appear on a single line.
("Snippets" is REQUIRED; the others are optional)
@end example
To actually display bar numbers where this function is called,
-invoke lilypond with
+invoke @command{lilypond} with
@example
lilypond -d display-bar-numbers FILENAME.ly
Note: there is now an internal command @code{\smallCaps} which can
be used to set text in small caps. See
-@ref{Overview of text markup commands}, for details.
+@ref{Text markup commands}, for details.
@node New markup list command definition
lines is made using the @code{make-justified-lines-markup-list}
function, which is related to the @code{\justified-lines}
built-in markup list command. An horizontal space is added at the
-begining using the @code{make-hspace-markup} function. Finally, the
+beginning using the @code{make-hspace-markup} function. Finally, the
markup list is interpreted using the @code{interpret-markup-list}
function.
@node Normal repeats
@subsubsection Normal repeats
-The syntax for a simple repeat is
+The syntax for a normal repeat is
@example
\repeat @var{variant} @var{repeatcount} @var{repeatbody}
@end example
-where @var{repeatbody} is a music expression.
+where @var{variant} is @qq{volta} and @var{repeatbody} is a music
+expression. Alternate endings can be produced using
+@code{\alternative}.
Normal repeats without alternate endings:
\repeat volta 2 { d4 e f g }
@end lilypond
-Normal repeats with alternate endings:
+Normal repeats with alternate endings:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\repeat volta 2 { g f e d }
\alternative { {f2 d} {f\repeatTie f,} }
@end lilypond
-By default, the volta brackets will be drawn over all of the
-alternative music, but it is possible to shorten them by setting
-@code{voltaSpannerDuration}. In the next example, the bracket only
-lasts one measure, which is a duration of 3/4.
+@snippets
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 3/4
-c c c
-\set Score.voltaSpannerDuration = #(ly:make-moment 3 4)
-\repeat volta 5 { d d d }
-\alternative { { e e e f f f }
-{ g g g } }
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{shortening-volta-brackets.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{adding-volta-brackets-to-additional-staves.ly}
-The @code{Volta_engraver} by default resides in the Score context, and
-brackets for the repeat are thus normally only printed over the
-topmost staff. This can be adjusted by adding @code{Volta_engraver}
-to the Staff context where you want the brackets to appear; see
-@ref{Modifying context plug-ins} and
-@c @lsr{repeats,volta@/-multi@/-staff@/.ly}.
-
-@lilypond[verbatim,ragged-right,quote]
-\score { <<
- \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
- \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
- \new Staff \with { \consists Volta_engraver } { c'2 g' e' a' }
- \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
- >> }
-@end lilypond
@c Is there a way to have a final bar ("|.") at the end of the
@c previous line? Doesn't seem to be.
If you want to start a repeat at the beginning of a line and have a
-double bar at the end of the previous line, use
+double bar at the end of the previous line, use @code{\bar}. See
+@ref{Bar lines} for more information.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
c4 c c c
\repeat volta 2 { c4 d e f }
@end lilypond
-see @ref{Bar lines} for more information.
@seealso
Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}.
-Snippets: @lsrdir{Repeats,Repeats}
+Snippets: @lsrdir{Repeats,Repeats}.
Internals Reference: @internalsref{VoltaBracket},
@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
Print a @code{:|} bar line.
@item @code{(volta @var{text})}
-Print a volta bracket saying @var{text}. The text can be
-specified as a text string or as a markup text, see @ref{Text
-markup}. Do not forget to change the font, as the default number
-font does not contain alphabetic characters;
+Print a volta bracket saying @var{text}. The text can be specified as
+a text string or as a markup text, see @ref{Text markup}. Do not
+forget to change the font, as the default number font does not contain
+alphabetic characters;
@item @code{(volta #f)}
quarter note is entered using a @code{4} (since it is a 1/4 note),
and a half note is entered using a @code{2} (since it is a 1/2
note). For notes longer than a whole you must use the
-@code{\longa} (a double breve) and @code{\breve} commands.
+@code{\longa} (a double breve) and @code{\breve} commands.
Durations as short as 64th notes may be specified. Shorter values
are possible, but only as beamed notes.
@funindex \dotsNeutral
Dots are normally moved up to avoid staff lines, except in
-polyphonic situations. To force a particular direction manually,
+polyphonic situations. Predefined commands are available to
+force a particular direction manually, for details
see @ref{Controlling direction and placement}.
@predefined
-@code{\breve},
-@code{\longa},
-@code{\maxima},
+@code{\autoBeamOff},
@code{\dotsUp},
@code{\dotsDown},
@code{\dotsNeutral}.
@seealso
-Music Glossary:
-@rglos{breve},
-@rglos{longa},
+Music Glossary:
+@rglos{breve},
+@rglos{longa},
@rglos{note value},
@rglos{Duration names notes and rests}.
-Notation Reference:
-@ref{Automatic beams},
+Notation Reference:
+@ref{Automatic beams},
@ref{Ties},
-@ref{Writing rhythms},
-@ref{Writing rests},
+@ref{Writing rhythms},
+@ref{Writing rests},
@ref{Vocal music},
-@ref{Ancient notation},
+@ref{Ancient notation},
@ref{Proportional notation}.
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}.
-Internals Reference:
+Internals Reference:
@internalsref{Dots},
@internalsref{DotColumn}.
@noindent
The duration of @var{music} will be multiplied by the
-fraction. The fraction's denominator will be printed over or
-under the notes, optionally with a bracket. The most common
+fraction. The fraction's denominator will be printed over or
+under the notes, optionally with a bracket. The most common
tuplet is the triplet in which 3 notes have the duration of 2, so
the notes are 2/3 of their written length.
@funindex tupletNumberFormatFunction
@funindex tupletSpannerDuration
-@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
{entering-several-tuplets-using-only-one--times-command.ly}
@funindex TupletNumber
-@c Sent to VV on 12 Feb - replace with @lilypondfile when available
-@c TODO and delete from here ...
-By default, only the numerator of the tuplet number
-is printed over the tuplet bracket, i.e. the denominator
-of the argument to the @code{\times} command. Alternatively,
-@var{num}:@var{den} of the tuplet number may be printed, or
-the tuplet number may be suppressed altogether.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{changing-the-tuplet-number.ly}
-
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\times 2/3 { c8 c c } \times 2/3 { c8 c c }
-\override TupletNumber #'text = #tuplet-number::calc-fraction-text
-\times 2/3 { c8 c c }
-\override TupletNumber #'transparent = ##t
-\times 2/3 { c8 c c }
-@end lilypond
-
-@c ... to here
-
-
-@c Sent to VV on 12 Feb - replace with @lilypondfile when available
-@c TODO and delete from here ...
-This artificial example shows how both manual and automatic line
-breaks may be permitted within a beamed tuplet. Note that such
-off-beat tuplets have to be beamed manually.
-
-@lilypond[quote,ragged-right,verbatim]
-\relative c'' {
- a8
- \repeat unfold 8 {\times 2/3 { c[ b a]}}
- % Insert a manual line break within a tuplet
- \times 2/3 { c[ b \bar "" \break a]}
- \repeat unfold 2 {\times 2/3 { c[ b a]}}
- c8
-}
-\layout {
- \context {
- \Voice
- % Permit line breaks within tuplets
- \remove "Forbid_line_break_engraver"
- % Allow beams to be broken at line breaks
- \override Beam #'breakable = ##t
- }
-}
-@end lilypond
-
-@c .. to here
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{permitting-line-breaks-within-beamed-tuplets.ly}
@seealso
-Music Glossary:
-@rglos{triplet},
+Music Glossary:
+@rglos{triplet},
@rglos{tuplet},
@rglos{polymetric}.
+Learning Manual: @rlearning{Tweaking methods}.
+
Notation Reference:
@ref{Time administration},
@ref{Scaling durations},
Snippets: @lsrdir{Rhythms,Rhythms}.
-Internals Reference:
+Internals Reference:
@internalsref{TupletBracket},
-@internalsref{TupletNumber},
+@internalsref{TupletNumber},
@internalsref{TimeScaledMusic}.
+@knownissues
+@cindex grace notes within tuplet brackets
+When the very first note on a staff is a grace note followed by a
+tuplet the grace note must be placed before the @code{\times}
+command to avoid errors. Anywhere else, grace notes may be
+placed within tuplet brackets.
+
@node Scaling durations
@subsubsection Scaling durations
@cindex scaling durations
@cindex durations, scaling
+TODO Change \compressMusic to \scaleDurations when implemented.
+
You can alter the duration of single notes, rests or chords by a
fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
@code{M} is 1) to the duration.
a4 a4
% Double the duration of chord
<a d>4*2
-% Duration of quarter, appears like sixteeth
+% Duration of quarter, appears like sixteenth
b16*4 c4
@end lilypond
@cindex compressing music
@funindex \compressMusic
-Longer stretches of music may be compressed by a fraction in
-the same way, as if every note, chord or rest had the fraction
+Longer stretches of music may be compressed by a fraction in
+the same way, as if every note, chord or rest had the fraction
as a multiplier. The general syntax of the command to do this
is:
Snippets: @lsrdir{Rhythms,Rhythms}
+
@node Ties
@subsubsection Ties
@warning{Ties should not be confused with @emph{slurs}, which
indicate articulation, or @emph{phrasing slurs}, which indicate
-musical phrasing. A tie is just a way of extending a note
+musical phrasing. A tie is just a way of extending a note
duration, similar to the augmentation dot.}
A tie is entered using the tilde symbol @code{~}
@code{\tieNeutral},
@code{\tieDotted},
@code{\tieDashed},
-@code{\tieSolid},
-@code{\repeatTie}.
+@code{\tieSolid}.
@snippets
-@c TODO Remove when snippet available - sent 15 Mar 08
-Ties are sometimes used to write out arpeggios. In this case, two
-tied notes need not be consecutive. This can be achieved by
-setting the @code{tieWaitForNote} property to true. The same
-feature is also useful, for example, to tie a tremolo to a chord,
-but in principle, it can also be used for ordinary, consecutive
-notes:
-
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-\set tieWaitForNote = ##t
-\grace { c16[~ e~ g]~ } <c, e g>2
-\repeat tremolo 8 { c32~ c'~ } <c c,>1
-e8~ c~ a~ f~ <e' c a f>2
-\tieUp c8~ a \tieDown \tieDotted g~ c g2
-@end lilypond
-
-@c end of section to be removed
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{using-ties-with-arpeggios.ly}
-@c TODO Remove when snippet available - sent 15 Mar 08
-Ties may be engraved manually by changing the
-@code{tie-configuration} property of the @code{TieColumn} object.
-The first number indicates the distance from the center of the
-staff in staff-spaces, and the second number indicates the
-direction (1=up, -1=down).
-
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-<c e g>2~ <c e g> |
-\override TieColumn #'tie-configuration =
- #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
-<c e g>~ <c e g> |
-@end lilypond
-
-@c end of section to be removed
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{engraving-ties-manually.ly}
@seealso
@subsection Writing rests
@menu
-* Rests::
-* Skips::
-* Full measure rests::
+* Rests::
+* Skips::
+* Full measure rests::
@end menu
@node Rests
}
@end lilypond
-Whole measure rests, centered in middle of the measure, must be
-entered as multi-measure rests. They can be used for a single
+Whole measure rests, centered in the middle of the measure, must
+be entered as multi-measure rests. They can be used for a single
measure as well as many measures and are discussed in
@ref{Full measure rests}.
a4\rest d4\rest
@end lilypond
-@predefined
-
-@code{\rest},
-@code{\maxima},
-@code{\longa},
-@code{\breve}.
-
@snippets
-@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
{rest-styles.ly}
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
% Skip the third beat in the first bar
a4 a4 s4 a4
-% Use predefined command to skip a whole note (bar)
+% Use skip command to skip a whole note (bar)
\skip 1
a2 a2
@end lilypond
@{ \skip 1 @}
@end example
-@predefined
-@code{\skip}
-
@seealso
Snippets: @lsrdir{Rhythms,Rhythms}
@node Full measure rests
@subsubsection Full measure rests
-@cindex multi measure rests
-@cindex full measure rests
-@cindex rest, multi measure
-@cindex rest, full measure
+@cindex multi-measure rests
+@cindex full-measure rests
+@cindex rest, multi-measure
+@cindex rest, full-measure
@cindex whole rest for a full measure
@funindex R
-Rests for one or more full measures are entered using @code{R}, in
-uppercase, followed by a duration. The duration should
-correspond to an integral number of measures, otherwise a barcheck
-warning is printed. A multi-measure rest is used
-principally to indicate that a part in a multi-part score should
-be silent:
+Rests for one or more full measures are entered like notes with
+the note name uppercase @code{R}:
@lilypond[quote,fragment,verbatim,relative=2]
-\set Score.skipBars = ##t
+% Rest bars contracted to single bar
+\compressFullBarRests
R1*4
R1*24
R1*4
b2^"Tutti" b4 a4
@end lilypond
-By default, a multi-measure rest is expanded in the printed score
-to show all the rest measures explicitly, or, as above, it can be
-condensed to a single measure containing a multi-measure rest
-symbol, with the number of measures of rest printed above the
-measure. This expansion is controlled by the property
-@code{Score.skipBars}. If this is set to true, empty measures
-will be condensed to a single measure:
+@funindex \expandFullBarRests
+@funindex \compressFullBarRests
+@cindex multi-measure rest, expanding
+@cindex multi-measure rest, contracting
+
+By default a multi-measure rest is expanded in the printed score
+to show all the rest measures explicitly or (as in the example
+above) it can be contracted to a single measure containing a
+multi-measure rest symbol, with the number of measures of rest
+printed above the measure:
@lilypond[quote,ragged-right,fragment,verbatim]
-% Default behaviour
-\time 4/4 r1 | R1 | R1*2 |
+% Default behavior
+\time 3/4 r2. | R2.*2 |
\time 2/4 R2 |
\time 4/4
-% Rest bars condensed to a single bar
-\set Score.skipBars = ##t
-R1*17 | R1*4 |
+% Rest bars contracted to single bar
+\compressFullBarRests
+r1 | R1*17 | R1*4 |
+% Rest bars expanded
+\expandFullBarRests
+\time 3/4
+R2.*2 |
@end lilypond
-The @code{1} in @code{R1} is similar to the duration notation
+The @code{1} in @code{R1} is similar to the duration notation
used for notes and is the length of a measure in 2/2 or 4/4 time.
The duration in a multi-measure rest must always be an integral
number of measure-lengths, so in other time signatures augmentation
dots or fractions must be used:
@lilypond[quote,ragged-right,fragment,verbatim]
-\set Score.skipBars = ##t
+\compressFullBarRests
\time 3/4
R2. | R2.*2
\time 13/8
R1*13/8 | R1*13/8*12 |
-\time 10/8
+\time 10/8
R4*5*4 |
@end lilypond
@cindex multi-measure rest, attaching fermata
Text can be added to multi-measure rests by using the
-@var{note} - @code{\markup} syntax described in @ref{Text markup}.
-The variable @code{\fermataMarkup} is provided for adding
-fermatas.
+@var{note} - @code{\markup} syntax described in
+@ref{Text markup}. The predefined command @code{\fermataMarkup}
+is provided for adding fermatas.
@lilypond[quote,ragged-right,verbatim,fragment]
-\set Score.skipBars = ##t
+\compressFullBarRests
\time 3/4
R2.*10^\markup { \italic "ad lib." }
R2.^\fermataMarkup
Text attached to a multi-measure rest will be centered above or
below it. Long text attached in this way does not cause the
measure to expand, and may collide with text in adjacent measures.
-Long text is better attached to a zero-length skip note preceding
-the rest, preceded by @code{\textLengthOn} (turn off again with
-@code{\textLengthOff}), since this will cause the measure to expand to
-accommodate the length of the text:
+This behavior may be changed with the predefined command
+@code{\textLengthOn}, which will cause following bars to expand
+as necessary to accommodate text. @code{\textLengthOff} returns
+to the default behavior. To left-align text within a bar attach
+it to a zero-length skip note preceding the rest.
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\set Score.skipBars = ##t
+\compressFullBarRests
\textLengthOn
s1*0^\markup {[MAJOR GENERAL]}
R1*19
@noindent
Text attached to a skip note in this way is left-aligned to the
position where the note would be placed in the bar, and placed
-above the bar count numeral, but because the bar length is
+above the bar count numeral, but if the bar length is
determined by the length of the text, the text will appear to be
centered. If two (or more) texts are
attached to skip notes in a bar the bar length is determined by
@predefined
@code{\textLengthOn},
@code{\textLengthOff},
-@code{\fermataMarkup}
+@code{\fermataMarkup},
+@code{\compressFullBarRests},
+@code{\expandFullBarRests}.
@snippets
@cindex rest, church
@cindex kirchenpausen
-@c TODO Send as snippet "changing form of multi-measure rests"
-If there are 10 or fewer measures of rest, LilyPond prints
-a series of longa and breve rests (called in German
-Kirchenpausen - church rests) within the staff and
-prints a simple line otherwise. This default number of 10
-may be changed by an override:
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\set Score.skipBars = ##t
-R1*2 | R1*5 | R1*9
-\override MultiMeasureRest #'expand-limit = 3
-R1*2 | R1*5 | R1*9
-@end lilypond
-@c TODO End of snippet "changing form of multi-measure rests"
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{changing-form-of-multi--measure-rests.ly}
@cindex multi-measure rests, positioning
@cindex positioning multi-measure rests
-@c TODO Send as snippet "positioning multi-measure rests"
-Note that, unlike ordinary rests, there is no predefined command
-to change the vertical position on the staff of a multi-measure
-rest symbol of either form by attaching it to a note. However,
-in polyphonic music multi-measure rests in odd-numbered and
-even-numbered voices are vertically separated. The positioning
-of multi-measure rests can be controlled as follows:
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-% Multi-measure rests by default are set under the 2nd line
-R1
-% They can be moved with an override
-\override MultiMeasureRest #'staff-position = #-2
-R1
-% A value of 0 is the default position;
-% the following trick moves the rest to the center line
-\override MultiMeasureRest #'staff-position = #-0.01
-R1
-% Multimeasure rests in odd-numbered voices are under the top line
-<< {R1} \\ {a1} >>
-% Multi-measure rests in even-numbered voices are under the bottom line
-<< {c1} \\ {R1} >>
-% They remain separated even in empty bars
-<< {R1} \\ {R1} >>
-% This brings them together even though there are two voices
-\set Score.skipBars = ##t
-<<
- \revert MultiMeasureRest #'staff-position
- {R1*3}
-\\
- \revert MultiMeasureRest #'staff-position
- {R1*3}
->>
-@end lilypond
-@c End snippet "positioning multi-measure rests"
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{positioning-multi--measure-rests.ly}
@seealso
@rglos{multi-measure rest},
@rglos{church rests}.
-Notation Reference:
-@ref{Durations},
+Notation Reference:
+@ref{Durations},
@ref{Text},
-@ref{Text markup},
+@ref{Text markup},
@ref{Text scripts}.
Snippets: @lsrdir{Rhythms,Rhythms}
-Internals Reference:
+Internals Reference:
@internalsref{MultiMeasureRest},
@internalsref{MultiMeasureRestNumber},
@internalsref{MultiMeasureRestText}.
@knownissues
-If an attempt is made to use fingerings (e.g.,
+If an attempt is made to use fingerings (e.g.,
@code{R1*10-4}) to put numbers over multi-measure rests, the
-fingering numeral (4) may collide with the bar counter
-numeral (10).
+fingering numeral (4) may collide with the bar counter
+numeral (10).
@cindex condensing rests
+@cindex rests, condensing ordinary
-There is no way to automatically condense multiple ordinary rests
+There is no way to automatically condense multiple ordinary rests
into a single multi-measure rest.
+@cindex rests, collisions of
+
Multi-measure rests do not take part in rest collisions.
Be careful when entering multi-measure rests followed by whole
@cindex meter
@funindex \time
-The time signature is set with the @code{\time} command:
+The time signature is set as follows:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c2 \time 3/4 c2.
+\time 2/4 c2
+\time 3/4 c2.
@end lilypond
-@snippets
+@cindex Time signature, visibility of
+
+Time signatures by default are printed at the start of every line
+and whenever the time signature changes. If a change takes place
+at the end of a line a warning time signature sign is printed
+there. This default behavior may be changed, see
+@ref{Controlling visibility of objects}.
-The symbol that is printed can be customized with the @code{style}
-property. Setting it to @code{#'()} uses fraction style for 4/4
-and 2/2 time,
+@funindex \numericTimeSignature
+@funindex \defaultTimeSignature
+@cindex time signature style
+
+The symbol that is printed in 2/2 and 4/4 time can be customized
+to use a numeric style:
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+% Default style
\time 4/4 c1
\time 2/2 c1
-\override Staff.TimeSignature #'style = #'()
+% Change to numeric style
+\numericTimeSignature
\time 4/4 c1
\time 2/2 c1
-@end lilypond
-
-A time signature symbol is normally printed whenever the time
-signature changes. If this takes place at the end of a line a
-warning time signature sign is printed at the end of the line and
-again at the start of a new line. This default behaviour can be
-modified by setting the value of the @code{break-visibility}
-property. This takes three values which may be set to @code{#t}
-or @code{#f} to specify whether the corresponding time signature
-is visible or not. The order of the three values is @code{end of
-line visible}, @code{middle of line visible}, @code{beginning of
-line visible}.
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-% Do not print any time signatures at end of line
-\override Staff.TimeSignature #'break-visibility = ##(#f #t #t)
+% Revert to default style
+\defaultTimeSignature
\time 4/4 c1
-\time 3/4 c2.
-% Do not print the following 9/8 time signature
-\once \override Staff.TimeSignature #'break-visibility = ##(#t #f #t)
-\time 9/8 c4. c c
\time 2/2 c1
-\break
-\time 9/8 c4. c c
-\time 12/8 c2. c2.
@end lilypond
-There are many more options for its layout. See @ref{Ancient time
-signatures}, for more examples.
+Ancient time signatures are covered in
+@ref{Ancient time signatures}.
+
+@predefined
+
+@code{\numericTimeSignature},
+@code{\defaultTimeSignature}.
+
+@snippets
+
+@c TODO Send as snippet called "setting measure and beat lengths"
+@c when example is added
@code{\time} sets the properties @code{timeSignatureFraction},
@code{beatLength}, and @code{measureLength} in the @code{Timing}
-context, which is normally aliased to @internalsref{Score}. The
-property @code{measureLength} determines where bar lines should be
-inserted, and how automatic beams should be generated. Changing
-the value of @code{timeSignatureFraction} also causes the symbol
-to be printed.
+context, which is normally aliased to @code{Score}. Changing the
+value of @code{timeSignatureFraction} causes the new time
+signature symbol to be printed without changing the other
+properties. The property @code{measureLength} determines where
+bar lines should be inserted and, with @code{beatLength}, how
+automatic beams should be generated.
+
+TODO Add example of using beatLength.
+@c beatLength is broken - see bug 511
+
+@c End of snippet
@cindex measure groupings
-
-More options are available through the Scheme function
-@code{set-time-signature}, which takes three arguments: the number
-of beats, the beat length, and the internal grouping of beats in
-the measure. If the @internalsref{Measure_grouping_engraver} is
-included, the function will also create
-@internalsref{MeasureGrouping} signs. Such signs ease reading
-rhythmically complex modern music. In the following example, the
-9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
-@code{set-time-signature} as the third argument @code{(2 2 2 3)}:
+@cindex beats, grouping
+@cindex grouping beats
+@cindex measure sub-grouping
+
+@c TODO Sent as snippet called "grouping beats" 25 Mar 08
+Options to group beats within a bar are available through the
+Scheme function @code{set-time-signature}, which takes three
+arguments: the number of beats, the beat length, and the internal
+grouping of beats in the measure. If the
+@internalsref{Measure_grouping_engraver} is included, the function
+will also create @internalsref{MeasureGrouping} signs. Such signs
+ease reading rhythmically complex modern music. In the example,
+the 9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
+@code{set-time-signature} as the third argument: @code{'(2 2 2 3)}:
@lilypond[quote,ragged-right,verbatim]
\score {
}
}
@end lilypond
+@c TODO End of snippet called "grouping beats"
+
+@cindex compound time signatures
+@cindex time signature, compound
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{compound-time-signatures.ly}
@seealso
-Snippets: @lsrdir{Rhythms,Rhythms}
+Music Glossary:
+@rglos{time signature}
-Internals Reference: @internalsref{TimeSignature}, and
-@internalsref{Timing_translator}.
+Notation Reference:
+@ruser{Ancient time signatures},
+@ruser{Time administration}.
+
+Snippets:
+@lsrdir{Rhythms,Rhythms}
-Examples: @c @lsr{contemporary,compound-time-signature.ly}.
+Internals Reference:
+@internalsref{TimeSignature},
+@internalsref{Timing_translator}.
@knownissues
@cindex partial measure
@cindex measure, partial
@cindex pickup measure
-@cindex shorten measures
+@cindex measure, change length
+@cindex measurePosition
@funindex \partial
-Partial or pickup measures, such as an anacrusis or upbeat, are
+Partial or pick-up measures, such as an anacrusis or upbeat, are
entered using the @code{\partial} command, with the syntax
@example
-\partial @var{duration}
+\partial @var{duration} @emph{notes}
@end example
-where @code{duration} is the rhythmic length to be added before
-the next measure:
+where @code{duration} is the rhythmic length of the @emph{notes}
+which are to be placed before the first complete measure:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\partial 16*5 c16 cis d dis e | a2. c,4 | b2
+\partial 16*5 c16 cis d dis e |
+a2. c,4 |
+b2
@end lilypond
Internally, this is translated into
@example
-\set Timing.measurePosition = -@var{length of duration}
+\set Timing.measurePosition = -@var{duration}
@end example
The property @code{measurePosition} contains a rational number
indicating how much of the measure has passed at this point. Note
-that this is a negative number; @code{\partial 4} is internally
-translated to mean @qq{there is a quarter note left in the bar.}
+that this is set to a negative number by the @code{\partial}
+command: i.e., @code{\partial 4} is internally translated to
+@code{-4}, meaning @qq{there is a quarter note left in the bar.}
+
+
+@seealso
+
+Music Glossary: @rglos{anacrusis}
+
+Notation Reference: @ref{Grace notes}
+Snippets: @lsrdir{Rhythms,Rhythms}
+
+Internal Reference: @internalsref{Timing_translator}
@knownissues
+@cindex grace notes, in anacruses
+
This command does not take into account grace notes at the start
-of the music. When a piece starts with grace notes in the
-pickup, then the @code{\partial} should follow the grace notes:
+of the music. If the pick-up starts with one or more grace
+notes, then the @code{\partial} should follow the grace note(s):
@lilypond[verbatim,quote,ragged-right,relative,fragment]
\grace f16
a2 g2
@end lilypond
-@code{\partial} is only intended to be used at the beginning of a
-piece. If you use it after the beginning, some odd warnings may
-occur.
-
-@seealso
-
-Snippets: @lsrdir{Rhythms,Rhythms}
+The @code{\partial} command is intended to be used only at the
+beginning of a piece. If you use it after the beginning, some
+odd warnings may occur.
@node Unmetered music
@subsubsection Unmetered music
-@cindex cadenza
@funindex \cadenzaOn
@funindex \cadenzaOff
+@cindex bar lines, turning off
+@cindex bar numbering, turning off
+@cindex cadenza
+@cindex unmetered music
Bar lines and bar numbers are calculated automatically. For
unmetered music (cadenzas, for example), this is not desirable.
-To turn off automatic bar lines and bar numbers, use the commands
-@code{\cadenzaOn} and @code{\cadenzaOff}.
+To turn off automatic bar lines and bar numbers, use the command
+@code{\cadenzaOn}, and use @code{\cadenzaOff} to turn them on
+again.
@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
c4 d e d
cadenza were not there:
@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
-\override Score.BarNumber #'break-visibility = ##( #t #t #t )
+% Show all bar numbers
+\override Score.BarNumber #'break-visibility = #all-visible
c4 d e d
\cadenzaOn
c4 c d8 d d f4 g4.
d4 e d c
@end lilypond
+@predefined
+
+@code{\cadenzaOn},
+@code{\cadenzaOff}.
+
+@seealso
+
+Music Glossary: @rglos{cadenza}
+
+Notation Reference: @ref{Controlling visibility of objects}
+
+Snippets: @lsrdir{Rhythms,Rhythms}
+
@knownissues
-LilyPond will only insert line breaks and page breaks at a
+LilyPond will insert line breaks and page breaks only at a
bar line. Unless the unmetered music ends before the end of the
staff line, you will need to insert invisible bar lines with
@noindent
to indicate where breaks can occur.
-@seealso
-
-Snippets: @lsrdir{Rhythms,Rhythms}
-
@node Polymetric notation
@subsubsection Polymetric notation
-@c TODO Work this example into the main text
-@c @lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
-@c {printing-music-with-different-time-signatures.ly}
-
@cindex double time signatures
@cindex signatures, polymetric
@cindex polymetric signatures
@cindex meter, polymetric
-Music Glossary:
-@rglos{polymetric}
-@rglos{polymetric time signature}
-@rglos{meter}
+@strong{Alternating time signatures}
-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. See also
-@c @lsr{contemporary,compound-time-signature}.
+Regularly alternating double time signatures are not supported
+explicitly, but they can be faked. In the next example, the
+double time signature is created with markup text, while the
+real time signature is set in the usual way with @code{\time}.
@lilypond[verbatim,ragged-right]
-% create 2/4 + 5/8
+% Create 9/8 split into 2/4 + 5/8
tsMarkup = \markup {
\override #'(baseline-skip . 2) \number {
\column { "2" "4" }
\override Staff.TimeSignature #'stencil =
#ly:text-interface::print
\override Staff.TimeSignature #'text = #tsMarkup
- \time 3/2
+ \time 9/8
+ c'2 \bar ":" c'4 c'4.
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_translator} to the
-@internalsref{Staff} context.
+@strong{Staves with different time signatures, equal bar lengths}
+
+This notation can be created by setting a common time signature
+for each staff but replacing the symbol manually by setting
+@code{timeSignatureFraction} to the desired fraction and scaling
+the printed durations in each staff to the common time
+signature. This done with @code{\compressMusic}, which
+is used in a similar way to @code{\times}, but does not create
+a tuplet bracket, see @ref{Scaling durations}.
+
+In this example, music with the time signatures of 3/4, 9/8, and
+10/8 are used in parallel. In the second staff, shown durations
+are multiplied by 2/3, as 2/3 * 9/8 = 3/4, and in the third
+staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\relative c' { <<
+ \new Staff {
+ \time 3/4
+ c4 c c |
+ c c c |
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(9 . 8)
+ \compressMusic #'(2 . 3)
+ \repeat unfold 6 { c8[ c c] }
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(10 . 8)
+ \compressMusic #'(3 . 5) {
+ \repeat unfold 2 { c8[ c c] }
+ \repeat unfold 2 { c8[ c] } |
+ c4. c4. \times 2/3 { c8 c c } c4
+ }
+ }
+>> }
+@end lilypond
+
+@strong{Staves with different time signatures, unequal bar lengths}
+
+Each staff can be given its own independent time signature by
+moving the Timing_translator to the Staff context.
@lilypond[quote,verbatim,ragged-right]
\layout {
\consists "Default_bar_line_engraver"
}
}
-%Now, each staff has its own time signature.
+
+% Now each staff has its own time signature.
\relative c' <<
\new Staff {
@end lilypond
-A different form of polymetric notation is where note lengths have
-different values across staves, but the measures are all the same
-length.
-
-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 used in a similar way to @code{\times}, but does not create
-a tuplet bracket. The syntax is
-
-@funindex \compressMusic
-
-@example
-\compressMusic
-#'(@var{numerator} . @var{denominator}) @var{musicexpr}
-@end example
-
+@seealso
+Music Glossary:
+@rglos{polymetric},
+@rglos{polymetric time signature},
+@rglos{meter}.
-In this example, music with the time signatures of 3/4, 9/8, and
-10/8 are 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.
+Notation Reference: @ref{Scaling durations}
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' { <<
- \new Staff {
- \time 3/4
- c4 c c | c c c |
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(9 . 8)
- \compressMusic #'(2 . 3)
- \repeat unfold 6 { c8[ c c] }
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(10 . 8)
- \compressMusic #'(3 . 5) {
- \repeat unfold 2 { c8[ c c] }
- \repeat unfold 2 { c8[ c] }
- | c4. c4. \times 2/3 { c8 c c } c4
- }
- }
->> }
-@end lilypond
+Snippets:
+@lsrdir{Rhythms,Rhythms}
+@c Is this still permitted?
+@c @lsr{contemporary,compound-time-signature}
+Internals Reference:
+@internalsref{TimeSignature},
+@internalsref{Timing-translator},
+@internalsref{Staff}.
@knownissues
When using different time signatures in parallel, the spacing is
aligned vertically, but bar lines distort the regular spacing.
-@seealso
-
-Snippets: @lsrdir{Rhythms,Rhythms}, @c @lsr{contemporary,compound-time-signature}.
-
-Internals Reference: @internalsref{TimeSignature}, @internalsref{Timing-translator}, @internalsref{Staff}.
-
@node Automatic note splitting
@subsubsection Automatic note splitting
+@cindex notes, splitting
+@cindex splitting notes
+
Long notes which overrun bar lines can be converted automatically
to tied notes. This is done by replacing the
-@internalsref{Note_heads_engraver} by the
-@internalsref{Completion_heads_engraver}. In the following
-examples, notes crossing the bar line are split and tied.
+@code{Note_heads_engraver} by the
+@code{Completion_heads_engraver}. In the following
+example, notes crossing the bar lines are split and tied.
-@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
+@lilypond[quote,fragment,verbatim,relative=1,ragged-right]
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
-} {
- c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
}
+
+{c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2}
@end lilypond
This engraver splits all running notes at the bar line, and
inserts ties. One of its uses is to debug complex scores: if the
-measures are not entirely filled, then the ties exactly show how
+measures are not entirely filled, then the ties show exactly how
much each measure is off.
-If you want to allow line breaking on the bar lines where
-@internalsref{Completion_heads_engraver} splits notes, you must
-also remove @internalsref{Forbid_line_break_engraver}.
-
+To allow line breaking on the bar lines where the
+@code{Completion_heads_engraver} has inserted a split note, remove
+the @code{Forbid_line_break_engraver} too.
-@knownissues
-
-Not all durations (especially those containing tuplets) can be
-represented exactly with normal notes and dots, but the engraver
-will not insert tuplets.
-@code{Completion_heads_engraver} only affects notes; it does not
-split rests.
+@seealso
+Music Glossary: @rglos{tie}
-@seealso
+Learning Manual:
+@rlearning{Engravers explained},
+@rlearning{Adding and removing engravers}.
Snippets: @lsrdir{Rhythms,Rhythms}
-Internals Reference: @internalsref{Note_heads_engraver},
+Internals Reference:
+@internalsref{Note_heads_engraver},
@internalsref{Completion_heads_engraver},
@internalsref{Forbid_line_break_engraver}.
+@knownissues
+
+Not all durations (especially those containing tuplets) can be
+represented exactly with normal notes and dots, but the engraver
+will not insert tuplets.
+The @code{Completion_heads_engraver} only affects notes; it does not
+split rests.
@node Beams
The beams of consecutive 16th (or shorter) notes are, by default,
not sub-divided. That is, the three (or more) beams stretch
-unbroken over entire groups of notes. This behaviour can
+unbroken over entire groups of notes. This behavior can
be modified to sub-divide the beams into sub-groups by setting
the property @code{subdivideBeams}. When set, multiple beams
will be sub-divided at intervals defined by the current value of
3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
3/8, has passed within the measure).
-If any unexpected beam behaviour occurs, check the default automatic beam
+If any unexpected beam behavior occurs, check the default automatic beam
settings in @file{scm/@/auto@/-beam@/.scm}
for possible interference, because the beam
endings defined there will still apply on top of your own overrides. Any
draw on the left and right side, respectively, of the next note.
If either property is set, its value will be used only once, and
then it is erased. In this example, the last @code{f} is printed
-with only one beam on the left side, i.e. the eigth-note beam of
+with only one beam on the left side, i.e. the eighth-note beam of
the group as a whole.
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
@cindex repeats
Although the bar line types signifying repeats may be inserted
-manually they do not in themselves cause LilyPond to recognise
+manually they do not in themselves cause LilyPond to recognize
a repeated section. Such repeated sections are better entered
using the various repeat commands (see @ref{Repeats}), which
automatically print the appropriate bar lines.
Internals Reference: @internalsref{BarLine} (created at
@internalsref{Staff} level), @internalsref{SpanBar} (across
-staves), @internalsref{Timing_translator} (for Timing
+staves), @internalsref{Timing_translator} (for Timing
properties).
@cindex bar numbers, regular spacing
Bar numbers can be typeset at regular intervals instead of just at
-the beginning of every line. To do this the default behaviour
+the beginning of every line. To do this the default behavior
must be overridden to permit bar numbers to be printed at places
other than the start of a line. This is controlled by the
@code{break-visibility} property of @code{BarNumber}. This takes
% Print a bar number every 2nd bar
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
c1 c1
-% Centre-align bar numbers
+% Center-align bar numbers
\override Score.BarNumber #'self-alignment-X = #0
c1 c1
% Right-align bar numbers
By @q{command-line}, we mean the command line in the operating system.
Windows users might be more familiar with the terms @q{DOS shell} or
-@q{command shell}; OSX users might be more familiar with the terms
-@q{terminal} or @q{console}. OSX users should also consult @ref{MacOS X
+@q{command shell}; MacOS@tie{}X users might be more familiar with the terms
+@q{terminal} or @q{console}. They should also consult @ref{MacOS X
on the command-line}.
Describing how to use this part of an operating system is outside the
@cindex switches
-The @code{lilypond} executable may be called as follows from the command line.
+The @command{lilypond} executable may be called as follows from the command line.
@example
lilypond [@var{option}]@dots{} @var{file}@dots{}
@cindex SVG (Scalable Vector Graphics)
You need a SVG viewer which supports embedded fonts, or a SVG
viewer which is able to replace the embedded fonts with OTF fonts.
- Under Unix, you may use @uref{http://www.inkscape.org,Inkscape}
+ Under UNIX, you may use @uref{http://www.inkscape.org,Inkscape}
(version 0.42 or later), after copying the OTF fonts in directory
@file{PATH/TO/share/lilypond/VERSION/fonts/otf/} to @file{~/.fonts/}.
@item scm
@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
-Run LilyPond in a chroot jail.
+Run @command{lilypond} in a chroot jail.
The @code{--jail} option provides a more flexible alternative to
@code{--safe} when LilyPond formatting is available through a web
server or whenever LilyPond executes externally provided
sources.
-The @code{--jail} option works by changing the root of LilyPond to
+The @code{--jail} option works by changing the root of @command{lilypond} to
@var{jail} just before starting the actual compilation process. The user
and group are then changed to match those provided, and the current
directory is changed to @var{dir}. This setup guarantees that it is not
possible (at least in theory) to escape from the jail. Note that for
-@code{--jail} to work LilyPond must be run as root, which is usually
+@code{--jail} to work @command{lilypond} must be run as root, which is usually
accomplished in a safe way using @command{sudo}.
Setting up a jail is a slightly delicate matter, as we must be sure that
@cindex LANG
@cindex LILYPOND_DATADIR
-@code{Lilypond} recognizes the following environment variables:
+@command{lilypond} recognizes the following environment variables:
@table @code
@item LILYPOND_DATADIR
This specifies a directory where locale messages and
@end example
@noindent
-MacOS X users may execute this command under the menu entry
+MacOS@tie{}X users may execute this command under the menu entry
@code{Compile > Update syntax}.
If there are no changes to myfile.ly and file called myfile.ly.NEW
@end example
To upgrade many files at once, combine @code{convert-ly} with
-standard unix commands. This example will upgrade all @code{.ly}
+standard UNIX commands. This example will upgrade all @code{.ly}
files in the current directory
@example
@subsection Problems with @code{convert-ly}
Not all language changes are handled. Only one output option can be
-specified. Automatically updating scheme and lilypond scheme
+specified. Automatically updating scheme and LilyPond scheme
interfaces is quite unlikely; be prepared to tweak scheme code
manually.
Doesn't always convert figured bass correctly, specifically things like {<
>}. Mats' comment on working around this:
To be able to run convert-ly
- on it, I first replaced all occurencies of '{<' to some dummy like '{#'
+ on it, I first replaced all occurrences of '{<' to some dummy like '{#'
and similarly I replaced '>}' with '&}'. After the conversion, I could
then change back from '{ #' to '{ <' and from '& }' to '> }'.
Doesn't convert all text markup correctly. In the old markup syntax,
@cindex reporting bugs
If you have input that results in a crash or an erroneous output, then
-that is a bug. There is a list of current bugs on our google bug tracker,
+that is a bug. There is a list of current bugs on our Google bug tracker,
@uref{http://code.google.com/p/lilypond/issues/list}
We have seen how LilyPond output can be heavily modified using
commands like
@code{\override TextScript #'extra-offset = ( 1 . -1)}. But
-we have even more power if we use Scheme. For a full explantion
+we have even more power if we use Scheme. For a full explanation
of this, see the @ref{Scheme tutorial}, and
@ruser{Interfaces for programmers}.
@subsection MacOS X on the command-line
The scripts (such as lilypond-book, convert-ly, abc2ly, and even
-lilypond itself) are included inside MacOS X .app. They can be run from
+lilypond itself) are included inside the .app file for MacOS@tie{}X. They can be run from
the command line by invoking them directly, e.g.
@example
@end example
@noindent
-where $@{LILYPOND_VERSION@} is your lilypond version. If Lilypond was not
+where $@{LILYPOND_VERSION@} is your LilyPond version. If LilyPond was not
installed in @file{/usr/local/}, then change this path accordingly.
@subsection TexShop
The @uref{http://@/www@/.uoregon@/.edu/~koch/texshop/index@/.html,TexShop}
-editor for Mac OS X can be extended to run LilyPond, lilypond-book and
+editor for MacOS@tie{}X can be extended to run LilyPond, lilypond-book and
convert-ly from within the editor, using the extensions available at
@uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html}.
follow hyperlinks using the @file{lilypond-invoke-editor} script
supplied with LilyPond.
-For Xpdf on Unix, the following should be present in
-@file{xpdfrc}@footnote{On unix, this file is found either in
+For Xpdf on UNIX, the following should be present in
+@file{xpdfrc}@footnote{On UNIX, this file is found either in
@file{/etc/xpdfrc} or as @file{.xpdfrc} in your home directory.}
@example
@node Page breaking
@subsection Page breaking
-The default page breaking may be overriden by inserting
+The default page breaking may be overridden by inserting
@code{\pageBreak} or @code{\noPageBreak} commands. These commands are
analogous to @code{\break} and @code{\noBreak}. They should be
inserted at a bar line. These commands force and forbid a page-break
The @code{ly:minimal-breaking} function performs minimal computations to
calculate the page breaking: it fills a page with as many systems as
-possible before moving to the next one. Thus, it may be prefered for
+possible before moving to the next one. Thus, it may be preferred for
scores with many pages, where the other page breaking functions could be
too slow or memory demanding, or a lot of texts. It is enabled using:
\override NonMusicalPaperColumn #'page-break-permission = ##f
@end example
-When @code{line-break-permission} is overriden to false, Lily will insert
+When @code{line-break-permission} is overridden to false, Lily will insert
line breaks at explicit @code{\break} commands and nowhere else. When
-@code{page-break-permission} is overriden to false, Lily will insert
+@code{page-break-permission} is overridden to false, Lily will insert
page breaks at explicit @code{\pageBreak} commands and nowhere else.
@lilypond[quote,verbatim]
@end example
When only a couple of flat systems are placed on a page, the resulting
-vertical spacing may be non-eleguant: one system at the top of the page,
+vertical spacing may be non-elegant: one system at the top of the page,
and the other at the bottom, with a huge gap between them. To avoid this
situation, the space added between the systems can be limited. This
feature is activated by setting to @code{#t} the
The @code{ragged-bottom} property adds space between systems, while
the two-pass technique adds space between staves inside a system.
-To allow this behaviour, a @code{tweak-key} variable has to be set in
+To allow this behavior, a @code{tweak-key} variable has to be set in
each score @code{\layout} block, and the tweaks included in each score
music, using the @code{\scoreTweak} music function.
TODO: this example doesn't work any more ?
By default, outside-staff objects are placed without regard to
-their horizontal distance from the previously-posititioned grobs. This
+their horizontal distance from the previously-positioned grobs. This
can lead to situations in which objects are placed very close to each
other horizontally. Setting @code{outside-staff-horizontal-padding}
causes an object to be offset vertically so that such a situation
@subsection Horizontal spacing overview
The spacing engine translates differences in durations into stretchable
-distances (@q{springs}) of differring lengths. Longer durations get
+distances (@q{springs}) of differing lengths. Longer durations get
more space, shorter durations get less. The shortest durations get a
fixed amount of space (which is controlled by
@code{shortest-duration-space} in the @internalsref{SpacingSpanner}
equivalent to its rhythmic duration. This type of proportional spacing
is comparable to horizontal spacing on top of graph paper. Some late
20th- and early 21st-century scores use proportional notation to
-clarify complex rhythmic relationships or to faciliate the placement
+clarify complex rhythmic relationships or to facilitate the placement
of timelines or other graphics directly in the score.
LilyPond supports five different settings for proportional notation,
lives in @code{Score}. Recall that context settings appear in one of
three locations in our input file -- in a @code{\with} block, in a
@code{\context} block, or directly in music entry
-preceeded by the @code{\set} command. As with all
+preceded by the @code{\set} command. As with all
context settings, users can pick which of the three different
locations they would like to set @code{proportionalNotationDuration}.
@end lilypond
Nonmusical elements like time signatures, key signatures, clefs and
-accidentals are problemmatic in proportional notation. None of these
+accidentals are problematic in proportional notation. None of these
elements has rhythmic duration. But all of these elements consume
horizontal space. Different proportional scores approach these
problems differently.
@node Page breaks
@subsection Page breaks
-The default page breaking may be overriden by inserting
+The default page breaking may be overridden by inserting
@code{\pageBreak} or @code{\noPageBreak} commands.
These commands are analogous to the @code{\break} and
-@code{\noBreak} commands discused above and force or forbid
+@code{\noBreak} commands discussed above and force or forbid
a page-break at the point where they are inserted.
Of course, the @code{\pageBreak} command also forces a line break.
Like @code{\break}, the @code{\pageBreak} command is effective only
@item
Alter the horizontal spacing via @code{SpacingSpanner}. See
@ruser{Changing horizontal spacing}, for more details. Here's
-an example first showing the default behaviour:
+an example first showing the default behavior:
@lilypond[verbatim,quote,ragged-right]
\score {
@cindex staff, single
@cindex drum staff
@cindex percussion staff
-@cindex Gregorian transciption staff
+@cindex Gregorian transcription staff
@cindex rhythmic staff
@cindex tabstaff
@cindex tablature
@code{\context} commands. For an explanation on these commands,
see @ref{Creating contexts}.
-There are different predefined staff contexts available in Lilypond:
+There are different predefined staff contexts available in LilyPond:
@itemize
@item
@item
@code{DrumStaff} creates a five line staff set up for a typical drum set.
-It uses different names for each instrument. The instrument names have to
-be set using the @code{drummode}. See @ref{Percussion staves}.
+It uses different names for each instrument. The instrument names have to
+be set using the @code{drummode}. See @ref{Percussion staves}.
@lilypond[verbatim,ragged-right,quote]
\new DrumStaff {
\drummode { cymc hh ss tomh }
@item
@code{GregorianTranscriptionStaff} sets up a staff to notate modern
-Gregorian chant. It does not show bar lines.
+Gregorian chant. It does not show bar lines.
@lilypond[verbatim,ragged-right,quote]
\relative c'' {
\new GregorianTranscriptionStaff { c d e f }
@end lilypond
@item
-@code{RhythmicStaff} can be used to show the rhythm of some music. The
+@code{RhythmicStaff} can be used to show the rhythm of some music. The
notes are printed on one line regardless of their pitch, but the duration
-is preserved. See @ref{Showing melody rhythms}.
+is preserved. See @ref{Showing melody rhythms}.
@lilypond[verbatim,ragged-right,quote]
\relative c'' {
\new RhythmicStaff { c d e f }
@end lilypond
@item
-@code{TabStaff} creates by default a tabulature with six strings in
-standard guitar tuning. See @ref{Tablatures basic}.
+@code{TabStaff} creates by default a tablature with six strings in
+standard guitar tuning. See @ref{Tablatures basic}.
@lilypond[verbatim,ragged-right,quote]
\relative c'' {
\new TabStaff { c d e f }
@noindent
Besides these staves there are two staff contexts specific for the notation
-of ancient music: @code{MensuralStaff} and @code{VaticanaStaff}. They are
+of ancient music: @code{MensuralStaff} and @code{VaticanaStaff}. They are
described in @ref{Pre-defined contexts}.
Once a staff is instantiated it can be started or stopped at every point
-in the score. This is done with the commands @code{\startStaff} and
-@code{\stopStaff}. How to use it is explained in @ref{Staff symbol}.
+in the score. This is done with the commands @code{\startStaff} and
+@code{\stopStaff}. How to use it is explained in @ref{Staff symbol}.
@seealso
@cindex system
LilyPond provides different types of contexts to group single staves
-together. These contexts influence in the first place the appearance
+together. These contexts influence in the first place the appearance
of the system start delimiter, but they have also influence on the
-behaviour of the bar lines.
+behavior of the bar lines.
Each staff group context sets the property
@code{systemStartDelimiter} to one of the values
-@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-and @internalsref{SystemStartBracket}. A fourth delimiter,
+@code{SystemStartBar}, @code{SystemStartBrace},
+and @code{SystemStartBracket}. A fourth delimiter,
@code{systemStartSquare}, is also available, but must be
-instantiated manually. The usage of this last delimiter is shown in the
-snippet section in @ref{Deeper nested staff groups}.
+instantiated manually. The usage of this last delimiter is shown further
+down in the snippet section.
@itemize
bar lines are not connected.
@lilypond[verbatim,ragged-right,quote]
-\relative c'' { <<
+\relative c'' <<
\new Staff { c1 c }
\new Staff { c c }
->> }
+>>
@end lilypond
@item
@end itemize
According to classic engraver rules an orchestral score consists of
-staves connected only with a single line at the beginning of the system.
+staves connected only with a single line at the beginning of the system.
In LilyPond this is produced grouping the @code{Staff} contexts with
@code{<< ... >>}.
Each instrument family is grouped inside of a @code{StaffGroup} with a
-starting bracket. A group of same instruments or an instrument using
+starting bracket. A group of same instruments or an instrument using
more than one staff is grouped with braces in a @code{GrandStaff}.
As the context names tell, @code{PianoStaff} is used for notating
@snippets
-@c FIXME: Graham will deal with this. -gp
-@c snippet 201
-To display a bracket even if there is only one staff, see
+@c FIXME: not yet in master
@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
-@c {staff,display-bracket-with-only-one-staff-in-a system.ly}
-@lilypond[verbatim,ragged-right,quote]
-\score {
- \new StaffGroup <<
- % Must be one lower than your actual amount off staff lines
- \override StaffGroup.SystemStartBracket #'collapse-height = #4
- \new Staff {
- c'4 d' e' f'
- }
- >>
- }
- {
- \new PianoStaff <<
- \override PianoStaff.SystemStartBrace #'collapse-height = #4
- \new Staff {
- c'4 d' e' f'
- }
- >>
- }
-@end lilypond
+@c {use-square-bracket-at-the-start-of-a-staff-group.ly}
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{display-bracket-with-only-one-staff-in-a-system.ly}
@cindex mensurstriche layout
@cindex renaissance music
@cindex transcription of mensural music
@cindex mensural music, transcription of
-
-@c FIXME: not yet in master
-@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
-@c {mensurstriche-layout.ly}
-
-Other groupings may be achieved by changing various properties.
-E.g., the
-@q{Mensurstriche} layout common in Renaissance music, with
-bar lines running between but not through the staves, can be
-produced from a @code{StaffGroup} or @code{GrandStaff} context if
-the bar lines are made transparent in the @code{Staff} itself:
-
-@lilypond[verbatim,ragged-right,quote]
-global = {\override Staff.BarLine #'transparent = ##t
- s1 s
- %the final bar line is not interupted
- \once \override Staff.BarLine #'transparent = ##f
- \bar "|."}
-\new StaffGroup
-\relative c'' <<
- \new Staff {<< \global { c1 c } >>}
- \new Staff {<< \global { c c } >>}
->>
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{mensurstriche-layout-bar-lines-between-the-staves.ly}
@seealso
Internals Reference: @internalsref{ChoirStaff},
@internalsref{GrandStaff}, @internalsref{StaffGroup},
@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-@internalsref{SystemStartBracket}.
-
+@internalsref{SystemStartBracket}, and @internalsref{systemStartSquare}.
@node Deeper nested staff groups
There are also two inner staff contexts named @code{InnerStaffGroup}
and @code{InnerChoirStaffGroup} besides the grouping contexts mentioned
-in @ref{Grouping staves}. They behave in the same way as their simple
+in @ref{Grouping staves}. They behave in the same way as their simple
counterparts, except that they are contained in another staff grouping
-context, thus producing one more bracket on top of the existing one.
+context, thus producing one more bracket on top of the existing one.
Note that @code{GrandStaff} and @code{PianoStaff} do not have any inner
-grouping contexts. They can both be inside any other staff context,
+grouping contexts. They can both be inside any other staff context,
including inner staff groups, though.
Here is an example of an orchestral score using groupings and nesting
-of these groupings. Note that the instrument names are omited from the
+of these groupings. Note that the instrument names are omitted from the
source code, see @ref{Instrument names} how to set them.
-
@cindex staff, nested
@cindex staves, nested
@cindex nesting of staves
+@cindex system start delimiters, nested
+@cindex nested staff brackets
+@cindex brackets, nesting of
+@cindex braces, nesting of
+@cindex inner staff group
+@cindex inner choir staff group
@example
already set up for you. Just add notes, run LilyPond, and enjoy
beautiful printed scores!
-@c bad node name for ancient notation to avoid confict
+@c bad node name for ancient notation to avoid conflict
@menu
* Single staff::
* Piano templates::
* Vocal ensembles::
* Ancient notation templates::
* Jazz combo::
-* Lilypond-book templates::
+* lilypond-book templates::
@end menu
{vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
-@c bad node name to avoid node name confict
+@c bad node name to avoid node name conflict
@node Ancient notation templates
@appendixsec Ancient notation templates
@end ignore
-@node Lilypond-book templates
-@appendixsec Lilypond-book templates
+@node lilypond-book templates
+@appendixsec lilypond-book templates
These templates are for use with @code{lilypond-book}. If you're not familiar
-with this program, please refer to @rprogram{LilyPond-book}.
+with this program, please refer to @rprogram{lilypond-book}.
@appendixsubsec LaTeX
\usepackage{graphicx}
\begin{document}
-\title{A short document with lilypond and xelatex}
+\title{A short document with LilyPond and xelatex}
\maketitle
Normal \textbf{font} commands inside the \emph{text} work,
You can use this to print the \ifxetex \XeTeX{} command \else
XeTeX command \fi which is not known to normal \LaTeX .
-In normal text you can easily use lilypond commands, like this:
+In normal text you can easily use LilyPond commands, like this:
\begin{lilypond}
{a2 b c'8 c' c' c'}
\noindent
and so on.
-The fonts of snippets set with lilypond will have to be set from
+The fonts of snippets set with LilyPond will have to be set from
inside
of the snippet. For this you should read the AU on how to use
lilypond-book.
@cindex Text, other languages
@warning{To write accented and special 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
+the LilyPond file. The file must be saved as UTF-8. For more
information, see @ref{Text encoding}.}
@menu
* Writing text::
* Text markup::
-* Special text concerns::
@end menu
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
+processing, LilyPond does not perform such calculations by
default; to enable it, use
@example
@code{\textSpannerNeutral}.
The line style, as well as the text string, can be defined as an
-object property, as described in @ref{Line styles}.
+object property. This syntax is described in @ref{Line styles}.
@seealso
\mark "D.S. al Fine "
@end lilypond
-Text marks may be aligned with notation objects other than bar
-lines,
+If specified, text marks may be aligned with notation objects
+other than bar lines. These objects include @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}.
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-\relative {
- c1
- \key cis \major
- \clef alto
- \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
- \mark "on key"
- cis
- \key ces \major
+
+In such cases, text marks will be horizontally centered
+above the object. However this can be changed, as demonstrated
+on the second line of this example (in a score with multiple staves,
+this setting should be done for all the staves).
+
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
+ e1
+
+ % the RehearsalMark will be centered above the Clef
\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+ \key a \major
\clef treble
- \mark "on clef"
- ces
+ \mark "↓"
+ e
+
+ % the RehearsalMark will be centered above the TimeSignature
\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
- \key d \minor
- \clef tenor
+ \key a \major
+ \clef treble
\time 3/4
- \mark "on time"
- c
-}
-@end lilypond
-
-Possible symbols for the @code{break-align-symbols} list are
-@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}.
-
-The text marks will, by default, be aligned with the middle of the
-notation object, but this can be changed by overriding the
-@code{break-align-anchor-alignment} and @code{break-align-anchor}
-properties for the appropriate grob. For scores with multiple staves,
-this setting should be done for all the staves.
-
-@lilypond[fragment,quote,ragged-right,verbatim]
-{
+ \mark "↓"
+ e2.
+
+ % the RehearsalMark will be centered above the KeySignature
\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
- c1
- \key cis \major
+ \key a \major
+ \clef treble
+ \time 4/4
+ \mark "↓"
+ e1
+ \break
+ e
+
% the RehearsalMark will be aligned with the left edge of the KeySignature
\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
- \mark \default
- cis1
- \key ces \major
-
+ \mark "↓"
+ \key a \major
+ e
+
% the RehearsalMark will be aligned with the right edge of the KeySignature
\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
- \mark \default
- ces1
- \key cis \major
-
+ \key a \major
+ \mark "↓"
+ e
+
% the RehearsalMark will be aligned with the left edge of the KeySignature
- % and then shifted right by 2 units.
- \once \override Score.KeySignature #'break-align-anchor = #2
- \mark \default
- ces1
-}
+ % and then shifted right by 1 unit.
+ \once \override Score.KeySignature #'break-align-anchor = #1
+ \key a \major
+ \mark "↓"
+ e1
@end lilypond
Although text marks are normally only printed above the topmost
-staff, you may alter this to print them on every staff,
+staff, you may alter this to print them on every staff:
@lilypond[quote,ragged-right,verbatim,relative=2]
{
there is no next line), then the mark will not be printed at
all.
-@c TODO: add this here? -vv
-@c @node Text marks
-@c @subsubsection Text marks
-
@node Text markup
@subsection Text markup
@cindex markup text
@cindex typeset text
-Use @code{\markup} to typeset text. Commands are entered with the
-backslash @code{\}. To enter @code{\} and @code{#}, use double
+A @code{\markup} block is used to typeset text with an extensible syntax,
+called @q{markup mode}.
+Specific commands can be entered in this mode, using the
+backslash @code{\} character.
+@c TODO: move the following sentence (and add an example?) -vv
+To @emph{print} such characters as
+@code{\} and @code{#} in the output, use double
quotation marks.
@lilypond[quote,verbatim,fragment,relative=1]
@end lilypond
@noindent
-See @ref{Overview of text markup commands}, for a list of all
-commands.
+An exhaustive list of @code{\markup}-specific commands can be found in
+@ref{Text markup commands}.
-@code{\markup} is primarily used for @internalsref{TextScript}s,
-but it can also be used anywhere text is called in lilypond
+@code{\markup} blocks can be used anywhere text is called,
+and not only for @internalsref{TextScript}s objects.
@lilypond[quote,verbatim]
\header{ title = \markup{ \bold { foo \italic { bar! } } } }
}
@end lilypond
-A @code{\markup} command can also be placed on its own, away from
-any @code{\score} block, see @ref{Multiple scores in a book}.
+A @code{\markup} block can also be printed on its own at the top-level
+of the input file, away from
+any @code{\score} block. This syntax is described in
+@ref{Multiple scores in a book}.
@lilypond[quote,ragged-right,verbatim]
\markup{ Here is some text. }
@cindex font switching
-The markup in the example demonstrates font switching commands.
-The 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,
+Some font switching commands are demonstrated here. Such commands
+apply only to the first following word; several words may be affected
+by enclosing them in braces.
@example
\markup @{ \bold @{ hi there @} @}
@end example
+@c TODO: remove the following line and example? -vv
@noindent
For clarity, you can also do this for single arguments, e.g.,
\markup @{ is \italic @{ anyone @} home @}
@end example
-In markup mode you can compose expressions, similar to
+The markup mode can be used to compose expressions, similar to
mathematical expressions, XML documents, and music expressions.
-You can stack expressions grouped vertically with the command
-@code{\column}. Similarly, @code{\center-align} aligns texts by
-their center lines:
+Such expressions can be vertically stacked, horizontally centered,
+or aligned in different ways:
@lilypond[quote,verbatim,fragment,relative=1]
c1^\markup { \column { a bbbb \line { c d } } }
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
+Lists with no previous command are not kept distinct. In
+the following example, the two @code{\markup} expressions
+are equivalent:
-is equivalent to
+@c TODO: merge these two examples in a @lilypond example -vv
@example
+\center-align @{ @{ a b @} @{ c d @} @}
\center-align @{ a b c d @}
@end example
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.
+@ref{Text markup commands}, for more details.
@seealso
-This manual: @ref{Overview of text markup commands}.
+This manual: @ref{Text markup commands}.
Snippets: @lsrdir{Text,Text}
@code{\markuplines} accepts a list of markup, that is either the
result of a markup list command, or a list of markups or of markup
lists. The built-in markup list commands are described in
-@ref{Overview of text markup list commands}.
+@ref{Text markup list commands}.
@seealso
-This manual: @ref{Overview of text markup list commands}, @ref{New
+This manual: @ref{Text markup list commands}, @ref{New
markup list command definition}.
Snippets: @lsrdir{Text,Text}
Snippets: @lsrdir{Text,Text}
-@node Special text concerns
-@subsection Special text concerns
-
-@c FIXME: this section is to be removed
-@c (see comments below) -vv
-
-@menu
-* New dynamic marks::
-* Text and line spanners::
-@end menu
-
-@node New dynamic marks
-@subsubsection New dynamic marks
-
-@c FIXME: this whole section should be removed and put in
-@c "Writing text" -vv
-
-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. 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,ragged-right]
-sfzp = #(make-dynamic-script "sfzp")
-\relative c' {
- c4 c c\sfzp c
-}
-@end lilypond
-
-@cindex Dynamics, editorial
-@cindex Dynamics, parenthesis
-
-It is also possible to print dynamics in round parenthesis or
-square brackets. These are often used for adding editorial
-dynamics.
-
-@lilypond[quote,verbatim,ragged-right]
-rndf = \markup{ \center-align {\line { \bold{\italic (}
- \dynamic f \bold{\italic )} }} }
-boxf = \markup{ \bracket { \dynamic f } }
-{ c'1_\rndf c'1_\boxf }
-@end lilypond
-
-@seealso
-
-Snippets: @lsrdir{Text,Text}
-
-
-@node Text and line spanners
-@subsubsection Text and line spanners
-
-@c FIXME: this whole section has to be removed.
-@c glissando stuff should go into Expressive marks;
-@c Text spanners should go into... Text spanners.
-@c (I'm on it) --vv
-
-Some performance indications, e.g., @i{rallentando} and
-@i{accelerando} and @i{trills} are written as text and are
-extended over many measures with lines, sometimes dotted or wavy.
-
-These all use the same routines as the glissando for drawing the
-texts and the lines, and tuning their behavior is therefore also
-done in the same way. It is done with a spanner, and the routine
-responsible for drawing the spanners is
-@code{ly:line-interface::print}. This routine determines the
-exact location of the two @i{span points} and draws a line in
-between, in the style requested.
-
-Here is an example of the different line styles available, and how
-to tune them.
-
-@lilypond[relative=2,ragged-right,verbatim,fragment]
-d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
-d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
-d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
-d,2 \glissando d'2
-\override Glissando #'style = #'trill
-d,2 \glissando d'2
-@end lilypond
-
-The information that determines the end-points is computed
-on-the-fly for every graphic object, but it is possible to
-override these.
-
-@lilypond[relative=2,ragged-right,verbatim,fragment]
-e2 \glissando f
-\once \override Glissando #'bound-details #'right #'Y = #-2
-e2 \glissando f
-@end lilypond
-
-The @code{Glissando} object, like any other using the
-@code{ly:line-interface::print} routine, carries a nested
-association list. In the above statement, the value for @code{Y}
-is set to @code{-2} for the association list corresponding to the
-right end point. Of course, it is also possible to adjust the
-left side with @code{left} instead of @code{right}.
-
-If @code{Y} is not set, the value is computed from the vertical
-position of right attachment point of the spanner.
-
-In case of a line break, the values for the span-points are
-extended with contents of the @code{left-broken} and
-@code{right-broken} sublists, for example
-
-@lilypond[relative=2,ragged-right,verbatim,fragment]
-\override Glissando #'breakable = ##T
-\override Glissando #'bound-details #'right-broken #'Y = #-3
-c1 \glissando \break
-f1
-@end lilypond
-
-The following properties can be used for the
-
-@table @code
-@item Y
-This sets the Y-coordinate of the end point, in staff space. By
-default, it is the center of the bound object, so for a glissando
-it points to the vertical center of the note head.
-
-For horizontal spanners, such as text spanner and trill spanners,
-it is hardcoded to 0.
-
-@item attach-dir
-This determines where the line starts and ends in X-direction,
-relative to the bound object. So, a value of @code{-1} (or
-@code{LEFT}) makes the line start/end at the left side of the note
-head it is attached to.
-
-@item X
-This is the absolute coordinate of the end point. It is usually
-computed on the fly, and there is little use in overriding it.
-
-@item stencil
-Line spanners may have symbols at the beginning or end, which is
-contained in this sub-property. This is for internal use, it is
-recommended to use @code{text}.
-
-@item text
-This is a markup that is evaluated to yield stencil. It is used
-to put @i{cresc.} and @i{tr} on horizontal spanners.
-
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\override TextSpanner #'bound-details #'left #'text
- = \markup { \small \bold Slower }
-c2\startTextSpan b c a\stopTextSpan
-@end lilypond
-
-@item stencil-align-dir-y
-@item stencil-offset
-Without setting this, the stencil is simply put there at the
-end-point, as defined by the @code{X} and @code{Y} sub properties.
-Setting either @code{stencil-align-dir-y} or @code{stencil-offset}
-will move the symbol at the edge relative to the end point of the
-line
-
-@lilypond[relative=1,fragment,verbatim]
-\override TextSpanner #'bound-details
- #'left #'stencil-align-dir-y = #DOWN
-\override TextSpanner #'bound-details
- #'right #'stencil-align-dir-y = #UP
-
-\override TextSpanner #'bound-details
- #'left #'text = #"gggg"
-\override TextSpanner #'bound-details
- #'right #'text = #"hhhh"
-c4^\startTextSpan c c c \stopTextSpan
-@end lilypond
-
-@item arrow
-Setting this sub property to @code{#t} produce an arrowhead at the
-end of the line.
-
-@item padding
-This sub property controls the space between the specified
-end-point of the line and the actual end. Without padding, a
-glissando would start and end in the center of each note head.
-
-@end table
-
-TODO: add this somewhere
-
-@verbatim
-\new Staff {
- \override TextSpanner #'bound-details #'left-broken #'text = ##f
- \override TextSpanner #'bound-details #'left #'text = \markup {
-"start" }
- c'1 \startTextSpan \break
- c'1
- c'1 \stopTextSpan
-}
-@end verbatim
-
-
-The music function \endSpanners terminates spanners and hairpins
-after exactly one note.
-
-@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
-\endSpanners
-c2 \startTextSpan c2
-c2 \< c2
-@end lilypond
-
-When using \endSpanners it is not necessary to close
-\startTextSpan with \stopTextSpan, nor is it necessary to close
-hairpins with \!.
-
-
-
-@seealso
-
-Snippets: @lsrdir{Text,Text}
-
-Internals Reference: @internalsref{TextSpanner},
-@internalsref{Glissando}, @internalsref{VoiceFollower},
-@internalsref{TrillSpanner},
-@internalsref{line-spanner-interface}.
-
-
-
-
-
what LilyPond has done to the file. If any errors occur, please
examine this file.
-@subsubheading Unix
+@subsubheading UNIX
Create a text file called @file{test.ly} and enter:
little) space there is at the beginning of a line, but indenting
LilyPond code like this makes it much easier for humans to read.
-@c FIXME: number of backslashes?! works in html but not pdf.
@warning{each note is relative to the previous note in
the input, not relative to the @code{c''} in the initial
-@code{\\relative} command.}
+@code{@bs{}relative} command.}
@subheading Simultaneous music expressions: single staff
Time signatures entered in one staff affects all other staves by
default. On the other hand, the key signature of one staff does
-@emph{not} affect other staves. This different default behaviour
+@emph{not} affect other staves. This different default behavior
is because scores with transposing instruments are more common
than polyrhythmic scores.
above, and so they too all have properties associated with them,
such as their position, size, color, etc.
-Some layout objects are still more specialised. Phrasing slurs,
-crescendo hairpins, ottavo marks, and many other grobs are not
-localised in a single place -- they have a starting point, an
+Some layout objects are still more specialized. Phrasing slurs,
+crescendo hairpins, ottava marks, and many other grobs are not
+localized in a single place -- they have a starting point, an
ending point, and maybe other properties concerned with their
shape. Objects with an extended shape like these are called
@q{Spanners}.
@ref{Contexts and engravers}. Here for reference is a list
of the most common object and property types together with
the conventions for naming them and a couple of examples of
-some real names. We have used A to stand for any capitalised
+some real names. We have used A to stand for any capitalized
alphabetic character and aaa to stand for any number of
lower-case alphabetic characters. Other characters are used
verbatim.
As we shall see shortly, the properties of different types of
object are modified by different commands, so it is useful to
-be able to recognise the type of object from the names of its
+be able to recognize the type of object from the names of its
properties.
including @code{font-shape(symbol)}, where @code{symbol} can be
set to @code{upright}, @code{italics} or @code{caps}.
-You will notice that that @code{font-series} and @code{font-size}
+You will notice that @code{font-series} and @code{font-size}
are also listed there.
This immediately raises the question: Why are the common font
properties @code{font-series} and @code{font-size} listed under
@code{LyricText} then tell you the values for those two
properties which apply to @code{LyricText}. Other objects
which support @code{font-interface} will set these
-properties diferently when they are created.
+properties differently when they are created.
Let's see if we can now construct the @code{\override} command
to change the lyrics to italics. The object is @code{LyricText},
LilyPond. Some of them are the names of properties,
like @code{thickness} or @code{font-shape}, others are in
effect special values that can be given to properties, like
-@code{italic}. Note the distinction from arbitary
+@code{italic}. Note the distinction from arbitrary
text strings, which would appear as @code{"a text string"}.
Ok, so the @code{\override} command we need to print the lyrics
spaces must be inserted before and after the
period or dot, @q{.}, separating the context name from the
object name, as otherwise the two names are run together and
-the interpreter cannot recognise them. So the command should be:
+the interpreter cannot recognize them. So the command should be:
@example
\override Lyrics . LyricText #'font-shape = #'italic
requires is actually a list of values in internal units,
but, to avoid having to know what these are, several ways
are provided to specify colors. The first way is to use one
-of the @q{normal} colours listed in the first table in
+of the @q{normal} colors listed in the first table in
@ruser{List of colors}. To set the bar lines to white
we write:
@noindent
where the extra pair of braces after the @code{\with} clause are
-required to ensure the enclosed overrrides and music are applied
+required to ensure the enclosed overrides and music are applied
to the ossia staff.
But what is the difference between modifying the staff context by
context is created, and remain in force as the @strong{default}
values for the duration of that context, whereas
@code{\set} or @code{\override} commands embedded in the
-music are dynamic -- they make changes synchronised with
+music are dynamic -- they make changes synchronized with
a particular point in the music. If changes are unset or
reverted using @code{\unset} or @code{\revert} they return to
their default values, which will be the ones set in the
value of the @code{staff-space} property these are automatically
scaled down in length too. Note that this affects only the
vertical scale of the ossia -- the horizontal scale is determined
-by the layout of the main music in order to remain synchronised
+by the layout of the main music in order to remain synchronized
with it, so it is not affected by any of these changes in size.
Of course, if the scale of all the main music were changed in this
way then the horizontal spacing would be affected. This is
@section Placement of objects
@menu
-* Automatic behaviour::
+* Automatic behavior::
* Within-staff objects::
* Outside staff objects::
@end menu
-@node Automatic behaviour
-@subsection Automatic behaviour
+@node Automatic behavior
+@subsection Automatic behavior
There are some objects in musical notation that belong to
the staff and there are other objects that should be
tied to other objects that are so positioned. Collisions of
note heads, stems and accidentals in closely set chords are
normally avoided automatically. There are commands and
-overrides which can modify this automatic behaviour, as we
+overrides which can modify this automatic behavior, as we
shall shortly see.
Objects belonging outside the staff include things such as
placed closer to the staff.
In the following example all the markup texts have the same
-priority (since it is not explicity set). Note that @q{Text3}
+priority (since it is not explicitly set). Note that @q{Text3}
is automatically positioned close to the staff again, nestling
under @q{Text2}.
These commands are essential when writing polyphonic music to
permit interweaving melodic lines to be distinguished.
But occasionally it may be necessary to override this automatic
-behaviour. This can be done for whole sections of music or even
+behavior. This can be done for whole sections of music or even
for an individual note. The property which controls this
-behaviour is the @code{direction} property of each layout object.
+behavior is the @code{direction} property of each layout object.
We first explain what this does, and then introduce a number of
ready-made commands which avoid your having to code explicit
overrides for the more common modifications.
right or left when they point up or down. This is controlled
automatically when @code{direction} is set.
-The following example shows in bar 1 the default behaviour of
+The following example shows in bar 1 the default behavior of
stems,
with those on high notes pointing down and those on low notes
pointing up, followed by four notes with all stems forced down,
four notes with all stems forced up, and finally four notes
-reverted back to the default behaviour.
+reverted back to the default behavior.
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
a4 g c a
to the left (if @code{left} appears, or to the right
(if @code{right} appears). Conversely, if a location is not
listed, no fingering is placed there. LilyPond takes these
-contraints and works out the best placement for the fingering
+constraints and works out the best placement for the fingering
of the notes of the following chords. Note that @code{left} and
@code{right} are mutually exclusive -- fingering may be placed
only on one side or the other, not both.
control the vertical placement of individual objects, although
the results may not always be desirable. Suppose we would
like @qq{Text3} to be placed above @qq{Text4} in the example
-under Automatic behaviour, above (see @ref{Automatic behaviour}).
+under Automatic behavior, above (see @ref{Automatic behavior}).
All we need to do is to look up the priority of @code{TextScript}
in the IR or in the tables above, and increase the priority of
@qq{Text3} to a higher value:
By default, text produced by markup takes up no horizontal space
as far as laying out the music is concerned. The @code{\textLengthOn}
-command reverses this behaviour, causing the notes to be spaced
+command reverses this behavior, causing the notes to be spaced
out as far as is necessary to accommodate the text:
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c^"Text4"
@end lilypond
-The command to revert to the default behaviour is
+The command to revert to the default behavior is
@code{\textLengthOff}. Remember @code{\once} only works with
@code{\override}, @code{\set}, @code{\revert} or @code{unset},
so cannot be used with @code{\textLengthOn}.
% Turn off collision avoidance
\once \override TextScript #'outside-staff-priority = ##f
\textLengthOn % and turn on textLengthOn
-c,,2^"Long Text " % Spaces at end are honoured
+c,,2^"Long Text " % Spaces at end are honored
c''2
@end lilypond
aesthetic reasons -- they would look better with a little more
or a little less space around them.
-There are three main main approaches to resolving overlapping
+There are three main approaches to resolving overlapping
notation. They should be considered in the following order:
@enumerate
to the leftmost extent and the second is added to the rightmost
extent. Negative numbers move the edge to the left, positive to
the right, so to widen an object the first number must be negative,
-the second positive. Note that not all objects honour both
+the second positive. Note that not all objects honor both
numbers. For example, the @code{Accidental} object only takes
notice of the first (left edge) number.
@cindex force-hshift property
-Closely spaced notes in a chord, or notes occuring at the same
+Closely spaced notes in a chord, or notes occurring at the same
time in different voices, are arranged in two, occasionally more,
columns to prevent the note heads overlapping. These are called
note columns, and an object called @code{NoteColumn} is created
@end itemize
-Objects do not all have all of these properties in general.
-It is necessary to go to the IR to look up which properties
-are available for the object in question.
-
@item
Finally, when all else fails, objects may be manually repositioned
-relative to the staff center line verically, or by
+relative to the staff center line vertically, or by
displacing them by any distance to a new position. The
disadvantages are that the correct values for the repositioning
have to be worked out, often by trial and error, for every object
requested positions is selected from the list.
@end table
-Objects do not all have all of these properties in general.
+@end enumerate
+
+A particular object may not have all of these properties.
It is necessary to go to the IR to look up which properties
are available for the object in question.
-@end enumerate
-
Here is a list of the objects which are most likely to be
involved in collisions, together with the name of the object which
should be looked up in the IR in order to discover which properties
engraving process, so please do not let these difficulties put
you off! Fortunately, difficulties like these are not very common!
-The example is from Chopin's Première Ballade, Op. 23, bars 6 to
+The example is from Chopin's Première Ballade, Op. 23, bars 6 to
9, the transition from the opening Lento to Moderato.
Here, first, is what we want the output to look like, but to avoid
over-complicating the example too much we have left out the
The C is in voice two which has shift off, and the two D's are in
voices one and three, which have shift off and shift on,
respectively. So we have to shift the C a further level still
-using @code{\shiftOnn} to avoid it interferring with the two D's.
+using @code{\shiftOnn} to avoid it interfering with the two D's.
Applying these changes gives:
@lilypond[quote,verbatim,ragged-right]
Navigate to
@file{@var{installdir}/lilypond/usr/share/lilypond/current/}
-@strong{OSX}
+@strong{MacOS X}
Navigate to
@file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+
@snippets
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
+a relatively large computational task. To speed up processing, LilyPond does
not perform such calculations by default; to enable it, use
@example
will be centered between the syllables, and its length will be adjusted
depending on the space between the syllables.
-In tighly engraved music, hyphens can be removed. Whether this
+In tightly engraved music, hyphens can be removed. Whether this
happens can be controlled with the @code{minimum-distance} (minimum
distance between two syllables) and the @code{minimum-length}
(threshold below which hyphens are removed).
@subsubsection Adding dynamics marks
Stanzas differing in loudness may be indicated by putting a
-dynamics mark before each stanza. In Lilypond, everthing coming in
+dynamics mark before each stanza. In LilyPond, everything coming in
front of a stanza goes into the @code{StanzaNumber} object; dynamics marks
are no different. For technical reasons, you have to set the stanza
outside @code{\lyricmode}:
When a piece of music has many verses, they are often printed in
multiple columns across the page. An outdented verse number often
introduces each verse. The following example shows how to produce such
-output in Lilypond.
+output in LilyPond.
@lilypond[ragged-right,quote,verbatim]
melody = \relative c' {
As long as LilyPond can understand your files and produces the output
that you want, it doesn't matter what your files look like. However,
-there are a few other things to consider when writing lilypond files.
+there are a few other things to consider when writing LilyPond files.
@itemize
-@item What if you make a mistake? The structure of a lilypond
+@item What if you make a mistake? The structure of a LilyPond
file can make certain errors easier (or harder) to find.
@item What if you want to share your files with somebody
else? In fact, what if you want to alter your own files in
-a few years? Some lilypond files are understandable at
+a few years? Some LilyPond files are understandable at
first glance; other files may leave you scratching your head
for an hour.
-@item What if you want to upgrade your lilypond file for use
-with a later version of lilypond? The input syntax changes
-occasionally as lilypond improves. Most changes can be
+@item What if you want to upgrade your LilyPond file for use
+with a later version of LilyPond? The input syntax changes
+occasionally as LilyPond improves. Most changes can be
done automatically with @code{convert-ly}, but some changes
-might require manual assistance. Lilypond files can be
+might require manual assistance. LilyPond files can be
structured in order to be easier (or harder) to update.
@end itemize
The LilyPond input syntax occasionally changes. As LilyPond itself
improves, the syntax (input language) is modified accordingly. Sometimes
these changes are made to make the input easier to read and write or
-sometimes the changes are made to accomodate new features of LilyPond.
+sometimes the changes are made to accommodate new features of LilyPond.
LilyPond comes with a file that makes this updating easier:
@code{convert-ly}. For details about how to run this program, see
@itemize
@item Bug reports
-@item Sending a help request to mailists
+@item Sending a help request to mailing lists
@item Adding an example to the @uref{http://lsr.dsi.unimi.it/,
LilyPond Snippet Repository}
@end itemize
to this scheme construct. ie
\set Staff.instrumentName = #"cello"
+* All engravers should have double-quotes around them:
+ \consists "Spans_arpeggio_engraver"
+ Again, LilyPond does not strictly require this, but it is a
+ useful standard to follow.
+
* Examples should end with a complete bar if possible.
* If possible, only write one bar per line. The notes on each
@q{} - Single quotes. Used for `vague' terms.
@qq{} - Double quotes. Used for actual quotes ("he said").
-@warning{}: produces a "Note: " box. Use for important
- messages.
-
@tie{} - Variables or numbers which consist of a single character
(probably followed by a punctuation mark) should be tied
properly, either to the previous or the next word. Example:
"The letter@tie{}@q{I} is skipped"
@var - Use for variables.
-@warning{} - produces a "Note: " box.
- Any `\' used inside this must be written as `\\'.
+@warning{} - produces a "Note: " box. Use for important messages.
+
+@bs - Generates a backslash inside @warning.
+ Any `\' used inside @warning (and @q or @qq) must be written as `@bs{}'
+ (texinfo would also allow \\, but this breaks with PDF output).
Jan Nieuwenhuizen - Core development
Joe Neeman - Core development
Graham Percival - Documentation Editor and Bug Meister
-Valentin Villenave - LSR Editor
+Valentin Villenave - LSR Editor and Bug Meister
Mats Bengtsson - Support Guru
John Mandereau - Translation Meister
Milan Zamazal
Reinhold Kainhofer - musicxml2ly development
Erlend Aasland
+Stan Sanderson - Regression Checker
GRAND DOCUMENTATION PROJECT
-Trevor Daniels - main Rewriter
-Eyolf Østrem - main Rewriter
-Kurt Kroon - Glossary updates
+Trevor Daniels - Assistant Documentation Editor
+Eyolf Østrem - NR Rewriter
+Jay Hamilton - NR Rewriter
+Till Retting - NR Rewriter
+Ralph Palmer - NR Rewriter
+Patrick McCarty - NR Rewriter
+Kurt Kroon - Glossary Updates
Alard de Boer - Formatting
-Ralph Palmer - Formatting
Michael Rasmussen - Formatting
Trevor Baca - Inspirational Headwords
+Reinhold Kainhofer - Technical Aid
+Neil Puttock - Snippet Editor
TRANSLATORS
sys.stderr.write ('''
Unsafe files printed in lsr-unsafe.txt: CHECK MANUALLY!
- git add input/lsr
+ git add input/lsr/*.ly
xargs git-diff HEAD < lsr-unsafe.txt
''')
attach an extra symbol to the drum, and restrict the number of lines.
" }
% begin verbatim
-drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh \repeat unfold 5 { hhc8 hho hhc8 hh16 hh } hhc4 r4 r2 }
-drl = \drummode { \repeat unfold 3 { bd4 sn8 bd bd4 << bd ss >> } bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
-timb = \drummode { \repeat unfold 2 { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb } }
+drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 }
+drl = \drummode { bd4 sn8 bd bd4 << bd ss >> bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
+timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb }
\score {
- \repeat volta 2 {
- <<
- \new DrumStaff \with {
- drumStyleTable = #timbales-style
- \override StaffSymbol #'line-count = #2
- \override BarLine #'bar-size = #2
- } <<
- \set Staff.instrumentName = "timbales"
- \timb
- >>
- \new DrumStaff <<
- \set Staff.instrumentName = "drums"
- \new DrumVoice { \stemUp \drh }
- \new DrumVoice { \stemDown \drl }
- >>
+ <<
+ \new DrumStaff \with {
+ drumStyleTable = #timbales-style
+ \override StaffSymbol #'line-count = #2
+ \override BarLine #'bar-size = #2
+ } <<
+ \set Staff.instrumentName = "timbales"
+ \timb
>>
- }
+ \new DrumStaff <<
+ \set Staff.instrumentName = "drums"
+ \new DrumVoice { \stemUp \drh }
+ \new DrumVoice { \stemDown \drl }
+ >>
+ >>
\layout {}
\midi {
\context {
lsrtags = "text, vocal-music"
texidoc = "
You can specify different horizontal alignment for your lyrics, by
-overriding the #'self-alignment-X property of the LyricText object. #-1
-is left, #0 is center and #1 is right; however, you can use #LEFT,
-#CENTER and #RIGHT as well.
+overriding the @code{#'self-alignment-X} property of the
+@code{LyricText} object. @code{#-1} is left, @code{#0} is center and
+@code{#1} is right; however, you can use @code{#LEFT}, @code{#CENTER}
+and @code{#RIGHT} as well.
" }
% begin verbatim
\relative c'' {
\header {
lsrtags = "rhythms"
texidoc = "
-In time signature 2/2 or 4/4 the beam are @code{Â Â Â Â Â _____ Â Â Â Â
-Â _ Â _ Default | | | | I want | | | |. } Use a \"macro\" with
-#(override-auto-beam-setting '.....
-
-
-
+In a simple time signature of 2/2 or 4/4, 8th notes are beamed by
+default as two sets of four. Using a macro which overrides the
+autobeaming behaviour, this snippet changes the beaming to quarter note
+beats.
" }
% begin verbatim
% Automatic beams two per two in 4/4 or 2/2 time signature
-% _____
+% _____
% Default | | | |
-% _ _
+% _ _
% I want | | | |
-% The good way adapted from David Bobrof
+% The good way adapted from David Bobroff
% macro for beamed two per two in 2/2 and 4/4 time signature
-qbeam={
- #(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff)
- #(override-auto-beam-setting '(end 1 8 * *) 2 4 'Staff)
- #(override-auto-beam-setting '(end 1 8 * *) 3 4 'Staff)
- }
-% other macros
-timeFractionstyle = { \override Staff.TimeSignature #'style = #'() }
-textn = ^\markup { without the macro }
-texty = ^\markup { with the macro }
+qbeam= {
+ #(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff)
+ #(override-auto-beam-setting '(end 1 8 * *) 2 4 'Staff)
+ #(override-auto-beam-setting '(end 1 8 * *) 3 4 'Staff)
+}
\score {
- <<
- \new Staff << \relative c'' {
- \timeFractionstyle
- \time 4/4
- g8\textn g g g g g g g g g g g4 g8 g g
- }
- >>
-
- %Use the macro
-
- \new Staff << \relative c'' {
- \timeFractionstyle
- \time 4/4
- \qbeam
- g8\texty g g g g g g g g g g g4 g8 g g
- }
- >>
- >>
+ <<
+ \new Staff \relative c'' {
+ \time 4/4
+ g8^\markup { without the macro } g g g g g g g |
+ g g g g4 g8 g g |
+ }
+ %Use the macro
+ \new Staff \relative c'' {
+ \time 4/4
+ \qbeam
+ g8^\markup { with the macro } g g g g g g g |
+ g g g g4 g8 g g |
+ }
+ >>
+ \layout {
+ \context {
+ \Staff
+ \override TimeSignature #'style = #'()
+ }
+ }
}
" }
% begin verbatim
\relative {
- <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup{A tiny e}_\markup{A big c}
+ <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
}
+\layout { ragged-right = ##t }
+
\times 2/3 { c8 c c } \times 2/3 { c8 c c }
\override TupletNumber #'text = #tuplet-number::calc-fraction-text
\times 2/3 { c8 c c }
- \override TupletNumber #'transparent = ##t
+ \override TupletNumber #'stencil = ##f
\times 2/3 { c8 c c }
}
fragment = \relative c' {
c4 f4 <e d'>4
- <g a>8 <e a> a4 c2 <d b>4 e4
- c4
+ <g a>8 <e a> a4 c2 <d b>4
+ e2 c2
}
<<
\header {
lsrtags = "simultaneous-notes, text"
texidoc = "
-The part combiner tool ( \\partcombine command ) allows you to combine
-different parts on a same Staff. You can choose whether you want or
-don't want to add texts such as \"solo\" or \"a2\", by defining the
-printPartCombineTexts property.
+The part combiner tool ( @code{\\partcombine} command ) allows you to
+combine different parts on the same staff. Text directions such as
+\"solo\" or \"a2\" are added by default; to remove them, simply set the
+property @code{printPartCombineTexts} to \"false\". For vocal scores
+(hymns), there is no need to add \"solo\"/\"a2\" texts, so they should
+be switched off. However, you'd better not use it if there are any
+solos, as they won't be indicated. In such cases, you may simply want
+to use standard LilyPond polyphony. This snippet presents the three
+ways two parts can be printed on a same staff: standard polyphony,
+@code{\\partcombine} whitout texts, and @code{\\partcombine} with texts.
-For vocal scores (hymns), there is no need to add \"solo\"/\"a2\"
-texts, so they should be switched off. However, you'd better not use it
-if there are any solos, as they won't be indicated. In such cases, you
-may simply want to use standard LilyPond polyphony.
-
-This snippet presents the three ways two parts can be printed on a same
-staff : standard polyphony, \\partcombine whitout texts, and
-\\partcombine with texts.
" }
% begin verbatim
-musicUp = {
+musicUp = \relative c'' {
\time 4/4
- \relative c'' {
- a4 c4.(g8) a4 |
- g4 e' g,( a8 b) |
- c b a2.
- }
-}
-
-musicDown = {
- \relative c'' {
- g4 e4.(d8) c4 |
- r2 g'4( f8 e) |
- d2 a
- }
+ a4 c4.( g8) a4 |
+ g4 e' g,( a8 b) |
+ c b a2.
}
-\score{
- \new Staff {
- \set Staff.instrumentName = "Standard polyphony "
- << \musicUp \\ \musicDown >>
+musicDown = \relative c'' {
+ g4 e4.( d8) c4 |
+ r2 g'4( f8 e) |
+ d2 \stemDown a
}
- \layout{
- indent = 6.0\cm
+\score {
+ <<
+ <<
+ \new Staff {
+ \set Staff.instrumentName = "Standard polyphony "
+ << \musicUp \\ \musicDown >>
+ }
+ \new Staff \with { printPartCombineTexts = ##f } {
+ \set Staff.instrumentName = "PartCombine without texts "
+ \partcombine \musicUp \musicDown
+ }
+ \new Staff {
+ \set Staff.instrumentName = "PartCombine with texts "
+ \partcombine \musicUp \musicDown
+ }
+ >>
+ >>
+ \layout {
+ indent = 6.0\cm
+ \context {
+ \Score
+ \override SystemStartBar #'collapse-height = #30
+ }
}
}
-
-\score{
- \context Staff {
- \set Staff.instrumentName = "PartCombine without texts "
- \partcombine \musicUp \musicDown
- }
- \layout{
- indent = 6.0\cm
- \context {
- \Voice
- printPartCombineTexts = ##f
- }
- }
-}
-
-\score{
- \context Staff {
- \set Staff.instrumentName = "PartCombine with texts "
- \partcombine \musicUp \musicDown
- }
- \layout{
- indent = 6.0\cm
- \context {
- \Voice
- printPartCombineTexts = ##t
- }
- }
-}
-
" }
% begin verbatim
#(define (compound-time one two num)
- (markup #:override '(baseline-skip . 0) #:number
- (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))))))
-
+ (markup #:override '(baseline-skip . 0) #:number
+ (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))))
+ ))
\relative {
- %% compound time signature hack
- \time 5/8
+ % compound time signature hack
\override Staff.TimeSignature #'stencil = #ly:text-interface::print
- \override Staff.TimeSignature #'text = #(compound-time "2" "3" "8" )
+ \override Staff.TimeSignature #'text = #( compound-time "2" "3" "8" )
+ \time 5/8
#(override-auto-beam-setting '(end 1 8 5 8) 1 4)
- c8 d e fis gis | c fis, gis e d | c8 d e4 gis8
+ c8 d e fis gis |
+ c fis, gis e d |
+ c8 d e4 gis8
}
\header {
lsrtags = "staff-notation, tweaks-and-overrides"
texidoc = "
-If there is only one staff in one of the staff types ChoirStaff,
-InnerChoirStaff, InnerStaffGroup and StaffGroup, the bracket won't be
-displayed as standard behaviour. This can be changed with:
+If there is only one staff in one of the staff types @code{ChoirStaff},
+@code{InnerChoirStaff}, @code{InnerStaffGroup} or @code{StaffGroup},
+the bracket and the starting bar line will not be displayed as standard
+behaviour. This can be changed with:
@code{\\override [staffcontext].SystemStartBracket #'collapse-height =
#1}
+ and
+
+@code{\\override [staffcontext].SystemStartBar #'collapse-height = #1}
This applies to all staff contexts with
@code{systemStartDelimiter}-property set to @code{'SystemStartBracket}.
+
For staff contexts with @code{'SystemStartBrace}, such as
-@code{PianoStaff}, this tweaking can be used as well.
+@code{PianoStaff}, this tweaking can be used as well.
+
+
+
" }
% begin verbatim
\score {
- \new StaffGroup <<
- % Must be one lower than your actual amount off staff lines
- \override StaffGroup.SystemStartBracket #'collapse-height = #4
- \new Staff {
- c'4 d' e' f'
- }
- >>
- }
- {
- \new PianoStaff <<
- \override PianoStaff.SystemStartBrace #'collapse-height = #4
- \new Staff {
- c'4 d' e' f'
- }
- >>
+\new StaffGroup <<
+ % Must be lower than your actual amount off staff lines
+ \override StaffGroup.SystemStartBracket #'collapse-height = #1
+ \override Score.SystemStartBar #'collapse-height = #1
+ \new Staff {
+ c'4 d' e' f'
+ }
+ >>
+ }
+ {
+ \new PianoStaff <<
+ \override PianoStaff.SystemStartBrace #'collapse-height = #1
+ \override Score.SystemStartBar #'collapse-height = #1
+ \new Staff {
+ c'4 d' e' f'
+ }
+ >>
}
\layout {
ragged-right = ##t
Ties may be engraved manually by changing the @code{tie-configuration}
property of the @code{TieColumn} object. The first number indicates the
distance from the center of the staff in staff-spaces, and the second
-number indicates the direction (1=up, -1=down).
+number indicates the direction (1 = up, -1 = down).
" }
% begin verbatim
\relative c' {
c1 \mark \default
c1 \mark \default
c1 \mark \default
-
-\break
-
- \set Score.markFormatter = #format-mark-numbers
+ \break
+ \set Score.markFormatter = #format-mark-numbers
c1 \mark #1
c1 \mark \default
c1 \mark \default
\header {
lsrtags = "rhythms, percussion"
texidoc = "
-Though the set-time-signature thing was not the most essential here, it
-has been included to show the beat of this piece (which is a template
-of a real balkan song!).
+Though the polymetric time signature shown was not the most essential
+item here, it has been included to show the beat of this piece (which
+is the template of a real Balkan song!).
" }
% begin verbatim
-#(define (compound-time one two three four five six seven eight nine ten
+#(define (set-time-signature one two three four five six seven eight nine ten
eleven num)
(markup #:override '(baseline-skip . 0) #:number
(#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))
\set Staff.instrumentName = "Bb Sop."
\key g \major \time 25/8
\override Staff.TimeSignature #'stencil = #ly:text-interface::print
- \override Staff.TimeSignature #'text = #(compound-time "3" "2" "2" "3"
+ \override Staff.TimeSignature #'text = #(set-time-signature "3" "2" "2" "3"
"2" "2" "2" "2 " "3" "2" "2" "8" )
\set Staff.beatGrouping = #'(3 2 2 3 2 2 2 2 3 2 2)
#(override-auto-beam-setting '(end * * 25 8) 3 8)
" }
% begin verbatim
\relative c {
+ \time 2/4
% from upper staffline (position 4) to centre (position 0)
\override Beam #'positions = #'(2 . 0)
- c'8[ c]
+ c'8 c
% from centre to one above centre (position 2)
\override Beam #'positions = #'(0 . 1)
- c[ c]
+ c c
}
--- /dev/null
+\version "2.11.38"\r
+\r
+\header {\r
+ doctitle = "Broken crescendo hairpin"\r
+ lsrtags = "expressive-marks"\r
+ texidoc = "\r
+In order to make parts of a crescendo hairpin invisible, the following\r
+method is used: A white rectangle is drawn on top of the respective\r
+part of the crescendo hairpin, making it invisible. The rectangle is\r
+defined as postscript code within a text markup.\r
+\r
+To fine-tune the position and size of the markup, the number\r
+preceding @code{setgray} in the postscript definition can be set to a\r
+value <1 making it grey. The two numbers before @code{scale} in the\r
+postscript code are responsible for the width and height of the\r
+rectangle, the two numbers before @code{translate} change the x- and\r
+y-origin of the rectangle. \r
+\r
+Make sure to put the hairpin in a lower layer than the text markup to\r
+actually draw the rectangle above the hairpin. \r
+" }\r
+\r
+\score {\r
+ \relative c' {\r
+ << {\r
+ \dynamicUp\r
+ \override DynamicLineSpanner #'staff-padding = #4\r
+ r2 r16 c'8.\pp r4\r
+ } \\ {\r
+ \override DynamicLineSpanner #'layer = #0\r
+ des,2\mf\< ~\r
+ \override TextScript #'layer = #2\r
+ des16_\markup {\r
+ \postscript #"1.9 -8 translate 5 4 scale 1 setgray 0 0 moveto 0 1\r
+ lineto 1 1 lineto 1 0 lineto 0 0 lineto fill"\r
+ }\r
+ r8. des4 ~ des16->\sff\r
+ } >>\r
+ }\r
+ \layout { ragged-right = ##t }\r
+}\r
doctitle = "Changing form of multi-measure rests"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
-If there are 10 or fewer measures of rest, LilyPond prints
+If there are ten or fewer measures of rests, LilyPond prints
a series of longa and breve rests (called in German
-Kirchenpausen - church rests) within the staff and
-prints a simple line otherwise. This default number of 10
+\"Kirchenpausen\" - church rests) within the staff and
+prints a simple line otherwise. This default number of ten
may be changed by an override:
"}
\relative c'' {
-\compressFullBarRests
-R1*2 | R1*5 | R1*9
-\override MultiMeasureRest #'expand-limit = 3
-R1*2 | R1*5 | R1*9
+ \compressFullBarRests
+ R1*2 | R1*5 | R1*9
+ \override MultiMeasureRest #'expand-limit = 3
+ R1*2 | R1*5 | R1*9
}
-
\version "2.11.6"
-\layout { ragged-right= ##t }
+\layout { ragged-right = ##t }
\header {
doctitle = "Makam"
lsrtags = "pitches"
- texidoc = "Makam is Turkish type of melody that uses 1/9 tone
+ texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
microtonal alterations."
}
(gc . ,(ly:make-pitch -1 4 KOMA))
(ac . ,(ly:make-pitch -1 5 KOMA))
(bc . ,(ly:make-pitch -1 6 KOMA))
-
+
(cb . ,(ly:make-pitch -1 0 BAKIYE))
(db . ,(ly:make-pitch -1 1 BAKIYE))
(eb . ,(ly:make-pitch -1 2 BAKIYE))
(gb . ,(ly:make-pitch -1 4 BAKIYE))
(ab . ,(ly:make-pitch -1 5 BAKIYE))
(bb . ,(ly:make-pitch -1 6 BAKIYE))
-
+
(ck . ,(ly:make-pitch -1 0 KUCUK))
(dk . ,(ly:make-pitch -1 1 KUCUK))
(ek . ,(ly:make-pitch -1 2 KUCUK))
(gk . ,(ly:make-pitch -1 4 KUCUK))
(ak . ,(ly:make-pitch -1 5 KUCUK))
(bk . ,(ly:make-pitch -1 6 KUCUK))
-
+
(cbm . ,(ly:make-pitch -1 0 BUYUKMUCENNEB))
(dbm . ,(ly:make-pitch -1 1 BUYUKMUCENNEB))
(ebm . ,(ly:make-pitch -1 2 BUYUKMUCENNEB))
(gbm . ,(ly:make-pitch -1 4 BUYUKMUCENNEB))
(abm . ,(ly:make-pitch -1 5 BUYUKMUCENNEB))
(bbm . ,(ly:make-pitch -1 6 BUYUKMUCENNEB))
-
+
;; f for flat.
(cfc . ,(ly:make-pitch -1 0 (- KOMA)))
(dfc . ,(ly:make-pitch -1 1 (- KOMA)))
(gfb . ,(ly:make-pitch -1 4 (- BAKIYE)))
(afb . ,(ly:make-pitch -1 5 (- BAKIYE)))
(bfb . ,(ly:make-pitch -1 6 (- BAKIYE)))
-
+
(cfk . ,(ly:make-pitch -1 0 (- KUCUK)))
(dfk . ,(ly:make-pitch -1 1 (- KUCUK)))
(efk . ,(ly:make-pitch -1 2 (- KUCUK)))
(gfk . ,(ly:make-pitch -1 4 (- KUCUK)))
(afk . ,(ly:make-pitch -1 5 (- KUCUK)))
(bfk . ,(ly:make-pitch -1 6 (- KUCUK)))
-
+
(cfbm . ,(ly:make-pitch -1 0 (- BUYUKMUCENNEB)))
(dfbm . ,(ly:make-pitch -1 1 (- BUYUKMUCENNEB)))
(efbm . ,(ly:make-pitch -1 2 (- BUYUKMUCENNEB)))
(gfbm . ,(ly:make-pitch -1 4 (- BUYUKMUCENNEB)))
(afbm . ,(ly:make-pitch -1 5 (- BUYUKMUCENNEB)))
(bfbm . ,(ly:make-pitch -1 6 (- BUYUKMUCENNEB)))
-
)
-%% set pitch names.
-pitchnames = \makamPitchNames
+% Set pitch names.
+pitchnames = \makamPitchNames
#(ly:parser-set-note-names parser makamPitchNames)
-makamGlyphs = #'((1 . "accidentals.doublesharp")
+makamGlyphs = #'(
+ (1 . "accidentals.doublesharp")
(8/9 . "accidentals.sharp.slashslashslash.stemstem")
(5/9 . "accidentals.sharp.slashslashslash.stem")
(4/9 . "accidentals.sharp")
)
\relative {
-
+
%{ define alteration <-> symbol mapping. The following glyphs are available.
accidentals.sharp
accidentals.sharp.slashslash.stem
accidentals.flatflat.slash
accidentals.doublesharp
%}
-
- \override Accidental #'glyph-name-alist = \makamGlyphs
+ \override Accidental #'glyph-name-alist = \makamGlyphs
\override Staff.KeySignature #'glyph-name-alist = \makamGlyphs
- \set Staff.keySignature = #'(
- (3 . 4/9)
- (6 . -1/9))
+ \set Staff.keySignature = #'((3 . 4/9) (6 . -1/9))
- c cc db fk gbm gfc gfb efk dfbm
+ c cc db fk
+ gbm gfc gfb efk
+ fk db cc c
}
-\version "2.11.23"
-\layout { ragged-right= ##t }
-\header {
- doctitle = "Making an object invisible with the transparent property"
- lsrtags = "rhythms,tweaks-and-overrides"
- texidoc = "
-Setting the @code{transparent} property will cause an object to be
-printed in `invisible ink': the object is not printed, but all its
-other behavior is retained. The object still takes up space, it takes
-part in collisions, and slurs, and ties and beams can be attached to it.
-
-
-The snippet demonstrates how to connect different voices using ties.
-Normally, ties only connect two notes in the same voice. By
-introducing a tie in a different voice, and blanking the first up-stem
-in that voice, the tie appears to cross voices.
-" }
-
-\relative c'' <<
- {
- \once \override Stem #'transparent = ##t
- b8~ b8\noBeam
- } \\ {
- b[ g8]
- }
->>
+\version "2.11.23"\r
+\layout { ragged-right = ##t }\r
+\header {\r
+ doctitle = "Making an object invisible with the transparent property"\r
+ lsrtags = "rhythms,tweaks-and-overrides"\r
+ texidoc = "\r
+Setting the @code{transparent} property will cause an object to be\r
+printed in \"invisible ink\": the object is not printed, but all its\r
+other behavior is retained. The object still takes up space, it takes\r
+part in collisions, and slurs, ties and beams can be attached to it.\r
+\r
+\r
+The snippet demonstrates how to connect different voices using ties. \r
+Normally, ties only connect two notes in the same voice. By\r
+introducing a tie in a different voice, and blanking the first up-stem\r
+in that voice, the tie appears to cross voices. To prevent the blanked stem's\r
+flag from interfering with tie positioning, the stem is extended.\r
+" }\r
+\r
+\relative c'' {\r
+ \time 2/4\r
+ << {\r
+ \once \override Stem #'transparent = ##t\r
+ \once \override Stem #'length = #8\r
+ b8 ~ b\noBeam\r
+ \once \override Stem #'transparent = ##t\r
+ \once \override Stem #'length = #8\r
+ g ~ g\noBeam\r
+ } \\ {\r
+ b g g e\r
+ } >>\r
+}\r
\version "2.11.42"
-\layout { ragged-right= ##t }
+\layout { ragged-right = ##t }
\header {
doctitle = "Positioning multi-measure rests"
lsrtags = "rhythms,tweaks-and-overrides"
"}
\relative c'' {
-% Multi-measure rests by default are set under the 2nd line
-R1
-% They can be moved with an override
-\override MultiMeasureRest #'staff-position = #-2
-R1
-% A value of 0 is the default position;
-% the following trick moves the rest to the center line
-\override MultiMeasureRest #'staff-position = #-0.01
-R1
-% Multimeasure rests in odd-numbered voices are under the top line
-<< {R1} \\ {a1} >>
-% Multi-measure rests in even-numbered voices are under the bottom line
-<< {c1} \\ {R1} >>
-% They remain separated even in empty bars
-<< {R1} \\ {R1} >>
-% This brings them together even though there are two voices
-\compressFullBarRests
-<<
- \revert MultiMeasureRest #'staff-position
- {R1*3}
-\\
- \revert MultiMeasureRest #'staff-position
- {R1*3}
->>
+ % Multi-measure rests by default are set under the second line
+ R1
+ % They can be moved with an override
+ \override MultiMeasureRest #'staff-position = #-2
+ R1
+ % A value of 0 is the default position;
+ % the following trick moves the rest to the center line
+ \override MultiMeasureRest #'staff-position = #-0.01
+ R1
+ % Multi-measure rests in odd-numbered voices are under the top line
+ << { R1 } \\ { a1 } >>
+ % Multi-measure rests in even-numbered voices are under the bottom line
+ << { c1 } \\ { R1 } >>
+ % They remain separated even in empty bars
+ << { R1 } \\ { R1 } >>
+ % This brings them together even though there are two voices
+ \compressFullBarRests
+ <<
+ \revert MultiMeasureRest #'staff-position
+ { R1*3 }
+ \\
+ \revert MultiMeasureRest #'staff-position
+ { R1*3 }
+ >>
}
-
doctitle = "Quoting another voice with transposition"
lsrtags = "pitches,staff-notation"
texidoc = "Quotations take into account the transposition of both
-source and target. In this example, all instruments play sounding
-central C, the target is a instrument in F. The target part may be
-@code{\\transpose}d. In this case, all the pitches (including the
-quoted ones) will transposed as well."
+source and target. In this example, all instruments play sounding
+middle C; the target is an instrument in F. The target part may be
+transposed using @code{\\transpose}. In this case, all the pitches (including the
+quoted ones) are transposed."
}
-\addQuote clarinet {
- \transposition bes
- d'16 d'16 d'8
- d'16 d'16 d'8
- d'16 d'16 d'8
- d'16 d'16 d'8
+\addQuote clarinet {
+ \transposition bes
+ \repeat unfold 8 { d'16 d'16 d'8 }
}
-\addQuote sax {
- \transposition es'
- a8 a a a a a a a
+\addQuote sax {
+ \transposition es'
+ \repeat unfold 16 { a8 }
}
quoteTest = {
- \transposition f % french horn
-
- g'4
- << \quoteDuring #"clarinet" { \skip 4 } s4^"clar" >>
- << \quoteDuring #"sax" { \skip 4 } s4^"sax" >>
+ % french horn
+ \transposition f
+ g'4
+ << \quoteDuring #"clarinet" { \skip 4 } s4^"clar." >>
+ << \quoteDuring #"sax" { \skip 4 } s4^"sax." >>
+ g'4
}
-<< \quoteTest
- \new Staff
- << \transpose c' d' \quoteTest
- s4_"up 1 tone"
- >>
->>
+{
+ \set Staff.instrumentName = \markup \center-align { "Horn" "in F" }
+ \quoteTest
+ \transpose c' d' << \quoteTest s4_"up a tone" >>
+}
doctitle = "Transposing music with minimum accidentals"
lsrtags = "pitches"
texidoc = "There is a way to enforce enharmonic modifications for
-notes in order to have the minimum number of accidentals. In that
-case, ``Double accidentals should be removed, as well as E-sharp
-(-> F), bC (-> B), bF (-> E), B-sharp (-> C).'', as proposed by a
-request for a new feature. In this manner, the most natural
-enharmonic notes are chosen in this example. "
-}
+notes in order to have the minimum number of accidentals. In this
+case, the following rules apply:
+
+\"Double accidentals should be removed, as well as E sharp (-> F),
+C flat (-> B), F flat (-> E) and B sharp (-> C)\".
-#(define (naturalise-pitch p)
+In this manner, the most natural enharmonic notes are chosen.
+"}
+
+#(define (naturalize-pitch p)
(let* ((o (ly:pitch-octave p))
(a (* 4 (ly:pitch-alteration p)))
; alteration, a, in quarter tone steps, for historical reasons
(n (ly:pitch-notename p)))
-
(cond
((and (> a 1) (or (eq? n 6) (eq? n 2)))
(set! a (- a 2))
((and (< a -1) (or (eq? n 0) (eq? n 3)))
(set! a (+ a 2))
(set! n (- n 1))))
-
(cond
((> a 2) (set! a (- a 4)) (set! n (+ n 1)))
((< a -2) (set! a (+ a 4)) (set! n (- n 1))))
-
(if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
(if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
-
(ly:make-pitch o n (/ a 4))))
-#(define (naturalise music)
+#(define (naturalize music)
(let* ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element))
(p (ly:music-property music 'pitch)))
-
(if (pair? es)
(ly:music-set-property!
music 'elements
- (map (lambda (x) (naturalise x)) es)))
-
+ (map (lambda (x) (naturalize x)) es)))
(if (ly:music? e)
(ly:music-set-property!
music 'element
- (naturalise e)))
-
+ (naturalize e)))
(if (ly:pitch? p)
(begin
- (set! p (naturalise-pitch p))
+ (set! p (naturalize-pitch p))
(ly:music-set-property! music 'pitch p)))
-
music))
-music = \relative c' { c4 d e f g a b c }
-
-naturaliseMusic =
+naturalizeMusic =
#(define-music-function (parser location m)
(ly:music?)
- (naturalise m))
+ (naturalize m))
+
+music = \relative c' { c4 d e g }
\score {
- \new Staff {
- \transpose c ais \music
- \naturaliseMusic \transpose c ais \music
- \break
+ \new Staff {
+ \transpose c ais \music
+ \naturalizeMusic \transpose c ais \music
\transpose c deses \music
- \naturaliseMusic \transpose c deses \music
+ \naturalizeMusic \transpose c deses \music
}
- \layout { ragged-right = ##t}
+ \layout { ragged-right = ##t }
}
-
-
--- /dev/null
+
+\header {
+ texidoc = "The parenthesize function should also work on single notes (not inside chords), rests and on whole chords (each note of the chord is parenthesized). Also, parenthesizing articulations, dynamics and text markup is possible. On all other music expressions, parenthesize does not have an effect.
+
+ Measure 1: Three parenthesized notes (staccato not parenthesized), one note with staccato in parentheses; Measure 2: Chord and two rests in parentheses (accent and markup not); Measure 3: note (no parentheses) with \p in parentheses, with text in parentheses, and note in parentheses with p not in parentheses, rest (no parentheses); Measure 4: shows that \parenthesize does not apply to other expressions like SequentialMusic"
+}
+
+
+\paper {
+ ragged-right = ##t
+}
+
+\version "2.11.43"
+
+
+\relative c'' {
+ % parentheses on single notes (with articulations), inside chord and articulation
+ \parenthesize c \parenthesize c-. <\parenthesize c> c-\parenthesize-. |
+ % parenthesized rests and whole chords
+ \parenthesize <c e g>4-> \parenthesize r \parenthesize r2^"rest" |
+ % parenthesizing dynamics and text markup
+ c4-\parenthesize\p c-\parenthesize-"Text" \parenthesize c\p r4 |
+ % parenthesizing other music expressions does nothing
+ \parenthesize {c4 c-. <c e g> r} \parenthesize|
+}
\header {
- texidoc ="The new part combiner detects a2, solo1 and solo2, and prints i
+ texidoc ="The new part combiner detects a2, solo1 and solo2, and prints
texts accordingly.
"
\header {
- texidoc = "Horizontal spacing is bounded by of the current measure length.
+ texidoc = "Horizontal spacing is bounded by the current measure length.
This means that the 3/8 setting does not affect the whole rest spacing."
}
#(define-music-function (parser loc arg) (ly:music?)
(_i "Tag @var{arg} to be parenthesized.")
- (set! (ly:music-property arg 'parenthesize) #t)
+ (if (memq 'event-chord (ly:music-property arg 'types))
+ ; arg is an EventChord -> set the parenthesize property on all child notes and rests
+ (map
+ (lambda (ev)
+ (if (or (memq 'note-event (ly:music-property ev 'types))
+ (memq 'rest-event (ly:music-property ev 'types)))
+ (set! (ly:music-property ev 'parenthesize) #t)))
+ (ly:music-property arg 'elements))
+ ; No chord, simply set property for this expression:
+ (set! (ly:music-property arg 'parenthesize) #t))
arg)
%% for lambda*
#(define output-empty-score-list #f)
#(ly:add-file-name-alist '(%s
))\n
-""" % '\n'.join('("%s.ly" . "%s")\n' % (ly.basename (), name)
- for ly in lys))
+""" % '\n'.join(['("%s.ly" . "%s")\n' % (ly.basename (), name)
+ for ly in lys]))
def do_process_cmd (chunks, input_name, options):
snippets = [c for c in chunks if isinstance (c, LilypondSnippet)]
TFM_FILES += $(MF_TFM_FILES)
MF2PT1_OPTIONS=--rounding=0.0001 \
- --family=$(<:%.mf=%) \
- --fullname=$(<:%.mf=%) \
- --name=$(<:%.mf=%)
+ --family=$(notdir $(<:%.mf=%)) \
+ --fullname=$(notdir $(<:%.mf=%)) \
+ --name=$(notdir $(<:%.mf=%))
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2008-03-07.10}
+\def\texinfoversion{2008-03-31.10}
%
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
\openin 1 #1.jpeg \ifeof 1
\openin 1 #1.JPG \ifeof 1
\openin 1 #1.pdf \ifeof 1
- \errhelp = \nopdfimagehelp
- \errmessage{Could not find image file #1 for pdf}%
+ \openin 1 #1.PDF \ifeof 1
+ \errhelp = \nopdfimagehelp
+ \errmessage{Could not find image file #1 for pdf}%
+ \else \gdef\pdfimgext{PDF}%
+ \fi
\else \gdef\pdfimgext{pdf}%
\fi
\else \gdef\pdfimgext{JPG}%
\closein 1
\endgroup
%
- % without \immediate, pdftex seg faults when the same image is
+ % without \immediate, ancient pdftex seg faults when the same image is
% included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
\ifnum\pdftexversion < 14
\immediate\pdfimage
%
% Make link in pdf output.
\ifpdf
- \leavevmode
- \getfilename{#4}%
{\indexnofonts
\turnoffactive
+ % This expands tokens, so do it after making catcode changes, so _
+ % etc. don't get their TeX definitions.
+ \getfilename{#4}%
+ %
% See comments at \activebackslashdouble.
{\activebackslashdouble \xdef\pdfxrefdest{#1}%
\backslashparens\pdfxrefdest}%
%
+ \leavevmode
+ \startlink attr{/Border [0 0 0]}%
\ifnum\filenamelength>0
- \startlink attr{/Border [0 0 0]}%
- goto file{\the\filename.pdf} name{\pdfxrefdest}%
+ goto file{\the\filename.pdf} name{\pdfxrefdest}%
\else
- \startlink attr{/Border [0 0 0]}%
- goto name{\pdfmkpgn{\pdfxrefdest}}%
+ goto name{\pdfmkpgn{\pdfxrefdest}}%
\fi
}%
\setcolor{\linkcolor}%
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
- \nobreak\bigskip
+ \nobreak\medskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
% above and below.
\nobreak\vskip\parskip
\nobreak
- \line\bgroup
\fi
%
+ % Leave vertical mode so that indentation from an enclosing
+ % environment such as @quotation is respected. On the other hand, if
+ % it's at the top level, we don't want the normal paragraph indentation.
+ \noindent
+ %
% Output the image.
\ifpdf
\dopdfimage{#1}{#2}{#3}%
\epsfbox{#1.eps}%
\fi
%
- \ifimagevmode \egroup \bigbreak \fi % space after the image
+ \ifimagevmode \medskip \fi % space after the standalone image
\endgroup}