1;;;; This file is part of LilyPond, the GNU music typesetter. 2;;;; 3;;;; Copyright (C) 1998--2020 Han-Wen Nienhuys <hanwen@xs4all.nl> 4;;;; Jan Nieuwenhuizen <janneke@gnu.org> 5;;;; 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. 10;;;; 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. 15;;;; 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/>. 18 19 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. 24 25;; should include default value? 26 27 28(ly:add-interface 29 'accidental-suggestion-interface 30 "An accidental, printed as a suggestion (typically: vertically over a 31note)." 32 '()) 33 34(ly:add-interface 35 'ambitus-interface 36 "The line between note heads for a pitch range." 37 '(gap 38 length-fraction 39 maximum-gap 40 note-heads 41 thickness)) 42 43(ly:add-interface 44 'bar-line-interface 45 "Print a special bar symbol. It replaces the regular bar 46symbol with a special symbol. The argument @var{bartype} 47is a string which specifies the kind of bar line to print. 48 49The list of allowed glyphs and predefined bar lines can be 50found in @file{scm/bar-line.scm}. 51 52@code{gap} is used for the gaps in dashed bar lines." 53 '(allow-span-bar 54 bar-extent 55 gap 56 glyph 57 glyph-name 58 hair-thickness 59 has-span-bar 60 kern 61 rounded 62 segno-kern 63 thick-thickness)) 64 65(ly:add-interface 66 'bass-figure-interface 67 "A bass figure text." 68 '(implicit)) 69 70(ly:add-interface 71 'bass-figure-alignment-interface 72 "Align a bass figure." 73 '()) 74 75(ly:add-interface 76 'bend-after-interface 77 "A doit or drop." 78 '(delta-position 79 thickness)) 80 81(ly:add-interface 82 'clef-modifier-interface 83 "The number describing transposition of the clef, placed below 84or above clef sign. Usually this is 8 (octave transposition) 85or 15 (two octaves), but LilyPond allows any integer here." 86 '(clef-alignments)) 87 88(ly:add-interface 89 'duration-line-interface 90 "A line lasting for the duration of a rhythmic event." 91 '(details)) 92 93(ly:add-interface 94 'dynamic-interface 95 "Any kind of loudness sign." 96 '()) 97 98(ly:add-interface 99 'dynamic-line-spanner-interface 100 "Dynamic line spanner." 101 '(avoid-slur)) 102 103(ly:add-interface 104 'dynamic-text-interface 105 "An absolute text dynamic." 106 '(right-padding)) 107 108(ly:add-interface 109 'dynamic-text-spanner-interface 110 "Dynamic text spanner." 111 '(text)) 112 113(ly:add-interface 114 'episema-interface 115 "An episema line." 116 '()) 117 118(ly:add-interface 119 'finger-interface 120 "A fingering instruction." 121 '()) 122 123(ly:add-interface 124 'footnote-interface 125 "Make a footnote." 126 '(automatically-numbered 127 footnote 128 footnote-text 129 numbering-assertion-function)) 130 131(ly:add-interface 132 'footnote-spanner-interface 133 "Make a footnote spanner." 134 '(footnote-text 135 spanner-placement)) 136 137(ly:add-interface 138 'fret-diagram-interface 139 "A fret diagram" 140 '(align-dir 141 dot-placement-list 142 fret-diagram-details 143 size 144 thickness)) 145 146(ly:add-interface 147 'glissando-interface 148 "A glissando." 149 '(glissando-index)) 150 151(ly:add-interface 152 'grace-spacing-interface 153 "Keep track of durations in a run of grace notes." 154 '(columns 155 common-shortest-duration)) 156 157(ly:add-interface 158 'horizontal-bracket-text-interface 159 "Label for an analysis bracket." 160 '(bracket columns)) 161 162(ly:add-interface 163 'inline-accidental-interface 164 "An inlined accidental (i.e. normal accidentals, cautionary 165accidentals)." 166 '()) 167 168(ly:add-interface 169 'instrument-specific-markup-interface 170 "Instrument-specific markup (like fret boards or harp pedal diagrams)." 171 '(fret-diagram-details graphical harp-pedal-details size thickness)) 172 173(ly:add-interface 174 'key-cancellation-interface 175 "A key cancellation." 176 '()) 177 178(ly:add-interface 179 'ligature-head-interface 180 "A note head that can become part of a ligature." 181 '()) 182 183(ly:add-interface 184 'ligature-bracket-interface 185 "A bracket indicating a ligature in the original edition." 186 '(width thickness height)) 187 188(ly:add-interface 189 'ligature-interface 190 "A ligature." 191 '()) 192 193(ly:add-interface 194 'lyric-interface 195 "Any object that is related to lyrics." 196 '()) 197 198(ly:add-interface 199 'lyric-syllable-interface 200 "A single piece of lyrics." 201 '()) 202 203(ly:add-interface 204 'mark-interface 205 "A rehearsal mark." 206 '()) 207 208(ly:add-interface 209 'measure-counter-interface 210 "A counter for numbering measures." 211 '(columns 212 count-from 213 spacing-pair)) 214 215(ly:add-interface 216 'metronome-mark-interface 217 "A metronome mark." 218 '()) 219 220(ly:add-interface 221 'multi-measure-interface 222 "Multi measure rest, and the text or number that is printed over it." 223 '(bound-padding)) 224 225(ly:add-interface 226 'multi-measure-rest-number-interface 227 "Multi measure rest number that is printed over a rest." 228 '()) 229 230(ly:add-interface 231 'note-name-interface 232 "Note names." 233 '()) 234 235(ly:add-interface 236 'number-interface 237 "Numbers." 238 '(number-type)) 239 240(ly:add-interface 241 'only-prebreak-interface 242 "Kill this grob after the line breaking process." 243 '()) 244 245(ly:add-interface 246 'outside-staff-axis-group-interface 247 "A vertical axis group on which outside-staff skyline calculations are done." 248 '(outside-staff-placement-directive vertical-skyline-elements)) 249 250(ly:add-interface 251 'outside-staff-interface 252 "A grob that could be placed outside staff." 253 '(outside-staff-horizontal-padding outside-staff-padding outside-staff-priority)) 254 255(ly:add-interface 256 'parentheses-interface 257 "Parentheses for other objects." 258 '(padding 259 stencils)) 260 261(ly:add-interface 262 'percent-repeat-interface 263 "Beat, Double and single measure repeats." 264 '(dot-negative-kern 265 slash-negative-kern 266 slope 267 thickness)) 268 269(ly:add-interface 270 'piano-pedal-interface 271 "A piano pedal sign." 272 '()) 273 274(ly:add-interface 275 'piano-pedal-script-interface 276 "A piano pedal sign, fixed size." 277 '()) 278 279(ly:add-interface 280 'pitched-trill-interface 281 "A note head to indicate trill pitches." 282 '(accidental-grob)) 283 284(ly:add-interface 285 'rhythmic-grob-interface 286 "Any object with a duration. Used to determine which grobs are 287interesting enough to maintain a hara-kiri staff." 288 '()) 289 290(ly:add-interface 291 'spacing-options-interface 292 "Supports setting of spacing variables." 293 '(spacing-increment 294 shortest-duration-space)) 295 296(ly:add-interface 297 'span-bar-interface 298 "A bar line that is spanned between other barlines. 299 This interface is used for bar lines that connect different 300 staves." 301 '(glyph-name 302 elements 303 pure-Y-common 304 pure-relevant-grobs 305 pure-relevant-items 306 pure-relevant-spanners)) 307 308(ly:add-interface 309 'stanza-number-interface 310 "A stanza number, to be put in from of a lyrics line." 311 '()) 312 313(ly:add-interface 314 'string-number-interface 315 "A string number instruction." 316 '()) 317 318(ly:add-interface 319 'stroke-finger-interface 320 "A right hand finger instruction." 321 '(digit-names)) 322 323(ly:add-interface 324 'system-start-text-interface 325 "Text in front of the system." 326 '(long-text 327 self-alignment-X 328 self-alignment-Y 329 text)) 330 331(ly:add-interface 332 'tab-note-head-interface 333 "A note head in tablature." 334 '(details display-cautionary span-start)) 335 336(ly:add-interface 337 'time-signature-interface 338 "A time signature, in different styles. The following values for @code{style} are are recognized: 339 340 @table @code 341 @item C 342 4/4 and 2/2 are typeset as C and struck C, respectively. All other time signatures are written with two digits. The value @code{default} is equivalent to @code{C}. 343 @item neomensural 344 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8, and 9/8 are typeset with neo-mensural style mensuration marks. All other time signatures are written with two digits. 345 @item mensural 346 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8, and 9/8 are typeset with mensural style mensuration marks. All other time signatures are written with two digits. 347 @item single-digit 348 All time signatures are typeset with a single digit, e.g., 3/2 is written as 3. 349 @item numbered 350 All time signatures are typeset with two digits. 351 @end table" 352 '(fraction style)) 353 354(ly:add-interface 355 'trill-spanner-interface 356 "A trill spanner." 357 '()) 358 359(ly:add-interface 360 'trill-pitch-accidental-interface 361 "An accidental for trill pitch." 362 '()) 363 364(ly:add-interface 365 'unbreakable-spanner-interface 366 "A spanner that should not be broken across line breaks. Override 367with @code{breakable=##t}." 368 '(breakable)) 369 370(ly:add-interface 371 'volta-interface 372 "A volta repeat." 373 '()) 374