[icon]

GNU LilyPond

-- --

What is LilyPond
Home
Examples
Templates
Download
GNU/Linux binaries
Windows binaries
Source code
Documentation
Tutorial
Manual
Glossary
Index

Support
Mailing lists
Search
WikiWiki

External sites
lilypond.org/development
lilypond.org/stable
savannah.gnu.org
ftp.lilypond.org
Mutopia
Other music online

Function documentation

Auto_change_iterator::constructor Function
Construct a Auto_change_iterator music iterator

Bar_check_iterator::constructor Function
Construct a Bar_check_iterator music iterator

Change_iterator::constructor Function
Construct a Change_iterator music iterator

Chord_tremolo_iterator::constructor Function
Construct a Chord_tremolo_iterator music iterator

Folded_repeat_iterator::constructor Function
Construct a Folded_repeat_iterator music iterator

Grace_iterator::constructor Function
Construct a Grace_iterator music iterator

Lyric_combine_music_iterator::constructor Function
Construct a Lyric_combine_music_iterator music iterator

Music_iterator::constructor Function
Construct a Music_iterator music iterator

Music_wrapper_iterator::constructor Function
Construct a Music_wrapper_iterator music iterator

Output_property_music_iterator::constructor Function
Construct a Output_property_music_iterator music iterator

Part_combine_music_iterator::constructor Function
Construct a Part_combine_music_iterator music iterator

Percent_repeat_iterator::constructor Function
Construct a Percent_repeat_iterator music iterator

Pop_property_iterator::constructor Function
Construct a Pop_property_iterator music iterator

Property_iterator::constructor Function
Construct a Property_iterator music iterator

Property_unset_iterator::constructor Function
Construct a Property_unset_iterator music iterator

Push_property_iterator::constructor Function
Construct a Push_property_iterator music iterator

Request_chord_iterator::constructor Function
Construct a Request_chord_iterator music iterator

Sequential_iterator::constructor Function
Construct a Sequential_iterator music iterator

Sequential_music_iterator::constructor Function
Construct a Sequential_music_iterator music iterator

Simple_music_iterator::constructor Function
Construct a Simple_music_iterator music iterator

Simultaneous_music_iterator::constructor Function
Construct a Simultaneous_music_iterator music iterator

Time_scaled_music_iterator::constructor Function
Construct a Time_scaled_music_iterator music iterator

Unfolded_repeat_iterator::constructor Function
Construct a Unfolded_repeat_iterator music iterator

Volta_repeat_iterator::constructor Function
Construct a Volta_repeat_iterator music iterator

dir? s Function
type predicate. A direction is a -1, 0 or 1, where -1 represents left or down and 1 represents right or up.

duration-dot-count dur Function

Extract the dot count from dur

duration-factor dur Function

Extract the compression factor from dur. Return as a pair.

duration-log dur Function

Extract the duration log from dur

duration? x Function
Check if x is a Duration object

font-metric? x Function
Check if x is a Font_metric object

get-broken-into spanner Function

Return broken-into list for spanner.

get-original grob Function

Return the original Grob of grob

get-system grob Function

Return the System Grob of grob.

intlog2 d Function

Extract the dot count from dur

ly-add-interface a b c Function
Add an interface description.

ly-add-molecule first second Function
Combine two molecules.

ly-align-to! mol axis dir Function
Align mol using its own extents.

ly-all-grob-interfaces Function
Get a hash table with all interface descriptions.

ly-bracket a iv t p Function
Make a bracket in direction a. The extent of the bracket is given by iv. The wings protude by an amount of p, which may be negative. The thickness is given by t.

ly-combine-molecule-at-edge first axis direction second padding Function
Construct a molecule by putting second next to first. axis can be 0 (x-axis) or 1 (y-axis), direction can be -1 (left or down) or 1 (right or up). padding specifies extra space to add in between measured in global staff space.

ly-find-glyph-by-name font name Function
This function retrieves a Molecule for the glyph named name in font. The font must be available as an AFM file.

ly-fontify-atom met f Function
Add a font selection command for the font metric met to f.

ly-get-all-function-documentation Function
Get a hash table with all lilypond Scheme extension functions.

ly-get-all-translators Function
Return an list of a all translator objects that may be instantiated during a lilypond run.

ly-get-context-property context name Function
retrieve the value of sym from context tr

ly-get-default-font grob Function
Return the default font for grob gr.

ly-get-extent grob refp axis Function
Get the extent in axis direction of grob relative to the grob refp

ly-get-font grob alist Function
Return a font metric satisfying the font-qualifiers in alist.

The font object represents the metric information of a font. Every font that is loaded into LilyPond can be accessed via Scheme.

LilyPond only needs to know the dimension of glyph to be able to process them. This information is stored in font metric files. LilyPond can read two types of font-metrics: TeX Font Metric files (TFM files) and Adobe Font Metric files (AFM files). LilyPond will always try to load AFM files first since they are more versatile.

ly-get-grob-property grob sym Function
Get the value of a value in grob g of property sym. It will return '() (end-of-list) if g doesn't have sym set.

Grob properties are stored as GUILE association lists, with symbols as keys. All lookup functions identify undefined properties with end-of-list (i.e. '() in Scheme or SCM_EOL in C)

Properties are stored in two ways:

  • mutable properties. Grob properties that change from object to object. The storage of these are private to a grob. For example pointers to other grobs are always stored in the mutable properties.
  • immutable properties. Grob properties that are shared across different grobs of the same type. The storage is shared, and hence it is read-only. Typically, this is used to store function callbacks, and default settings. They are initially read from scm/grob-description.scm.

ly-get-molecule-extent mol axis Function
Return a pair of numbers signifying the extent of mol in axis direction (0 or 1 for x and y axis respectively).

ly-get-mus-property mus sym Function
Get the property sym of music expression mus.

ly-get-paper-variable grob sym Function
Get a variable from the \paper block.

ly-get-parent grob axis Function
Get the parent of grob. axis can be 0 for the X-axis, 1 for the Y-axis.

ly-get-spanner-bound slur dir Function
Get one of the bounds of spanner. dir may be -1 for left, and 1 for right.

ly-grob-pq-less? a b Function
Compare 2 Grob PQ entries. Internal

ly-grob-script-priority-less a b Function
Compare two grobs by script priority. For internal use.

ly-grob? x Function
Check if x is a Grob object

ly-gulp-file name Function
Read the file named name, and return its contents in a string. The file is looked up using the lilypond search path.

ly-input-location? x Function
Return whether x is an input location

ly-input-message sip msg Function
Print msg as a GNU compliant error message, pointing to the location in sip.

ly-iterator? x Function
Check if x is a Music_iterator object

ly-make-molecule expr xext yext Function

The objective of any typesetting system is to put ink on paper in the right places. For LilyPond, this final stage is left to the TeX and the printer subsystem. For lily, the last stage in processing a score is outputting a description of what to put where. This description roughly looks like

                  PUT glyph AT (x,y)
                  PUT glyph AT (x,y)
                  PUT glyph AT (x,y)
          
you merely have to look at the tex output of lily to see this. Internally these instructions are encoded in Molecules.1 A molecule is what-to-print-where information that also contains dimension information (how large is this glyph?).

Conceptually, Molecules can be constructed from Scheme code, by translating a Molecule and by combining two molecules. In BNF notation:

          Molecule  :: COMBINE Molecule Molecule
                     | TRANSLATE Offset Molecule
                     | GLYPH-DESCRIPTION
                     ;
          

If you are interested in seeing how this information is stored, you can run with the -f scm option. The scheme expressions are then dumped in the output file.

ly-make-music type Function

Make a music object/expression of type name. Warning: this interface will likely change in the near future.

Music is the data type that music expressions are stored in. The data type does not yet offer many manipulations.

ly-music-name mus Function
Return the name of music.

ly-number->string s Function
converts num to a string without generating many decimals. It leaves a space at the end.

ly-option-usage Function
Print ly-set-option usage

ly-set-context-property context name val Function
set value of property sym in context tr to val.

ly-set-grob-property! grob sym val Function
Set sym in grob grob to value val

ly-set-molecule-extent! mol axis np Function
Set the extent (extent must be a pair of numbers) of mol in axis direction (0 or 1 for x- and y-axis respectively).

Note that an extent (A . B) is an interval and hence A is smaller than B, and is often negative. 5

ly-set-mus-property! mus sym val Function
Set property sym in music expression mus to val.

ly-set-option var val Function
Set a global option value. Supported options include
help
List all options.
midi-debug
If set to true, generate human readable MIDI
internal-type-checking
Set paranoia for property assignments

This function is useful to call from the command line: lilypond -e "(ly-set-option 'midi-debug #t)".

ly-text-dimension font text Function
Given the font metric in font and the string text, compute the extents of that text in that font. The return value is a pair of number-pairs.

ly-translator-description me Function
Return an alist of properties of translator me.

ly-translator-name trans Function
Return the type name of the translator trans.

ly-transpose-pitch p delta Function
Transpose p by the amount delta, where delta is the pitch that central C is transposed to.

ly-unit Function
Return the unit used for lengths as a string.

ly-verbose Function
Return whether lilypond is being run in verbose mode.

ly-version Function
Return the current lilypond version as a list, e.g. (1 3 127 uu1).

ly-warn str Function
Scheme callable function to issue the warning msg.

make-duration length dotcount num den Function

length is the negative logarithm (base 2) of the duration: 1 is a half note, 2 is a quarter note, 3 is an eighth note, etc. The number of dots after the note is given by dotcount.

The duration factor is optionally given by num and den.

A duration is a musical duration, i.e. a length of time described by a power of two (whole, half, quarter, etc.) and a number of augmentation dots.

make-moment n d Function
create the rational number with main timing n/d.

Moment is a point in musical time. It is consists of a pair of rationals (m,g), where m is the timing for the main notes, and g the timing for grace notes. In absence of grace notes, g is zero.

make-pitch o n a Function

octave is specified by an integer, zero for the octave containing middle C. note is a number from 0 to 6, with 0 corresponding to C and 6 corresponding to B. The shift is zero for a natural, negative for flats, or positive for sharps.

molecule? x Function
Check if x is a Molecule object

moment? x Function
Check if x is a Moment object

music-list? l Function
Type predicate: return true if l is a list of music objects.

music? x Function
Check if x is a Music object

pitch-alteration pp Function
extract the alteration from pitch p.

pitch-notename pp Function
extract the note name from pitch pp.

pitch-octave pp Function
extract the octave from pitch p.

pitch-semitones pp Function
calculate the number of semitones of p from central C.

pitch<? p1 p2 Function
Is p1 lower than p2? This uses lexicographic ordening.

pitch? x Function
Check if x is a Pitch object

set-point-and-click! what Function
Set the options for Point-and-click source specials output. The argument is a symbol. Possible options are none (no source specials), line and line-column


Footnotes

  1. At some point LilyPond also contained Atom-objects, but they have been replaced by Scheme expressions, making the name outdated.


Go back to index of LilyPond.

Please send GNU LilyPond questions and comments to lilypond-user@gnu.org.

Please send comments on these web pages to (address unknown)

Copyright (c) 1997--2002 Han-Wen Nienhuys and Jan Nieuwenhuizen.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.


This page was built from LilyPond-1.6.6 (stable-branch) by

<(address unknown)>, Thu Dec 26 14:15:44 2002 MSK.