* harmony::
* hemiola::
* homophony::
+* hook::
* hymn meter::
* interval::
* inversion::
F: altération,
D: Alteration,
NL: verhoging of verlaging,
-DK: ?,
-S: ?,
+DK: Forandring,
+S: Förändring,
FI: muunnettu.
An alteration is the modification, raising or lowering, of a note's
@node augmentation
@section augmentation
-ES: ?,
-I: ?,
+ES: aumentación,
+I: aumentazione,
F: augmentation,
-D: ?,
-NL: ?,
-DK: ?,
-S: ?,
+D: Augmentation,
+NL: Augmentatio,
+DK: Forøgelse,
+S: Förstoring,
FI: aika-arvojen pidentäminen.
@c TODO: add definition.
@ref{polyphony}.
+@node hook
+@section hook
+
+@seealso
+@ref{flag}.
+
+
@node hymn meter
@section hymn meter
such as @code{c4\ff}. The available dynamic marks are
@code{\ppppp}, @code{\pppp}, @code{\ppp}, @code{\pp}, @code{\p},
@code{\mp}, @code{\mf}, @code{\f}, @code{\ff}, @code{\fff},
-@code{\ffff}, @code{\fp}, @code{\sf}, @code{\sff}, @code{\sp},
-@code{\spp}, @code{\sfz}, and @code{\rfz}. Dynamic marks may be
-manually placed above or below the staff; see @ref{Direction and
-placement}.
+@code{\ffff}, @code{\fffff}, @code{\fp}, @code{\sf}, @code{\sff},
+@code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}. Dynamic
+marks may be manually placed above or below the staff; see
+@ref{Direction and placement}.
@lilypond[verbatim,quote,relative=2]
c2\ppp c\mp
@cindex non-empty texts
@cindex quoted text
-Simple @qq{quoted text} indications may be added to a score.
+Simple @qq{quoted text} indications may be added to a score, as
+demonstrated in the following example. Such indications may be
+manually placed above or below the staff, using the syntax described
+in @ref{Direction and placement}.
@lilypond[quote,verbatim,relative=2]
a8^"pizz." g f e a4-"scherz." f
a4_\markup { \tiny scherz. \bold molto } f
@end lilypond
-@qq{Quoted text} and @code{\markup} commands may be manually
-placed above or below the staff; see @ref{Direction and
-placement}.
-
By default, text indications do not influence the note spacing.
However, their widths can be taken into account:
in the following example, the first text string does not affect
@end lilypond
-@predefined
@funindex \textLengthOn
-@code{\textLengthOn},
+@funindex textLengthOn
@funindex \textLengthOff
+@funindex textLengthOff
+
+@predefined
+@code{\textLengthOn},
@code{\textLengthOff}.
@endpredefined
Internals Reference:
@rinternals{TextScript}.
+@cindex text outside margin
+@cindex margin, text running over
+@cindex text, keeping inside margin
+@cindex lyrics, keeping inside margin
+
@knownissues
@node Text spanners
@unnumberedsubsubsec Text spanners
-@cindex Text spanners
+@cindex text spanners
Some performance indications, e.g., @notation{rallentando} or
@notation{accelerando}, are written as text and are extended over
-multiple notes with dotted lines.
-Such objects, called @qq{spanners}, may be created
-from one note to another using the following syntax:
+multiple notes with dotted lines. Such objects, called @qq{spanners},
+may be created from one note to another using the following syntax:
@lilypond[verbatim,quote,relative=2]
\override TextSpanner #'(bound-details left text) = "rit."
e,\stopTextSpan
@end lilypond
+@cindex text spanners, formatting
+@cindex formatting text spanners
+
@noindent
-The string to be printed is set through
-object properties. By default it is printed in italic characters,
-but different formatting can be obtained using
-@code{\markup} blocks, as described in @ref{Formatting text}.
+The string to be printed is set through object properties. By default
+it is printed in italic characters, but different formatting can be
+obtained using @code{\markup} blocks, as described in @ref{Formatting
+text}.
@lilypond[quote,relative=2,verbatim]
\override TextSpanner #'(bound-details left text) =
The line style, as well as the text string, can be defined as an
object property. This syntax is described in @ref{Line styles}.
-Text spanners may be manually placed above or below the staff; see
-@ref{Direction and placement}.
+
+@funindex \textSpannerUp
+@funindex textSpannerUp
+@funindex \textSpannerDown
+@funindex textSpannerDown
+@funindex \textSpannerNeutral
+@funindex textSpannerNeutral
@predefined
-@funindex textSpannerUp
@code{\textSpannerUp},
-@funindex textSpannerDown
@code{\textSpannerDown},
-@funindex textSpannerNeutral
@code{\textSpannerNeutral}.
@endpredefined
@seealso
Notation Reference:
@ref{Line styles},
-@ref{Dynamics},
-@ref{Direction and placement}.
+@ref{Dynamics}.
Snippets:
@rlsr{Text}.
@node Text marks
@unnumberedsubsubsec Text marks
+
+@cindex text marks
+@cindex marks, text
+@cindex text on bar line
@cindex coda on bar line
@cindex segno on bar line
@cindex fermata on bar line
@cindex bar lines, symbols on
+
@funindex \mark
+@funindex mark
+@funindex \markup
+@funindex markup
Various text elements may be added to a score using
the syntax described in @ref{Rehearsal marks}:
@unnumberedsubsubsec Separate text
@cindex separate text
+@cindex text, separate
@cindex standalone text
@cindex top-level text
+@cindex text, top-level
@cindex text, standalone
+
@funindex \markup
+@funindex markup
A @code{\markup} block can exist by itself, outside of any
any @code{\score} block, as a @qq{top-level
@end lilypond
@noindent
-This allows printing text separately
-from the music, which is particularly
-useful when the input file contains
-several music pieces, as described in
-@ref{Multiple scores in a book}.
+This allows printing text separately from the music, which is
+particularly useful when the input file contains several music pieces,
+as described in @ref{Multiple scores in a book}.
@lilypond[quote,verbatim]
\score {
requires, are described in @ref{Multi-page markup}.
-@predefined
+@funindex \markup
+@funindex markup
@funindex \markuplines
+@funindex markuplines
+
+@predefined
@code{\markup},
@code{\markuplines}.
@endpredefined
@cindex text markup
@cindex markup text
@cindex typeset text
+
@funindex \markup
+@funindex markup
A @code{\markup} block is used to typeset text with an extensible
syntax called @qq{markup mode}.
@cindex markup expressions
+@cindex expressions, markup
@cindex markup syntax
+@cindex synatax, markup
The markup syntax is similar to LilyPond's usual syntax: a
@code{\markup} expression is enclosed in curly braces @code{@{
@dots{} @}}. A single word is regarded as a minimal expression,
and therefore does not need to be enclosed with braces.
-Unlike simple @qq{quoted text} indications, @code{\markup} blocks
-may contain nested expressions or markup commands,
-entered using the backslash @code{\} character.
-Such commands only affect the first following expression.
+Unlike simple @qq{quoted text} indications, @code{\markup} blocks may
+contain nested expressions or markup commands, entered using the
+backslash @code{\} character. Such commands only affect the first
+following expression.
@lilypond[quote,verbatim,relative=2]
a1-\markup intenso
@cindex special characters in markup mode
@cindex markup mode, special characters
@cindex reserved characters, printing
+@cindex printing reserved characters
@cindex printing special characters
@cindex quoted text in markup mode
+@cindex markup mode, quoted text
-A @code{\markup} block may also contain quoted text strings.
-Such strings are treated as minimal text expressions, and
-therefore any markup command or special character (such as
-@code{\} and @code{#}) will be printed verbatim without affecting
-the formatting of the text. Double quotation marks themselves
-may be printed by preceding them with backslashes.
+A @code{\markup} block may also contain quoted text strings. Such
+strings are treated as minimal text expressions, and therefore any
+markup command or special character (such as @code{\} and @code{#})
+will be printed verbatim without affecting the formatting of the text.
+Double quotation marks themselves may be printed by preceding them
+with backslashes.
@lilypond[quote,verbatim,relative=2]
a1^"\italic markup..."
a a
@end lilypond
-To be treated as a distinct expression, a list of words needs
-to be enclosed with double quotes or preceded by a command.
-The way markup expressions are defined affects how these
-expressions will be stacked, centered and aligned; in the
-following example, the second @code{\markup} expression is
-treated the same as the first one:
+To be treated as a distinct expression, a list of words needs to be
+enclosed with double quotes or preceded by a command. The way markup
+expressions are defined affects how these expressions will be stacked,
+centered and aligned; in the following example, the second
+@code{\markup} expression is treated the same as the first one:
@lilypond[quote,verbatim,relative=2]
c1^\markup { \center-column { a bbb c } }
@unnumberedsubsubsec Selecting font and font size
@cindex font switching
+@cindex changing fonts
+@cindex switching fonts
+
@funindex \italic
+@funindex italic
@funindex \bold
+@funindex bold
@funindex \underline
+@funindex underline
Basic font switching is supported in markup mode:
@cindex font size
@cindex text size
+
@funindex \fontsize
+@funindex fontsize
@funindex \smaller
+@funindex smaller
@funindex \larger
+@funindex larger
@funindex \magnify
+@funindex magnify
The size of the characters can also be altered in different ways:
@itemize
@cindex subscript
@cindex superscript
+
@funindex \super
+@funindex super
@funindex \sub
+@funindex sub
-Text may be printed as subscript or superscript. By default
-these are printed in a smaller size, but a normal size can be used as well:
+Text may be printed as subscript or superscript. By default these are
+printed in a smaller size, but a normal size can be used as well:
@lilypond[quote,verbatim]
\markup {
@cindex font families
-The markup mode provides an easy way to select alternate
-font families. The default serif font, of roman type, is
-automatically selected unless specified otherwise; on the
-last line of the following example, there is no difference
-between the first and the second word.
+The markup mode provides an easy way to select alternate font
+families. The default serif font, of roman type, is automatically
+selected unless specified otherwise; on the last line of the following
+example, there is no difference between the first and the second word.
@lilypond[quote,verbatim]
\markup {
@end lilypond
@noindent
-Some of these font families, used for specific items
-such as numbers or dynamics, do not provide all
-characters, as mentioned in @ref{New dynamic marks} and
-@ref{Manual repeat marks}.
+Some of these font families, used for specific items such as numbers
+or dynamics, do not provide all characters, as mentioned in @ref{New
+dynamic marks} and @ref{Manual repeat marks}.
@c \concat is actually documented in Align (it is not
@c a font-switching command). But we need it here. -vv
-When used inside a word, some font-switching or formatting
-commands may produce an unwanted blank space. This can
-easily be solved by concatenating the text elements together:
+When used inside a word, some font-switching or formatting commands
+may produce an unwanted blank space. This can easily be solved by
+concatenating the text elements together:
@lilypond[quote,verbatim]
\markup {
}
@end lilypond
-An exhaustive list of font switching, and custom font usage
+An exhaustive list of font switching commands and custom font usage
commands can be found in @ref{Font}.
Defining custom font sets is also possible, as explained in
@ref{Fonts}.
+@funindex \teeny
+@funindex teeny
+@funindex \tiny
+@funindex tiny
+@funindex \small
+@funindex small
+@funindex \normalsize
+@funindex normalsize
+@funindex \large
+@funindex large
+@funindex \huge
+@funindex huge
+@funindex \smaller
+@funindex smaller
+@funindex \larger
+@funindex larger
+
@predefined
-@funindex \teeny
@code{\teeny},
-@funindex \tiny
@code{\tiny},
-@funindex \small
@code{\small},
-@funindex \normalsize
@code{\normalsize},
-@funindex \large
@code{\large},
-@funindex \huge
@code{\huge},
-@funindex \smaller
@code{\smaller},
-@funindex \larger
@code{\larger}.
@endpredefined
@cindex text, aligning
@cindex aligning text
+@cindex aligning markup text
+@cindex aligning markups
+@cindex markups, aligning
+@cindex markup text, aligning
-This subsection discusses how to place text in markup mode.
-Markup objects can also be moved as a whole, using the syntax
-described in @rlearning{Moving objects}.
+This subsection discusses how to place text in markup mode. Markup
+objects can also be moved as a whole, using the syntax described in
+@rlearning{Moving objects}.
@c Padding commands should be mentioned on this page, but
@c most of these require \box to be more clearly illustrated. -vv
@cindex text, horizontal alignment
@cindex horizontal text alignment
+
@funindex \left-align
+@funindex left-align
@funindex \center-align
+@funindex center-align
@funindex \right-align
+@funindex right-align
-Markup objects may be aligned in different ways. By default,
-a text indication is aligned on its left edge: in the following
-example, there is no difference
-between the first and the second markup.
+Markup objects may be aligned in different ways. By default, a text
+indication is aligned on its left edge: in the following example,
+there is no difference between the first and the second markup.
@lilypond[quote,verbatim,relative=2]
d1-\markup { poco }
@end lilypond
@funindex \halign
+@funindex halign
-Horizontal alignment may be fine-tuned
-using a numeric value:
+Horizontal alignment may be fine-tuned using a numeric value:
@lilypond[quote,verbatim,relative=2]
a1-\markup { \halign #-1 poco }
@end lilypond
@noindent
-Some objects may have alignment procedures of their own,
-and therefore are not affected by these commands. It is
-possible to move such markup objects as a whole, as shown
-for instance in @ref{Text marks}.
+Some objects may have alignment procedures of their own, and therefore
+are not affected by these commands. It is possible to move such
+markup objects as a whole, as shown for instance in @ref{Text marks}.
@cindex text, vertical alignment
@cindex vertical text alignment
+
@funindex \raise
+@funindex raise
@funindex \lower
+@funindex lower
+@funindex \null
+@funindex null
+
+@c QUERY Should the function of ``\null'' be clarified? rp
-Vertical alignment is a bit more complex. As stated above,
-markup objects can be moved as a whole; however, it is also
-possible to move specific elements inside a markup block.
-In this case, the element to be moved needs to be preceded
-with an @emph{anchor point}, that can be another markup element
-or an invisible object. The following example demonstrates these
-two possibilities; the last markup in this example has no anchor
-point, and therefore is not moved.
+Vertical alignment is a bit more complex. As stated above, markup
+objects can be moved as a whole; however, it is also possible to move
+specific elements inside a markup block. In this case, the element to
+be moved needs to be preceded with an @emph{anchor point}, that can be
+another markup element or an invisible object. The following example
+demonstrates these two possibilities; the last markup in this example
+has no anchor point, and therefore is not moved.
@lilypond[quote,verbatim,relative=1]
d2^\markup {
@end lilypond
@funindex \general-align
+@funindex general-align
@funindex \translate
+@funindex translate
@funindex \translate-scaled
+@funindex translate-scaled
-Some commands can affect both the horizontal and vertical
-alignment of text objects in markup mode. Any object
-affected by these commands must be preceded with an
-anchor point:
+Some commands can affect both the horizontal and vertical alignment of
+text objects in markup mode. Any object affected by these commands
+must be preceded with an anchor point:
@lilypond[quote,verbatim,relative=1]
d2^\markup {
a'4 a g2 a
@end lilypond
-@funindex \column
-@funindex \center-column
-
@cindex multi-line markup
+@cindex markup, multi-line
@cindex multi-line text
+@cindex text, multi-line
+@cindex text in columns
@cindex columns, text
-A markup object may include several lines of text.
-In the following example, each element or expression
-is placed on its own line, either left-aligned or centered:
+@funindex \column
+@funindex column
+@funindex \center-column
+@funindex center-column
+
+A markup object may include several lines of text. In the following
+example, each element or expression is placed on its own line, either
+left-aligned or centered:
@lilypond[quote,verbatim]
\markup {
}
@end lilypond
-@funindex \fill-line
-
@cindex centering text on the page
+@cindex text, centering on the page
+@cindex markup, centering on the page
-Similarly, a list of elements or expressions may be
-spread to fill the entire horizontal line width (if there
-is only one element, it will be centered on the page).
-These expressions can, in turn, include multi-line text
-or any other markup expression:
+@funindex \fill-line
+@funindex fill-line
+
+Similarly, a list of elements or expressions may be spread to fill the
+entire horizontal line width (if there is only one element, it will be
+centered on the page). These expressions can, in turn, include
+multi-line text or any other markup expression:
@lilypond[quote,verbatim]
\markup {
}
@end lilypond
-@funindex \wordwrap
-@funindex \justify
-
@cindex wordwrapped text
@cindex justified text
+@cindex text, justified
+@cindex text, wordwrapped
+@cindex markup text, wordwrapped
+@cindex markup text, justified
+
+@funindex \wordwrap
+@funindex wordwrap
+@funindex \justify
+@funindex justify
-Long text indications can also be automatically wrapped
-accordingly to the given line width. These will be
-either left-aligned or justified, as shown in
-the following example.
+Long text indications can also be automatically wrapped accordingly to
+the given line width. These will be either left-aligned or justified,
+as shown in the following example.
@lilypond[quote,verbatim]
\markup {
}
@end lilypond
-An exhaustive list of text alignment commands
-can be found in @ref{Align}.
+@cindex text alignment commands
+@cindex markup text alignment commands
+@cindex alignment, text, commands
+
+An exhaustive list of text alignment commands can be found in
+@ref{Align}.
@seealso
@cindex graphics, embedding
@cindex drawing graphic objects
+@cindex graphic objects, drawing
+@cindex embedding graphic objects
+@cindex graphic objects, embedding
-Various graphic objects may be added to a score,
-using markup commands.
+Various graphic objects may be added to a score, using markup
+commands.
+
+@cindex decorating text
+@cindex framing text
+@cindex text, framing
+@cindex text, decorating
+@cindex markup text, decorating
+@cindex markup text, framing
@funindex \box
+@funindex box
@funindex \circle
+@funindex circle
@funindex \rounded-box
+@funindex rounded-box
@funindex \bracket
+@funindex bracket
@funindex \hbracket
+@funindex hbracket
-@cindex decorating text
-@cindex framing text
-
-Some markup commands allow decoration of text elements
-with graphics, as demonstrated in the following example.
+Some markup commands allow decoration of text elements with graphics,
+as demonstrated in the following example.
@lilypond[quote,verbatim]
\markup \fill-line {
}
@end lilypond
+@cindex padding around text
+@cindex text padding
+@cindex markup text padding
+
@funindex \pad-markup
+@funindex pad-markup
@funindex \pad-x
+@funindex pad-x
@funindex \pad-to-box
+@funindex pad-to-box
@funindex \pad-around
+@funindex pad-around
-@cindex padding around text
-@cindex text padding
-
-Some commands may require an increase in the padding around
-the text; this is achieved with some markup commands
-exhaustively described in @ref{Align}.
+Some commands may require an increase in the padding around the text;
+this is achieved with some markup commands exhaustively described in
+@ref{Align}.
@lilypond[quote,verbatim]
\markup \fill-line {
}
@end lilypond
+@cindex graphic notation
+@cindex symbols, non-musical
+@cindex non-musical symbols
+@cindex notation, graphic
+
@funindex \combine
+@funindex combine
@funindex \draw-circle
+@funindex draw-circle
@funindex \filled-box
+@funindex filled-box
@funindex \triangle
+@funindex triangle
@funindex \draw-line
+@funindex draw-line
@funindex \arrow-head
+@funindex arrow-head
-@cindex graphic notation
-@cindex symbols, non-musical
-
-Other graphic elements or symbols may be printed
-without requiring any text. As with any markup
-expression, such objects can be combined.
+Other graphic elements or symbols may be printed without requiring any
+text. As with any markup expression, such objects can be combined.
@lilypond[quote,verbatim]
\markup {
}
@end lilypond
-@funindex \epsfile
-@funindex \postscript
-
@cindex embedded graphics
@cindex images, embedding
@cindex graphics, embedding
@cindex postscript
-Advanced graphic features include the ability to
-include external image files converted to the
-Encapsulated PostScript format (@emph{eps}), or
-to directly embed graphics into the input file,
-using native PostScript code. In such a case, it
-may be useful to explicitly specify the size of the
-drawing, as demonstrated below:
+@funindex \epsfile
+@funindex epsfile
+@funindex \postscript
+@funindex postscript
+
+Advanced graphic features include the ability to include external
+image files converted to the Encapsulated PostScript format
+(@emph{eps}), or to directly embed graphics into the input file, using
+native PostScript code. In such a case, it may be useful to
+explicitely specify the size of the drawing, as demonstrated below:
@lilypond[quote,verbatim,relative=1]
c1^\markup {
c
@end lilypond
-An exhaustive list of graphics-specific commands
-can be found in @ref{Graphic}.
+An exhaustive list of graphics-specific commands can be found in
+@ref{Graphic}.
@seealso
@node Music notation inside markup
@unnumberedsubsubsec Music notation inside markup
-Various musical notation elements may be added
-to a score, inside a markup object.
+@cindex notation inside markup
+@cindex music inside markup
+@cindex markup, music notation inside
+
+Various musical notation elements may be added to a score, inside a
+markup object.
-Notes and accidentals can be entered using markup
-commands:
+Notes and accidentals can be entered using markup commands:
@lilypond[quote,verbatim,relative=2]
a2 a^\markup {
}
@end lilypond
-More generally, any available musical symbol may be
-included separately in a markup object, as demonstrated
-below; an exhaustive list of these symbols and their
-names can be found in @ref{The Feta font}.
+More generally, any available musical symbol may be included
+separately in a markup object, as demonstrated below; an exhaustive
+list of these symbols and their names can be found in @ref{The Feta
+font}.
@lilypond[quote,verbatim,relative=2]
c2
@end lilypond
@noindent
-Another way of printing non-text glyphs is described in
-@ref{Fonts explained}. This is useful for printing braces of
-various sizes.
+Another way of printing non-text glyphs is described in @ref{Fonts
+explained}. This is useful for printing braces of various sizes.
The markup mode also supports diagrams for specific
instruments:
@noindent
Such diagrams are documented in @ref{Instrument Specific Markup}.
-A whole score can even be nested inside a markup object.
-In such a case, the nested @code{\score} block must
-contain a @code{\layout} block, as demonstrated here:
+@cindex score inside markup
+@cindex markup, score inside
+
+A whole score can even be nested inside a markup object. In such a
+case, the nested @code{\score} block must contain a @code{\layout}
+block, as demonstrated here:
@lilypond[quote,verbatim,relative=1]
c4 d^\markup {
c d e f
@end lilypond
-An exhaustive list of music notation related commands can be
-found in @ref{Music}.
+An exhaustive list of music notation related commands can be found in
+@ref{Music}.
@seealso
@node Multi-page markup
@unnumberedsubsubsec Multi-page markup
-Although standard markup objects are not breakable, a
-specific syntax makes it possible to enter lines of text that can
-spread over multiple pages:
+@cindex multi-page markup
+@cindex markup, multi-page
+@cindex markup text, multi-page
+@cindex text spread over multiple pages
+
+@funindex \markuplines
+@funindex markuplines
+@funindex \justified-lines
+@funindex justified-lines
+@funindex \wordwrap-lines
+@funindex wordwrap-lines
+
+Although standard markup objects are not breakable, a specific syntax
+makes it possible to enter lines of text that can spread over multiple
+pages:
@lilypond[quote,verbatim]
\markuplines {
Installed files:
@file{scm/@/define@/-markup@/-commands@/.scm}.
+@funindex \markuplines
+@funindex markuplines
@predefined
-@funindex \markuplines
@code{\markuplines}.
@endpredefined
@node Fonts
@subsection Fonts
-This section presents the way fonts are handled,
-and how they may be changed in scores.
+This section presents the way fonts are handled, and how they may be
+changed in scores.
@menu
* Fonts explained::
@cindex Pango
@cindex fonts, explained
@cindex braces, various sizes
+@cindex fonts, non-text in markup
+@cindex non-text fonts in markup
+
@funindex font-interface
-Fonts are handled through several libraries.
-FontConfig is used to detect available fonts on the system;
-the selected fonts are rendered using Pango.
+Fonts are handled through several libraries. FontConfig is used to
+detect available fonts on the system; the selected fonts are rendered
+using Pango.
-Music notation fonts can be described as a set of
-specific glyphs, ordered in several families.
-The following syntax allows various LilyPond @code{feta} non-text
-fonts to be used directly in markup mode:
+Music notation fonts can be described as a set of specific glyphs,
+ordered in several families. The following syntax allows various
+LilyPond @code{feta} non-text fonts to be used directly in markup
+mode:
@lilypond[quote,verbatim,relative=2]
a1^\markup {
@end lilypond
@noindent
-However, all these glyphs except the braces of various sizes
-contained in @code{fetaBraces} are available using the
-simpler syntax described in @ref{Music notation inside markup}.
+However, all these glyphs except the braces of various sizes contained
+in @code{fetaBraces} are available using the simpler syntax described
+in @ref{Music notation inside markup}.
-When using the glyphs contained in @code{fetaBraces}, the size of
-the brace is specified by the numerical part of the glyph name, in
+When using the glyphs contained in @code{fetaBraces}, the size of the
+brace is specified by the numerical part of the glyph name, in
arbitrary units. Any integer from @code{0} to @code{575} inclusive
may be specified, @code{0} giving the smallest brace. The optimum
value must be determined by trial and error. These glyphs are all
left braces; right braces may be obtained by rotation, see
@ref{Rotating objects}.
-Three families of text fonts are made available: the
-@emph{roman} (serif) font, that defaults to New Century
-Schoolbook, the @emph{sans} font and the monospaced
-@emph{typewriter} font -- these last two families are
-determined by the Pango installation.
+Three families of text fonts are made available: the @emph{roman}
+(serif) font, that defaults to New Century Schoolbook, the @emph{sans}
+font and the monospaced @emph{typewriter} font -- these last two
+families are determined by the Pango installation.
-Each family may include different shapes and series.
-The following example demonstrates the ability to select
-alternate families, shapes, series and sizes. The value
-supplied to @code{font-size} is the required change from the
-default size.
+Each family may include different shapes and series. The following
+example demonstrates the ability to select alternate families, shapes,
+series and sizes. The value supplied to @code{font-size} is the
+required change from the default size.
@lilypond[quote,verbatim,relative=2]
\override Score.RehearsalMark #'font-family = #'typewriter
@end lilypond
@noindent
-A similar syntax may be used in markup mode, however in this case
-it is preferable to use the simpler syntax explained in
-@ref{Selecting font and font size}:
+A similar syntax may be used in markup mode; however in this case it
+is preferable to use the simpler syntax explained in @ref{Selecting
+font and font size}:
@lilypond[quote,verbatim]
\markup {
}
@end lilypond
-Although it is easy to switch between preconfigured fonts,
-it is also possible to use other fonts, as explained in the
-following sections: @ref{Single entry fonts} and
-@ref{Entire document fonts}.
+Although it is easy to switch between preconfigured fonts, it is also
+possible to use other fonts, as explained in the following sections:
+@ref{Single entry fonts} and @ref{Entire document fonts}.
@seealso
@node Single entry fonts
@unnumberedsubsubsec Single entry fonts
-Any font that is installed on the operating system and recognized
-by FontConfig may be used in a score, using the following syntax:
+Any font that is installed on the operating system and recognized by
+FontConfig may be used in a score, using the following syntax:
@lilypond[quote,verbatim,relative=2]
\override Staff.TimeSignature #'font-name = #"Charter"
}
@end lilypond
+@cindex fonts, finding available
+@cindex finding available fonts
+@cindex listing available fonts
+@cindex available fonts, listing
+
@funindex show-available-fonts
-The following command displays a list of all available fonts
-on the operating system:
+The following command displays a list of all available fonts on the
+operating system:
@example
lilypond -dshow-available-fonts x
explanation of fonts, see @ref{Fonts explained}.
@cindex font families, setting
+@cindex fonts, changing for entire document
+
@funindex make-pango-font-tree
@lilypond[verbatim,quote]
static bool left_less (Interval_t<T> const &a, Interval_t<T> const &b)
{
- return a[LEFT] < b[RIGHT];
+ return a[LEFT] < b[LEFT];
}
};
}
LY_DEFINE (ly_context_property, "ly:context-property",
- 2, 0, 0, (SCM c, SCM name),
- "Return the value of @var{name} from context @var{c}.")
+ 2, 0, 0, (SCM context, SCM sym),
+ "Return the value for property @var{sym} in @var{context}.")
{
- LY_ASSERT_SMOB (Context, c, 1);
- LY_ASSERT_TYPE (ly_is_symbol, name, 2);
+ LY_ASSERT_SMOB (Context, context, 1);
+ LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
- Context *t = unsmob_context (c);
- return t->internal_get_property (name);
+ Context *t = unsmob_context (context);
+ return t->internal_get_property (sym);
}
LY_DEFINE (ly_context_set_property_x, "ly:context-set-property!",
LY_DEFINE (ly_dir_p, "ly:dir?",
1, 0, 0, (SCM s),
- "A type predicate. The direction@tie{}@code{s} is @code{-1},"
- " @code{0} or@tie{}@code{1}, where @code{-1} represents"
- " left or down and @code{1} represents right or up.")
+ "Is @var{s} a direction? Valid directions are @code{-1},"
+ " @code{0}, or@tie{}@code{1}, where @code{-1} represents"
+ " left or down, @code{1} represents right or up, and @code{0}"
+ " represents a neutral direction.")
{
if (scm_is_number (s))
{
}
LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get",
- 2, 1, 0, (SCM key, SCM achain, SCM dfault),
+ 2, 1, 0, (SCM key, SCM achain, SCM val),
"Return value for @var{key} from a list of alists @var{achain}."
- " If no entry is found, return @var{dfault} or @code{#f} if no"
- " @var{dfault} is specified.")
+ " If no entry is found, return @var{val} or @code{#f} if"
+ " @var{val} is not specified.")
{
if (scm_is_pair (achain))
{
if (scm_is_pair (handle))
return scm_cdr (handle);
else
- return ly_chain_assoc_get (key, scm_cdr (achain), dfault);
+ return ly_chain_assoc_get (key, scm_cdr (achain), val);
}
- return dfault == SCM_UNDEFINED ? SCM_BOOL_F : dfault;
+ return val == SCM_UNDEFINED ? SCM_BOOL_F : val;
}
LY_DEFINE (ly_grob_property_data, "ly:grob-property-data",
2, 0, 0, (SCM grob, SCM sym),
- "Retrieve @var{sym} for @var{grob} but don't process callbacks.")
+ "Return the value for property @var{sym} of @var{grob},"
+ " but do not process callbacks.")
{
Grob *sc = unsmob_grob (grob);
}
LY_DEFINE (ly_grob_property, "ly:grob-property",
- 2, 1, 0, (SCM grob, SCM sym, SCM deflt),
- "Return the value of a value in grob@tie{}@var{g} of property"
- " @var{sym}. It returns @code{'()} (end-of-list) or"
- " @var{deflt} (if specified) if @var{sym} is undefined"
- " in@tie{}@var{g}.")
+ 2, 1, 0, (SCM grob, SCM sym, SCM val),
+ "Return the value for property @var{sym} of @var{grob}."
+ " If no value is found, return @var{val} or @code{'()}"
+ " if @var{val} is not specified.")
{
Grob *sc = unsmob_grob (grob);
-
+
LY_ASSERT_SMOB (Grob, grob, 1);
LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
- if (deflt == SCM_UNDEFINED)
- deflt = SCM_EOL;
+ if (val == SCM_UNDEFINED)
+ val = SCM_EOL;
SCM retval = sc->internal_get_property (sym);
if (retval == SCM_EOL)
- retval = deflt;
+ retval = val;
return retval;
}
" properties are variables that are specific to one grob."
" Typically, lists of other objects, or results from"
" computations are stored in mutable properties. In"
- " particular, every call to @code{set-grob-property} (or its"
- " C++ equivalent) sets a mutable property.\n"
+ " particular, every call to @code{ly:grob-set-property!}"
+ " (or its C++ equivalent) sets a mutable property.\n"
"\n"
"The properties @code{after-line-breaking} and"
" @code{before-line-breaking} are dummies that are not"
SCM ly_offset2scm (Offset);
Offset ly_scm2offset (SCM);
SCM ly_chain_assoc (SCM key, SCM achain);
-SCM ly_chain_assoc_get (SCM key, SCM achain, SCM dfault);
+SCM ly_chain_assoc_get (SCM key, SCM achain, SCM val);
SCM ly_assoc_cdr (SCM key, SCM alist);
SCM ly_assoc_get (SCM key, SCM alist, SCM def);
Interval ly_scm2interval (SCM);
DECLARE_UNSMOB(Prob,prob);
SCM ly_prob_set_property_x (SCM system, SCM sym, SCM value);
-SCM ly_prob_property (SCM system, SCM sym, SCM dfault);
+SCM ly_prob_property (SCM prob, SCM sym, SCM val);
SCM ly_prob_type_p (SCM obj, SCM sym);
Real height (Real airplane) const;
Real max_height () const;
void set_minimum_height (Real height);
+ void clear ();
bool is_empty () const;
};
void set_distance (Real);
void set_min_distance (Real);
+ void ensure_min_distance (Real);
void set_inverse_stretch_strength (Real);
void set_inverse_compress_strength (Real);
void set_blocking_force (Real);
return sc->get_length ().smobbed_copy ();
}
-LY_DEFINE (ly_music_property,
- "ly:music-property", 2, 1, 0, (SCM mus, SCM sym, SCM dfault),
- "Get the property @var{sym} of music expression @var{mus}."
- " If @var{sym} is undefined, return @code{'()}.")
+LY_DEFINE (ly_music_property, "ly:music-property",
+ 2, 1, 0, (SCM mus, SCM sym, SCM val),
+ "Return the value for property @var{sym} of music expression"
+ " @var{mus}. If no value is found, return @var{val} or"
+ " @code{'()} if @var{val} is not specified.")
{
LY_ASSERT_TYPE (unsmob_music, mus, 1);
- return ly_prob_property (mus, sym, dfault);
+ return ly_prob_property (mus, sym, val);
}
LY_DEFINE (ly_music_set_property_x, "ly:music-set-property!",
LY_DEFINE (ly_music_p, "ly:music?",
1, 0, 0, (SCM obj),
- "Type predicate.")
+ "Is @var{obj} a Music object?")
{
return scm_from_bool (unsmob_music (obj));
}
LY_DEFINE (ly_music_list_p, "ly:music-list?",
1, 0, 0, (SCM lst),
- "Type predicate: Return true if @var{lst} is a list"
- " of music objects.")
+ "Is @var{lst} a list of music objects?")
{
if (scm_list_p (lst) == SCM_BOOL_T)
while (scm_is_pair (lst))
}
else if (scm_is_pair (scores_))
{
- SCM proc = paper_->c_variable ("page-breaking-wrapper");
- pages_ = scm_apply_0 (proc, scm_list_1 (self_scm ()));
+ SCM page_breaking = paper_->c_variable ("page-breaking");
+ pages_ = scm_apply_0 (page_breaking, scm_list_1 (self_scm ()));
+ SCM post_process = paper_->c_variable ("page-post-process");
+ if (ly_is_procedure (post_process))
+ scm_apply_2 (post_process, paper_->self_scm (), pages_, SCM_EOL);
/* set systems_ from the pages */
if (systems_ == SCM_BOOL_F)
LY_DEFINE (ly_paper_system_p, "ly:paper-system?",
1, 0, 0, (SCM obj),
- "Type predicate.")
+ "Is @var{obj} a Prob object of type @code{paper-system}?")
{
return ly_prob_type_p (obj, ly_symbol2scm ("paper-system"));
}
}
LY_DEFINE (ly_prob_property, "ly:prob-property",
- 2, 1, 0, (SCM obj, SCM sym, SCM dfault),
- "Return the value for @var{sym}.")
+ 2, 1, 0, (SCM prob, SCM sym, SCM val),
+ "Return the value for property @var{sym} of Prob object"
+ " @var{prob}. If no value is found, return @var{val} or"
+ " @code{'()} if @var{val} is not specified.")
{
- LY_ASSERT_SMOB (Prob, obj, 1);
- Prob *ps = unsmob_prob (obj);
+ LY_ASSERT_SMOB (Prob, prob, 1);
+ Prob *ps = unsmob_prob (prob);
LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
- if (dfault == SCM_UNDEFINED)
- dfault = SCM_EOL;
+ if (val == SCM_UNDEFINED)
+ val = SCM_EOL;
SCM retval = ps->internal_get_property (sym);
if (retval == SCM_EOL)
- return dfault;
+ return val;
else
return retval;
}
LY_DEFINE (ly_add_option, "ly:add-option", 3, 0, 0,
(SCM sym, SCM val, SCM description),
- "Add a program option @var{sym} with default @var{val}.")
+ "Add a program option @var{sym}. @var{val} is the default"
+ " value and @var{description} is a string description.")
{
if (!option_hash)
option_hash = scm_permanent_object (scm_c_make_hash_table (11));
}
LY_DEFINE (ly_simple_closure_p, "ly:simple-closure?",
- 1,0,0, (SCM clos),
- "Type predicate.")
+ 1, 0, 0, (SCM clos),
+ "Is @var{clos} a simple closure?")
{
return scm_from_bool (is_simple_closure (clos));
}
{
Spring sp = sorted_springs[i];
- assert (sp.blocking_force () <= cur_force);
+ if (sp.blocking_force () > cur_force)
+ continue;
+
if (isinf (sp.blocking_force ()))
break;
}
cur_len -= block_dist;
- inv_hooke -= sp.inverse_compress_strength ();
+ inv_hooke -= compressed ? sp.inverse_compress_strength () : sp.inverse_stretch_strength ();
cur_force = sp.blocking_force ();
}
return b.end_ == infinity_f && b.y_intercept_ == -infinity_f;
}
+void
+Skyline::clear ()
+{
+ buildings_.clear ();
+ empty_skyline (&buildings_);
+}
/****************************************************************/
void
Spring::update_blocking_force ()
{
- if (distance_ == min_distance_)
- blocking_force_ = 0.0;
+ if (min_distance_ > distance_)
+ blocking_force_ = (min_distance_ - distance_) / inverse_stretch_strength_;
else
blocking_force_ = (min_distance_ - distance_) / inverse_compress_strength_;
+
+ if (isnan (blocking_force_) || blocking_force_ == infinity_f)
+ blocking_force_ = 0;
+
+ if (blocking_force_ >= 0)
+ inverse_compress_strength_ = 0;
}
/* scale a spring, but in a way that doesn't violate min_distance */
Spring::operator*= (Real r)
{
distance_ = max (min_distance_, distance_ * r);
- inverse_compress_strength_ = distance_ - min_distance_;
+ inverse_compress_strength_ = max (0.0, distance_ - min_distance_);
inverse_stretch_strength_ *= 0.8;
}
programming_error ("insane spring distance requested, ignoring it");
else
{
- min_distance_ = min (min_distance_, d);
distance_ = d;
update_blocking_force ();
}
else
{
min_distance_ = d;
- distance_ = max (distance_, min_distance_);
update_blocking_force ();
}
}
+void
+Spring::ensure_min_distance (Real d)
+{
+ set_min_distance (max (d, min_distance_));
+}
+
void
Spring::set_inverse_stretch_strength (Real f)
{
void
Spring::set_default_strength ()
{
- inverse_compress_strength_ = distance_ - min_distance_;
- inverse_stretch_strength_ = distance_ - min_distance_;
+ inverse_compress_strength_ = (distance_ >= min_distance_) ? distance_ - min_distance_ : 0;
+ inverse_stretch_strength_ = distance_;
}
Real
force = 0.0;
}
- return distance_ + force * inv_k;
+ return max (min_distance_, distance_ + force * inv_k);
}
#(define (make-dynamic-script str)
(make-music 'AbsoluteDynamicEvent
'text str))
+
+%% don't exceed ppppp or fffff; see midi.scm.
ppppp = #(make-dynamic-script "ppppp")
pppp = #(make-dynamic-script "pppp")
ppp = #(make-dynamic-script "ppp")
ff = #(make-dynamic-script "ff")
fff = #(make-dynamic-script "fff")
ffff = #(make-dynamic-script "ffff")
+fffff = #(make-dynamic-script "fffff")
fp = #(make-dynamic-script "fp")
sf = #(make-dynamic-script "sf")
sfp = #(make-dynamic-script "sfp")
\context {
\type "Engraver_group"
\name "FretBoards"
-
+ \description "A context for displaying fret diagrams."
\consists "Fretboard_engraver"
\consists "Rest_swallow_translator"
\context {
\type "Engraver_group"
\name NoteNames
+ \description "A context for printing the names of notes."
\consists "Axis_group_engraver"
\override VerticalAxisGroup #'minimum-Y-extent = ##f
\context {
\type "Engraver_group"
\name "FiguredBass"
+ \description "A context for printing a figured bass line."
\consists "Figured_bass_engraver"
\consists "Note_swallow_translator"
(word-space . 0.6)))
#(define page-breaking ly:optimal-breaking)
- #(define page-breaking-wrapper page-breaking-wrapper)
#(define page-post-process post-process-pages)
#(define write-page-layout (ly:get-option 'dump-tweaks))
-# scm/Makefile
+# scm/GNUmakefile
depth = ..
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; autochange - fairly related to part combining.
+;; autochange.scm - fairly related to part combining.
(define-public (make-autochange-music parser music)
(define (generate-split-list change-moment event-list acc)
+;;;; coverage.scm
+
(define-module (scm coverage))
(use-modules (lily)
;; TODO FIXME
(aDueText ,markup? "Text to print at a unisono passage.")
- (alignBelowContext ,string? "Where to insert newly created context in
-vertical alignment.")
(alignAboveContext ,string? "Where to insert newly created context in
vertical alignment.")
(alignBassFigureAccidentals ,boolean? "If true, then the accidentals
are aligned in bass figure context.")
+ (alignBelowContext ,string? "Where to insert newly created context in
+vertical alignment.")
(associatedVoice ,string? "Name of the @code{Voice} that has the
melody for this @code{Lyrics} line.")
(autoAccidentals ,list? "List of different ways to typeset an
arguments, @var{context}, @var{dir} [start/stop (-1 or 1)], and
@var{test} [shortest note in the beam]. A non-@code{#f} return value
starts or stops the auto beam.")
+ (autoBeaming ,boolean? "If set to true then beams are generated
+automatically.")
(autoBeamSettings ,list? "Specifies when automatically generated
beams should begin and end. See @ruser{Setting automatic beam
behavior} for more information.")
- (autoBeaming ,boolean? "If set to true then beams are generated
-automatically.")
(autoCautionaries ,list? "List similar to @code{autoAccidentals},
but it controls cautionary accidentals rather than normal ones. Both
lists are tried, and the one giving the most accidentals wins. In
(bassStaffProperties ,list? "An alist of property settings to
apply for the down staff of @code{PianoStaff}. Used by
@code{\\autochange}.")
- (beatLength ,ly:moment? "The length of one beat in this time
-signature.")
(beatGrouping ,list? "A list of beatgroups, e.g., in 5/8 time
@code{'(2 3)}.")
+ (beatLength ,ly:moment? "The length of one beat in this time
+signature.")
(chordChanges ,boolean? "Only show changes in chords scheme?")
- (chordNameFunction ,procedure? "The function that converts lists
-of pitches to chord names.")
(chordNameExceptions ,list? "An alist of chord exceptions.
Contains @code{(@var{chord} . @var{markup})} entries.")
(chordNameExceptionsFull ,list? "An alist of full chord
(chordNameExceptionsPartial ,list? "An alist of partial chord
exceptions. Contains @code{(@var{chord} . (@var{prefix-markup}
@var{suffix-markup}))} entries.")
+ (chordNameFunction ,procedure? "The function that converts lists
+of pitches to chord names.")
(chordNameSeparator ,markup? "The markup object used to
separate parts of a chord name.")
(chordNoteNamer ,procedure? "A function that converts from a pitch
the clef is changed.")
(createSpacing ,boolean? "Create @code{StaffSpacing} objects?
Should be set for staves.")
- (crescendoText ,markup? "The text to print at start of non-hairpin
-crescendo, i.e., @samp{cresc.}.")
(crescendoSpanner ,symbol? "The type of spanner to be used for
crescendi. Available values are @samp{hairpin} and @samp{text}. If unset,
a hairpin crescendo is used.")
+ (crescendoText ,markup? "The text to print at start of non-hairpin
+crescendo, i.e., @samp{cresc.}.")
(currentBarNumber ,integer? "Contains the current barnumber.
This property is incremented at every bar line.")
the default time signature.")
(instrumentCueName ,markup? "The name to print if another
instrument is to be taken.")
- (instrumentName ,markup? "The name to print left of a staff. The
-@code{instrument} property labels the staff in the first system, and
-the @code{instr} property labels following lines.")
(instrumentEqualizer ,procedure? "A function taking a string
(instrument name), and returning a @code{(@var{min} . @var{max})} pair
of numbers for the loudness range of the instrument.")
+ (instrumentName ,markup? "The name to print left of a staff. The
+@code{instrument} property labels the staff in the first system, and
+the @code{instr} property labels following lines.")
;; the definition is reversed wrt traditional transposition
;; otherwise \transpose { \transposition .. } won't work
(instrumentTransposition ,ly:pitch? "Define the transposition of
@code{beamMelismaBusy}.")
(metronomeMarkFormatter ,procedure? "How to produce a metronome
markup. Called with four arguments: text, duration, count and context.")
- (midiInstrument ,string? "Name of the MIDI instrument to use.")
- (midiMaximumVolume ,number? "Analogous to
-@code{midiMinimumVolume}.")
- (midiMinimumVolume ,number? "Set the minimum loudness for MIDI.
-Ranges from 0 to@tie{}1.")
(middleCClefPosition ,number? "The position of the middle C,
as determined only by the clef. This can be calculated by looking at
@code{clefPosition} and @code{clefGlyph}.")
(middleCPosition ,number? "The place of the middle C, measured in
half staff-spaces. Usually determined by looking at
@code{middleCClefPosition} and @code{middleCOffset}.")
+ (midiInstrument ,string? "Name of the MIDI instrument to use.")
+ (midiMaximumVolume ,number? "Analogous to
+@code{midiMinimumVolume}.")
+ (midiMinimumVolume ,number? "Set the minimum loudness for MIDI.
+Ranges from 0 to@tie{}1.")
(minimumFret ,number? "The tablature auto string-selecting
mechanism selects the highest string with a fret at least
@code{minimumFret}.")
(tablatureFormat ,procedure? "A function formatting a tablature
note head. Called with three arguments: string number, context and event.
It returns the text as a string.")
- (tempoWholesPerMinute ,ly:moment? "The tempo in whole notes per
-minute.")
+ (tempoHideNote ,boolean? "Hide the note=count in tempo marks.")
+ (tempoText ,markup? "Text for tempo marks.")
(tempoUnitCount ,number? "Count for specifying tempo.")
(tempoUnitDuration ,ly:duration? "Unit for specifying tempo.")
- (tempoText ,markup? "Text for tempo marks.")
- (tempoHideNote ,boolean? "Hide the note=count in tempo marks.")
+ (tempoWholesPerMinute ,ly:moment? "The tempo in whole notes per
+minute.")
(tieWaitForNote ,boolean? "If true, tied notes do not have to
follow each other directly. This can be used for writing out
arpeggios.")
non-breakable items (note heads, lyrics, etc.).")
- (dynamicAbsoluteVolumeFunction ,procedure? "[DOCUMENT-ME]")
+ (dynamicAbsoluteVolumeFunction ,procedure? "A procedure that takes
+one argument, the text value of a dynamic event, and returns the absolute
+volume of that dynamic event.")
(finalizations ,list? "A list of expressions to evaluate before
-;;;; stream-event-classes.scm -- define the tree of stream-event classes.
+;;;; define-event-classes.scm -- define the tree of stream-event classes.
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; interface-description.scm -- part of generated backend documentation
+;;;; define-grob-interfaces.scm -- part of generated backend documentation
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
(before-line-breaking ,boolean? "Dummy property, used to trigger
a callback function.")
(between-cols ,pair? "Where to attach a loose column to.")
- (bound-padding ,number? "The amount of padding to insert around
-spanner bounds.")
(bound-details ,list? "An alist of properties for determining
attachments of spanners to edges.")
+ (bound-padding ,number? "The amount of padding to insert around
+spanner bounds.")
(bracket-flare ,number-pair? "A pair of numbers specifying how
much edges of brackets should slant outward. Value @code{0.0} means
straight edges.")
(break-align-anchor-alignment ,number? "Read by
@code{ly:break-aligned-interface::calc-extent-aligned-anchor} for
aligning an anchor to a grob's extent.")
- (break-align-symbol ,symbol? "This key is used for aligning and
-spacing breakable items.")
- (break-align-symbols ,list? "A list of symbols that determine
-which break-aligned grobs to align this to. If the grob selected by
-the first symbol in the list is invisible due to break-visibility, we
-will align to the next grob (and so on). Choices are @code{left-edge},
-@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{staff-bar},
-@code{key-cancellation}, @code{key-signature}, @code{time-signature},
-and @code{custos}.")
(break-align-orders ,vector? "Defines the order in which
prefatory matter (clefs, key signatures) appears. The format is a
vector of length@tie{}3, where each element is one order for
clef
time-signature))
@end example")
+ (break-align-symbol ,symbol? "This key is used for aligning and
+spacing breakable items.")
+ (break-align-symbols ,list? "A list of symbols that determine
+which break-aligned grobs to align this to. If the grob selected by
+the first symbol in the list is invisible due to break-visibility, we
+will align to the next grob (and so on). Choices are @code{left-edge},
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{staff-bar},
+@code{key-cancellation}, @code{key-signature}, @code{time-signature},
+and @code{custos}.")
(break-overshoot ,number-pair? "How much does a broken spanner
stick out of its bounds?")
(break-visibility ,vector? "A vector of 3@tie{}booleans,
edges: @code{(@var{left-text} . @var{right-text})}.")
(expand-limit ,integer? "Maximum number of measures expanded in
church rests.")
- (extra-X-extent ,number-pair? "A grob is enlarged in
-X@tie{}dimension by this much.")
- (extra-Y-extent ,number-pair? "A grob is enlarged in
-Y@tie{}dimension by this much.")
;; remove me?
(extra-dy ,number? "Slope glissandi this much extra.")
(extra-offset ,number-pair? "A pair representing an offset. This
left side of the item and adding the @q{cdr} on the right side of the
item). In order to make a grob take up no horizontal space at all,
set this to @code{(+inf.0 . -inf.0)}.")
+ (extra-X-extent ,number-pair? "A grob is enlarged in
+X@tie{}dimension by this much.")
+ (extra-Y-extent ,number-pair? "A grob is enlarged in
+Y@tie{}dimension by this much.")
;;
(glyph ,string? "A string determining what @q{style} of glyph is
typeset. Valid choices depend on the function that is reading this
property.")
+ (glyph-name ,string? "The glyph name within the font.")
(glyph-name-alist ,list? "An alist of key-string pairs.")
(grow-direction ,ly:dir? "Crescendo or decrescendo?")
@code{merge-differently-headed} only applies to opposing stem
directions (i.e., voice 1 &@tie{}2).")
- (minimum-X-extent ,number-pair? "Minimum size of an object in
-X@tie{}dimension, measured in @code{staff-space} units.")
- (minimum-Y-extent ,number-pair? "Minimum size of an object in
-Y@tie{}dimension, measured in @code{staff-space} units.")
(minimum-distance ,ly:dimension? "Minimum distance between rest
and notes or beam.")
(minimum-length ,ly:dimension? "Try to make a spanner at least
as fraction of note head size.")
(minimum-space ,ly:dimension? "Minimum distance that the victim
should move (after padding).")
+ (minimum-X-extent ,number-pair? "Minimum size of an object in
+X@tie{}dimension, measured in @code{staff-space} units.")
+ (minimum-Y-extent ,number-pair? "Minimum size of an object in
+Y@tie{}dimension, measured in @code{staff-space} units.")
;;
values may also be specified.")
(self-alignment-Y ,number? "Like @code{self-alignment-X} but for
the Y@tie{}axis.")
- (toward-stem-shift ,number? "Amount by which scripts are shifted
-toward the stem if their direction coincides with the stem direction.
-@code{0.0} means keep the default position (centered on the note
-head), @code{1.0} means centered on the stem. Interpolated values are
-possible.")
(shorten-pair ,number-pair? "The lengths to shorten a
text-spanner on both sides, for example a pedal bracket. Positive
values shorten the text-spanner, while negative values lengthen it.")
automatically.")
(to-barline ,boolean? "If true, the spanner will stop at the bar
line just before it would otherwise stop.")
+ (toward-stem-shift ,number? "Amount by which scripts are shifted
+toward the stem if their direction coincides with the stem direction.
+@code{0.0} means keep the default position (centered on the note
+head), @code{1.0} means centered on the stem. Interpolated values are
+possible.")
(transparent ,boolean? "This makes the grob invisible.")
`(
;;;;;;;;;;;;;;;;
;; grobs & grob arrays. (alphabetical)
- (X-common ,ly:grob? "Common reference point for axis group.")
-
- (Y-common ,ly:grob? "See @code{X-common}.")
-
(accidental-grob ,ly:grob? "The accidental for this note.")
(accidental-grobs ,list? "An alist with @code{(@var{notename} .
@var{groblist})} entries.")
- (adjacent-pure-heights ,pair? "A pair of vectors. Used by a
-@code{VerticalAxisGroup} to cache the @code{Y-extent}s of different column
-ranges.")
(adjacent-hairpins ,ly:grob-array? "An array of directly neighboring
hairpins.")
(all-elements ,ly:grob-array? "An array of all grobs in this line. Its
(axis-group-parent-X ,ly:grob? "Containing X@tie{}axis group.")
(axis-group-parent-Y ,ly:grob? "Containing Y@tie{}axis group.")
- (bar-extent ,number-pair? "The Y-extent of the actual bar line.
-This may differ from @code{Y-extent} because it does not include the dots in
-a repeat bar line.")
(bars ,ly:grob-array? "An array of bar line pointers.")
(beam ,ly:grob? "A pointer to the beam, if applicable.")
(bounded-by-me ,ly:grob-array? "An array of spanners that have this
(columns ,ly:grob-array? "An array of grobs, typically containing
@code{PaperColumn} or @code{NoteColumn} objects.")
(conditional-elements ,ly:grob-array? "Internal use only.")
- (cross-staff ,boolean? "For a beam or a stem, this is true if we
-depend on inter-staff spacing.")
(direction-source ,ly:grob? "In case @code{side-relative-direction} is
set, which grob to get the direction from.")
in addition to notes and stems.")
(figures ,ly:grob-array? "Figured bass objects for continuation line.")
- (forced ,boolean? "Manually forced accidental.")
- (glyph-name ,string? "The glyph name within the font.")
(grace-spacing ,ly:grob? "A run of grace notes.")
(heads ,ly:grob-array? "An array of note heads.")
- (important-column-ranks ,vector? "A cache of columns that contain
-@code{items-worth-living} data.")
(items-worth-living ,ly:grob-array? "An array of interesting items. If
empty in a particular staff, then that staff is erased.")
columns.")
(normal-stems ,ly:grob-array? "An array of visible stems.")
- (note-columns ,pair? "A list of @code{NoteColumn} grobs.")
+ (note-columns ,ly:grob-array? "An array of @code{NoteColumn} grobs.")
(note-head ,ly:grob? "A single note head.")
(note-heads ,ly:grob-array? "An array of note head grobs.")
(pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano
pedal.")
- (pure-Y-common ,ly:grob? "A cache of the
-@code{common_refpoint_of_array} of the @code{elements} grob set.")
- (pure-Y-offset-in-progress ,boolean? "A debugging aid for catching
-cyclic dependencies.")
(pure-relevant-items ,ly:grob-array? "A subset of elements that are
relevant for finding the @code{pure-Y-extent}.")
(pure-relevant-spanners ,ly:grob-array? "A subset of elements that are
relevant for finding the @code{pure-Y-extent}.")
+ (pure-Y-common ,ly:grob? "A cache of the
+@code{common_refpoint_of_array} of the @code{elements} grob set.")
(rest ,ly:grob? "A pointer to a @code{Rest} object.")
(rest-collision ,ly:grob? "A rest collision that a rest is in.")
(tremolo-flag ,ly:grob? "The tremolo object on a stem.")
(tuplet-number ,ly:grob? "The number for a bracket.")
(tuplets ,ly:grob-array? "An array of smaller tuplet brackets.")
+ (X-common ,ly:grob? "Common reference point for axis group.")
+ (Y-common ,ly:grob? "See @code{X-common}.")
;;;;;;;;;;;;;;;;
;; other
+ (adjacent-pure-heights ,pair? "A pair of vectors. Used by a
+@code{VerticalAxisGroup} to cache the @code{Y-extent}s of different column
+ranges.")
+
+ (bar-extent ,number-pair? "The Y-extent of the actual bar line.
+This may differ from @code{Y-extent} because it does not include the dots in
+a repeat bar line.")
(begin-of-line-visible ,boolean? "Set to make @code{ChordName} or
@code{FretBoard} be visible only at beginning of line or at
chord changes.")
(cause ,scheme? "Any kind of causation objects (i.e., music, or perhaps
translator) that was the cause for this grob.")
+ (cross-staff ,boolean? "For a beam or a stem, this is true if we
+depend on inter-staff spacing.")
(delta-position ,number? "The vertical position difference.")
(font ,ly:font-metric? "A cached font metric object.")
+ (forced ,boolean? "Manually forced accidental.")
(head-width ,ly:dimension? "The width of this ligature head.")
(ideal-distances ,list? "@code{(@var{obj} . (@var{dist} .
@var{strength}))} pairs.")
+ (important-column-ranks ,vector? "A cache of columns that contain
+@code{items-worth-living} data.")
(interfaces ,list? "A list of symbols indicating the interfaces
supported by this object. It is initialized from the @code{meta} field.")
(positioning-done ,boolean? "Used to signal that a positioning element
did its job. This ensures that a positioning is only done once.")
(pure-Y-extent ,number-pair? "The estimated height of a system.")
+ (pure-Y-offset-in-progress ,boolean? "A debugging aid for catching
+cyclic dependencies.")
(quant-score ,string? "The beam quanting score; stored for
debugging.")
@code{context-info} holds for each head such information about the left and
right neighbour, encoded as a bit mask.")
- (descendens ,boolean? "Is this neume of descendent type?")
(deminutum ,boolean? "Is this neume deminished?")
+ (descendens ,boolean? "Is this neume of descendent type?")
(flexa-height ,ly:dimension? "The height of a flexa shape in a ligature
grob (in @code{staff-space} units).")
(join-heads ,boolean? "Whether to join the note heads of an ambitus
grob with a vertical line.")
- (join-right-amount ,number? "DOCME")
+ (join-right-amount ,number? "A length used for calculating the
+Y-extent of mensural ligatures.")
(linea ,boolean? "Attach vertical lines to this neume?")
;; TODO: junk the meta field in favor of something more compact?
-;;; todo:: reorder sensibly.
-
(define-public all-grob-descriptions
`(
(Accidental
(Y-extent . ,ly:accidental-interface::height)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (side-position-interface
- script-interface
- accidental-interface
+ (interfaces . (accidental-interface
accidental-suggestion-interface
+ font-interface
+ script-interface
self-alignment-interface
- font-interface))))))
+ side-position-interface))))))
(Ambitus
. (
(X-extent . ,ly:axis-group-interface::width)
(Y-extent . ,ly:axis-group-interface::height)
(meta . ((class . Item)
- (interfaces . (axis-group-interface
- break-aligned-interface
- ambitus-interface))))))
+ (interfaces . (ambitus-interface
+ axis-group-interface
+ break-aligned-interface))))))
(AmbitusAccidental
. (
(X-offset . ,ly:side-position-interface::x-aligned-side)
(Y-extent . ,ly:accidental-interface::height)
(meta . ((class . Item)
- (interfaces . (
- accidental-interface
+ (interfaces . (accidental-interface
break-aligned-interface
- side-position-interface
- font-interface))))))
+ font-interface
+ side-position-interface))))))
(AmbitusLine
. (
(X-offset . ,ly:self-alignment-interface::centered-on-x-parent)
(meta . ((class . Item)
(interfaces . (ambitus-interface
- staff-symbol-referencer-interface
- font-interface))))))
+ font-interface
+ staff-symbol-referencer-interface))))))
(AmbitusNoteHead
. (
(stencil . ,ly:note-head::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (font-interface
+ (interfaces . (ambitus-interface
+ font-interface
+ ledgered-interface
note-head-interface
- ambitus-interface
- staff-symbol-referencer-interface
rhythmic-head-interface
- ledgered-interface))))))
+ staff-symbol-referencer-interface))))))
(Arpeggio
. (
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
(interfaces . (arpeggio-interface
- staff-symbol-referencer-interface
+ font-interface
side-position-interface
- font-interface))))))
+ staff-symbol-referencer-interface))))))
(BalloonTextItem
. (
(Y-offset . ,(grob::calc-property-by-copy 'Y-offset))
(meta . ((class . Item)
(interfaces . (balloon-interface
- text-interface
- font-interface))))))
+ font-interface
+ text-interface))))))
(BarLine
. (
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta .
((class . Item)
- (interfaces . (side-position-interface
- text-interface
- break-alignable-interface
+ (interfaces . (break-alignable-interface
+ font-interface
self-alignment-interface
- font-interface))))))
+ side-position-interface
+ text-interface))))))
(BassFigure
. (
(stencil . ,ly:text-interface::print)
(meta . ((class . Item)
- (interfaces . (text-interface
+ (interfaces . (bass-figure-interface
+ font-interface
rhythmic-grob-interface
- bass-figure-interface
- font-interface))))))
+ text-interface))))))
(BassFigureAlignment
. (
(Y-extent . ,ly:axis-group-interface::height)
(meta . ((class . Spanner)
(interfaces . (align-interface
- bass-figure-alignment-interface
- axis-group-interface))))))
+ axis-group-interface
+ bass-figure-alignment-interface))))))
(BassFigureAlignmentPositioning
. (
(Y-extent . ,ly:axis-group-interface::height)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (side-position-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ side-position-interface))))))
(BassFigureBracket
. (
(meta . ((class . Spanner)
(object-callbacks . ((normal-stems . ,ly:beam::calc-normal-stems)))
- (interfaces . (staff-symbol-referencer-interface
- unbreakable-spanner-interface
- beam-interface
- font-interface))))))
+ (interfaces . (beam-interface
+ font-interface
+ staff-symbol-referencer-interface
+ unbreakable-spanner-interface))))))
(BendAfter
. (
(stencil . ,bend::print)
(thickness . 2.0)
(meta . ((class . Spanner)
- (interfaces . (spanner-interface
- bend-after-interface))))))
+ (interfaces . (bend-after-interface
+ spanner-interface))))))
(BreakAlignGroup
. (
(break-visibility . ,ly:break-aligned-interface::calc-break-visibility)
(X-extent . ,ly:axis-group-interface::width)
(meta . ((class . Item)
- (interfaces . (break-aligned-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ break-aligned-interface))))))
(BreakAlignment
. (
(stacking-dir . 1)
(X-extent . ,ly:axis-group-interface::width)
(meta . ((class . Item)
- (interfaces . (break-alignment-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ break-alignment-interface))))))
(BreathingSign
. (
(meta . ((class . Item)
(interfaces . (break-aligned-interface
breathing-sign-interface
- text-interface
- font-interface))))))
+ font-interface
+ text-interface))))))
(ChordName
. (
(stencil . ,ly:text-interface::print)
(word-space . 0.0)
(meta . ((class . Item)
- (interfaces . (font-interface
+ (interfaces . (chord-name-interface
+ font-interface
rhythmic-grob-interface
- text-interface
- chord-name-interface))))))
+ text-interface))))))
(Clef
. (
(stencil . ,ly:clef::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (clef-interface
- staff-symbol-referencer-interface
+ (interfaces . (break-aligned-interface
+ clef-interface
font-interface
- break-aligned-interface))))))
+ staff-symbol-referencer-interface))))))
(ClusterSpanner
. (
. (
(Y-extent . ,ly:cluster-beacon::height)
(meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
- cluster-beacon-interface))))))
+ (interfaces . (cluster-beacon-interface
+ rhythmic-grob-interface))))))
(CombineTextScript
. (
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (text-script-interface
- text-interface
+ (interfaces . (font-interface
side-position-interface
- font-interface))))))
+ text-interface
+ text-script-interface))))))
(Custos
. (
(style . vaticana)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (custos-interface
- staff-symbol-referencer-interface
+ (interfaces . (break-aligned-interface
+ custos-interface
font-interface
- break-aligned-interface))))))
+ staff-symbol-referencer-interface))))))
(DotColumn
. (
(positioning-done . ,ly:dot-column::calc-positioning-done)
(X-extent . ,ly:axis-group-interface::width)
(meta . ((class . Item)
- (interfaces . (dot-column-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ dot-column-interface))))))
(Dots
. (
(staff-position . ,dots::calc-staff-position)
(stencil . ,ly:dots::print)
(meta . ((class . Item)
- (interfaces . (font-interface
- staff-symbol-referencer-interface
- dots-interface))))))
+ (interfaces . (dots-interface
+ font-interface
+ staff-symbol-referencer-interface))))))
(DoublePercentRepeat
. (
(thickness . 0.48)
(width . 2.0)
(meta . ((class . Item)
- (interfaces . (font-interface
- break-aligned-interface
+ (interfaces . (break-aligned-interface
+ font-interface
percent-repeat-interface
percent-repeat-item-interface))))))
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (side-position-interface
- self-alignment-interface
- percent-repeat-item-interface
+ (interfaces . (font-interface
percent-repeat-interface
- font-interface
+ percent-repeat-item-interface
+ self-alignment-interface
+ side-position-interface
text-interface))))))
(DynamicLineSpanner
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
(meta . ((class . Item)
- (interfaces . (font-interface
- text-interface
+ (interfaces . (dynamic-interface
+ font-interface
+ script-interface
self-alignment-interface
- dynamic-interface
- script-interface))))))
+ text-interface))))))
(DynamicTextSpanner
. (
(stencil . ,ly:line-spanner::print)
(style . dashed-line)
(meta . ((class . Spanner)
- (interfaces . (font-interface
- text-interface
- line-spanner-interface
- line-interface
- dynamic-interface
+ (interfaces . (dynamic-interface
dynamic-text-spanner-interface
- spanner-interface))))))
+ font-interface
+ line-interface
+ line-spanner-interface
+ spanner-interface
+ text-interface))))))
(Fingering
(meta . ((class . Item)
(interfaces . (finger-interface
font-interface
- text-script-interface
- text-interface
+ self-alignment-interface
side-position-interface
- self-alignment-interface))))))
+ text-interface
+ text-script-interface))))))
(FretBoard
. (
(fret-diagram-details . ((finger-code . below-string)))
(stencil . ,fret-board::calc-stencil)
(meta . ((class . Item)
- (interfaces . (fret-diagram-interface
- rhythmic-grob-interface
- chord-name-interface
- font-interface))))))
+ (interfaces . (chord-name-interface
+ font-interface
+ fret-diagram-interface
+ rhythmic-grob-interface))))))
(Glissando
(zigzag-width . 0.75)
(meta . ((class . Spanner)
(interfaces . (line-interface
- unbreakable-spanner-interface
- line-spanner-interface))))))
+ line-spanner-interface
+ unbreakable-spanner-interface))))))
(GraceSpacing
. (
,(ly:make-simple-closure
(list ly:self-alignment-interface::x-aligned-on-self)))))
(meta . ((class . Item)
- (interfaces . (self-alignment-interface
- grid-line-interface))))))
+ (interfaces . (grid-line-interface
+ self-alignment-interface))))))
(GridPoint
. (
(Y-extent . ,ly:hairpin::height)
(Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
(meta . ((class . Spanner)
- (interfaces . (hairpin-interface
+ (interfaces . (dynamic-interface
+ hairpin-interface
line-interface
self-alignment-interface
- dynamic-interface
spanner-interface))))))
(HarmonicParenthesesItem
(stencil . ,parentheses-item::print)
(stencils . ,parentheses-item::calc-angled-bracket-stencils)
(meta . ((class . Item)
- (interfaces . (parentheses-interface font-interface))))))
+ (interfaces . (font-interface
+ parentheses-interface))))))
(HorizontalBracket
. (
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
(interfaces . (horizontal-bracket-interface
- side-position-interface
line-interface
+ side-position-interface
spanner-interface))))))
(stencil . ,ly:system-start-text::print)
(X-offset . ,ly:side-position-interface::x-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (system-start-text-interface
- side-position-interface
+ (interfaces . (font-interface
self-alignment-interface
- font-interface))))))
+ side-position-interface
+ system-start-text-interface))))))
(InstrumentSwitch
. (
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (side-position-interface
+ (interfaces . (font-interface
self-alignment-interface
- text-interface
- font-interface))))))
+ side-position-interface
+ text-interface))))))
(KeyCancellation
(stencil . ,ly:key-signature-interface::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (key-cancellation-interface
- key-signature-interface
- staff-symbol-referencer-interface
+ (interfaces . (break-aligned-interface
font-interface
- break-aligned-interface))))))
+ key-cancellation-interface
+ key-signature-interface
+ staff-symbol-referencer-interface))))))
(KeySignature
. (
(stencil . ,ly:key-signature-interface::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (key-signature-interface
- staff-symbol-referencer-interface
+ (interfaces . (break-aligned-interface
font-interface
- break-aligned-interface))))))
+ key-signature-interface
+ staff-symbol-referencer-interface))))))
(LaissezVibrerTie
(thickness . 0.8) ; line-thickness
(Y-extent . (0 . 0))
(meta . ((class . Spanner)
- (interfaces . (lyric-interface
- lyric-extender-interface))))))
+ (interfaces . (lyric-extender-interface
+ lyric-interface))))))
(LyricHyphen
. (
(thickness . 1.3)
(Y-extent . (0 . 0))
(meta . ((class . Spanner)
- (interfaces . (lyric-interface
- font-interface
+ (interfaces . (font-interface
lyric-hyphen-interface
+ lyric-interface
spanner-interface))))))
(LyricSpace
(X-extent . #f)
(Y-extent . #f)
(meta . ((class . Spanner)
- (interfaces . (spanner-interface
- lyric-hyphen-interface))))))
+ (interfaces . (lyric-hyphen-interface
+ spanner-interface))))))
(LyricText
. (
(word-space . 0.6)
(X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
(meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
+ (interfaces . (font-interface
lyric-syllable-interface
+ rhythmic-grob-interface
self-alignment-interface
- text-interface
- font-interface))))))
+ text-interface))))))
(MeasureGrouping
(thickness . 1)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (side-position-interface
- measure-grouping-interface))))))
+ (interfaces . (measure-grouping-interface
+ side-position-interface))))))
(MelodyItem
. (
(stencil . ,ly:mensural-ligature::print)
(thickness . 1.4)
(meta . ((class . Spanner)
- (interfaces . (mensural-ligature-interface
- font-interface))))))
+ (interfaces . (font-interface
+ mensural-ligature-interface))))))
(MetronomeMark
. (
(stencil . ,ly:text-interface::print)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (text-interface
+ (interfaces . (font-interface
+ metronome-mark-interface
side-position-interface
- font-interface
- metronome-mark-interface))))))
+ text-interface))))))
(MultiMeasureRest
. (
(thick-thickness . 6.6)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Spanner)
- (interfaces . (multi-measure-rest-interface
+ (interfaces . (font-interface
multi-measure-interface
+ multi-measure-rest-interface
rest-interface
- font-interface
staff-symbol-referencer-interface))))))
(MultiMeasureRestNumber
(list ly:self-alignment-interface::x-centered-on-y-parent)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (side-position-interface
+ (interfaces . (font-interface
multi-measure-interface
self-alignment-interface
- font-interface
+ side-position-interface
text-interface))))))
(MultiMeasureRestText
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (side-position-interface
+ (interfaces . (font-interface
multi-measure-interface
self-alignment-interface
- font-interface
+ side-position-interface
text-interface))))))
(X-extent . ,ly:axis-group-interface::width)
(meta . ((class . Paper_column)
- (interfaces . (paper-column-interface
- axis-group-interface
+ (interfaces . (axis-group-interface
+ font-interface
+ paper-column-interface
separation-item-interface
- spaceable-grob-interface
- font-interface))))))
+ spaceable-grob-interface))))))
(NoteCollision
. (
(X-extent . ,ly:axis-group-interface::width)
(Y-extent . ,ly:axis-group-interface::height)
(meta . ((class . Item)
- (interfaces . (note-collision-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ note-collision-interface))))))
(NoteColumn
. (
(Y-extent . ,ly:axis-group-interface::height)
(meta . ((class . Item)
(interfaces . (axis-group-interface
- separation-item-interface
- note-column-interface))))))
+ note-column-interface
+ separation-item-interface))))))
(NoteHead
. (
(X-offset . ,ly:note-head::stem-x-shift)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
- rhythmic-head-interface
- font-interface
- note-head-interface
- ledgered-interface
- staff-symbol-referencer-interface
+ (interfaces . (font-interface
gregorian-ligature-interface
+ ledgered-interface
mensural-ligature-interface
+ note-head-interface
+ rhythmic-grob-interface
+ rhythmic-head-interface
+ staff-symbol-referencer-interface
vaticana-ligature-interface))))))
(NoteName
. (
(stencil . ,ly:text-interface::print)
(meta . ((class . Item)
- (interfaces . (note-name-interface
- text-interface
- font-interface))))))
+ (interfaces . (font-interface
+ note-name-interface
+ text-interface))))))
(NoteSpacing
. (
(space-to-barline . #t)
(stem-spacing-correction . 0.5)
(meta . ((class . Item)
- (interfaces . (spacing-interface
- note-spacing-interface))))))
+ (interfaces . (note-spacing-interface
+ spacing-interface))))))
(OctavateEight
(list ly:self-alignment-interface::centered-on-x-parent)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (text-interface
+ (interfaces . (font-interface
self-alignment-interface
side-position-interface
- font-interface))))))
+ text-interface))))))
(OttavaBracket
. (
(style . dashed-line)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (ottava-bracket-interface
+ (interfaces . (font-interface
horizontal-bracket-interface
line-interface
+ ottava-bracket-interface
side-position-interface
- font-interface
text-interface))))))
;; debugging
;; (font-size . -6) (font-name . "sans") (Y-extent . #f)
(meta . ((class . Paper_column)
- (interfaces . (paper-column-interface
+ (interfaces . (axis-group-interface
+ font-interface
+ paper-column-interface
separation-item-interface
- axis-group-interface
- spaceable-grob-interface
- font-interface))))))
+ spaceable-grob-interface))))))
(ParenthesesItem
. (
(stencil . ,parentheses-item::print)
(stencils . ,parentheses-item::calc-parenthesis-stencils)
(meta . ((class . Item)
- (interfaces . (parentheses-interface font-interface))))))
+ (interfaces . (font-interface
+ parentheses-interface))))))
(PercentRepeat
. (
(stencil . ,ly:multi-measure-rest::percent)
(thickness . 0.48)
(meta . ((class . Spanner)
- (interfaces . (multi-measure-rest-interface
- font-interface
+ (interfaces . (font-interface
+ multi-measure-rest-interface
percent-repeat-interface))))))
(PercentRepeatCounter
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (side-position-interface
- self-alignment-interface
+ (interfaces . (font-interface
percent-repeat-interface
- font-interface
+ self-alignment-interface
+ side-position-interface
text-interface))))))
(PhrasingSlur
(thickness . 1.0)
(meta . ((class . Spanner)
(interfaces . (line-interface
- piano-pedal-interface
- piano-pedal-bracket-interface))))))
+ piano-pedal-bracket-interface
+ piano-pedal-interface))))))
(RehearsalMark
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (text-interface
- side-position-interface
- break-alignable-interface
+ (interfaces . (break-alignable-interface
font-interface
mark-interface
- self-alignment-interface))))))
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(RepeatSlash
. (
(stencil . ,ly:percent-repeat-item-interface::beat-slash)
(thickness . 0.48)
(meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
- percent-repeat-interface
- percent-repeat-item-interface))))))
+ (interfaces . (percent-repeat-interface
+ percent-repeat-item-interface
+ rhythmic-grob-interface))))))
(RepeatTie
. (
(Y-offset . ,ly:rest::y-offset-callback)
(meta . ((class . Item)
(interfaces . (font-interface
- rhythmic-head-interface
+ rest-interface
rhythmic-grob-interface
- staff-symbol-referencer-interface
- rest-interface))))))
+ rhythmic-head-interface
+ staff-symbol-referencer-interface))))))
(RestCollision
. (
(X-offset . ,script-interface::calc-x-offset)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (script-interface
- side-position-interface
- font-interface))))))
+ (interfaces . (font-interface
+ script-interface
+ side-position-interface))))))
(ScriptColumn
. (
(stencil . ,ly:text-interface::print)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(meta . ((class . Item)
- (interfaces . (text-interface
- self-alignment-interface
+ (interfaces . (font-interface
piano-pedal-script-interface
- font-interface))))))
+ self-alignment-interface
+ text-interface))))))
(SostenutoPedalLineSpanner
. (
(Y-extent . ,ly:axis-group-interface::height)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (piano-pedal-interface
- axis-group-interface
+ (interfaces . (axis-group-interface
+ piano-pedal-interface
side-position-interface))))))
(SpacingSpanner
(X-extent . ,ly:span-bar::width)
(Y-extent . ,ly:axis-group-interface::height)
(meta . ((class . Item)
- (interfaces . (span-bar-interface
+ (interfaces . (bar-line-interface
font-interface
- bar-line-interface))))))
+ span-bar-interface))))))
(StaffSpacing
. (
(stencil . ,ly:text-interface::print)
(X-offset . ,ly:side-position-interface::x-aligned-side)
(meta . ((class . Item)
- (interfaces . (side-position-interface
+ (interfaces . (font-interface
+ side-position-interface
stanza-number-interface
- text-interface
- font-interface))))))
+ text-interface))))))
(Stem
. (
(Y-extent . ,ly:stem::height)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (stem-interface
- font-interface))))))
+ (interfaces . (font-interface
+ stem-interface))))))
(StemTremolo
. (
(stencil . ,print-circled-text-callback)
(text . ,string-number::calc-text)
(meta . ((class . Item)
- (interfaces . (string-number-interface
- font-interface
- text-script-interface
- text-interface
+ (interfaces . (font-interface
+ self-alignment-interface
side-position-interface
- self-alignment-interface))))))
+ string-number-interface
+ text-interface
+ text-script-interface))))))
(StrokeFinger
. (
(stencil . ,ly:text-interface::print)
(text . ,stroke-finger::calc-text)
(meta . ((class . Item)
- (interfaces . (stroke-finger-interface
- font-interface
- text-script-interface
- text-interface
+ (interfaces . (font-interface
+ self-alignment-interface
side-position-interface
- self-alignment-interface))))))
+ stroke-finger-interface
+ text-interface
+ text-script-interface))))))
(SustainPedal
. (
(stencil . ,ly:sustain-pedal::print)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(meta . ((class . Item)
- (interfaces . (piano-pedal-interface
- text-interface
- self-alignment-interface
+ (interfaces . (font-interface
+ piano-pedal-interface
piano-pedal-script-interface
- font-interface))))))
+ self-alignment-interface
+ text-interface))))))
(SustainPedalLineSpanner
. (
(Y-extent . ,ly:axis-group-interface::height)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (piano-pedal-interface
- axis-group-interface
+ (interfaces . (axis-group-interface
+ piano-pedal-interface
side-position-interface))))))
(System
(X-extent . ,ly:axis-group-interface::width)
(Y-extent . ,ly:axis-group-interface::height)
(meta . ((class . System)
- (interfaces . (system-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ system-interface))))))
(SystemStartBar
. (
(X-offset . ,ly:side-position-interface::x-aligned-side)
(Y-extent . #f)
(meta . ((class . Spanner)
- (interfaces . (system-start-delimiter-interface
+ (interfaces . (font-interface
side-position-interface
- font-interface))))))
+ system-start-delimiter-interface))))))
(SystemStartBracket
. (
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (rhythmic-head-interface
- font-interface
- rhythmic-grob-interface
+ (interfaces . (font-interface
note-head-interface
+ rhythmic-grob-interface
+ rhythmic-head-interface
staff-symbol-referencer-interface
text-interface))))))
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
- (interfaces . (text-script-interface
- text-interface
+ (interfaces . (font-interface
instrument-specific-markup-interface
- side-position-interface
self-alignment-interface
- font-interface))))))
+ side-position-interface
+ text-interface
+ text-script-interface))))))
(TextSpanner
. (
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (line-spanner-interface
+ (interfaces . (font-interface
line-interface
- side-position-interface
- font-interface))))))
+ line-spanner-interface
+ side-position-interface))))))
(Tie
. (
(stencil . ,ly:time-signature::print)
(style . C)
(meta . ((class . Item)
- (interfaces . (time-signature-interface
- break-aligned-interface
- font-interface))))))
+ (interfaces . (break-aligned-interface
+ font-interface
+ time-signature-interface))))))
(TrillPitchAccidental
. (
(X-offset . ,ly:side-position-interface::x-aligned-side)
(Y-extent . ,ly:accidental-interface::height)
(meta . ((class . Item)
- (interfaces . (trill-pitch-accidental-interface
- accidental-interface
+ (interfaces . (accidental-interface
+ font-interface
side-position-interface
- font-interface))))))
+ trill-pitch-accidental-interface))))))
(TrillPitchGroup
. (
(stencils . ,parentheses-item::calc-parenthesis-stencils)
(X-offset . ,ly:side-position-interface::x-aligned-side)
(meta . ((class . Item)
- (interfaces . (side-position-interface
- parentheses-interface
- note-head-interface
+ (interfaces . (axis-group-interface
font-interface
- axis-group-interface))))))
+ note-head-interface
+ parentheses-interface
+ side-position-interface))))))
(TrillPitchHead
. (
(stencil . ,ly:note-head::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
- (interfaces . (rhythmic-head-interface
- font-interface
- pitched-trill-interface
+ (interfaces . (font-interface
ledgered-interface
+ pitched-trill-interface
+ rhythmic-head-interface
staff-symbol-referencer-interface))))))
(TrillSpanner
(style . trill)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (line-spanner-interface
+ (interfaces . (font-interface
line-interface
- trill-spanner-interface
+ line-spanner-interface
side-position-interface
- font-interface))))))
+ trill-spanner-interface))))))
(TupletBracket
. (
(stencil . ,ly:tuplet-number::print)
(text . ,tuplet-number::calc-denominator-text)
(meta . ((class . Spanner)
- (interfaces . (text-interface tuplet-number-interface
- font-interface))))))
+ (interfaces . (font-interface
+ text-interface
+ tuplet-number-interface))))))
(UnaCordaPedal
(stencil . ,ly:text-interface::print)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(meta . ((class . Item)
- (interfaces . (text-interface
+ (interfaces . (font-interface
piano-pedal-script-interface
self-alignment-interface
- font-interface))))))
+ text-interface))))))
(UnaCordaPedalLineSpanner
. (
(Y-extent . ,ly:axis-group-interface::height)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (piano-pedal-interface
- axis-group-interface
+ (interfaces . (axis-group-interface
+ piano-pedal-interface
side-position-interface))))))
(stencil . ,ly:vaticana-ligature::print)
(thickness . 0.6)
(meta . ((class . Spanner)
- (interfaces . (vaticana-ligature-interface
- font-interface))))))
+ (interfaces . (font-interface
+ vaticana-ligature-interface))))))
(VerticalAlignment
. (
(X-extent . #f)
(Y-extent . #f)
(meta . ((class . Spanner)
- (interfaces . (line-spanner-interface
- line-interface))))))
+ (interfaces . (line-interface
+ line-spanner-interface))))))
(VoltaBracket
. (
(thickness . 1.6) ;; line-thickness
(word-space . 0.6)
(meta . ((class . Spanner)
- (interfaces . (volta-bracket-interface
+ (interfaces . (font-interface
horizontal-bracket-interface
line-interface
- text-interface
side-position-interface
- font-interface))))))
+ text-interface
+ volta-bracket-interface))))))
(VoltaBracketSpanner
. (
(Y-extent . ,ly:axis-group-interface::height)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
- (interfaces . (side-position-interface
- axis-group-interface))))))
+ (interfaces . (axis-group-interface
+ side-position-interface))))))
))
;;; post events
;;;
-(define post-event? (make-music-type-predicate
- 'StringNumberEvent
- 'ArticulationEvent
- 'FingeringEvent
- 'TextScriptEvent
- 'MultiMeasureTextEvent
- 'HyphenEvent
- 'ExtenderEvent
- 'BeamEvent
- 'SlurEvent
- 'TieEvent
- 'CrescendoEvent
- 'DecrescendoEvent
- 'PhrasingSlurEvent
- 'TremoloEvent
- 'SustainEvent
- 'SostenutoEvent
- 'TextSpanEvent
- 'HarmonicEvent
- 'BeamForbidEvent
- 'AbsoluteDynamicEvent
- 'TupletSpanEvent
- 'TrillSpanEvent
- 'GlissandoEvent
- 'ArpeggioEvent
- 'NoteGroupingEvent
- 'UnaCordaEvent))
+(define post-event?
+ (make-music-type-predicate
+ 'AbsoluteDynamicEvent
+ 'ArpeggioEvent
+ 'ArticulationEvent
+ 'BeamEvent
+ 'BeamForbidEvent
+ 'CrescendoEvent
+ 'DecrescendoEvent
+ 'ExtenderEvent
+ 'FingeringEvent
+ 'GlissandoEvent
+ 'HarmonicEvent
+ 'HyphenEvent
+ 'MultiMeasureTextEvent
+ 'NoteGroupingEvent
+ 'PhrasingSlurEvent
+ 'SlurEvent
+ 'SostenutoEvent
+ 'StringNumberEvent
+ 'SustainEvent
+ 'TextScriptEvent
+ 'TextSpanEvent
+ 'TieEvent
+ 'TremoloEvent
+ 'TrillSpanEvent
+ 'TupletSpanEvent
+ 'UnaCordaEvent))
(define* (event-direction->lily-string event #:optional (required #t))
(let ((direction (ly:music-property event 'direction)))
-;;;; music-property-description.scm -- part of generated backend documentation
+;;;; define-music-properties.scm -- part of generated backend documentation
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
(map
(lambda (x) (apply music-property-description x))
`(
- (X-offset ,number?
- "Offset of resulting grob; only used for balloon texts.")
- (Y-offset ,number?
- "Offset of resulting grob; only used for balloon texts.")
-
- (alteration ,number? "Alteration for figured bass.")
(absolute-octave ,integer?
"The absolute octave for a octave check note.")
- (articulations ,ly:music-list?
- "Articulation events specifically for this note.")
+ (alteration ,number? "Alteration for figured bass.")
(articulation-type ,string? "Key for script definitions alist.
TODO: Consider making type into symbol.")
+ (articulations ,ly:music-list?
+ "Articulation events specifically for this note.")
+ (associated-context ,string? "Name of the Voice context associated with
+this @code{\\lyricsto} section.")
(augmented ,boolean? "This figure is for an augmented figured bass
(with @code{+} sign).")
(augmented-slash ,boolean? "This figure is for an augmented figured bass
(back-slashed number).")
- (associated-context ,string? "Name of the Voice context associated with
-this @code{\\newaddlyrics} section.")
(bass ,boolean? "Set if this note is a bass note in a chord.")
(bracket-start ,boolean? "Start a bracket here.
cautionary accidental.")
(change-to-id ,string? "Name of the context to change to.")
(change-to-type ,symbol? "Type of the context to change to.")
- (class ,symbol? "The music class used for a music expression,
-or the event class used for a stream event. The list of classes
-is found in @ref{Music classes}.")
(compress-procedure ,procedure? "Compress this music expression.
Arg@tie{}1: the music, arg@tie{}2: factor.")
(context-id ,string? "Name of context.")
(create-new ,boolean? "Create a fresh context.")
(delta-step ,number? "How much should a fall change pitch?")
+ (denominator ,integer? "Denominator in a time signature.")
(descend-only ,boolean? "If set, this @code{\\context} only descends
in the context tree.")
- (denominator ,integer? "Denominator in a time signature.")
(digit ,integer? "Digit for fingering.")
(diminished ,boolean? "This bass figure should be slashed.")
(direction ,ly:dir? "Print this up or down?")
(drum-type ,symbol? "Which percussion instrument to play this note on.")
(duration ,ly:duration? "Duration of this note or lyric.")
- (error-found ,boolean?
- "If true, a parsing error was found in this expression.")
(element ,ly:music? "The single child of a Music_wrapper music object,
or the body of a repeat.")
(elements ,ly:music-list? "A list of elements for sequential of
simultaneous music, or the alternatives of repeated music.")
(elements-callback ,procedure? "Return a list of children, for use by
a sequential iterator. Takes a single music parameter.")
+ (error-found ,boolean?
+ "If true, a parsing error was found in this expression.")
(figure ,integer? "A bass figure.")
(force-accidental ,boolean? "If set, a cautionary accidental should
(no-continuation ,boolean? "If set, disallow continuation lines.")
(numerator ,integer? "Numerator of a time signature.")
- (once ,boolean? "Apply this operation only during one time step?")
(octavation ,integer? "This pitch was octavated by how many octaves?
For chord inversions, this is negative.")
+ (once ,boolean? "Apply this operation only during one time step?")
(origin ,ly:input-location? "Where was this piece of music defined?")
(page-break-permission ,symbol? "When the music is at top-level,
top-level, a page marker object is instanciated instead of a score.")
(page-turn-permission ,symbol? "When the music is at top-level,
whether to allow, forbid or force a page turn.")
+ (parenthesize ,boolean? "Enclose resulting objects in parentheses?")
(part-combine-status ,symbol? "Change to what kind of state?
Options are @code{solo1}, @code{solo2} and @code{unisono}.")
- (parenthesize ,boolean? "Enclose resulting objects in parentheses?")
(pitch ,ly:pitch? "The pitch of this note.")
(pitch-alist ,list? "A list of pitches jointly forming the scale
of a key signature.")
(property-operations ,list? "Do these operations for instantiating
the context.")
+ (quoted-context-id ,string? "The ID of the context to direct quotes to,
+e.g., @code{cue}.")
+ (quoted-context-type ,symbol? "The name of the context to
+direct quotes to, e.g., @code{Voice}.")
(quoted-events ,vector? "A vector of with @code{moment} and
@code{event-list} entries.")
(quoted-music-name ,string? "The name of the voice to quote.")
- (quoted-voice-direction ,ly:dir? "Should the quoted voice be up-stem
-or down-stem?")
- (quoted-context-type ,symbol? "The name of the context to
-direct quotes to, e.g., @code{Voice}.")
- (quoted-context-id ,string? "The ID of the context to direct quotes to,
-e.g., @code{cue}.")
(quoted-transposition ,ly:pitch? "The pitch used for the quote,
overriding @code{\\transposition}.")
+ (quoted-voice-direction ,ly:dir? "Should the quoted voice be up-stem
+or down-stem?")
(repeat-count ,integer? "Do a @code{\\repeat} how often?")
(tags ,list? "List of symbols that for denoting extra details, e.g.,
@code{\\tag #'part @dots{}} could tag a piece of music as only being active
in a part.")
+ (tempo-unit ,ly:duration? "The unit for the metronome count.")
+ (text ,markup? "Markup expression to be printed.")
(text-type ,symbol?
"Particular type of text script (e.g., finger, dynamic).")
- (text ,markup? "Markup expression to be printed.")
- (tempo-unit ,ly:duration? "The unit for the metronome count.")
(to-relative-callback ,procedure? "How to transform a piece of music
to relative pitches.")
(tonic ,ly:pitch? "Base of the scale.")
(tremolo-type ,integer? "Speed of tremolo, e.g., 16 for @code{c4:16}.")
(trill-pitch ,ly:pitch? "Pitch of other note of the trill.")
+ (tweaks ,list? "An alist of properties to override in the backend
+for the grob made of this event.")
(type ,symbol? "The type of this music object.
Determines iteration in some cases.")
(types ,list? "The types of this music object; determines by what
engraver this music expression is processed.")
- (tweaks ,list? "An alist of properties to override in the backend
-for the grob made of this event.")
(untransposable ,boolean? "If set, this music is not transposed.")
(what ,symbol? "What to change for auto-change.
FIXME: Naming.")
+
+ (X-offset ,number?
+ "Offset of resulting grob; only used for balloon texts.")
+
+ (Y-offset ,number?
+ "Offset of resulting grob; only used for balloon texts.")
)))
(types . (general-music event breathing-event))
))
+ (ClusterNoteEvent
+ . ((description . "A note that is part of a cluster.")
+ ;; not a note-event, to ensure that Note_heads_engraver doesn't eat it.
+ (types . (general-music cluster-note-event melodic-event
+ rhythmic-event event))
+ ))
+
(ContextChange
. ((description . "Change staves in Piano staff.
(types . (general-music translator-change-instruction))
))
- (ClusterNoteEvent
- . ((description . "A note that is part of a cluster.")
- ;; not a note-event, to ensure that Note_engraver doesn't eat it.
- (types . (general-music cluster-note-event melodic-event
- rhythmic-event event))
- ))
-
(ContextSpeccedMusic
. ((description . "Interpret the argument music within a
specific context.")
event))
))
- (ExtenderEvent
- . ((description . "Extend lyrics.")
- (types . (general-music extender-event event))
- ))
-
(Event
. ((description . "Atomic music event.")
(types . (general-music event))
(types . (general-music event-chord simultaneous-music))
))
+ (ExtenderEvent
+ . ((description . "Extend lyrics.")
+ (types . (general-music extender-event event))
+ ))
+
(FingeringEvent
. ((description . "Specify what finger to use for this note.")
(types . (general-music fingering-event event))
(types . (music-wrapper-music general-music relative-octave-music))
))
- (RepeatTieEvent
- . ((description . "Ties for starting a second volta bracket.")
- (types . (general-music event repeat-tie-event))
- ))
-
(RepeatedMusic
. ((description . "Repeat music in different ways.")
(types . (general-music repeated-music))
))
+ (RepeatTieEvent
+ . ((description . "Ties for starting a second volta bracket.")
+ (types . (general-music event repeat-tie-event))
+ ))
+
(RestEvent
. ((description . "A Rest.
-;;;; backend-documentation-lib.scm -- Functions for backend documentation
+;;;; document-backend.scm -- Functions for backend documentation
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; document-markup.scm -- part of generated backend documentation
+;;;; document-music.scm -- part of generated backend documentation
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; generate-documentation.scm -- Generate documentation
+;;;; documentation-generate.scm -- Generate documentation
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; framework-ps.scm --
+;;;; framework-eps.scm --
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;; module for benchmarking.
+;;;; framework-null.scm -- module for benchmarking.
(define-module (scm framework-null)
#:export (output-framework)
+;;;; framework-scm.scm
(define-module (scm framework-scm)
#:export (output-framework)
+;;;; framework-socket.scm
+
(define-module (scm framework-socket)
#:export (output-framework)
)
;;;;
-;;;; beam.scm -- Beam scheme stuff
+;;;; layout-beam.scm -- Beam scheme stuff
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; layout-page-tweaks.scm -- page breaking and page layout
+;;;; layout-page-dump.scm -- page breaking and page layout
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
#:use-module (scm layout-page-layout)
#:use-module (lily)
#:export (write-page-breaks
- ;; utilisties for writing other page dump functions
+ ;; utilities for writing other page dump functions
record-tweaks dump-all-tweaks))
(define (record-tweaks what property-pairs tweaks)
(cdr spacing)))))
page)))
-(define (page-breaking-wrapper paper-book)
- "Compute line and page breaks by calling the page-breaking paper variable,
- then performs the post process function using the page-post-process paper
- variable. Finally, return the pages."
- (let* ((paper (ly:paper-book-paper paper-book))
- (pages ((ly:output-def-lookup paper 'page-breaking) paper-book)))
- ((ly:output-def-lookup paper 'page-post-process) paper pages)
- pages))
-
(define (post-process-pages layout pages)
"If the write-page-layout paper variable is true, dumps page breaks
and tweaks."
-;;;; slur.scm -- Slur scheme stuff
+;;;; layout-slur.scm -- Slur scheme stuff
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
PNG images.")
(backend ps
"Select backend. Possible values: 'eps, 'null,
-'ps, 'scm, 'svg.")
+'ps, 'scm, 'socket, 'svg.")
(check-internal-types #f
"Check every property assignment for types.")
(clip-systems #f
-;;;; define-syntax.scm -- Defines functions for syntax expressions
+;;;; ly-syntax-constructors.scm -- Defines functions for syntax expressions
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
+;;;; memory-trace.scm
+
(define-module (scm memory-trace))
(use-modules (lily)
(ice-9 format))
-;;;; clef.scm -- Clef settings
+;;;; parser-clef.scm -- Clef settings
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; ly-from-scheme.scm -- parsing LilyPond music expressions from scheme
+;;;; parser-ly-from-scheme.scm -- parsing LilyPond music expressions from scheme
;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;; festival.scm --- Festival singing mode output
+;;; song-util.scm --- Festival singing mode output
;; Copyright (C) 2006, 2007 Brailcom, o.p.s.
-;;; festival.scm --- Festival singing mode output
+;;; song.scm --- Festival singing mode output
;; Copyright (C) 2006, 2007 Brailcom, o.p.s.