A grob represents a piece of music notation
All grobs have an X and Y-position on the page. These X and Y positions are stored in a relative format, so they can easily be combined by stacking them, hanging one grob to the side of another, and coupling them into a grouping objects.
Each grob has a reference point (a.k.a. parent): the position of a grob is stored relative to that reference point. For example the X-reference point of a staccato dot usually is the note head that it applies to. When the note head is moved, the staccato dot moves along automatically.
A grob is often associated with a symbol, but some grobs do not print any symbols. They take care of grouping objects. For example, there is a separate grob that stacks staves vertically. The NoteCollision is also an abstract grob: it only moves around chords, but doesn't print anything.
Grobs have a properties: Scheme variables, that can be read and set. They have two types. Immutable variables define the default style and behavior. They are shared between many objects. They can be changed using \override
and \revert
.
Mutable properties are variables that are specific to one grob. Typically, lists of other objects, or results from computations are stored inmutable properties: every call to set-grob-property (or its C++ equivalent) sets a mutable property.
X-extent
(pair of numbers)X-extent-callback
(procedure)#f
, the object
is empty in the X direction. The procedure takes a grob and axis
argument, and returns a number-pair.
X-offset-callbacks
(list)Y-extent
(pair of numbers)X-extent
.
Y-extent-callback
(procedure)X-extent-callback
.
Y-offset-callbacks
(list)X-offset-callbacks
.
before-line-breaking-callback
(procedure)extra-X-extent
(pair of numbers)extra-Y-extent
(pair of numbers)extra-Y-extent
.
extra-offset
(pair of numbers)layer
(number)minimum-X-extent
(pair of numbers)minimum-Y-extent
(pair of numbers)minimum-Y-extent
.
print-function
(procedure)Stencil
object.
spacing-procedure
(procedure)before-line-breaking-callback
.
transparent
(boolean)print-function
to #f
, but this retains the dimensions of
this grob, which means that grobs can be erased individually.
after-line-breaking-callback
(procedure)cause
(any type)dependencies
(list of grobs)interfaces
(list)meta
field.
meta
(list)name
and interfaces
.
staff-symbol
(layout object)stencil
(unknown)This grob interface is used in the following graphical objects: Accidental, AccidentalPlacement, Ambitus, Arpeggio, BarLine, BarNumber, BassFigure, Beam, BreakAlignGroup, BreakAlignment, BreathingSign, ChordName, Clef, ClusterSpanner, ClusterSpannerBeacon, CombineTextScript, Custos, DotColumn, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Glissando, Hairpin, HorizontalBracket, InstrumentName, KeySignature, LeftEdge, LigatureBracket, LyricExtender, LyricHyphen, LyricText, MeasureGrouping, MensuralLigature, MetronomeMark, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestText, NonMusicalPaperColumn, NoteCollision, NoteColumn, NoteHead, NoteName, NoteSpacing, OctavateEight, OttavaBracket, PaperColumn, PercentRepeat, PhrasingSlur, PianoPedalBracket, RehearsalMark, RemoveEmptyVerticalGroup, RepeatSlash, Rest, RestCollision, Script, ScriptColumn, SeparatingGroupSpanner, SeparationItem, Slur, SostenutoPedal, SostenutoPedalLineSpanner, SpacingSpanner, SpanBar, StaffSpacing, StaffSymbol, StanzaNumber, Stem, StemTremolo, SustainPedal, SustainPedalLineSpanner, System, SystemStartBar, SystemStartBrace, SystemStartBracket, TabNoteHead, TextScript, TextSpanner, Tie, TieColumn, TimeSignature, TupletBracket, UnaCordaPedal, UnaCordaPedalLineSpanner, VaticanaLigature, VerticalAlignment, VerticalAxisGroup, VocalName, VoiceFollower and VoltaBracket
Read comments on this page, or
add one.
This page is for LilyPond-2.2.6 (stable-branch). |