X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-properties.scm;h=53ad479a5a076ca60b02e6d5c8803a11ca7a2ed0;hb=d721d8a8f8b628b5254796f46bedb2f3b9067b50;hp=f766b8586e9fd5f2c9a2eaf007e7f87763a41917;hpb=b9bb8962563d6383b37a31b4b2918e20e88af5b9;p=lilypond.git diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index f766b8586e..53ad479a5a 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -2,22 +2,16 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 1998--2004 Han-Wen Nienhuys +;;;; (c) 1998--2006 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen - - (define (define-grob-property symbol type? description) (if (not (equal? (object-property symbol 'backend-doc) #f)) - (begin - (ly:warn-append "Redefining ~S" symbol) - (exit 2) - )) + (ly:error (_ "symbol ~S redefined") symbol)) (set-object-property! symbol 'backend-type? type?) (set-object-property! symbol 'backend-doc description) - symbol - ) + symbol) ;; put this in an alist? (define-public @@ -28,42 +22,28 @@ (apply define-grob-property x)) `( - (X-extent-callback ,procedure? "Procedure that calculates the -extent of this object. If this value is set to @code{#f}, the object -is empty in the X direction. The procedure takes a grob and axis -argument, and returns a number-pair. -") - - (X-offset-callbacks ,list? "A list of functions determining this -objects' position relative to its parent. The last one in the list is -called first. The functions take a grob and axis argument. ") - - (Y-extent-callback ,procedure? "see @code{X-extent-callback}.") - (Y-offset-callbacks ,list? "see @code{X-offset-callbacks}.") - - (accidentals ,list? "List of alteration numbers.") + (X-offset ,number? "The horizontal amount that this object is moved relative to its X-parent") + (Y-offset ,number? "The vertical amount that this object is moved +relative to its Y-parent") + (accidentals ,list? "List of alteration numbers") + (after-line-breaking ,boolean? "Dummy property, used to trigger callback for after-line-breaking") + (alteration-alist ,list? "List of @code{(@var{pitch} +. @var{accidental})} pairs for key signature.") + (add-stem-support ,boolean? "If set, the Stem object is included in this script's support") (align-dir ,ly:dir? "Which side to align? @code{-1}: left side, @code{0}: around center of width, @code{1}: right side.") - (arch-angle ,number? "Turning angle of the hook of a system brace" ) - (arch-height ,ly:dimension? "Height of the hook of a system brace.") - (arch-thick ,number? "Thickness of the hook of system brace.") - (arch-width ,ly:dimension? "Width of the hook of a system brace.") (arpeggio-direction ,ly:dir? "If set, put an arrow on the arpeggio squiggly line.") - (attachment ,pair? "Pair of symbols -indicating how a slur should be attached at the ends. The format is -'(@var{left-type} . @var{right-type}), where both @var{type}s are -symbols. The values of these symbols may be @code{alongside-stem}, -@code{stem}, @code{head} or @code{loose-end}.") - (attachment-offset ,pair? "cons of offsets, -'(@var{left-offset} . @var{right-offset}). This offset is added to -the attachments to prevent ugly slurs. [fixme: we need more -documentation here].") + + (arrow ,boolean? "Add an arrow to the line.") + (arrow-length ,number? "Arrow length.") + (arrow-width ,number? "Arrow width.") (auto-knee-gap ,ly:dimension? "If a gap is found between note heads -where a horizontal beam fits that is larger than this number, make a kneed beam.") +where a horizontal beam fits that is larger than this number, make a kneed beam.") + (average-spacing-wishes ,boolean? "If set, the spacing wishes are averaged over staves.") (axes ,list? "list of axis numbers. In the case of alignment grobs, this should contain only one number.") @@ -73,12 +53,11 @@ for balloon text.") (balloon-text-offset ,number-pair? "Where to put text relative to balloon.") (balloon-padding ,ly:dimension? "Text to add to help balloon") - (balloon-original-callback ,procedure? "The + (original-stencil ,ly:stencil? "The original stencil drawer to draw the balloon around.") (bar-size ,ly:dimension? "size of a bar line.") - (bar-size-procedure ,procedure? "Procedure that computes the size of a bar line.") (barre-type ,symbol? "Type of barre indication used in a fret diagram. Choices include @code{curved} and @code{straight}.") (base-shortest-duration ,ly:moment? @@ -87,12 +66,8 @@ Choices include @code{curved} and @code{straight}.") multiple lines of text.") (beam-thickness ,ly:dimension? "thickness, measured in staffspace.") (beam-width ,ly:dimension? "width of the tremolo sign.") - (beamed-lengths ,list? "list of stem lengths given beam multiplicity .") - (beamed-minimum-free-lengths ,list? "list of normal minimum free stem lengths (chord to beams) given beam multiplicity.") - (beamed-extreme-minimum-free-lengths ,list? "list of extreme minimum free stem lengths (chord to beams) given beam multiplicity.") - - (beamed-stem-shorten ,list? " How much to shorten beamed stems, -when their direction is forced. It is a list, since the value is different + (beamed-stem-shorten ,list? "How much to shorten beamed stems, +when their direction is forced. It is a list, since the value is different depending on the number flags/beams.") (beaming ,pair? "Pair of number lists. Each number list specifies which @@ -101,16 +76,12 @@ note etc. This information is used to determine how to connect the beaming patterns from stem to stem inside a beam.") - (beautiful ,number? "number that dictates when a slur should be de-uglyfied. It correlates with the enclosed area between noteheads and slurs. A value of 0.1 yields only undisturbed slurs, a value of 5 will tolerate quite high blown slurs.") - (before-line-breaking-callback ,procedure? "This procedure is -called before line breaking, but after splitting breakable items at -potential line breaks.") + (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.") (bracket-flare ,number-pair? "A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges") - (bracket-thick ,number? "width of a system start bracket.") (break-align-symbol ,symbol? "This key is used for aligning and spacing breakable items.") (break-align-orders ,vector? " Defines the order in which @@ -130,9 +101,16 @@ For example, clefs are put after key signatures by setting clef time-signature)) @end example") - (break-glyph-function ,procedure? "This function determines the -appearance of a bar line at the line break. It takes a glyph and -break-direction and returns the glyph at a line break.") + (break-overshoot ,number-pair? "How much does a broken spanner +stick out of its bounds?") + (bracket-visibility ,boolean-or-symbol? "This controls the +visibility of the tuplet bracket. Setting it to false will prevent +printing of the bracket. Setting the property to @code{'if-no-beam} +will make it print only if there is no beam associated with this +tuplet bracket.") + (break-visibility ,vector? "A vector of 3 booleans, #(end-of-line unbroken begin-of-line). +#t means visible, #f means killed.") + (breakable ,boolean? "Can this object appear at a line break, like clefs and bar lines?") (c0-position ,integer? "An integer indicating the position of @@ -141,23 +119,20 @@ middle C.") accidentals. Choices are @code{smaller} or @code{parentheses}.") (cautionary ,boolean? "Is this a cautionary accidental?") - (concaveness-gap ,ly:dimension? "A beam is printed horizontally -if its concaveness-gap is larger than this value. The concaveness-gap -is the distance of an inner note head to the line between two outer -note heads. ") - (concaveness-threshold ,number? "A beam is printed horizontally -if its concaveness is bigger than this threshold. - -Concaveness is calculated as the sum of the vertical distances of -inner note heads that fall outside the interval of the two outer -note heads, to the vertically nearest outer note head, divided by the -square of the inner notes involved.") + (concaveness ,number? "A beam is concave when its inner stems are +closer to the beam than the two outside stems. This number is a +measure of the closeness of the inner stems. It is used for damping +the slope of the beam.") (collapse-height ,ly:dimension? "Minimum height of system start delimiter. If equal or smaller, the bracket is removed.") - ;;DOCME + (color ,color? "The color of this grob.") - (control-points ,list? "List of 4 offsets (number-pairs) that form control points for the tie/slur shape.") + (control-points ,list? "List of offsets (number-pairs) that form +control points for the tie/slur/bracket shape. For beziers, this +should list the control points of a 3rd order bezier curve." ) + (connect-to-neighbor ,pair? "Pair of booleans, indicating whether this +grob looks as a continued break.") (damping ,number? "Amount of beam slope damping. 0: no, 1: yes, 100000: horizontal beams.") (dash-period ,number? "the length of one dash + white space. If @@ -166,25 +141,8 @@ negative, no line is drawn at all.") (dash-fraction ,number? "Size of the dashes, relative to dash-period. Should be between 0.0 (no line) and 1.0 (continuous line).") - - ;; [FIXME: use dash-period/dash length; see text-spanner] - (dashed ,number? " number representing the length of the dashes.") - - ;; todo: why is this tunable? - (dir-function ,procedure? "The function to determine the -direction of a beam. Choices include: - -@table @code -@item beam-dir-majority -number count of up or down notes -@item beam-dir-mean -mean center distance of all notes -@item beam-dir-median. -mean center distance weighted per note -@end table - -") + (default-direction ,ly:dir? "Direction determined by note head positions.") (direction ,ly:dir? "Up or down, left or right?") (dot-color ,symbol? "Color of dots. Options include @code{black} and @code{white}.") @@ -195,6 +153,12 @@ mean center distance weighted per note the vertical edges '(@var{left-height} . @var{right-height}).") (edge-text ,pair? "A pair specifying the texts to be set at the edges '(@var{left-text} . @var{right-text}).") + (eccentricity ,number? "How asymmetrical to make a slur. Positive means move the center to the right.") + + (enclose-bounds ,number? + "How much of the bound a spanner should enclose: ++1 = completely, 0 = center, -1 not at all.") + (expand-limit ,integer? "maximum number of measures expanded in church rests.") ;; remove me? @@ -209,24 +173,15 @@ by this much.") offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it.") - ;; docme. - (extremity-offset-alist ,list? "The offset adds to the centre of -the note head, or stem. - -Format: alist (attachment stem-dir*dir slur-dir*dir) -> offset. -") - - ;; - (extremity-function ,procedure? "A function that calculates the -attachment of a slur-end. The function takes a slur and direction argument and returns a symbol.") (finger-code ,symbol? "Code for the type of fingering indication in a fret diagram. Options include @code{none}, @code{in-dot}, and @code{below-string}.") + (flag-count ,number? "The number of tremolo beams.") (flag-style ,symbol? "a string determining what style of flag-glyph is typeset on a Stem. Valid options include @code{()} and @code{mensural}. Additionally, @code{\"no-flag\"} switches off the flag.") - (flag-width-function ,procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).") + (font-family ,symbol? "The font family is the broadest category for selecting text fonts. Options include: @code{sans}, @code{roman} ") (font-encoding ,symbol? "The font encoding is the broadest category for selecting a font. Options include: @code{fetaMusic}, @@ -269,10 +224,6 @@ stem. The stem will stop at the innermost beams.") (glyph ,string? "a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.") - (glyph-name ,string? "a name of character within font.") - (glyph-name-procedure ,procedure? "Return the name of a character -within font, to use for printing a symbol.") - (gap ,ly:dimension? "Size of a gap in a variable symbol.") (gap-count ,integer? "Number of gapped beams for tremolo.") (grace-space-factor ,number? "Space grace notes at this fraction @@ -287,9 +238,14 @@ slur, the closer it is to this height.") (horizontal-shift ,integer? "An integer that identifies ranking of note-column for horizontal shifting. This is used by @internalsref{note-collision-interface}.") + (avoid-slur ,symbol? "Method of handling slur collisions. +Choices are @code{around}, @code{inside}, @code{outside}. If unset, script +and slur ignore eachother.") (inspect-quants ,number-pair? "If debugging is set, set beam quant to this position, and print the respective scores.") - + (implicit ,boolean? "Is this an implicit bass figure?") + (keep-inside-line ,boolean? "If set, this column cannot have +things sticking into the margin.") (kern ,ly:dimension? "Amount of extra white space to add. For bar line, this is the amount of space after a thick line.") (knee ,boolean? "Is this beam kneed?") @@ -304,14 +260,20 @@ objects in higher layers.") "The thickness of ledger lines: it is the sum of 2 numbers. The first is the factor for line thickness, and the second for staff space. Both contributions are added.") - (left-position ,number? "Vertical position of left part of spanner.") (left-padding ,ly:dimension? "The amount of space that is put left to a group of accidentals.") + (length ,ly:dimension? "User override for the stem length of unbeamed stems.") - (lengths ,list? "Default stem lengths. The list gives a length -for each flag-count.") + (length-fraction ,number? "Multiplier for lengths. Used for +determining ledger lines and stem lengths.") + + (line-break-system-details ,list? + "Alist of properties to use when this +column is the start of a system.") + (line-count ,integer? "The number of staff lines.") + (line-positions ,list? "Vertical positions of staff lines.") (measure-length ,ly:moment? "Length of a measure. Used in some spacing situations.") @@ -327,41 +289,34 @@ polyphonic guitar notation. The value of this setting is used by collisions, even if they have a different number of dots. This normal notation for some types of polyphonic music. ") + (minimum-length-fraction ,number? "Minimum length of ledger line as fraction of note head size.") (minimum-distance ,ly:dimension? "Minimum distance between rest and notes or beam.") (minimum-X-extent ,number-pair? "Minimum size of an object in X dimension, measured in staff space.") (minimum-Y-extent ,number-pair? "See @code{minimum-Y-extent}.") (minimum-length ,ly:dimension? "Try to make a spanner at least -this long. This requires an appropriate routine for the -@code{spacing-procedure} property.") +this long. This requires an appropriate callback for the +@code{springs-and-rods} property.") (minimum-space ,ly:dimension? "Minimum distance that the victim should move (after padding).") - (print-function ,procedure? "Function taking grob as argument, -returning a @code{Stencil} object.") (neutral-direction ,ly:dir? "Which direction to take in the center of the staff.") (neutral-position ,number? "Position (in half staff spaces) where to flip the direction of custos stem.") - (new-accidentals ,list? "List of @code{(@var{pitch} -. @var{accidental})} pairs.") + (next ,ly:grob? "Object that is next relation (eg. the lyric syllable following an extender.") (note-names ,vector? "Vector of strings containing names for easy-notation note heads.") + (no-ledgers ,boolean? "If set, don't draw ledger lines on this object.") (no-spacing-rods ,boolean? "Items with this property do not cause spacing constraints.") (no-stem-extend ,boolean? "If set, notes with ledger lines do not get stems extending to the middle staff line.") (number-type ,symbol? "Type of numbers to use in label. Choices include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.") - - (old-accidentals ,list? "List of @code{(@var{pitch} . @var{accidental}) -pairs.}") - - (enclose-bounds ,number? - "How much of the bound a spanner should enclose: -+1 = completely, 0 = center, -1 not at all.") - + (packed-spacing ,boolean? "If set, the notes are spaced as +tightly as possible.") (padding ,ly:dimension? "Add this much extra space between objects that are next to each other.") (page-penalty ,number? "Penalty for page break at @@ -377,13 +332,17 @@ as a real penalty.") "Pair of staff coordinates @code{(@var{left} . @var{right})}, where both @var{left} and @var{right} are in the staff-space unit of the current staff.") - (ratio ,number? "Parameter for slur shape. The higher this number, the quicker the slur attains it @code{height-limit}.") + + (remove-empty ,boolean? "If set, remove group if it contains no +@code{interesting-items}") (remove-first ,boolean? "Remove the first staff of a orchestral score?") (right-padding ,ly:dimension? "Space to insert between note and accidentals.") - (right-position ,number? "Vertical position of right part of spanner.") + (same-direction-correction ,number? "Optical correction amount +for stems that are placed in tight configurations. This amount is used +for stems with the same direction to compensate for note-head to stem distance.") (script-priority ,number? "A sorting key that determines in what order a script is within a stack of scripts.") @@ -409,60 +368,52 @@ note that starts here.") "Multiply direction of @code{direction-source} with this to get the direction of this object.") + (side-axis ,number? "Is this object horizontally or vertically next to another object?") (size ,number? "Size of object, relative to standard size.") (slope ,number? "The slope of this object.") - (slope-limit ,number? "Set slope to zero if slope is running away -steeper than this.") - + (slur-padding ,number? "Extra distance between slur and script.") (space-alist ,list? "A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: @code{(@var{break-align-symbol} @var{type} . @var{distance})}, where @var{type} can be the symbols @code{minimum-space} or @code{extra-space}.") - (space-function ,procedure? "Calculate the vertical space between -two beams. This function takes a beam grob and the maximum number of -beams.") (spacing-increment ,number? "Add this much space for a doubled duration. Typically, the width of a note head. See also @internalsref{spacing-spanner-interface}.") - (spacing-procedure ,procedure? "Procedure for calculating spacing -parameters. The routine is called after -@code{before-line-breaking-callback}.") + (springs-and-rods ,boolean? "Dummy variable for triggering spacing routines.") (stacking-dir ,ly:dir? "Stack objects in which direction?") (staff-space ,ly:dimension? "Amount of space between staff lines, expressed in global staffspace.") (staff-position ,number? "Vertical position, measured in half staff spaces, counted from the middle line.") - (staffline-clearance ,ly:dimension? "How far away ties keep from -staff lines.") - - (stem-attachment-function ,procedure? "A function that calculates -where a stem attaches to the note head? This is a fallback when this -information is not specified in the font. The function takes a grob -and axis argument, and returns a (@var{x} . @var{y}) pair, specifying -location in terms of note head bounding box.") + + (stemlet-length ,number? "How long should a stem over a rest be?") + (stem-attachment ,number-pair? "A (@var{x} . @var{y}) pair where the stem attaches to the notehead.") (stem-end-position ,number? "Where does the stem end (the end is opposite to the support-head.") - (stem-shorten ,list? "How much a stem in a forced direction -should be shortened. The list gives an amount depending on the number -of flags/beams.") - ;;[TODO: doco] (stem-spacing-correction ,number? "Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.") + + (strict-note-spacing ,boolean? "If set, unbroken columns +with non-musical material (clefs, barlines, etc.) are not spaced +separately, but put before musical columns.") (string-count ,integer? "The number of strings in a fret diagram.") (stroke-style ,string? "set to \"grace\" to turn stroke through flag on.") (style ,symbol? "This setting determines in what style a grob is -typeset. Valid choices depend on the @code{print-function} that is -reading this property.") +typeset. Valid choices depend on the @code{stencil} callback reading +this property.") (text ,markup? "Text markup. See @usermanref{Text markup}.") ;;FIXME -- Should both be the same? + (text-direction ,ly:dir? "This controls the ordering of the +words. The default RIGHT is for roman text. Arabic or hebrew should +use LEFT.") (thick-thickness ,number? "Bar line thickness, measured in @code{linethickness}.") (thickness ,number? "Bar line thickness, measured in @@ -471,36 +422,17 @@ reading this property.") (threshold ,number-pair? "(@var{min} . @var{max}), where @var{min} and @var{max} are dimensions in staff space.") - (transparent ,boolean? "This is almost the same as setting -@code{print-function} to @code{#f}, but this retains the dimensions of -this grob, which means that grobs can be erased individually.") - (bracket-visibility ,boolean-or-symbol? "This controls the -visibility of the tuplet bracket. Setting it to false will prevent -printing of the bracket. Setting the property to @code{'if-no-beam} -will make it print only if there is no beam associated with this -tuplet bracket.") - (number-visibility ,boolean-or-symbol? "Like -@code{bracket-visibility}, but for the number.") - - ;; FIXME. - (break-visibility ,procedure? "A function that takes the break -direction and returns a cons of booleans containing (@var{transparent} -. @var{empty}). The following variables are predefined: -@code{all-visible}, @code{begin-of-line-visible}, -@code{end-of-line-visible}, @code{begin-of-line-invisible}, -@code{end-of-line-invisible}, @code{all-invisible}.") - (flag-count ,number? "The number of tremolo beams.") - + (tie-configuration ,list? "List of (@var{position} . @var{dir}) +pairs, indicating the desired tie configuration. A non-pair entry in +the list will cause said tie to be formatted automatically. ") + (transparent ,boolean? "This makes the grob invisible.") + (uniform-stretching ,boolean? "If set, items stretch proportional +to their durations. This looks better in complex polyphonic patterns") + (used ,boolean? "If set, this spacing column is kept in the spacing problem") (when ,ly:moment? "Global time step associated with this column happen?") - (word-space ,ly:dimension? "space to insert between lyrics or -words in texts.") + (word-space ,ly:dimension? "space to insert between words in texts.") (width ,ly:dimension? "The width of a grob measured in staff space.") - (x-gap ,ly:dimension? "The horizontal gap between note head and tie.") - (y-free ,ly:dimension? "The minimal vertical gap between slur and -note heads or stems.") - (y-offset ,ly:dimension? "Extra vertical offset for ties away -from the center line.") (zigzag-length ,ly:dimension? "The length of the lines of a zigzag, relative to @code{zigzag-width}. A value of 1 gives 60-degree zigzags.") @@ -535,55 +467,61 @@ sizes (like the dynamic @b{p} and @b{f}) on their baselines.") (apply define-internal-grob-property x)) `( + (axis-group-parent-X ,ly:grob? "Containing X axis group") + (axis-group-parent-Y ,ly:grob? "Containing Y axis group") (accidental-grobs ,list? "Alist with (NOTENAME . GROBLIST) entries") - (after-line-breaking-callback ,procedure? "This procedure is called after line breaking. Its return value is ignored.") - (all-elements ,grob-list? "list of all grobs in this line. Its + (adjacent-hairpins ,ly:grob-array? "List of directly neighboring hairpins") + (all-elements ,ly:grob-array? "list of all grobs in this line. Its function is to protect objects from being garbage collected.") (arpeggio ,ly:grob? "pointer to arpeggio object.") (beam ,ly:grob? "pointer to the beam, if applicable.") - (center-element ,ly:grob? "grob which will be at the center of -the group after aligning (when using -Align_interface::center_on_element).") + (bracket ,ly:grob? "the bracket for a number.") (direction-source ,ly:grob? "in case side-relative-direction is set, which grob to get the direction from .") (dot ,ly:grob? "reference to Dots object.") + (figures ,ly:grob-array? "Figured bass objects for continuation line.") + (glyph-name ,string? "a name of character within font.") (pedal-text ,ly:grob? "Pointer to the text of a mixed-style piano pedal.") (stem ,ly:grob? "pointer to Stem object.") (tremolo-flag ,ly:grob? "The tremolo object on a stem.") (tie ,ly:grob? "") (staff-symbol ,ly:grob? "the staff symbol grob that we're in.") (rest ,ly:grob? "the staff symbol grob that we're in.") + (rests ,ly:grob-array? "A list of rest objects.") (rest-collision ,ly:grob? "rest collision that a rest is in.") (accidental-grob ,ly:grob? "Accidental for this note.") - (bars ,grob-list? "list of bar line pointers.") - (bounded-by-me ,grob-list? "list of spanners that have this -column as start/begin point. Only columns that have grobs or act as bounds are spaced.") - (columns ,grob-list? "list of grobs, typically containing + (bars ,ly:grob-array? "list of bar line pointers.") + (bounded-by-me ,ly:grob-array? "list of spanners that have this +column as start/begin point. Only columns that have grobs or act as +bounds are spaced.") + (columns ,ly:grob-array? "list of grobs, typically containing paper-columns or note-column objects.") - (conditional-elements ,grob-list? "Internal use only") - (dependencies ,grob-list? "list of score-grob pointers that indicate who to compute first for certain global passes.") - (encompass-objects ,grob-list? "Objects that a slur should avoid + (conditional-elements ,ly:grob-array? "Internal use only") + (encompass-objects ,ly:grob-array? "Objects that a slur should avoid in addition to notes and stems.") - (elements ,grob-list? "list of grobs, type depending on the Grob where this is set in.") - (heads ,grob-list? "List of note heads.") - (items-worth-living ,grob-list? "A list of interesting items. If + (elements ,ly:grob-array? "list of grobs, type depending on the Grob +where this is set in.") + (heads ,ly:grob-array? "List of note heads.") + (items-worth-living ,ly:grob-array? "A list of interesting items. If empty in a particular staff, then that staff is erased.") (details ,list? "alist of parameters for detailed grob behavior.") - (note-heads ,grob-list? "List of note head grobs") - (side-support-elements ,grob-list? "the support, a list of grobs.") - (spacing-wishes ,grob-list? "List of note spacing or staff spacing objects.") - (stems ,grob-list? "list of stem objects, corresponding to the notes that the arpeggio has to be before.") - - - (left-neighbors ,grob-list? " List of + (note-heads ,ly:grob-array? "List of note head grobs") + (note-head ,ly:grob? "A single note head") + (side-support-elements ,ly:grob-array? "the support, a list of grobs.") + (spacing-wishes ,ly:grob-array? "List of note spacing or staff spacing objects.") + (stems ,ly:grob-array? "list of stem objects, corresponding to the notes that the arpeggio has to be before.") + (tuplets ,ly:grob-array? "list of smaller tuplet brackets") + (tuplet-number ,ly:grob? "the number for a bracket.") + + (left-neighbors ,ly:grob-array? " List of spacing-wish grobs that are close to the current column. The closest spacing-wishes determine the actual distances between the columns. ") - (right-neighbors ,grob-list? "see left-neighbors") - (left-items ,grob-list? "") - (right-items ,grob-list? "") + (right-neighbors ,ly:grob-array? "see left-neighbors") + (left-items ,ly:grob-array? "") + (right-items ,ly:grob-array? "") (cause ,scheme? "Any kind of causation objects (i.e. music, or perhaps translator) that was the cause for this grob. ") (font ,ly:font-metric? "Cached font metric object") @@ -600,47 +538,46 @@ entries @code{name} and @code{interfaces}.") ;; TODO: use interface for this! + (quantized-positions ,number-pair? "Beam positions after quanting.") (chord-tremolo ,boolean? "if set, this beam is a tremolo. ") (begin-of-line-visible ,boolean? "Used for marking ChordNames that should only show changes.") - (head-pair ,pair? "Pair of grob pointers, pointing to the two heads of the tie.") + + (quantize-position ,boolean? "If set, a vertical alignment is aligned to be within staff spaces.") (quant-score ,string? "Beam quanting score -- can be stored for debugging") + (least-squares-dy ,number? "ideal beam slope, without damping.") - (ligature-primitive-callback ,procedure? "callback that brews ligature head.") (stem-info ,pair? "caching of stem parameters") (note-columns ,pair? "list of NoteColumn grobs.") - (position-callbacks ,list? "list of -functions set spanner positions.") - -;;; Junk me, replace it by add-join. - (join-left-amount ,number? "") +;;; add-join would be enough if in Mensural_ligature::brew_ligature_primitive +;;; the next note could be seen + (join-right-amount ,number? "") (delta-pitch ,number? "the interval between this and the next note, or, more precisely, their vertical distance; this is used in ligatures for calculation of the height of vertical joins flexa shapes") (head-width ,ly:dimension? "width of this ligature head") ;; [TODO: change this] (primitive ,integer? "Pointer to a ligature primitive, i.e. an item similar to a note head that is part of a ligature. ") - (stencil ,ly:stencil? "Cached output of the print-function.") - (de-uglify-parameters ,list? "list of 3 real constants. They -define the valid areas for the middle control points. They are -empirical.") + (stencil ,ly:stencil? "The symbol to print.") (ideal-distances ,list? "(@var{obj} . (@var{dist} . @var{strength})) pairs.") (minimum-distances ,list? "list of rods, that have the format (@var{obj} . @var{dist}).") (interfaces ,list? "list of symbols indicating the interfaces supported by this object. Is initialized from the @code{meta} field.") (shorten ,ly:dimension? "The amount of space that a stem. Internally used to distribute beam shortening over stems. ") - + (slur ,ly:grob? "A pointer to a slur object") (use-breve-rest ,boolean? "Use breve rests for measures longer than a whole rest.") + (spaceable-staves ,ly:grob-array? "Objects to be spaced during page layout.") - + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ancient notation - +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; TODO: ;; there are too many properties for ancient notation ;; probably neume-types (a list of symbols) would also work. @@ -659,7 +596,6 @@ than a whole rest.") (add-stem ,boolean? "is this ligature head a virga and therefore needs an additional stem on the right side?") - (join-left ,boolean? "is this ligature head joined with the previous one by a vertical line?") (context-info ,integer? "DOCME") (inclinatum ,boolean? "is this neume an inclinatum?") (oriscus ,boolean? "is this neume an oriscus?")