X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-properties.scm;h=07d52c41611f93f32017871a3c5e8592cabce4b7;hb=94882ec3a3565a8198bf8028855f99cb907befdd;hp=34a87a20cf46b8d0c45c0b94111da72e08149497;hpb=1761724040df0eda7f9f76b1f01f1854043fdb56;p=lilypond.git diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index 34a87a20cf..07d52c4161 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -2,7 +2,7 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 1998--2006 Han-Wen Nienhuys +;;;; (c) 1998--2007 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen (define (define-grob-property symbol type? description) @@ -37,6 +37,8 @@ callback for @code{after-line-breaking}.") @code{0}: around center of width, @code{1}: right side.") (allow-loose-spacing ,boolean? "If set, column can be detached from main spacing.") + (allow-span-bar ,boolean? "If false, no inter-staff barline will +be created below this barline.") (alteration ,number? "Alteration numbers for accidental.") (alteration-alist ,list? "List of @code{(@var{pitch} . @var{accidental})} pairs for key signature.") @@ -94,7 +96,7 @@ printing of the bracket. Setting the property to @code{if-no-beam} makes it print only if there is no beam associated with this tuplet bracket.") (break-align-anchor ,number? "Grobs aligned to this break-align -grob will have their X-offsets shifted by this number. In barlines, +grob will have their X-offsets shifted by this number. In barlines, for example, this is used to position grobs relative to the (visual) center of the barline.") (break-align-anchor-alignment ,number? "Read by @@ -103,7 +105,7 @@ an anchor to a grobs extent") (break-align-symbol ,symbol? "This key is used for aligning and spacing breakable items.") (break-align-symbols ,list? "A list of symbols that determine -which break-aligned grobs to align this to. If the grob selected by +which break-aligned grobs to align this to. If the grob selected by the first symbol in the list is invisible due to break-visibility, we will align to the next grob (and so on).") (break-align-orders ,vector? "Defines the order in which @@ -163,8 +165,8 @@ positions.") @code{#X}), then this property determines whether the object is placed @code{#LEFT}, @code{#CENTER} or @code{#RIGHT} with respect to the other object. Otherwise, it determines whether the object is placed -@code{#UP}, @code{#CENTER} or #DOWN. Numerical values may also be -used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1}, +@code{#UP}, @code{#CENTER} or @code{#DOWN}. Numerical values may also +be used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1}, @code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{CENTER}=@code{0} but also other numerical values are permitted.") (dot-color ,symbol? "Color of dots. Options include @@ -172,7 +174,7 @@ but also other numerical values are permitted.") (dot-count ,integer? "The number of dots.") (dot-radius ,number? "Radius of dots.") (duration-log ,integer? "The 2-log of the note head duration, -i.e. @code{0} = whole note, @code{1} = half note, etc.") +i.e., @code{0} = whole note, @code{1} = half note, etc.") (eccentricity ,number? "How asymmetrical to make a slur. Positive means move the center to the right.") @@ -189,7 +191,8 @@ X@tie{}dimension by this much.") (extra-dy ,number? "Slope glissandi this much extra.") (extra-offset ,number-pair? "A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting -engine is completely oblivious to it.") +engine is completely oblivious to it. The values are measured in +@code{staff-space} units of the staff's @code{StaffSymbol}.") (extra-spacing-width ,number-pair? "In the horizontal spacing problem, we pad each item by this amount (by adding the @q{car} on the left side of the item and adding the @q{cdr} on the right side of the @@ -220,7 +223,7 @@ include @code{medium}, @code{bold}, @code{bold-narrow}, etc.") include @code{upright}, @code{italic}, @code{caps}.") (font-size ,number? "The font size, compared to the @q{normal} size. @code{0}@tie{}is style-sheet's normal size, @code{-1} is -smaller, @code{+1} is bigger. Each step of@tie{}1 is approximately +smaller, @code{+1} is bigger. Each step of@tie{}1 is approximately 12% larger, 6@tie{}steps are exactly a factor@tie{}2 larger. Fractional values are allowed.") (force-hshift ,number? "This specifies a manual shift for notes @@ -282,6 +285,7 @@ bar lines, this is the amount of space after a thick line.") correction amount for kneed beams. Set between @code{0} for no correction and @code{1} for full correction.") + (labels ,list? "List of labels (symbols) placed on a column") (label-dir ,ly:dir? "Side to which a label is attached. @code{-1} for left, @code{1}@tie{}for right.") (layer ,number? "The output layer (a value between 0 and@tie{}2: @@ -329,7 +333,7 @@ collisions, even if they have a different number of dots. This is normal notation for some types of polyphonic music. @code{merge-differently-dotted} only applies to opposing stem -directions (i.e. voice 1 &@tie{}2).") +directions (i.e., voice 1 &@tie{}2).") (merge-differently-headed ,boolean? "Merge note heads in collisions, even if they have different note heads. The smaller of the two heads is rendered invisible. This is used in @@ -337,7 +341,7 @@ polyphonic guitar notation. The value of this setting is used by @internalsref{note-collision-interface}. @code{merge-differently-headed} only applies to opposing stem -directions (i.e. voice 1 &@tie{}2).") +directions (i.e., voice 1 &@tie{}2).") (minimum-X-extent ,number-pair? "Minimum size of an object in X@tie{}dimension, measured in @code{staff-space} units.") (minimum-Y-extent ,number-pair? "See @code{minimum-X-extent}.") @@ -359,6 +363,8 @@ center of the staff.") to flip the direction of custos stem.") (next ,ly:grob? "Object that is next relation (e.g., the lyric syllable following an extender.") + (no-alignment ,boolean? "If set, don't place this grob in a +VerticalAlignment; rather, place it using its own Y-offset callback") (no-ledgers ,boolean? "If set, don't draw ledger lines on this object.") (no-stem-extend ,boolean? "If set, notes with ledger lines do not @@ -402,9 +408,12 @@ at a column with a negative penalty.") whether to put a page turn at this column. Can be @code{force} or @code{allow}.") (parenthesized ,boolean? "Parenthesize this grob.") - (positions ,pair? "Pair of staff coordinates @code{(@var{left} + (positions ,number-pair? "Pair of staff coordinates @code{(@var{left} . @var{right})}, where both @var{left} and @var{right} are in -@code{staff-space} units of the current staff.") +@code{staff-space} units of the current staff. + +For slurs, this value selects which slur candidate +to use; if extreme positions are requested, the closest one is taken.") (ratio ,number? "Parameter for slur shape. The higher this number, the quicker the slur attains its @code{height-limit}.") @@ -462,8 +471,13 @@ 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-to-barline ,boolean? "If set, the distance between a note +and the following non-musical column will be measured to the barline +instead of to the beginning of the non-musical column. If there is a +clef change followed by a barline, for example, this means that we will +try to space the non-musical column as though the clef is not there.") (spacing-increment ,number? "Add this much space for a doubled -duration. Typically, the width of a note head. See also +duration. Typically, the width of a note head. See also @internalsref{spacing-spanner-interface}.") (springs-and-rods ,boolean? "Dummy variable for triggering spacing routines.") @@ -518,6 +532,8 @@ should use @code{LEFT}.") (thin-kern ,number? "The space after a hair-line in a bar line.") (threshold ,number-pair? "@code{(@var{min} . @var{max})}, where @var{min} and @var{max} are dimensions in staff space.") + (to-barline ,boolean? "If true, the spanner will stop at that barline +just before it would otherwise stop.") (tie-configuration ,list? "List of @code{(@var{position} . @var{dir})} pairs, indicating the desired tie configuration, where @var{position} is the offset from the center of the staff in staff @@ -571,183 +587,246 @@ be constructed from a whole number of squiggles.") `( ;;;;;;;;;;;;;;;; ;; grobs & grob arrays. (alphabetical) - (X-common ,ly:grob? "Common refpoint for axis group.") + (X-common ,ly:grob? "Common reference point for axis group.") + (Y-common ,ly:grob? "See @code{X-common}.") - (cached-pure-extents ,vector? "Used by a VerticalAxisGroup to cache the Y-extents of different column ranges.") - (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") - (all-elements ,ly:grob-array? "list of all grobs in this line. Its + + (accidental-grob ,ly:grob? "The accidental for this note.") + (accidental-grobs ,list? "An alist with @code{(@var{notename} . +@var{groblist})} entries.") + (adjacent-pure-heights ,vector? "Used by a @code{VerticalAxisGroup} to +cache the @code{Y-extent}s of different column ranges.") + (adjacent-hairpins ,ly:grob-array? "A list of directly neighboring +hairpins.") + (all-elements ,ly:grob-array? "A 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.") - (cross-staff ,boolean? "for a beam or a stem, true if we depend on inter-staff spacing") - (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.") - (important-column-ranks ,vector? "Cache of columns that contain items-worth-living.") - (items-worth-living ,ly:grob-array? "A list of interesting items. If -empty in a particular staff, then that staff is erased.") + (arpeggio ,ly:grob? "A pointer to an @code{Arpeggio} object.") + (axis-group-parent-X ,ly:grob? "Containing X@tie{}axis group.") + (axis-group-parent-Y ,ly:grob? "Containing Y@tie{}axis group.") + + (bar-extent ,number-pair? "The Y-extent of the actual barline. +This may differ from 'Y-extent because it does not include the dots in +a repeat barline.") + (bars ,ly:grob-array? "A list of bar line pointers.") + (beam ,ly:grob? "A pointer to the beam, if applicable.") + (bounded-by-me ,ly:grob-array? "A list of spanners that have this +column as start/begin point. Only columns that have grobs or act as +bounds are spaced.") + (bracket ,ly:grob? "The bracket for a number.") - (glyph-name ,string? "a name of character within font.") - (left-neighbors ,ly:grob-array? " List of -spacing-wish grobs that are close to the current column. + (columns ,ly:grob-array? "A list of grobs, typically containing +@code{PaperColumn} or @code{NoteColumn} objects.") + (conditional-elements ,ly:grob-array? "Internal use only.") + (cross-staff ,boolean? "For a beam or a stem, this is true if we +depend on inter-staff spacing.") -The closest spacing-wishes determine the actual distances between the -columns. -") - (left-items ,ly:grob-array? "") - (pedal-text ,ly:grob? "Pointer to the text of a mixed-style piano pedal.") - - (pure-Y-common ,ly:grob? "Caches the common_refpoint_of_array of the elements grob-set") - (pure-relevant-elements ,ly:grob-array? "The subset of elements that are relevant for finding the pure-Y-extent.") - (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 ,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 ,ly:grob-array? "Internal use only") + (direction-source ,ly:grob? "In case @code{side-relative-direction} is +set, which grob to get the direction from.") + (dot ,ly:grob? "A reference to a @code{Dots} object.") + (dots ,ly:grob-array? "Multiple @code{Dots} objects.") + + (elements ,ly:grob-array? "A list of grobs; the type is depending on +the grob where this is set in.") (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.") - (grace-spacing ,ly:grob? "a run of grace notes.") - (heads ,ly:grob-array? "List of note heads.") - - (note-columns ,pair? "list of NoteColumn grobs.") - - (normal-stems ,ly:grob-array? "Array of visible stems.") - (note-heads ,ly:grob-array? "List of note head grobs") - (note-head ,ly:grob? "A single note head") - (right-items ,ly:grob-array? "") - (right-neighbors ,ly:grob-array? "see left-neighbors") + + (figures ,ly:grob-array? "Figured bass objects for continuation line.") + + (glyph-name ,string? "The glyph name within the font.") + (grace-spacing ,ly:grob? "A run of grace notes.") + + (heads ,ly:grob-array? "A list of note heads.") + + (important-column-ranks ,vector? "A cache of columns that contain +@code{items-worth-living} data.") + (items-worth-living ,ly:grob-array? "A list of interesting items. If +empty in a particular staff, then that staff is erased.") + + (left-items ,ly:grob-array? "DOCME") + (left-neighbors ,ly:grob-array? "A list of @code{spacing-wishes} grobs +that are close to the current column. + +The closest @code{spacing-wishes} determine the actual distances between the +columns.") + + (normal-stems ,ly:grob-array? "An array of visible stems.") + (note-columns ,pair? "A list of @code{NoteColumn} grobs.") + (note-head ,ly:grob? "A single note head.") + (note-heads ,ly:grob-array? "A list of note head grobs.") + + (padding-pairs ,list? "An alist mapping @code{(@var{name} . @var{name})} +to distances.") + (pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano +pedal.") + (pure-Y-common ,ly:grob? "A cache of the +@code{common_refpoint_of_array} of the @code{elements} grob set.") + (pure-Y-offset-in-progress ,boolean? "A debugging aid for catching +cyclic dependencies.") + (pure-relevant-items ,ly:grob-array? "A subset of elements that are +relevant for finding the @code{pure-Y-extent}.") + (pure-relevant-spanners ,ly:grob-array? "A subset of elements that are +relevant for finding the @code{pure-Y-extent}.") + + (rest ,ly:grob? "A pointer to a @code{Rest} object.") + (rest-collision ,ly:grob? "A rest collision that a rest is in.") + (rests ,ly:grob-array? "A list of rest objects.") + (right-items ,ly:grob-array? "DOCME") + (right-neighbors ,ly:grob-array? "See @code{left-neighbors}.") + (separation-item ,ly:grob? "A separation item.") - (slur ,ly:grob? "A pointer to a slur object") - (spacing ,ly:grob? "the spacing spanner governing this section.") - (spaceable-staves ,ly:grob-array? "Objects to be spaced during page layout.") - (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.") + (side-support-elements ,ly:grob-array? "The side support, a list of +grobs.") + (slur ,ly:grob? "A pointer to a @code{Slur} object.") + (spaceable-staves ,ly:grob-array? "Objects to be spaced during page +layout.") + (spacing ,ly:grob? "The spacing spanner governing this section.") + (spacing-wishes ,ly:grob-array? "List of note spacing or staff spacing +objects.") + (staff-symbol ,ly:grob? "The staff symbol grob that we are in.") + (stem ,ly:grob? "A pointer to a @code{Stem} object.") + (stems ,ly:grob-array? "A list of stem objects, corresponding to the +notes that the arpeggio has to be before.") + + (tie ,ly:grob? "A pointer to a @code{Tie} object.") + (tremolo-flag ,ly:grob? "The tremolo object on a stem.") + (tuplet-number ,ly:grob? "The number for a bracket.") + (tuplets ,ly:grob-array? "A list of smaller tuplet brackets.") - - ;;;;;;;;;;;;;;;; ;; other - (begin-of-line-visible ,boolean? "Used for marking ChordNames that should only show changes.") - (cause ,scheme? "Any kind of causation objects (i.e. music, or perhaps translator) that was the cause for this grob. ") - (circled-tip ,boolean? "Put a circle at start/end of hairpins (al/del niente)") - (delta-position ,number? "vertical position difference") - (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}, + (begin-of-line-visible ,boolean? "Used for marking @code{ChordNames} +that should only show changes.") + + (cause ,scheme? "Any kind of causation objects (i.e., music, or perhaps +translator) that was the cause for this grob.") + (circled-tip ,boolean? "Put a circle at start/end of hairpins (al/del +niente).") + + (delta-position ,number? "The vertical position difference.") + (details ,list? "Alist of parameters for detailed grob behavior. + +More information on the allowed parameters can be found by inspecting +@file{lily/slur-scoring.cc}, @file{lily/beam-quanting.cc}, and +@file{lily/tie-formatting-problem.cc}. Setting @code{debug-tie-scoring}, @code{debug-beam-scoring} or @code{debug-slur-scoring} also provides -useful clues. +useful clues.") -") + (font ,ly:font-metric? "A cached font metric object.") - (font ,ly:font-metric? "Cached font metric object") - (head-width ,ly:dimension? "width of this ligature head") + (head-width ,ly:dimension? "The width of this ligature head.") - (ideal-distances ,list? "(@var{obj} . (@var{dist} . @var{strength})) pairs.") - (interfaces ,list? "list of symbols indicating the interfaces supported by this object. Is initialized from the @code{meta} field.") - (least-squares-dy ,number? - "ideal beam slope, without damping.") + (ideal-distances ,list? "@code{(@var{obj} . (@var{dist} . +@var{strength}))} pairs.") + (interfaces ,list? "A list of symbols indicating the interfaces +supported by this object. It is initialized from the @code{meta} field.") + + (least-squares-dy ,number? "The ideal beam slope, without damping.") - (meta ,list? "Contains meta information. It is an alist with the + (meta ,list? "Provide meta information. It is an alist with the entries @code{name} and @code{interfaces}.") - (minimum-distances ,list? "list of rods, that have the format (@var{obj} . @var{dist}).") + (minimum-distances ,list? "A list of rods that have the format +@code{(@var{obj} . @var{dist})}.") - (positioning-done ,boolean? - "Used to signal that a positioning element -did its job. This ensures that a positioning is only done once.") - (pure-Y-extent ,number-pair? "The estimated height of a system") - - (quantized-positions ,number-pair? "Beam positions after quanting.") - (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") + (positioning-done ,boolean? "Used to signal that a positioning element +did its job. This ensures that a positioning is only done once.") + (pure-Y-extent ,number-pair? "The estimated height of a system.") + + (quant-score ,string? "The Beam quanting score -- can be stored for +debugging.") + (quantize-position ,boolean? "If set, a vertical alignment is aligned +to be within staff spaces.") + (quantized-positions ,number-pair? "The beam positions after +quanting.") - (script-stencil ,pair? "Pair (@code{type} . @code{arg}), which -acts as an index for looking up a Stencil object.") - - (stem-info ,pair? "caching of stem parameters") - (shorten ,ly:dimension? "The amount of space that a -stem. Internally used to distribute beam shortening over stems. ") - (skyline-distance ,number? "The distance between this staff and the next one, as determined by a skyline algorithm.") - (skyline-horizontal-padding ,number? "For determining the vertical distance between 2 staves, it is possible to have a configuration which would result in a tight interleaving of grobs from the top staff and the bottom staff. The larger this parameter is, the farther apart the staves are placed in such a configuration.") - + (script-stencil ,pair? "A pair @code{(@var{type} . @var{arg})} which +acts as an index for looking up a @code{Stencil} object.") + (shorten ,ly:dimension? "The amount of space that a stem is shortened. +Internally used to distribute beam shortening over stems.") + (skyline-distance ,number? "The distance between this staff and the +next one, as determined by a skyline algorithm.") + (skyline-horizontal-padding ,number? "For determining the vertical +distance between two staves, it is possible to have a configuration which +would result in a tight interleaving of grobs from the top staff and the +bottom staff. The larger this parameter is, the farther apart the staves +are placed in such a configuration.") + (stem-info ,pair? "A cache of stem parameters.") + (use-breve-rest ,boolean? "Use breve rests for measures longer than a whole rest.") - - + ;;;;;;;;;;;;;;;; ;; ancient notation - (join-right-amount ,number? "") - (primitive ,integer? "Pointer to a ligature primitive, i.e. an item similar to a note head that is part of a ligature. ") - ;;;;;;; TODO: - ;; there are too many properties for ancient notation + ;; There are too many properties for ancient notation; ;; probably neume-types (a list of symbols) would also work. - ;; However, such this list would consist of a couple of dozens of + ;; However, such a list would consist of a couple of dozens of ;; entries, since head prefixes may be combined in many ways. If - ;; the macros in gregorian-init.ly would directly set prefix-set, + ;; the macros in `gregorian-init.ly' would directly set prefix-set, ;; all the head prefixes could be junked; however, such macros ;; would be quite numerous, I guess. --jr - (auctum ,boolean? "is this neume liquescentically augmented?") - (ascendens ,boolean? "is this neume of an ascending type?") - (add-cauda ,boolean? "does this flexa require an additional cauda on the left side?") - (add-join ,boolean? "is this ligature head joined with the next one by a vertical line?") - (cavum ,boolean? "is this neume outlined?") - (descendens ,boolean? "is this neume of a descendent type?") - (deminutum ,boolean? "is this neume deminished?") - (flexa-height ,ly:dimension? "height of a flexa shape in a ligature grob in staff_space.") - (flexa-width ,ly:dimension? "width of a flexa shape in a ligature grob in staff_space.") - (join-heads ,boolean? "Whether to join the note heads of an ambitus grob with a vertical line.") - (linea ,boolean? "attach vertical lines to this neume?") - (add-stem ,boolean? "is this ligature head a virga and therefore needs an additional stem on the right side?") - (context-info ,integer? "Within a ligature, the final glyph or shape of a head may be affected by the left and/or right neighbour head. context-info holds for each head such information about the left and right neighbour, encoded as a bit mask.") - (inclinatum ,boolean? "is this neume an inclinatum?") - (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?") - (prefix-set ,number? "a bit mask that holds all Gregorian head prefixes, such as @code{\\virga} or @code{\\quilisma}") + (add-cauda ,boolean? "Does this flexa require an additional cauda on +the left side?") + (add-join ,boolean? "Is this ligature head-joined with the next one +by a vertical line?") + (add-stem ,boolean? "Is this ligature head a virga and therefore needs +an additional stem on the right side?") + (ascendens ,boolean? "Is this neume of ascending type?") + (auctum ,boolean? "Is this neume liquescentically augmented?") + + (cavum ,boolean? "Is this neume outlined?") + (context-info ,integer? "Within a ligature, the final glyph or shape of +a head may be affected by the left and/or right neighbour head. +@code{context-info} holds for each head such information about the left and +right neighbour, encoded as a bit mask.") + + (descendens ,boolean? "Is this neume of descendent type?") + (deminutum ,boolean? "Is this neume deminished?") + + (flexa-height ,ly:dimension? "The height of a flexa shape in a ligature +grob (in @code{staff-space} units).") + (flexa-width ,ly:dimension? "The width of a flexa shape in a +ligature grob in (in @code{staff-space} units).") + + (inclinatum ,boolean? "Is this neume an inclinatum?") + + (join-heads ,boolean? "Whether to join the note heads of an ambitus +grob with a vertical line.") + (join-right-amount ,number? "DOCME") + + (linea ,boolean? "Attach vertical lines to this neume?") + + (oriscus ,boolean? "Is this neume an oriscus?") + + (pes-or-flexa ,boolean? "Shall this neume be joined with the previous +head?") + (prefix-set ,number? "A bit mask that holds all Gregorian head +prefixes, such as @code{\\virga} or @code{\\quilisma}.") + (primitive ,integer? "A pointer to a ligature primitive, i.e., an item +similar to a note head that is part of a ligature.") + + (quilisma ,boolean? "Is this neume a quilisma?") + (stropha ,boolean? "Is this neume a stropha?") + (virga ,boolean? "Is this neume a virga?") - (x-offset ,ly:dimension? "Extra horizontal offset for ligature heads.") - ;; end ancient notation + (x-offset ,ly:dimension? "Extra horizontal offset for ligature heads.") + ;;;;;;;;;;;;;;;; ;; fret-diagrams extra properties - (xo-font-magnification ,number? "Magnification used for mute and - open string indicators in fret diagrams") - (mute-string ,string? "String to be used to indicate muted string in - fret diagrams") - (open-string ,string? "String to be used to indicate open string in - fret diagrams") - (orientation ,symbol? "Orientation of fret-diagram. Options include @code{normal} and @code{landscape}") - - ))) + (mute-string ,string? "String to be used to indicate a muted string in +fret diagrams") + (open-string ,string? "A string to be used to indicate an open string +in fret diagrams") + (orientation ,symbol? "The orientation of a fret-diagram. Options +include @code{normal} and @code{landscape}.") + (xo-font-magnification ,number? "Magnification used for mute and open +string indicators in fret diagrams.") + + ))) (define-public all-backend-properties (append