+
; should include default value?
-;;; ::::::: should generate documentation for score elements from here.
-(define (property-description symbol type? description)
- (list symbol type? description))
-
+;;; FIXME: naming.
+;;; Score elements are called `objects' now and then, which gets
+;;; rather confusing, we now have `elements', `items', `spanners'
+;;; and `objects'.
+
+
(define (lily-interface symbol description props)
(list symbol
description
)
-(define (merge-interfaces ifs)
- (list
- (apply append (map car ifs))
- (apply append (map cadr ifs))
- (apply append (map caddr ifs))
- ))
-
-(define (uniqued-alist alist acc)
- (if (null? alist) acc
- (if (assoc (caar alist) acc)
- (uniqued-alist (cdr alist) acc)
- (uniqued-alist (cdr alist) (cons (car alist) acc)
- ))))
-
-(define (element-description name . interfaces)
- (let* ((ifs (cons general-element-interface interfaces))
+(define (grob-description name . interfaces)
+ (let* ((ifs (cons general-grob-interface interfaces))
(props (map caddr ifs))
+; (prop-typep-pairs (map (lambda (x) (cons (car x) (cadr x)))
+; (apply append props)))
(syms (map car ifs))
)
(list (cons 'separator "\n\n\n") ;easy printing.
(cons 'interfaces syms)
(cons 'interface-descriptions ifs)
; (cons 'interface-descriptions (cadr merged))
- ;; description of the element itself?
- (cons 'properties (apply append props))
+ ;; description of the grob itself?
+; (cons 'properties prop-typep-pairs)
)))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;
-;;;;;;;;;;;;;;;;;
-
-(define general-element-interface
- (lily-interface
- 'general-element-interface
- "All elements support this"
- (list (property-description 'X-offset-callbacks list? "")
- (property-description 'Y-offset-callbacks list? "")
- (property-description 'X-extent-callback procedure? "")
- (property-description 'Y-extent-callback procedure? "")
- (property-description 'font-size integer? "")
+(define general-grob-interface
+ (lily-interface
+ 'general-grob-interface
+ "All grobs support this"
+ '(
+ X-offset-callbacks
+ Y-offset-callbacks
+ X-extent-callback
+ Y-extent-callback
+ font-relative-size
+ extra-offset
+ interfaces
+ dependencies
+ no-spacing-rods
+ extra-extent-X
+ extra-extent-Y
+ minimum-extent-X
+ minimum-extent-Y
+ origin
+ transparent
))
-)
+ )
(define beam-interface
(lily-interface
'beam-interface
- "A beam. "
- (list
- (property-description 'y-position number? "position of left edge")
- (property-description 'height number? "dy")
- (property-description 'flag-width-function procedure? "")
- (property-description 'damping integer? "amount of beam slope damping should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams ")
- (property-description 'default-neutral-direction dir? "which
-direction to choose if we're in the middle of the staff ")
- (property-description 'thickness number? "weight of beams, in staffspace")
- (property-description 'space-function procedure? "function of type multiplicity -> real (in staffspace)")
- (property-description 'beamed-stem-shorten number? "")
- (property-description 'height-quants number? "")
- (property-description 'vertical-position-quant-function procedure? "")
- (property-description 'dir-function procedure? "")
- (property-description 'damping number? "damping factor.")
- (property-description 'outer-stem-length-limit number? "catch
-suspect beam slopes, set slope to zero if outer stem is lengthened
-more than this (in staffspace)")
- (property-description 'slope-limit number? "set slope to zero if slope is running away steeper than this.")
+ "A beam.
+
+#'thickness= weight of beams, in staffspace
+ "
+ '(
+ y-position
+ height
+ flag-width-function
+ damping
+ default-neutral-direction
+ thickness
+ space-function
+ beamed-stem-shorten
+ height-quants
+ vertical-position-quant-function
+ damping
+ outer-stem-length-limit
+ slope-limit
)
-))
-
-
-
-;;;;;;;;;;;;;;;;;;;;
+ ))
(define clef-interface
(lily-interface
'clef-interface
"A clef sign"
- (list
- (property-description 'non-default boolean? "not set because of existence of a bar?")
- (property-description 'change boolean? "is this a change clef (smaller size)?")
- (property-description 'glyph string? "a string determining what glyph is typeset")
+ '(
+ non-default
+ full-size-change
+ glyph
))
)
(define axis-group-interface
(lily-interface
'axis-group-interface
- "a group of coupled elements"
- (list
- (property-description 'axes list? "list of axis (number) in which this group works")
+ "a group of coupled grobs"
+ '(
+ axes
)))
(define note-column-interface
(lily-interface
'note-column-interface
"Stem and noteheads combined"
- (list
- (property-description 'horizontal-shift integer? "integer that identifies ranking of note-column for horizontal shifting.")
- (property-description 'force-hshift number? "amount of collision_note_width that overides automatic collision settings.")
- (property-description 'merge-differently-dotted boolean? "merge black noteheads with differing dot count.")
+ '(
+ horizontal-shift
+ force-hshift
))
)
(lily-interface
'stem-interface
"A stem"
- (list
- (property-description 'thickness number? "")
- (property-description 'beamed-lengths list? "")
- (property-description 'beamed-minimum-lengths list? "")
- (property-description 'lengths list? "")
- (property-description 'stem-shorten list? "")
- (property-description 'default-neutral-direction dir? "")
- (property-description 'direction dir? "")
- (property-description 'stem-length number? "")
- (property-description 'style string? "") ; symbol!?
- (property-description 'flag-style string? "") ; symbol!?
- (property-description 'X-offset-callbacks list? "")
+ '(
+ thickness
+ beamed-lengths
+ beamed-minimum-lengths
+ stem-centered
+ lengths
+ beam
+ stem-shorten
+ duration-log
+ beaming
+ default-neutral-direction
+ stem-end-position
+ support-head
+ heads
+ direction
+ stem-length
+ style
+ flag-style
+ dir-forced
)))
(lily-interface
'slur-interface
"A slur"
- (list
- (property-description 'de-uglify-parameters list? "list of 3 real constants. They define the valid areas for the middle control points. Used in de_uglyfy. They are a bit empirical.")
- (property-description 'details list? "alist containing contaning a few magic constants.")
- (property-description 'attachment pair? "cons of symbols, '(LEFT-TYPE . RIGHT-TYPE), where both types may be alongside-stem, stem, head or loose-end")
- (property-description 'direction dir? "up or down?")
- (property-description 'y-free number? "? ")
- (property-description 'control-points list? "")
- (property-description 'extremity-rules list? "")
- (property-description 'extremity-offset-alist list? "")
- (property-description 'thickness list? "")
- (property-description 'dash number? "number representing the length of the dashes.")
+ '(
+ de-uglify-parameters
+ details
+ attachment
+ direction
+ attachment-offset
+ beautiful
+ y-free
+ control-points
+ extremity-rules
+ extremity-offset-alist
+ thickness
+ dashed
+
)
)
)
(define side-position-interface
(lily-interface
'side-position-interface
- "put an element next to another one."
- (list
- (property-description 'direction dir? "where to put the victim object (left or right?)")
- (property-description 'side-relative-direction dir? "if set: get the direction from a different object, and multiply by this.")
- (property-description 'minimum-space number? "minimum distance that the victim should move (after padding)")
- (property-description 'padding number? "add this much extra space between victim and support")
- (property-description 'self-alignment-X number? "real number: -1 = left aligned, 0 = center, 1 right-aligned in X direction. Set to an element pointer, if you want that element to be the center. ")
- (property-description 'self-alignment-Y number? "like self-alignment-X but for Y axis")
+ "Position a victim object (this one) next to other objects (the support).
+#'direction = where to put the victim object (left or right?)
+"
+ '(
+ side-support
+ direction-source
+ direction
+ side-relative-direction
+ minimum-space
+ padding
+ self-alignment-X
+ self-alignment-Y
)
))
(lily-interface
'accidentals-interface
"Accidentals"
- (list
- (property-description 'left-padding number? "space left of accs")
- (property-description 'right-padding number? "space right of accs")
+ '(
+ left-padding
+ right-padding
)
))
+(define line-of-score-interface
+ (lily-interface
+ 'line-of-score-interface
+ "Super grob, parent of all:
+
+The columns of a score that form one line. The toplevel grob. Any
+grob has a Line_of_score as both X and Y reference point. The
+Paper_score contains one grob of this type. Control enters the
+Grob dependency calculation from this single Line_of_score
+object."
+ '(
+ between-system-string
+ spacing-procedure
+ before-line-breaking-callback
+ after-line-breaking-callback
+ all-elements
+ columns
+ )))
+
(define note-head-interface
(lily-interface
'note-head-interface
"Note head"
- (list
- (property-description 'style symbol? "symbol that sets note head style")
+ '(
+ style
)
))
(define note-name-interface
(lily-interface
'note-name-interface
- "Note naem"
- (list
- (property-description 'style symbol? "symbol that sets note name style")
+ "Note name"
+ '(
+ style
)
))
(lily-interface
'rhythmic-head-interface
"Note head or rest"
- (list
- (property-description 'dot ly-element? "reference to Dots object.")
- (property-description 'stem ly-element? "pointer to Stem object")
- (property-description 'duration-log integer? "2-log of the notehead duration")
+ '(
+ dot
+ stem
+ duration-log
)))
(define rest-interface
(lily-interface
'rest-interface
"a rest"
- (list
- (property-description 'style string? "string specifying glyph style"))))
+ '(style )))
(define tuplet-bracket-interface
(lily-interface
'tuplet-bracket-interface
- "A bracket with a number in the middle"
- (list
- (property-description 'beams list? "list of beam ptrs.")
- (property-description 'columns list? " list of note-columns.")
- (property-description 'number-gap number? "")
- (property-description 'delta-y number? "")
- (property-description 'thick number? "")
+ "A bracket with a number in the middle, used for tuplets."
+ '(
+ beams
+ columns
+ number-gap
+ delta-y
+ tuplet-bracket-visibility
+ tuplet-number-visibility
+ parallel-beam
+ thick
)
))
(define align-interface
(lily-interface
'align-interface
- " Order elements top to bottom/left to right/right to left etc."
- (list
- (property-description 'stacking-dir dir? "stack contents of elements in which direction ?")
- (property-description 'align-dir dir? "Which side to align? -1: left side, 0: centered around center-element if not nil, or around center of width), 1: right side")
- (property-description 'threshold pair? "(cons MIN MAX), where MIN and MAX are dimensions in staffspace")
- (property-description 'alignment-done boolean? "boolean to administrate whether we've done the alignment already (to ensure that the process is done only once)")
- (property-description 'center-element ly-element? "element which will be at the
-center of the group after aligning (when using
-Align_interface::center_on_element). The center element should have
-this object as a reference point.")
- (property-description 'elements list? "to be aligned elements ")
- (property-description 'axes list? "list of axis numbers. Should contain only one number.")
+ " Order grobs top to bottom/left to right/right to left etc."
+ '(
+ stacking-dir
+ align-dir
+ threshold
+ alignment-done
+ center-element
+ elements
+ axes
)))
(define aligned-interface
(lily-interface
'aligned-interface
"read by align-interface"
- (list
- (property-description 'minimum-space pair? "(cons LEFT RIGHT)")
- (property-description 'extra-space pair? "(cons LEFT RIGHT)")
+ '(
+ minimum-space
+ extra-space
)))
(define break-aligned-interface
(lily-interface
'break-aligned-interface
"Items that are aligned in prefatory matter"
- (list
- (property-description 'break-align-symbol symbol? "the index in the spacing table (symbol) of the to be aligned item.")
- (property-description 'visibility-lambda procedure? "")
- (property-description 'breakable boolean? "")
+ '(
+ break-align-symbol
+ visibility-lambda
+ breakable
)))
(define chord-name-interface
(lily-interface
'chord-name-interface
- ""
- (list
- )))
+ "generate a chord name"
+ '( pitches inversion bass)))
+
(define time-signature-interface
(lily-interface
'time-signature-interface
"A time signature, in different styles"
- (list
- (property-description 'fraction pair? "")
- (property-description 'style string? "")
- )))
+ '( fraction style )))
(define bar-line-interface
(lily-interface
'bar-line-interface
- "Bar line"
- (list
- (property-description 'barsize-procedure procedure? "")
- (property-description 'kern number? "")
- (property-description 'thin-kern number? "")
- (property-description 'hair-thickness number? "")
- (property-description 'thick-thickness number? "")
- (property-description 'glyph string? "")
- (property-description 'bar-size number? "")
- (property-description 'break-glyph-function procedure? "")
- )))
-
-
-
-
-(define text-spanner-interface
- (lily-interface
- 'text-spanner-interface
- "generic text spanner"
- (list
- (property-description 'dash-period number? "")
- (property-description 'dash-length number? "")
- (property-description 'line-thickness number? "")
- (property-description 'edge-height pair? "(leftheight . rightheight)")
- (property-description 'edge-text pair? "(lefttext . righttext)")
- (property-description 'text-style string? "") ; SYMBOL!!?
- (property-description 'type string? "line, dashed-line or dotted-line") ; SYMBOL!!?
- )
-))
+ "Bar line.
+
+This is a request to print a special bar symbol. It replaces the
+regular bar symbol with a special
+symbol. The argument @var{bartype} is a string which specifies the
+kind of bar to print. Options are @code{\":|\"}
+@cindex \"|A@@@code{:|}
+,
+@code{\"|:\"}
+@cindex \"|B@@@code{|:}
+, @code{\":|:\"}
+@cindex \"|C@@@code{:|:}
+,
+@code{\"||\"}
+@cindex \"|D@@@code{||}
+, @code{\"|.\"}
+@cindex \"|E@@@code{|.}
+,
+@code{\".|\"}
+@cindex \"|F@@@code{.|}
+, and @code{\".|.\"}
+@cindex \"|G@@@code{.|.}
+.
+
+These produce, respectively, a right repeat, a left repeat, a double
+repeat, a double bar, a start bar, an end bar, and a thick double bar.
+If @var{bartype} is set to @code{\"empty\"} then nothing is printed,
+but a line break is allowed at that spot.
+
+"
+ '( barsize-procedure kern thin-kern hair-thickness thick-thickness glyph bar-size break-glyph-function )))
(define hairpin-interface
(lily-interface
'hairpin-interface
- "hairpin crescendo"
- (list
- (property-description 'grow-direction dir? "")
- (property-description 'thickness number? "")
- (property-description 'height number? "")
- )))
+ "hairpin crescendo.
+padding -- horizontal padding. This is useful if a crescendo is set next to a text like `mf'
+
+"
+ '( grow-direction thickness height padding )
+ ))
(define arpeggio-interface
(lily-interface
'arpeggio-interface
- "arpeggio "
- (list
- (property-description 'stems list? "list of stem objects, corresponding to the notes that the arp has to be before.")
- )
+ "Functions and settings for drawing an arpeggio symbol (a wavy line left to noteheads."
+ '(stems)
)
)
(define note-collision-interface
(lily-interface
'note-collision-interface
- "note collision"
- (list
- (property-description 'note-width 'number? "unit for horizontal translation, measured in staff-space.")
- ) ) )
+ "An object that handles collisions between notes with different
+stem directions and horizontal shifts. Most of the interesting
+properties are to be set in @ref{note-column-interface}"
+ '(merge-differently-dotted note-width)
+ ))
+
+
+(define custos-interface
+ (lily-interface
+ 'custos-interface
+ "A custos is a staff context symbol that appears at the end of a
+ staff line with monophonic musical contents (i.e. with a single
+ voice). It anticipates the pitch of the first note of the following
+ line and thus helps the player or singer to manage line breaks
+ during performance, thus enhancing readability of a score.
+
+ Custodes were frequently used in music notation until the 16th
+ century. There were different appearences for different notation
+ styles. Nowadays, they have survived only in special forms of
+ musical notation such as via the editio vaticana dating back to the
+ beginning of the 20th century.
+
+[TODO: add to glossary]"
+
+ '(style)
+)
+ )
+
+
+
+
(define dot-interface
(lily-interface
'dots-interface
"The dots to go with a notehead/rest. A separate interface, since they
- are a party in collision resolution."
- (list
- (property-description 'dot-count integer? "number of dots")
- )))
+ are a party in collision resolution.
+ #'direction is the Direction to handle staff-line collisions in."
+ '(direction dot-count)
+
+ ))
+
+(define font-interface
+ (lily-interface
+ 'font-interface
+ "Any symbol that is typeset through fixed sets of glyphs (ie. fonts)"
+ '(font-style font-series font-shape font-family font-name
+font-point-size font-relative-size)
+ ))
+
(define text-interface
(lily-interface
'text-interface
- "A text"
- (list
- (property-description 'text string? "")
- (property-description 'style string? "")
- )))
-
+ "A scheme markup text"
+ '(text align lookup raise kern magnify)))
(define dot-column-interface
(lily-interface
'dot-column-interface
- ""
- (list
- )))
+ "Interface that groups dots so they form a column"
+ '( )
+ ))
(define dynamic-interface
(lily-interface
(define finger-interface
(lily-interface
'finger-interface
- "Any kind of loudness sign"
+ "A fingering instruction"
'()
))
(define separation-spanner-interface
(lily-interface
'separation-spanner-interface
- ""
+ "Spanner that containing @code{separation-item-interface} grobs to calculate rods"
'()
))
(define text-script-interface
(lily-interface
'grace-alignment-interface
"put grace notes in line"
- (list
- (property-description 'horizontal-space number? "amount of space to add after a note (in staff-space)")
+ '(
+ horizontal-space
)
))
(define hara-kiri-group-interface
(lily-interface
'hara-kiri-group-interface
- "seppuku"
- '()))
+ " As Vertical_group_spanner, but keep track of interesting items. If
+ we don't contain any interesting items after linebreaking, then
+ gracefully commit suicide. Objective: don't disgrace Lily by
+ typesetting empty lines in orchestral scores."
+ '( items-worth-living )
+))
+
+(define line-spanner-interface
+ (lily-interface
+ 'line-spanner-interface
+ "Generic line drawn between two objects, eg. for use with glissandi.
+gap is measured in staff-spaces. "
+
+ '(gap dash-period dash-length line-thickness type )
+ ))
(define lyric-hyphen-interface
(lily-interface
"A centred hyphen is a simple line between lyrics used to divide
syllables. The length of the hyphen line should stretch based on the
size of the gap between syllables."
- (list
-
- (property-description 'thickness number? "thickness of line (in stafflinethickness)")
- (property-description 'height number? "vertical offset (in staffspace)")
- (property-description 'minimum-length number? "try to make the hyphens at least this long. Also works as a scaling parameter for the length")
- (property-description 'word-space number? "elongate left by this much (FIXME: cumbersome semantics)")
- )))
+ '( thickness height minimum-length word-space )
+ ))
(define key-signature-interface
(lily-interface
'key-signature-interface
"A group of accidentals."
- (list
- (property-description 'c0-position integer? "integer indicating the position of central C?")
- (property-description 'old-accidentals list? "list of (pitch, accidental) pairs")
- (property-description 'new-accidentals list? "list of (pitch, accidental) pairs")
+ '(
+ c0-position
+ old-accidentals
+ new-accidentals
)))
(define lyric-extender-interface
'lyric-extender-interface
"The extender is a simple line at the baseline of the lyric
that helps show the length of a melissima (tied/slurred note)."
- (list
- (property-description 'word-space number? "")
- (property-description 'height number? "in stafflinethickness")
- (property-description 'right-trim-amount number? "")
+ '(
+ word-space
+ height
+ right-trim-amount
)))
(define lyric-syllable-interface
(lily-interface
'lyric-syllable-interface
- ""
- (list
- (property-description 'word-space number? "")
+ "a single piece of lyrics"
+ '(
+ word-space
)))
(define mark-interface
(lily-interface
'mark-interface
- ""
- (list
+ "a rehearsal mark"
+ '(
)))
(define multi-measure-rest-interface
(lily-interface
'multi-measure-rest-interface
- ""
- (list
-
- (property-description 'columns list? "list of paper-columns")
- (property-description 'expand-limit integer? "int : max number of measures expanded in church rests")
- (property-description 'minimum-width number? "Real in staffspace")
- (property-description 'padding number? "staffspace")
- )))
+ "A rest that spans a whole number of measures. For typesetting the
+numbers, fields from font-interface may be used.
+
+padding is the space between number and rest. Measured in staffspace.
+
+"
+ '( columns expand-limit minimum-width padding )
+
+ ))
(define paper-column-interface
(lily-interface
'paper-column-interface
""
- (list
- (property-description 'dir-list list? "list of stem directions")
- (property-description 'shortest-playing-duration moment? "duration of the shortest playing in that column.")
- (property-description 'shortest-starter-duration moment? "duration of the shortest notes that starts exactly in this column.")
- (property-description 'contains-grace boolean? "Used to widen entries for grace notes.")
- (property-description 'extra-space pair? "pair of distances")
- (property-description 'stretch-distance pair? "pair of distances")
- )))
+
+ '(column-space-strength before-musical-spacing-factor
+stem-spacing-correction before-grace-spacing-factor when bounded-by-me
+dir-list shortest-playing-duration shortest-starter-duration
+contains-grace extra-space stretch-distance ))
+
+ )
(define spaceable-element-interface
(lily-interface
'spaceable-element-interface
- ""
- (list
- (property-description 'minimum-distances list? "list of rods (ie. (OBJ . DIST) pairs)")
- (property-description 'ideal-distances list? "(OBJ . (DIST . STRENGTH)) pairs")
- (property-description 'dir-list list? "list of stem directions.")
+ "An grob (generally a Paper_column) that takes part in the
+spacing problem. "
+ '(
+ minimum-distances
+ ideal-distances
+ dir-list
)))
(define rest-collision-interface
(lily-interface
'rest-collision-interface
- ""
- (list
- (property-description 'maximum-rest-count integer? "")
- (property-description 'minimum-distance number? "")
+ "Move around ordinary rests (not multi-measure-rests) to avoid
+conflicts."
+ '(
+ maximum-rest-count
+ minimum-distance
+ elements
)))
(define script-interface
(lily-interface
'script-interface
""
- (list
- (property-description 'script-priority number? "")
+ '(
+ script-priority
)))
(define script-column-interface
(lily-interface
'script-column-interface
- ""
- (list )))
+ "An interface that sorts scripts according to their @code{script-priority}"
+ '( )))
(define spacing-spanner-interface
(lily-interface
'spacing-spanner-interface
- ""
- (list
- (property-description 'maximum-duration-for-spacing moment? "space as if a duration of this type is available in this measure.")
+ " SPACE = arithmetic_multiplier * ( C + log2 (TIME) ))
+The space taken by a note is determined by the formula
+
+
+
+where TIME is the amount of time a note occupies. The value of C is
+chosen such that the smallest space within a measure is
+arithmetic_basicspace:
+
+ C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8))
+
+The smallest space is the one following the shortest note in the
+measure, or the space following a hypothetical 1/8 note. Typically
+arithmetic_basicspace is set to a value so that the shortest note
+takes about two noteheads of space (ie, is followed by a notehead of
+space):
+
+@example
+ 2*quartwidth = arithmetic_multiplier * ( C + log2 (SHORTEST) ))
+
+ @{ using: C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) @}
+ @{ assuming: SHORTEST <= 1/8 @}
+
+ = arithmetic_multiplier *
+ ( arithmetic_basicspace - log2 (SHORTEST) + log2 (SHORTEST) )
+
+ = arithmetic_multiplier * arithmetic_basicspace
+
+ @{ choose: arithmetic_multiplier = 1.0*quartwidth (why?) @}
+
+ = quartwidth * arithmetic_basicspace
+
+ =>
+
+ arithmetic_basicspace = 2/1 = 2
+
+
+If you want to space your music wider, use something like:
+
+ arithmetic_basicspace = 4.;
+
+@end example"
+ '(
+ maximum-duration-for-spacing
+ arithmetic-basicspace
+ arithmetic-multiplier
+
)))
(define staff-symbol-interface
'staff-symbol-interface
"This spanner draws the lines of a staff. The middle line is
position 0."
- (list
- (property-description 'staff-space number? "")
- (property-description 'line-count integer? "")
+ '(
+ staff-space
+ line-count
)))
(define stem-tremolo-interface
(lily-interface
'stem-tremolo-interface
""
- (list
- (property-description 'stem ly-element? "pointer to the stem object.")
- (property-description 'beam-width number? "")
- (property-description 'beam-thickness number? "")
- (property-description 'beam-space-function procedure? "")
+ '(
+ stem
+ beam-width
+ beam-thickness
+ beam-space-function
)))
(define separation-item-interface
(lily-interface
'separation-item-interface
- ""
- (list
- )))
+ "Item that computes widths to generate spacing rods.
+
+Calc dimensions for the Separating_group_spanner; this has to be
+ an item to get dependencies correct. It can't be an grob_group
+ since these usually are in a different X_group
+"
+ '(
+ elements
+ )))
(define sustain-pedal-interface
(lily-interface
'sustain-pedal-interface
""
- (list
+ '(
)))
-(define system-start-delimiter
+(define system-start-delimiter-interface
(lily-interface
- 'system-start-delimiter
- ""
- (list
- (property-description 'collapse-height number? "")
- (property-description 'thickness number? "")
- (property-description 'arch-height number? "")
- (property-description 'arch-angle number? "")
- (property-description 'arch-thick number? "")
- (property-description 'arch-width number? "")
- (property-description 'bracket-thick number? "")
- (property-description 'bracket-width number? "")
- )))
+ 'system-start-delimiter-interface
+ "#'style can be bar-line, bracket or brace"
+ '(collapse-height thickness arch-height arch-angle arch-thick
+ arch-width bracket-thick bracket-width glyph )))
-(define text-script-interface
+(define text-spanner-interface
(lily-interface
- 'text-script-interface
- ""
- (list
-
- )))
+ 'text-spanner-interface
+ "generic text spanner"
+ '(
+ dash-period
+ dash-length
+ line-thickness
+ edge-height
+ edge-text
+ type
+ )
+))
(define tie-interface
(lily-interface
'tie-interface
- ""
- (list
- (property-description 'staffline-clearance number? "")
- (property-description 'heads pair? "pair of element pointers, pointing to the two heads of the tie. ")
- (property-description 'details list? "")
- (property-description 'thickness number? "")
- (property-description 'x-gap number? "")
- (property-description 'minimum-length number? "")
+ "A tie connecting two noteheads.
+direction = Forced direction for all ties"
+
+ '(
+ staffline-clearance
+ control-points
+ heads
+ details
+ thickness
+ x-gap
+ direction
+ minimum-length
)))
(define tie-column-interface
(lily-interface
'tie-column-interface
- ""
- (list
- )))
+ "that sets tie directions in a tied chord"
+ '(direction)
+ ))
(define volta-bracket-interface
(lily-interface
'volta-bracket-interface
"Volta bracket with number"
- (list
- (property-description 'bars list? "list of barline ptrs.")
- (property-description 'thickness number? "in stafflinethickness")
- (property-description 'height number? "in staffspace ")
+ '(
+ bars
+ thickness
+ height
)))
(define span-bar-interface
(lily-interface
'span-bar-interface
""
- (list
+ '(
)))
+
+
+