From: John Mandereau Date: Sat, 25 Jul 2009 18:56:25 +0000 (+0200) Subject: Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond X-Git-Tag: release/2.13.4-1~301 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3d8089a42af6304edb8dad56220e845c84832bb2;hp=69f0ec479a6ade46d0a227755bb02562112c6743;p=lilypond.git Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond Conflicts: Documentation/user/music-glossary.tely --- diff --git a/Documentation/music-glossary.tely b/Documentation/music-glossary.tely index 874c4827f9..c1762ecf2b 100644 --- a/Documentation/music-glossary.tely +++ b/Documentation/music-glossary.tely @@ -372,6 +372,7 @@ Languages in this order. * harmony:: * hemiola:: * homophony:: +* hook:: * hymn meter:: * interval:: * inversion:: @@ -857,8 +858,8 @@ I: alterazione, 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 @@ -1171,13 +1172,13 @@ FI: ylinouseva intervalli. @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. @@ -4407,6 +4408,13 @@ the same rhythm (more or less). In contrast to @emph{polyphony}. @ref{polyphony}. +@node hook +@section hook + +@seealso +@ref{flag}. + + @node hymn meter @section hymn meter diff --git a/Documentation/notation/expressive.itely b/Documentation/notation/expressive.itely index 56904b0067..3145261f6d 100644 --- a/Documentation/notation/expressive.itely +++ b/Documentation/notation/expressive.itely @@ -193,10 +193,10 @@ Absolute dynamic marks are specified using a command after a note, 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 diff --git a/Documentation/notation/text.itely b/Documentation/notation/text.itely index 516fd1e996..41b8fb34a4 100644 --- a/Documentation/notation/text.itely +++ b/Documentation/notation/text.itely @@ -53,7 +53,10 @@ information, see @ref{Text encoding}.} @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 @@ -68,10 +71,6 @@ a8^\markup { \italic pizz. } g f e 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 @@ -84,10 +83,13 @@ a4_"scherzando" f @end lilypond -@predefined @funindex \textLengthOn -@code{\textLengthOn}, +@funindex textLengthOn @funindex \textLengthOff +@funindex textLengthOff + +@predefined +@code{\textLengthOn}, @code{\textLengthOff}. @endpredefined @@ -103,6 +105,11 @@ Snippets: Internals Reference: @rinternals{TextScript}. +@cindex text outside margin +@cindex margin, text running over +@cindex text, keeping inside margin +@cindex lyrics, keeping inside margin + @knownissues @@ -119,13 +126,12 @@ default; to enable it, use @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." @@ -133,11 +139,14 @@ b1\startTextSpan 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) = @@ -149,16 +158,18 @@ e,\stopTextSpan 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 @@ -166,8 +177,7 @@ Text spanners may be manually placed above or below the staff; see @seealso Notation Reference: @ref{Line styles}, -@ref{Dynamics}, -@ref{Direction and placement}. +@ref{Dynamics}. Snippets: @rlsr{Text}. @@ -179,11 +189,19 @@ Internals Reference: @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}: @@ -270,10 +288,14 @@ all. @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 @@ -286,11 +308,9 @@ expression}. This syntax is described in @ref{File structure}. @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 { @@ -310,8 +330,12 @@ within LilyPond. This feature, and the specific syntax it requires, are described in @ref{Multi-page markup}. -@predefined +@funindex \markup +@funindex markup @funindex \markuplines +@funindex markuplines + +@predefined @code{\markup}, @code{\markuplines}. @endpredefined @@ -356,23 +380,27 @@ using the @code{\markup} mode specific syntax. @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 @@ -387,15 +415,17 @@ c @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..." @@ -403,12 +433,11 @@ a_\markup { \italic "... prints \"italic\" letters!" } 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 } } @@ -455,9 +484,15 @@ Syntax errors for markup mode can be confusing. @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: @@ -473,10 +508,15 @@ f1 d2 r @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 @@ -514,11 +554,14 @@ d c2 r8 c bes a g1 @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 { @@ -532,11 +575,10 @@ these are printed in a smaller size, but a normal size can be used as well: @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 { @@ -550,17 +592,16 @@ between the first and the second word. @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 { @@ -577,29 +618,38 @@ easily be solved by concatenating the text elements together: } @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 @@ -626,24 +676,31 @@ Installed files: @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 } @@ -656,9 +713,9 @@ d-\markup { \right-align 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 } @@ -671,24 +728,29 @@ a,-\markup { \halign #2 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 { @@ -708,13 +770,15 @@ a'4 a g2 a @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 { @@ -734,16 +798,21 @@ d,^\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 { @@ -761,15 +830,17 @@ is placed on its own line, either left-aligned or centered: } @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 { @@ -788,16 +859,21 @@ or any other markup expression: } @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 { @@ -825,8 +901,12 @@ the following example. } @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 @@ -851,21 +931,33 @@ Installed files: @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 { @@ -884,17 +976,22 @@ with graphics, as demonstrated in the following example. } @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 { @@ -918,19 +1015,26 @@ Flute quartet keeps very uneven time." } @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 { @@ -948,21 +1052,21 @@ expression, such objects can be combined. } @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 { @@ -984,8 +1088,8 @@ 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 @@ -1006,11 +1110,14 @@ Installed files: @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 { @@ -1051,10 +1158,10 @@ d-\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 @@ -1066,9 +1173,8 @@ c2^\markup { \musicglyph #"timesig.neomensural94" } @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: @@ -1095,9 +1201,12 @@ c^\markup { @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 { @@ -1110,8 +1219,8 @@ e f | 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 @@ -1134,9 +1243,21 @@ Installed files: @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 { @@ -1179,9 +1300,10 @@ Internals Reference: @rinternals{TextScript}. Installed files: @file{scm/@/define@/-markup@/-commands@/.scm}. +@funindex \markuplines +@funindex markuplines @predefined -@funindex \markuplines @code{\markuplines}. @endpredefined @@ -1189,8 +1311,8 @@ Installed files: @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:: @@ -1204,16 +1326,19 @@ and how they may be changed in scores. @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 { @@ -1231,29 +1356,27 @@ 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 @@ -1266,9 +1389,9 @@ c4^smaller @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 { @@ -1292,10 +1415,9 @@ it is preferable to use the simpler syntax explained in } @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 @@ -1309,8 +1431,8 @@ Notation Reference: @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" @@ -1323,10 +1445,15 @@ a1_\markup { } @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 @@ -1358,6 +1485,8 @@ specifying them, in that order, as shown in the example below. For an 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] diff --git a/flower/include/interval.hh b/flower/include/interval.hh index 27e221af8c..edb76deb1a 100644 --- a/flower/include/interval.hh +++ b/flower/include/interval.hh @@ -121,7 +121,7 @@ struct Interval_t : public Drul_array static bool left_less (Interval_t const &a, Interval_t const &b) { - return a[LEFT] < b[RIGHT]; + return a[LEFT] < b[LEFT]; } }; diff --git a/lily/context-scheme.cc b/lily/context-scheme.cc index 9ce9a9baa0..aef5404768 100644 --- a/lily/context-scheme.cc +++ b/lily/context-scheme.cc @@ -69,14 +69,14 @@ LY_DEFINE (ly_context_pushpop_property, "ly:context-pushpop-property", } 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!", diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index 8b5766387e..0cf2299b2e 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -140,9 +140,10 @@ LY_DEFINE (ly_warning, "ly:warning", 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)) { @@ -311,10 +312,10 @@ LY_DEFINE (ly_effective_prefix, "ly:effective-prefix", } 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)) { @@ -322,9 +323,9 @@ LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get", 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; } diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index 9c6f238895..c53aa6304d 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -17,7 +17,8 @@ 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); @@ -45,22 +46,21 @@ LY_DEFINE (ly_grob_set_property_x, "ly:grob-set-property!", } 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; } diff --git a/lily/grob.cc b/lily/grob.cc index cb6948e32c..5660b688b8 100644 --- a/lily/grob.cc +++ b/lily/grob.cc @@ -613,8 +613,8 @@ ADD_INTERFACE (Grob, " 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" diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 797d22d0a5..88c7fe8a1c 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -48,7 +48,7 @@ SCM ly_rational2scm (Rational); 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); diff --git a/lily/include/prob.hh b/lily/include/prob.hh index 069aa07924..7e39582da6 100644 --- a/lily/include/prob.hh +++ b/lily/include/prob.hh @@ -50,7 +50,7 @@ public: 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); diff --git a/lily/include/skyline.hh b/lily/include/skyline.hh index 26830b92c9..38d922c6a5 100644 --- a/lily/include/skyline.hh +++ b/lily/include/skyline.hh @@ -67,6 +67,7 @@ public: Real height (Real airplane) const; Real max_height () const; void set_minimum_height (Real height); + void clear (); bool is_empty () const; }; diff --git a/lily/include/spring.hh b/lily/include/spring.hh index c379889adb..4288af5884 100644 --- a/lily/include/spring.hh +++ b/lily/include/spring.hh @@ -39,6 +39,7 @@ public: 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); diff --git a/lily/music-scheme.cc b/lily/music-scheme.cc index c90acd5f17..1bef06a8ed 100644 --- a/lily/music-scheme.cc +++ b/lily/music-scheme.cc @@ -21,13 +21,14 @@ LY_DEFINE (ly_music_length, "ly:music-length", 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!", @@ -57,7 +58,7 @@ LY_DEFINE (ly_make_music, "ly:make-music", 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)); } @@ -76,8 +77,7 @@ LY_DEFINE (ly_music_mutable_properties, "ly:music-mutable-properties", 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)) diff --git a/lily/paper-book.cc b/lily/paper-book.cc index fd519d5d75..3db1321f5e 100644 --- a/lily/paper-book.cc +++ b/lily/paper-book.cc @@ -601,8 +601,11 @@ Paper_book::pages () } 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) diff --git a/lily/paper-system-scheme.cc b/lily/paper-system-scheme.cc index 137cef0c5c..b0f74eac0e 100644 --- a/lily/paper-system-scheme.cc +++ b/lily/paper-system-scheme.cc @@ -13,7 +13,7 @@ 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")); } diff --git a/lily/prob-scheme.cc b/lily/prob-scheme.cc index cc74f8ada1..0f8c0f6bae 100644 --- a/lily/prob-scheme.cc +++ b/lily/prob-scheme.cc @@ -31,19 +31,21 @@ LY_DEFINE (ly_prob_property_p, "ly:prob-property?", } 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; } diff --git a/lily/program-option-scheme.cc b/lily/program-option-scheme.cc index dca0490288..bfa5d09934 100644 --- a/lily/program-option-scheme.cc +++ b/lily/program-option-scheme.cc @@ -183,7 +183,8 @@ LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 0, 0, (), 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)); diff --git a/lily/simple-closure.cc b/lily/simple-closure.cc index 34bfd58f1b..dc4c3f4f7f 100644 --- a/lily/simple-closure.cc +++ b/lily/simple-closure.cc @@ -84,8 +84,8 @@ evaluate_with_simple_closure (SCM delayed_argument, } 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)); } diff --git a/lily/simple-spacer.cc b/lily/simple-spacer.cc index 1d38d9a70f..bab2a05dcb 100644 --- a/lily/simple-spacer.cc +++ b/lily/simple-spacer.cc @@ -216,7 +216,9 @@ Simple_spacer::compress_line () { Spring sp = sorted_springs[i]; - assert (sp.blocking_force () <= cur_force); + if (sp.blocking_force () > cur_force) + continue; + if (isinf (sp.blocking_force ())) break; @@ -234,7 +236,7 @@ Simple_spacer::compress_line () } 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 (); } diff --git a/lily/skyline.cc b/lily/skyline.cc index a3047a98bb..e733cfd080 100644 --- a/lily/skyline.cc +++ b/lily/skyline.cc @@ -542,6 +542,12 @@ Skyline::is_empty () const return b.end_ == infinity_f && b.y_intercept_ == -infinity_f; } +void +Skyline::clear () +{ + buildings_.clear (); + empty_skyline (&buildings_); +} /****************************************************************/ diff --git a/lily/spring.cc b/lily/spring.cc index 67d41c9c39..fd8e0147cb 100644 --- a/lily/spring.cc +++ b/lily/spring.cc @@ -32,10 +32,16 @@ Spring::Spring (Real dist, Real min_dist) 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 */ @@ -43,7 +49,7 @@ void 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; } @@ -90,7 +96,6 @@ Spring::set_distance (Real d) programming_error ("insane spring distance requested, ignoring it"); else { - min_distance_ = min (min_distance_, d); distance_ = d; update_blocking_force (); } @@ -104,11 +109,16 @@ Spring::set_min_distance (Real d) 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) { @@ -147,8 +157,8 @@ Spring::set_blocking_force (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 @@ -163,5 +173,5 @@ Spring::length (Real f) const force = 0.0; } - return distance_ + force * inv_k; + return max (min_distance_, distance_ + force * inv_k); } diff --git a/ly/dynamic-scripts-init.ly b/ly/dynamic-scripts-init.ly index a29430f158..8db53c4d3c 100644 --- a/ly/dynamic-scripts-init.ly +++ b/ly/dynamic-scripts-init.ly @@ -7,6 +7,8 @@ #(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") @@ -20,6 +22,7 @@ mf = #(make-dynamic-script "mf") 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") diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index ba7b18b218..55da3ff6f6 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -14,7 +14,7 @@ \context { \type "Engraver_group" \name "FretBoards" - + \description "A context for displaying fret diagrams." \consists "Fretboard_engraver" \consists "Rest_swallow_translator" @@ -375,6 +375,7 @@ printing of a single line of lyrics." \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 @@ -627,6 +628,7 @@ automatically when an output definition (a @code{\score} or \context { \type "Engraver_group" \name "FiguredBass" + \description "A context for printing a figured bass line." \consists "Figured_bass_engraver" \consists "Note_swallow_translator" diff --git a/ly/paper-defaults-init.ly b/ly/paper-defaults-init.ly index 9d2725ede0..4bd187cbbe 100644 --- a/ly/paper-defaults-init.ly +++ b/ly/paper-defaults-init.ly @@ -97,7 +97,6 @@ (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)) diff --git a/scm/GNUmakefile b/scm/GNUmakefile index f2555bb481..d3f055f77f 100644 --- a/scm/GNUmakefile +++ b/scm/GNUmakefile @@ -1,4 +1,4 @@ -# scm/Makefile +# scm/GNUmakefile depth = .. diff --git a/scm/autochange.scm b/scm/autochange.scm index c445997199..54f5e96250 100644 --- a/scm/autochange.scm +++ b/scm/autochange.scm @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 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) diff --git a/scm/coverage.scm b/scm/coverage.scm index e7392bb683..3c210555ae 100644 --- a/scm/coverage.scm +++ b/scm/coverage.scm @@ -1,3 +1,5 @@ +;;;; coverage.scm + (define-module (scm coverage)) (use-modules (lily) diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 3b18e94df4..fad961821e 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -34,12 +34,12 @@ ;; 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 @@ -90,11 +90,11 @@ printed. @code{(#t . #f)} does not make sense. 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 @@ -120,15 +120,13 @@ format.") (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 @@ -136,6 +134,8 @@ exceptions. Contains @code{(@var{chord} . @var{markup})} entries.") (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 @@ -159,11 +159,11 @@ percent repeats.") 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.") @@ -256,12 +256,12 @@ printed as numbers, but only as extender lines.") 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 @@ -309,11 +309,6 @@ manual beams are considered. Possible values include @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}.") @@ -323,6 +318,11 @@ is used for ottava brackets.") (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}.") @@ -443,12 +443,12 @@ the nesting of a start delimiters.") (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.") @@ -536,7 +536,9 @@ current breakable (clef, key signature, etc.) items.") 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 diff --git a/scm/define-event-classes.scm b/scm/define-event-classes.scm index f5d7b790de..b2edbe8250 100644 --- a/scm/define-event-classes.scm +++ b/scm/define-event-classes.scm @@ -1,4 +1,4 @@ -;;;; 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 ;;;; diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index a2ee15276f..0bed1adc65 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -1,4 +1,4 @@ -;;;; 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 ;;;; diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index 9e71d0fe4b..65fb09c4b4 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -95,10 +95,10 @@ beamlet, as a proportion of the distance between two adjacent stems.") (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.") @@ -114,15 +114,6 @@ center of the bar line.") (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 @@ -140,6 +131,15 @@ For example, clefs are put after key signatures by setting 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, @@ -223,10 +223,6 @@ the vertical edges: @code{(@var{left-height} . @var{right-height})}.") 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 @@ -244,6 +240,10 @@ problem, we pad each item by this amount (by adding the @q{car} on the 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.") ;; @@ -386,6 +386,7 @@ read from the NonMusicalPaperColumn that begins the measure.") (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?") @@ -529,10 +530,6 @@ guitar notation. The value of this setting is used by @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 @@ -544,6 +541,10 @@ noteheads.") 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.") ;; @@ -656,11 +657,6 @@ value @code{-1} means left aligned, @code{0}@tie{}centered, and 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.") @@ -766,6 +762,11 @@ in the list causes the corresponding tie to be formatted 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.") @@ -843,16 +844,9 @@ constructed from a whole number of squiggles.") `( ;;;;;;;;;;;;;;;; ;; 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 @@ -861,9 +855,6 @@ function is to protect objects from being garbage collected.") (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 @@ -874,8 +865,6 @@ bounds are spaced.") (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.") @@ -888,15 +877,11 @@ the grob where this is set in.") 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.") @@ -908,19 +893,17 @@ The closest @code{spacing-wishes} determine the actual distances between the 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.") @@ -946,24 +929,38 @@ objects.") (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.") @@ -977,6 +974,8 @@ entries @code{name} and @code{interfaces}.") (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.") @@ -1024,8 +1023,8 @@ a head may be affected by the left and/or right neighbour head. @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).") @@ -1036,7 +1035,8 @@ ligature grob in (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?") diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 30b1d8ae6d..259a4be74f 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -13,8 +13,6 @@ ;; TODO: junk the meta field in favor of something more compact? -;;; todo:: reorder sensibly. - (define-public all-grob-descriptions `( (Accidental @@ -80,12 +78,12 @@ (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 . ( @@ -102,9 +100,9 @@ (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 . ( @@ -117,11 +115,10 @@ (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 . ( @@ -131,8 +128,8 @@ (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 . ( @@ -141,12 +138,12 @@ (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 . ( @@ -163,9 +160,9 @@ (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 . ( @@ -175,8 +172,8 @@ (Y-offset . ,(grob::calc-property-by-copy 'Y-offset)) (meta . ((class . Item) (interfaces . (balloon-interface - text-interface - font-interface)))))) + font-interface + text-interface)))))) (BarLine . ( @@ -241,20 +238,20 @@ (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 . ( @@ -266,8 +263,8 @@ (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 . ( @@ -279,8 +276,8 @@ (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 . ( @@ -375,10 +372,10 @@ (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 . ( @@ -386,8 +383,8 @@ (stencil . ,bend::print) (thickness . 2.0) (meta . ((class . Spanner) - (interfaces . (spanner-interface - bend-after-interface)))))) + (interfaces . (bend-after-interface + spanner-interface)))))) (BreakAlignGroup . ( @@ -396,8 +393,8 @@ (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 . ( @@ -442,8 +439,8 @@ (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 . ( @@ -465,8 +462,8 @@ (meta . ((class . Item) (interfaces . (break-aligned-interface breathing-sign-interface - text-interface - font-interface)))))) + font-interface + text-interface)))))) (ChordName . ( @@ -476,10 +473,10 @@ (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 . ( @@ -501,10 +498,10 @@ (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 . ( @@ -521,8 +518,8 @@ . ( (Y-extent . ,ly:cluster-beacon::height) (meta . ((class . Item) - (interfaces . (rhythmic-grob-interface - cluster-beacon-interface)))))) + (interfaces . (cluster-beacon-interface + rhythmic-grob-interface)))))) (CombineTextScript . ( @@ -540,10 +537,10 @@ (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 . ( @@ -558,10 +555,10 @@ (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 . ( @@ -570,8 +567,8 @@ (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 . ( @@ -579,9 +576,9 @@ (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 . ( @@ -596,8 +593,8 @@ (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)))))) @@ -619,11 +616,11 @@ (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 @@ -664,11 +661,11 @@ (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 . ( @@ -707,13 +704,13 @@ (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 @@ -738,10 +735,10 @@ (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 . ( @@ -749,10 +746,10 @@ (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 @@ -775,8 +772,8 @@ (zigzag-width . 0.75) (meta . ((class . Spanner) (interfaces . (line-interface - unbreakable-spanner-interface - line-spanner-interface)))))) + line-spanner-interface + unbreakable-spanner-interface)))))) (GraceSpacing . ( @@ -801,8 +798,8 @@ ,(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 . ( @@ -828,10 +825,10 @@ (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 @@ -840,7 +837,8 @@ (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 . ( @@ -855,8 +853,8 @@ (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)))))) @@ -869,10 +867,10 @@ (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 . ( @@ -887,10 +885,10 @@ (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 @@ -908,11 +906,11 @@ (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 . ( @@ -930,10 +928,10 @@ (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 @@ -1017,8 +1015,8 @@ (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 . ( @@ -1033,9 +1031,9 @@ (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 @@ -1046,8 +1044,8 @@ (X-extent . #f) (Y-extent . #f) (meta . ((class . Spanner) - (interfaces . (spanner-interface - lyric-hyphen-interface)))))) + (interfaces . (lyric-hyphen-interface + spanner-interface)))))) (LyricText . ( @@ -1060,11 +1058,11 @@ (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 @@ -1078,8 +1076,8 @@ (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 . ( @@ -1093,8 +1091,8 @@ (stencil . ,ly:mensural-ligature::print) (thickness . 1.4) (meta . ((class . Spanner) - (interfaces . (mensural-ligature-interface - font-interface)))))) + (interfaces . (font-interface + mensural-ligature-interface)))))) (MetronomeMark . ( @@ -1106,10 +1104,10 @@ (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 . ( @@ -1122,10 +1120,10 @@ (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 @@ -1147,10 +1145,10 @@ (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 @@ -1169,10 +1167,10 @@ (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)))))) @@ -1194,11 +1192,11 @@ (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 . ( @@ -1208,8 +1206,8 @@ (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 . ( @@ -1219,8 +1217,8 @@ (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 . ( @@ -1231,23 +1229,23 @@ (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 . ( @@ -1258,8 +1256,8 @@ (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 @@ -1278,10 +1276,10 @@ (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 . ( @@ -1298,11 +1296,11 @@ (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)))))) @@ -1318,11 +1316,11 @@ ;; 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 . ( @@ -1331,7 +1329,8 @@ (stencil . ,parentheses-item::print) (stencils . ,parentheses-item::calc-parenthesis-stencils) (meta . ((class . Item) - (interfaces . (parentheses-interface font-interface)))))) + (interfaces . (font-interface + parentheses-interface)))))) (PercentRepeat . ( @@ -1342,8 +1341,8 @@ (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 @@ -1363,10 +1362,10 @@ (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 @@ -1398,8 +1397,8 @@ (thickness . 1.0) (meta . ((class . Spanner) (interfaces . (line-interface - piano-pedal-interface - piano-pedal-bracket-interface)))))) + piano-pedal-bracket-interface + piano-pedal-interface)))))) (RehearsalMark @@ -1423,12 +1422,12 @@ (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 . ( @@ -1436,9 +1435,9 @@ (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 . ( @@ -1473,10 +1472,10 @@ (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 . ( @@ -1501,9 +1500,9 @@ (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 . ( @@ -1555,10 +1554,10 @@ (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 . ( @@ -1573,8 +1572,8 @@ (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 @@ -1614,9 +1613,9 @@ (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 . ( @@ -1645,10 +1644,10 @@ (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 . ( @@ -1702,8 +1701,8 @@ (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 . ( @@ -1730,12 +1729,12 @@ (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 . ( @@ -1750,12 +1749,12 @@ (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 . ( @@ -1766,11 +1765,11 @@ (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 . ( @@ -1785,8 +1784,8 @@ (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 @@ -1797,8 +1796,8 @@ (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 . ( @@ -1827,9 +1826,9 @@ (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 . ( @@ -1871,10 +1870,10 @@ (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)))))) @@ -1900,12 +1899,12 @@ (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 . ( @@ -1931,10 +1930,10 @@ (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 . ( @@ -1997,9 +1996,9 @@ (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 . ( @@ -2012,10 +2011,10 @@ (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 . ( @@ -2028,11 +2027,11 @@ (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 . ( @@ -2041,10 +2040,10 @@ (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 @@ -2076,11 +2075,11 @@ (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 . ( @@ -2110,8 +2109,9 @@ (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 @@ -2124,10 +2124,10 @@ (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 . ( @@ -2142,8 +2142,8 @@ (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)))))) @@ -2153,8 +2153,8 @@ (stencil . ,ly:vaticana-ligature::print) (thickness . 0.6) (meta . ((class . Spanner) - (interfaces . (vaticana-ligature-interface - font-interface)))))) + (interfaces . (font-interface + vaticana-ligature-interface)))))) (VerticalAlignment . ( @@ -2207,8 +2207,8 @@ (X-extent . #f) (Y-extent . #f) (meta . ((class . Spanner) - (interfaces . (line-spanner-interface - line-interface)))))) + (interfaces . (line-interface + line-spanner-interface)))))) (VoltaBracket . ( @@ -2220,12 +2220,12 @@ (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 . ( @@ -2239,8 +2239,8 @@ (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)))))) )) diff --git a/scm/define-music-display-methods.scm b/scm/define-music-display-methods.scm index 9a3a4c1069..c0811990f7 100644 --- a/scm/define-music-display-methods.scm +++ b/scm/define-music-display-methods.scm @@ -134,33 +134,34 @@ ;;; 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))) diff --git a/scm/define-music-properties.scm b/scm/define-music-properties.scm index b4ec5a33e9..3d11e06c1c 100644 --- a/scm/define-music-properties.scm +++ b/scm/define-music-properties.scm @@ -1,4 +1,4 @@ -;;;; 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 ;;;; @@ -16,25 +16,20 @@ (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. @@ -49,9 +44,6 @@ TODO: Use SpanEvents?") 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.") @@ -59,23 +51,23 @@ Arg@tie{}1: the music, arg@tie{}2: factor.") (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 @@ -106,9 +98,9 @@ whether to allow, forbid or force a line break.") (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, @@ -118,9 +110,9 @@ whether to allow, forbid or force a page break.") 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.") @@ -132,17 +124,17 @@ It must take a single argument, being the context.") (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?") @@ -161,21 +153,21 @@ a @code{StringNumberEvent}.") (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.") @@ -186,4 +178,10 @@ music expression is to be discarded by the toplevel music handler.") (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.") ))) diff --git a/scm/define-music-types.scm b/scm/define-music-types.scm index f54342781c..0dc1c66bcf 100644 --- a/scm/define-music-types.scm +++ b/scm/define-music-types.scm @@ -120,6 +120,13 @@ Syntax: @var{note}@code{\\breathe}") (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. @@ -128,13 +135,6 @@ Syntax: @code{\\change Staff = @var{new-id}}") (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.") @@ -166,11 +166,6 @@ An alternative syntax is @var{note}@code{\\decr} @dots{} event)) )) - (ExtenderEvent - . ((description . "Extend lyrics.") - (types . (general-music extender-event event)) - )) - (Event . ((description . "Atomic music event.") (types . (general-music event)) @@ -185,6 +180,11 @@ An alternative syntax is @var{note}@code{\\decr} @dots{} (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)) @@ -405,16 +405,16 @@ Syntax: @code{\\unset @var{context}.@var{prop}}") (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. diff --git a/scm/document-backend.scm b/scm/document-backend.scm index c7477eae1a..a4233e3f69 100644 --- a/scm/document-backend.scm +++ b/scm/document-backend.scm @@ -1,4 +1,4 @@ -;;;; backend-documentation-lib.scm -- Functions for backend documentation +;;;; document-backend.scm -- Functions for backend documentation ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/document-music.scm b/scm/document-music.scm index 0a33c8a2f9..53e5bad155 100644 --- a/scm/document-music.scm +++ b/scm/document-music.scm @@ -1,4 +1,4 @@ -;;;; document-markup.scm -- part of generated backend documentation +;;;; document-music.scm -- part of generated backend documentation ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/documentation-generate.scm b/scm/documentation-generate.scm index ac33f4f09d..09c3f35d49 100644 --- a/scm/documentation-generate.scm +++ b/scm/documentation-generate.scm @@ -1,4 +1,4 @@ -;;;; generate-documentation.scm -- Generate documentation +;;;; documentation-generate.scm -- Generate documentation ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/framework-eps.scm b/scm/framework-eps.scm index 7383f3181c..bd1d9bb1aa 100644 --- a/scm/framework-eps.scm +++ b/scm/framework-eps.scm @@ -1,4 +1,4 @@ -;;;; framework-ps.scm -- +;;;; framework-eps.scm -- ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/framework-null.scm b/scm/framework-null.scm index a552b5e707..bcc58142e5 100644 --- a/scm/framework-null.scm +++ b/scm/framework-null.scm @@ -1,4 +1,4 @@ -;; module for benchmarking. +;;;; framework-null.scm -- module for benchmarking. (define-module (scm framework-null) #:export (output-framework) diff --git a/scm/framework-scm.scm b/scm/framework-scm.scm index 5cb3a67490..7c7c7e1045 100644 --- a/scm/framework-scm.scm +++ b/scm/framework-scm.scm @@ -1,3 +1,4 @@ +;;;; framework-scm.scm (define-module (scm framework-scm) #:export (output-framework) diff --git a/scm/framework-socket.scm b/scm/framework-socket.scm index 69b48db8a1..ab612e59aa 100644 --- a/scm/framework-socket.scm +++ b/scm/framework-socket.scm @@ -1,3 +1,5 @@ +;;;; framework-socket.scm + (define-module (scm framework-socket) #:export (output-framework) ) diff --git a/scm/layout-beam.scm b/scm/layout-beam.scm index 09dc09fd8e..e99387864d 100644 --- a/scm/layout-beam.scm +++ b/scm/layout-beam.scm @@ -1,5 +1,5 @@ ;;;; -;;;; beam.scm -- Beam scheme stuff +;;;; layout-beam.scm -- Beam scheme stuff ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/layout-page-dump.scm b/scm/layout-page-dump.scm index 8237106f06..387a0383f0 100644 --- a/scm/layout-page-dump.scm +++ b/scm/layout-page-dump.scm @@ -1,4 +1,4 @@ -;;;; 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 ;;;; @@ -13,7 +13,7 @@ #: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) diff --git a/scm/layout-page-layout.scm b/scm/layout-page-layout.scm index ffd6d632c4..d1c18ab573 100644 --- a/scm/layout-page-layout.scm +++ b/scm/layout-page-layout.scm @@ -128,15 +128,6 @@ (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." diff --git a/scm/layout-slur.scm b/scm/layout-slur.scm index e153c0cf79..b9e8f5d315 100644 --- a/scm/layout-slur.scm +++ b/scm/layout-slur.scm @@ -1,4 +1,4 @@ -;;;; slur.scm -- Slur scheme stuff +;;;; layout-slur.scm -- Slur scheme stuff ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/lily.scm b/scm/lily.scm index 9420744d64..17063a9aef 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -40,7 +40,7 @@ and scale down result to prevent jaggies in 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 diff --git a/scm/ly-syntax-constructors.scm b/scm/ly-syntax-constructors.scm index ee79823361..8eefe63b71 100644 --- a/scm/ly-syntax-constructors.scm +++ b/scm/ly-syntax-constructors.scm @@ -1,4 +1,4 @@ -;;;; 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 ;;;; diff --git a/scm/memory-trace.scm b/scm/memory-trace.scm index 39bedc1804..9da1c30eda 100644 --- a/scm/memory-trace.scm +++ b/scm/memory-trace.scm @@ -1,3 +1,5 @@ +;;;; memory-trace.scm + (define-module (scm memory-trace)) (use-modules (lily) (ice-9 format)) diff --git a/scm/parser-clef.scm b/scm/parser-clef.scm index b3de9fc405..fff8f1b83d 100644 --- a/scm/parser-clef.scm +++ b/scm/parser-clef.scm @@ -1,4 +1,4 @@ -;;;; clef.scm -- Clef settings +;;;; parser-clef.scm -- Clef settings ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; diff --git a/scm/parser-ly-from-scheme.scm b/scm/parser-ly-from-scheme.scm index cfbdcd7cff..178f94e4ef 100644 --- a/scm/parser-ly-from-scheme.scm +++ b/scm/parser-ly-from-scheme.scm @@ -1,4 +1,4 @@ -;;;; 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 ;;;; diff --git a/scm/song-util.scm b/scm/song-util.scm index 2453a14ed3..17bfc9abc4 100644 --- a/scm/song-util.scm +++ b/scm/song-util.scm @@ -1,4 +1,4 @@ -;;; festival.scm --- Festival singing mode output +;;; song-util.scm --- Festival singing mode output ;; Copyright (C) 2006, 2007 Brailcom, o.p.s. diff --git a/scm/song.scm b/scm/song.scm index 8edacdf13c..c5ecc89da6 100644 --- a/scm/song.scm +++ b/scm/song.scm @@ -1,4 +1,4 @@ -;;; festival.scm --- Festival singing mode output +;;; song.scm --- Festival singing mode output ;; Copyright (C) 2006, 2007 Brailcom, o.p.s.