]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
(grob-cause): escape spaces in URLs.
[lilypond.git] / scm / define-grob-properties.scm
index c464392c665c84ab796203c1d10da2c306febd28..a3c637534ab8387eb06c12fdcba5190b3ff0d542 100644 (file)
@@ -2,22 +2,16 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c)  1998--2004  Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 1998--2005  Han-Wen Nienhuys <hanwen@cs.uu.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
-
-
 (define (define-grob-property symbol type? description)
   (if (not (equal? (object-property symbol 'backend-doc) #f))
-      (begin
-       (ly:warn (string-append "Redefining " (symbol->string symbol) "\n"))
-       (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
@@ -41,30 +35,18 @@ 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.")
-
-     
+     (accidentals ,list? "List of alteration numbers")
+     (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].")
-
-
+  
      (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.")
      (axes ,list? "list of axis numbers.
 In the case of alignment grobs, this should contain only one number.")
 
@@ -80,6 +62,8 @@ 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
@@ -90,8 +74,8 @@ original stencil drawer to draw the balloon around.")
      (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
@@ -100,12 +84,14 @@ 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.")
      (between-cols ,pair? "Where to attach a loose column to")
-     (bracket-thick ,number? "width of a system start bracket.")
+     (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")
      (break-align-symbol ,symbol? "This key is used for aligning and
 spacing breakable items.")
      (break-align-orders ,vector? " Defines the order in which
@@ -128,6 +114,16 @@ For example, clefs are put after key signatures by setting
      (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
@@ -136,24 +132,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.")
 
+     (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.")
 
-     (damping ,integer? "Amount of beam slope damping. 0: no, 1: yes,
+     (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
 negative, no line is drawn at all.")
@@ -162,40 +154,41 @@ negative, no line is drawn at all.")
 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.")
-     (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.")
+     (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
+@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.
+@item beam-dir-median.
 mean center distance weighted per note
 @end table
 
 ")
      
      (direction ,ly:dir? "Up or down, left or right?")
+     (dot-color ,symbol? "Color of dots.  Options include 
+@code{black} and @code{white}.")
+     (dot-radius ,number? "Radius of dots.")
      (dot-count ,integer? "The number of dots.")
      (duration-log ,integer? "The 2-log of the note head duration, i.e. 0=whole note, 1 = half note, etc.")
      (edge-height ,pair? "A pair of number specifying the heights of
 the vertical edges '(@var{left-height} . @var{right-height}).")
-     (bracket-flare ,number-pair? "A pair of numbers specifying how
-much edges of brackets should slant outward.  Value 0.0 means straight
-edges")
-
      (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? 
@@ -210,23 +203,19 @@ 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.")
-     (stroke-style ,string? "set to \"grace\" to turn stroke through flag on.")
+     
      (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},
@@ -248,6 +237,9 @@ include @code{medium}, @code{bold}, @code{bold-narrow}, etc.")
      (font-shape ,symbol? "Select the shape of a font. Choices include @code{upright},
 @code{italic}, @code{caps}.")
 
+     (forced-distance ,ly:dimension? "A fixed distance between object
+reference points in an alignment.")
+
      (force-hshift ,number? "This specifies a manual shift for notes
 in collisions. The unit is the note head width of the first voice
 note.  This is used by @internalsref{note-collision-interface}.")
@@ -256,6 +248,7 @@ note.  This is used by @internalsref{note-collision-interface}.")
 signature object.")
      (french-beaming ,boolean? "Use French beaming style for this
 stem. The stem will stop at the innermost beams.")
+     (fret-count ,integer? "The number of frets in a fret diagram.")
 
      ;; ugh: double, change.
      (full-size-change ,boolean? "Don't make a change clef smaller.")
@@ -283,12 +276,21 @@ 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.")
+
+     (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?")
      (knee-spacing-correction ,number? "Factor for the optical
 correction amount for kneed beams. Set between 0 for no correction and
 1 for full correction.")
+     (label-dir ,ly:dir? "Side to which label is attached. @code{-1} for left, @code{1} for right.")
      (layer ,number? "The output layer [0..2]: layers define the order
 of printing objects. Objects in lower layers are overprinted by
 objects in higher layers.")
@@ -301,6 +303,7 @@ second for staff space. Both contributions are added.")
 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.")
      (line-count ,integer? "The number of staff lines.")
@@ -319,6 +322,7 @@ 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
@@ -329,24 +333,28 @@ this long. This requires an appropriate routine for the
 @code{spacing-procedure} 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.")
-     (new-accidentals ,list? "List of @code{(@var{pitch}
-. @var{accidental})} pairs.")
+     (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.")
+
+     (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}.")
+     (number-visibility ,boolean-or-symbol? "Like
+@code{bracket-visibility}, but for the number.")
 
-     (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
@@ -358,14 +366,13 @@ 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.")
 
-     (pitch-max ,ly:pitch? "Top pitch for ambitus.")
-     (pitch-min ,ly:pitch? "Bottom pitch for ambitus.")
-
      (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-first ,boolean? "Remove the first staff of a orchestral score?")
@@ -397,10 +404,11 @@ note that starts here.")
                              "Multiply direction of
 @code{direction-source} with this to get the direction of this
 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.")
+     (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}
@@ -422,9 +430,8 @@ parameters.  The routine is called after
 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.")
-
+     
+     (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
@@ -442,50 +449,40 @@ of flags/beams.")
 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.")
+     (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.")
      (text ,markup? "Text markup.  See @usermanref{Text markup}.")
+;;FIXME -- Should both be the same?
      (thick-thickness ,number? "Bar line thickness, measured in
 @code{linethickness}.")
      (thickness ,number? "Bar line thickness, measured in
 @code{linethickness}.")
      (thin-kern ,number? "The space after a hair-line in a bar line.")
-     (forced-distance ,ly:dimension? "A fixed distance between object
-reference points in an alignment.")
 
      (threshold ,number-pair? "(@var{min} . @var{max}), where
 @var{min} and @var{max} are dimensions in staff space.")
+     (tie-configuration ,list? "List of (@var{position} . @var{dir})
+pairs, indicating the desired tie configuration.")
      (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.")
-
+     (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.")
      (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.")
@@ -520,15 +517,15 @@ 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")
+     (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 ,grob-list? "list of all grobs in this line. Its
+     (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).")
      (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.")
@@ -538,35 +535,38 @@ set, which grob to get the direction from .")
      (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
+     (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 ,grob-list? "list of grobs, typically containing
+     (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.")
-     (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
+     (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.")
+     (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.")
+     (note-heads ,ly:grob-array? "List of note head grobs")
+     (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")
 
-
-     (left-neighbors ,grob-list? " List of
+     (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")
 
@@ -585,21 +585,22 @@ entries @code{name} and @code{interfaces}.")
      ;; TODO: use interface for this!
      (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.")
-     (quant-score ,number? "Beam quanting score -- can be stored for
+
+     (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.")
 
-     (if-text-padding ,number? "padding in case texts are there.")
      (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")
@@ -607,21 +608,18 @@ 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.")
-     (de-uglify-parameters ,list? "list of 3 real constants. They
-define the valid areas for the middle control points.  They are
-empirical.")
      (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
 
@@ -643,10 +641,8 @@ 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?")
-     (note-head-style ,string? "name of the font character to be used as note heads in the ambitus grob.")
      (oriscus ,boolean? "is this neume an oriscus?")
      (quilisma ,boolean? "is this neume a quilisma?")
      (pes-or-flexa ,boolean? "shall this neume be joined with the previous head?")
@@ -658,13 +654,9 @@ than a whole rest.")
      
      ;; end ancient notation
 
-     ; ugh.
-     (accidentals-style ,symbol? "style for ambitus.")
-     
      )))
 
 (define-public all-backend-properties
   (append
    all-internal-grob-properties
    all-user-grob-properties))
-