;;;;
;;;; 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}
(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.")
"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
(color ,color? "The color of this 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
(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.")
-
- (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}.")
- (number-visibility ,boolean-or-symbol? "Like
-@code{bracket-visibility}, but for the number.")
-
-
-
(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.")
(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}
(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.")
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.")
(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.")
(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.
;; 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? "")