]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / scm / define-grob-properties.scm
index 5a285980b638e62330e60413bad4685286050651..09d7187b5cd2b3c3f69cdd485931d6f6c63d9beb 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2005  Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 1998--2006  Han-Wen Nienhuys <hanwen@cs.uu.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (define-grob-property symbol type? description)
      (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}.")
-
+     (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") 
@@ -45,8 +36,14 @@ called first.  The functions take a grob and axis argument. ")
      (arpeggio-direction ,ly:dir? "If set, put an
 arrow on the arpeggio squiggly line.")
   
+
+     (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.")
+     (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.")
 
@@ -56,24 +53,19 @@ 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?
                             "Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.")
      (baseline-skip ,ly:dimension? "Distance between base lines of
  multiple lines of text.")
-     (beam-thickness ,ly:dimension? "thickness, measured in staffspace.")
+     (beam-thickness ,ly:dimension? "thickness, measured in staff-space.")
      (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
 depending on the number flags/beams.")
@@ -84,9 +76,7 @@ note etc. This information is used to determine how to connect the
 beaming patterns from stem to stem inside a beam.")
 
 
-     (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
@@ -111,9 +101,6 @@ 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
@@ -124,8 +111,6 @@ 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
 middle C.")
      (cautionary-style ,symbol? "How to print cautionary
@@ -140,11 +125,12 @@ the slope of the beam.")
 
      (color ,color? "The color of this grob.")
 
-     (context ,ly:context? "Originating context of the grob")
-     
-     ;;DOCME
-     (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
@@ -153,27 +139,10 @@ 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).")
-
-     (arrow ,boolean? "Add an arrow to the line.")
-     (arrow-length ,number? "Arrow length.")
-     (arrow-width ,number? "Arrow width.")
-
-     ;; 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
-
-")
      
-     (direction ,ly:dir? "Up or down, left or right?")
+     (default-direction ,ly:dir? "Direction determined by note head positions.")
+     (direction ,ly:dir? "#UP or #DOWN, #LEFT or #RIGHT?  (or a numerical value, #UP=1, #DOWN=-1, #LEFT=-1, #RIGHT=1, CENTER=0)")
+
      (dot-color ,symbol? "Color of dots.  Options include 
 @code{black} and @code{white}.")
      (dot-radius ,number? "Radius of dots.")
@@ -194,7 +163,7 @@ edges '(@var{left-text} . @var{right-text}).")
      ;; remove me? 
      (extra-X-extent ,number-pair? "A grob is enlarged in X dimension
 by this much.")
-     (extra-Y-extent ,number-pair? "See @code{extra-Y-extent}.")
+     (extra-Y-extent ,number-pair? "See @code{extra-X-extent}.")
      
      (X-extent ,number-pair? "Hard coded extent in X direction. ")
      (Y-extent ,number-pair? "See @code{X-extent}.")
@@ -211,11 +180,7 @@ fret diagram.  Options include @code{none}, @code{in-dot}, and @code{below-strin
 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.).")
-     (strict-note-spacing ,boolean? "If set, unbroken columns
-with non-musical material (clefs, barlines, etc.) are not spaced
-separately, but put before musical columns.")
+
      (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},
@@ -258,10 +223,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
@@ -269,19 +230,20 @@ of the @code{spacing-increment}.")
 
      (grow-direction ,ly:dir? "Crescendo or decrescendo?")
      (hair-thickness ,number? "Thickness of the thin line in a bar line.")
-     (height ,ly:dimension? "Height of an object in staffspace.")
+     (head-direction ,ly:dir? "Are the note heads left or right in a semitie?")
+     (height ,ly:dimension? "Height of an object in staff-space.")
      (height-limit ,ly:dimension? "Maximum slur height: the longer the
 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}.")
-     (inside-slur ,boolean? "If set, this script should be inside the
-slur. If set to false, the script places itself around the slur. If
-unset, script and slur ignore each other ")
+     (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
@@ -298,15 +260,24 @@ 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.")
-     (length-fraction ,number? "Length of ledger line as fraction of note head size.")
-     (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.")
+     (line-thickness ,number? "The thickness of the tie/slur contour.")
+     (long-text ,markup? "Text markup.  See @usermanref{Text markup}.")
+     (max-beam-connect ,integer? "Maximum number of beams to connect
+to beams from this stem. Further beams are typeset as beamlets.")
      (measure-length ,ly:moment? "Length of a
 measure. Used in some spacing situations.")
 
@@ -327,10 +298,10 @@ notation for some types of polyphonic music. ")
 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-Y-extent ,number-pair? "See @code{minimum-X-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).")
      (neutral-direction ,ly:dir? "Which direction to take in the
@@ -346,33 +317,48 @@ easy-notation note heads.")
 spacing constraints.")
      (no-stem-extend ,boolean? "If set, notes with ledger lines do not
 get stems extending to the middle staff line.")
+     (non-musical ,boolean? "True if the grob belongs in a NonMusicalPaperColumn.")
      (number-type ,symbol? "Type of numbers to use in label.  Choices
 include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.")
-     
+     (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
-this column.  10000 or more means forbid linebreak, -10000 or less
-means force page break.  Other values influence page breaking decisions
-as a real penalty.")
-     (penalty ,number? "Penalty for line break at
-this column.  10000 or more means forbid line break, -10000 or less
-means force line break.  Other values influence line breaking decisions
-as a real penalty.")
-
+     (page-break-permission ,symbol? "Instructs the page breaker on whether to
+put a page break at this column. Can be 'force, or 'allow.")
+     (page-turn-permission ,symbol? "Instructs the page breaker on whether to
+put a page turn at this column. Can be 'force, or 'allow.")
+     (line-break-permission ,symbol? "Instructs the line breaker on whether to
+put a line break at this column. Can be 'force, or 'allow.")
+     (page-break-penalty ,number? "Penalty for page break at
+this column. This affects the choices of the page breaker; it will avoid a page
+break at a column with a positive penalty and prefer a page break at a column
+with a negative penalty.")
+     (page-turn-penalty ,number? "Penalty for a page turn at this column.
+This affects the choices of the page breaker; it will avoid a page
+turn at a column with a positive penalty and prefer a page turn at a column
+with a negative penalty.")
+     (line-break-penalty ,number? "Penalty for a line break at this column.
+This affects the choices of the line breaker; it will avoid a line
+break at a column with a positive penalty and prefer a line break at a column
+with a negative penalty.")
      (positions ,pair?
                "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.")
-     (print-function ,procedure? "Function taking grob as argument,
-returning a @code{Stencil} object.")
-     
      (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.")
+     (rotation ,list? "Number of degrees to rotate this object, and what point
+to rotate around. #'(45 0 0) means rotate 45 degrees around the center of this object.")
+     (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.")
 
@@ -384,6 +370,7 @@ Y axis.")
 
      (shorten-pair ,number-pair? "The lengths to shorten a
 text-spanner on both sides, for example a pedal bracket")
+     (clip-edges ,boolean? "Allow outward pointing beamlets at the edges of beams?")
      (common-shortest-duration ,ly:moment?
                               "The most common shortest note length.
 This is used in spacing. Enlarging this will set the score tighter.")
@@ -398,91 +385,71 @@ 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.")
      (slur-padding ,number? "Extra distance between slur and script.")
-     (slur-details ,list?
-                  "An alist of scoring parameters for slur formatting")
      (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.")
+expressed in global staff-space.")
      (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.")
      (stemlet-length ,number? "How long should a stem over a rest be?")
-     (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.")
+     (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.")
 
-     (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.")
+     (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}.")
+@code{line-thickness}.")
      (thickness ,number? "Bar line thickness, measured in
-@code{linethickness}.")
+@code{line-thickness}.")
      (thin-kern ,number? "The space after a hair-line in a bar line.")
 
      (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.")
+     (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")
-
-     (number-visibility ,boolean-or-symbol? "Like
-@code{bracket-visibility}, but for the number.")
-
-
+     (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-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.")
@@ -521,14 +488,17 @@ sizes (like the dynamic @b{p} and @b{f}) on their baselines.")
      (axis-group-parent-Y ,ly:grob? "Containing Y axis group")
      (accidental-grobs ,list? "Alist with (NOTENAME . GROBLIST) entries")
      (adjacent-hairpins ,ly:grob-array? "List of directly neighboring hairpins")
-     (after-line-breaking-callback ,procedure? "This procedure is called after line breaking. Its return value is ignored.")     
      (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.")
+     (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.")
+     (dots ,ly:grob-array? "multiple Dots objects.")
+     (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.")
@@ -540,23 +510,35 @@ set, which grob to get the direction from .")
      (accidental-grob ,ly:grob? "Accidental for this note.")
      (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.")
+column as start/begin point. Only columns that have grobs or act as
+bounds are spaced.")
+     (circled-tip ,boolean? "Put a circle at start/end of hairpins (al/del niente)")
      (columns ,ly:grob-array? "list of grobs, typically containing
 paper-columns or note-column objects.")
      (conditional-elements ,ly:grob-array? "Internal use only")
-     (dependencies ,ly:grob-array? "list of score-grob pointers that indicate who to compute first for certain global passes.")
      (encompass-objects ,ly:grob-array? "Objects that a slur should avoid
 in addition to notes and stems.")
-     (elements ,ly:grob-array? "list of grobs, type depending on the Grob where this is set in.")
+     (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.")
+     (details ,list? "alist of parameters for detailed grob behavior.
+
+more information on the allowed parameters can be found by inspecting
+lily/slur-scoring.cc, lily/beam-quanting.cc, and
+lily/tie-formatting-problem.cc.  Setting @code{debug-tie-scoring},
+@code{debug-beam-scoring} or @code{debug-slur-scoring} also provides
+useful clues.
+
+")
      (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.
@@ -583,21 +565,19 @@ entries @code{name} and @code{interfaces}.")
 
 
      ;; TODO: use interface for this!
-     (chord-tremolo ,boolean? "if set, this beam is a tremolo. ")
+     (quantized-positions ,number-pair? "Beam positions after quanting.")
      (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.")
-
-;;; add-join would be enough if in Mensural_ligature::brew_ligature_primitive
+;;; add-join would be enough if in ly:mensural-ligature::brew-ligature-primitive
 ;;; the next note could be seen
      (join-right-amount ,number? "")
 
@@ -606,7 +586,7 @@ functions set spanner positions.")
 
      ;; [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.")
+     (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}).")
 
@@ -620,8 +600,10 @@ 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.