User:Rudi Guggt/scheme-functions
From the documentation: scheme-functions
Scheme functions
Function: add-bar-glyph-print-procedure glyph proc
- Specify the single glyph glyph that calls print procedure proc. The procedure proc has to be defined in the form (make-...-bar-line grob extent) even if the extent is not used within the routine.
Function: ly:add-context-mod contextmods modification
Adds the given context modification to the list contextmods of context modifications.
Function: add-grace-property context-name grob sym val
Set sym=val for grob in context-name.
Function: ly:add-interface iface desc props
Add a new grob interface. iface is the interface name, desc is the interface description, and props is the list of user-settable properties for the interface.
Function: ly:add-listener callback disp cl
Add the single-argument procedure callback as listener to the dispatcher disp. Whenever disp hears an event of class cl, it calls callback with it.
Function: add-new-clef clef-name clef-glyph clef-position transposition c0-position
Add a new clef to the list of supported clefs.
The arguments clef-name, clef-glyph, clef-position, and transposition are used to add an entry to the supported-clefs alist. Arguments clef-glyph and c0-position extend c0-pitch-alist.
Function: ly:add-option sym val description rest
Add program option sym with default value val and docstring description.
LilyPond uses this function to define Scheme options available on the command line (given by -d or --define-default).
After start-up, command-line Scheme options are provided to LilyPond by function ly:command-line-options, which returns a key-value alist where all values are Scheme strings. Use the optional argument #:type to specify how such a value string for key sym should be processed by ly:set-option.
If set to symbol string, don’t do any further conversion and accept the value as a string. This is also necessary if a potentially fitting type predicate gets defined after LilyPond’s command-line option handling (for example, ly:duration?). In such cases, type checking should be performed manually later on.
If set to symbol string-or-boolean, do the same as with string but convert strings "#f" and "#t" to Boolean values.
If set to symbol string-or-false, do the same as with string but convert a string value "#f" to Boolean value #f.
If set to a procedure, handle the value as a Scheme expression and use the procedure as a predicate to check whether the value fits. This is also the default behaviour if #:type is not set, using boolean? as the procedure.
If set to a list, handle the value as a Scheme expression and check whether it is one of the list’s elements (u