;;;;
;;;; 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)
`(
(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 X-parent")
+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}
"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-stem-shorten ,list? "How much to shorten beamed stems,
when their direction is forced. It is a list, since the value is different
(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
dash-period. Should be between 0.0 (no line) and 1.0 (continuous
line).")
- (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.")
;; 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}.")
(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.")
(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.")
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 callback for the
@code{springs-and-rods} property.")
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
(remove-first ,boolean? "Remove the first staff of a orchestral score?")
(right-padding ,ly:dimension? "Space to insert between note and
accidentals.")
+ (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.")
(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.")
(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.")
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.")
(tie-configuration ,list? "List of (@var{position} . @var{dir})
-pairs, indicating the desired tie configuration.")
+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")
happen?")
(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.")
(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.")
(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.")
(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.")
+ (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")
(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.")
;; 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.")
(quantize-position ,boolean? "If set, a vertical alignment is aligned to be within staff spaces.")
(stem-info ,pair? "caching of stem parameters")
(note-columns ,pair? "list of NoteColumn grobs.")
-;;; 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? "")