1 ;;;; This file is part of LilyPond, the GNU music typesetter.
3 ;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
4 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
6 ;;;; LilyPond is free software: you can redistribute it and/or modify
7 ;;;; it under the terms of the GNU General Public License as published by
8 ;;;; the Free Software Foundation, either version 3 of the License, or
9 ;;;; (at your option) any later version.
11 ;;;; LilyPond is distributed in the hope that it will be useful,
12 ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;;; GNU General Public License for more details.
16 ;;;; You should have received a copy of the GNU General Public License
17 ;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
20 ;; The interfaces defined here generally have no code (e.g.,
21 ;; dynamic-interface), or have callbacks defined entirely in
22 ;; scheme. Others interfaces are defined in lily/*.cc with the
23 ;; ADD_INTERFACE function.
25 ;; should include default value?
29 'accidental-suggestion-interface
30 "An accidental, printed as a suggestion (typically: vertically over a
36 "The line between note heads for a pitch range."
37 '(gap note-heads thickness))
41 "Print a special bar symbol. It replaces the regular bar
42 symbol with a special symbol. The argument @var{bartype}
43 is a string which specifies the kind of bar line to print.
44 Options are @code{|}, @code{:|}, @code{|:}, @code{:|:}, @code{:|.|:},
45 @code{:|.:}, @code{.}, @code{||}, @code{|.}, @code{.|}, @code{.|.},
46 @code{|.|}, @code{:}, @code{dashed}, @code{'} and @code{S}.
48 These produce, respectively, a normal bar line, a right repeat, a left repeat,
49 a thick double repeat, a thin-thick-thin double repeat,
50 a thin-thick double repeat, a thick bar, a double bar, a start bar,
51 an end bar, a thick double bar, a thin-thick-thin bar,
52 a dotted bar, a dashed bar, a tick as bar line and a segno bar.
54 In addition, there is an option
55 @code{||:} which is equivalent to @code{|:} except at line
56 breaks, where it produces a double bar (@code{||}) at the
57 end of the line and a repeat sign (@code{|:}) at the
58 beginning of the new line.
60 For segno, @code{S} produces a segno sign except at line breaks,
61 where it produces a double bar (@code{||}) at the
62 end of the line and a segno sign at the beginning of the new line.
63 @code{|S} is equivalent to @code{S} but produces a simple bar line
64 (@code{|}) instead of a double bar line (@code{||}) at line breaks.
65 @code{S|} produces the segno sign at line breaks and starts the following
66 line without special bar lines.
68 @code{S|:} and @code{:|S} are used for repeat/segno combinations that are
69 separated at line breaks. Alternatively, @code{.S|:} and @code{:|S.}
70 may be used which combine repeat signs and segno at the same line in
71 case of a line break. @code{:|S|:} is a combination of a left repeat
72 (@code{:|}), a segno (@code{S}) and a right repeat @code{|:} which
73 splits before the segno at line breaks; @code{:|S.|:} splits after
76 If @var{bartype} is set to @code{empty} then nothing is
77 printed, but a line break is allowed at that spot.
79 @code{gap} is used for the gaps in dashed bar lines."
80 '(allow-span-bar bar-extent gap glyph glyph-name has-span-bar
81 hair-thickness kern thin-kern thick-thickness))
84 'bass-figure-interface
89 'bass-figure-alignment-interface
90 "Align a bass figure."
96 '(thickness delta-position))
100 "Any kind of loudness sign."
104 'dynamic-line-spanner-interface
105 "Dynamic line spanner."
109 'dynamic-text-interface
110 "An absolute text dynamic."
114 'dynamic-text-spanner-interface
115 "Dynamic text spanner."
125 "A fingering instruction."
131 '(automatically-numbered
134 numbering-assertion-function))
137 'footnote-spanner-interface
138 "Make a footnote spanner."
139 '(footnote-text spanner-placement))
142 'fret-diagram-interface
144 '(align-dir fret-diagram-details size dot-placement-list
153 'grace-spacing-interface
154 "Keep track of durations in a run of grace notes."
155 '(columns common-shortest-duration))
158 'inline-accidental-interface
159 "An inlined accidental (i.e. normal accidentals, cautionary
164 'instrument-specific-markup-interface
165 "Instrument-specific markup (like fret boards or harp pedal diagrams)."
166 '(fret-diagram-details graphical harp-pedal-details size thickness))
169 'key-cancellation-interface
170 "A key cancellation."
174 'ligature-head-interface
175 "A note head that can become part of a ligature."
179 'ligature-bracket-interface
180 "A bracket indicating a ligature in the original edition."
181 '(width thickness height))
190 "Any object that is related to lyrics."
194 'lyric-syllable-interface
195 "A single piece of lyrics."
204 'metronome-mark-interface
209 'multi-measure-interface
210 "Multi measure rest, and the text or number that is printed over it."
219 'only-prebreak-interface
220 "Kill this grob after the line breaking process."
224 'parentheses-interface
225 "Parentheses for other objects."
229 'percent-repeat-interface
230 "Beat, Double and single measure repeats."
231 '(dot-negative-kern slash-negative-kern slope thickness))
234 'piano-pedal-interface
235 "A piano pedal sign."
239 'piano-pedal-script-interface
240 "A piano pedal sign, fixed size."
244 'pitched-trill-interface
245 "A note head to indicate trill pitches."
249 'rhythmic-grob-interface
250 "Any object with a duration. Used to determine which grobs are
251 interesting enough to maintain a hara-kiri staff."
255 'spacing-options-interface
256 "Supports setting of spacing variables."
257 '(spacing-increment shortest-duration-space))
261 "A bar line that is spanned between other barlines.
262 This interface is used for bar lines that connect different
264 '(glyph-name elements pure-Y-common pure-relevant-grobs
265 pure-relevant-items pure-relevant-spanners))
268 'stanza-number-interface
269 "A stanza number, to be put in from of a lyrics line."
273 'string-number-interface
274 "A string number instruction."
278 'stroke-finger-interface
279 "A right hand finger instruction."
283 'system-start-text-interface
284 "Text in front of the system."
285 '(long-text self-alignment-X self-alignment-Y text))
288 'tab-note-head-interface
289 "A note head in tablature."
290 '(details display-cautionary span-start))
293 'trill-spanner-interface
298 'trill-pitch-accidental-interface
299 "An accidental for trill pitch."
303 'unbreakable-spanner-interface
304 "A spanner that should not be broken across line breaks. Override
305 with @code{breakable=##t}."