Next: Naming conventions of objects and properties, Previous: Introduction to tweaks, Up: Tweaking basics
Tweaking involves modifying the internal operation and structures of the LilyPond program, so we must first introduce some terms which are used to describe those internal operations and structures.
The term ‘Object’ is a generic term used to refer to the
multitude of internal structures built by LilyPond during the
processing of an input file. So when a command like \new
Staff
is encountered a new object of type Staff
is
constructed. That Staff
object then holds all the
properties associated with that particular staff, for example, its
name and its key signature, together with details of the engravers
which have been assigned to operate within that staff's context.
Similarly, there are objects to hold the properties of all other
contexts, such as Voice
objects, Score
objects,
Lyrics
objects, as well as objects to represent all
notational elements such as bar lines,
note heads, ties, dynamics, etc. Every object has its own set of
property values.
Some types of object are given special names. Objects which represent items of notation on the printed output such as note heads, stems, slurs, ties, fingering, clefs, etc are called ‘Layout objects’, often known as ‘Graphical Objects’, or ‘Grobs’ for short. These are still objects in the generic sense above, and so they too all have properties associated with them, such as their position, size, color, etc.
Some layout objects are still more specialized. Phrasing slurs, crescendo hairpins, ottava marks, and many other grobs are not localized in a single place – they have a starting point, an ending point, and maybe other properties concerned with their shape. Objects with an extended shape like these are called ‘Spanners’.
It remains to explain what ‘Interfaces’ are. Many objects,
even though they are quite different, share common features
which need to be processed in the same way.
For example, all grobs have a color, a size, a position, etc,
and all these properties are processed in the same way during
LilyPond's
interpretation of the input file. To simplify these internal
operations these common actions and properties are grouped
together in an object called a grob-interface
. There
are many other groupings of common properties like this, each
one given a name ending in interface
. In total there
are over 100 such interfaces. We shall see later why this is
of interest and use to the user.
These, then, are the main terms relating to objects which we shall use in this chapter.
This page is for LilyPond-2.11.58 (development-branch).
Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.
Your suggestions for the documentation are welcome.
Other languages: espaƱol.