|
|
Node:Staff,
Next:StaffContainer,
Previous:Score,
Up:LilyPond interpretation contexts
Staff
Handles clefs, bar lines, keys, accidentals. It can contain
Voice contexts.
This context creates the following grobs:
Accidentals, BarLine, Clef, InstrumentName, KeySignature, NoteCollision, OctavateEight, RestCollision, SeparatingGroupSpanner, SeparationItem, SostenutoPedal, StaffSymbol, SustainPedal, TimeSignature, UnaCordaPedal, VerticalAxisGroup and VoltaBracket.
Context Staff can contain
Voice
This context is built from the following engravers:
A group of engravers taken together
Engraver_group_engraver is part of contexts: Lyrics, ChoirStaff, LyricsVoice, PianoStaff, GrandStaff, Thread, RhythmicStaff, Voice, Staff, ChordNames, StaffContainer, InnerStaffGroup, InnerChoirStaff, NoteNames and StaffGroup
Prints the name of the instrument (specified by
Staff.instrument and Staff.instr) at the left of the
staff.
Properties
instrument (markup (list or string)):
- If
Instrument_name_engraver
is
added to the Staff translator, then the instrument property
is used to label the first line of the staff and the instr
property is used to label subsequent lines. If the
midiInstrument property is not set, then instrument
is used to determine the instrument for MIDI output.
instr (markup (list or string)):
- see
instrument
This engraver creates the following grobs:
InstrumentName.
Instrument_name_engraver is part of contexts: PianoStaff and Staff
Engrave piano pedal symbols.
Properties
pedalSostenutoStrings (string):
- see pedalSustainStrings.
pedalSustainStrings (list):
- List of string to print for sustain-pedal. Format is
(UP UPDOWN DOWN), where each of the three is the string to print when
this is done with the pedal.
pedalUnaCordaStrings (string):
- see pedalSustainStrings.
This engraver creates the following grobs:
SostenutoPedal, SustainPedal and UnaCordaPedal.
Piano_pedal_engraver is part of contexts: Staff
Make accidentals. Catches note heads, ties and notices key-change
events. Due to interaction with ties (which don't come together
with note heads), this needs to be in a context higher than Tie_engraver.
(FIXME).
Properties
localKeySignature (list):
- the key
signature at this point in the measure. The format is the same as for keySignature.
forgetAccidentals (boolean):
- do
not set localKeySignature when a note alterated differently from
localKeySignature is found.
Causes accidentals to be printed at every note instead of
remembered for the duration of a measure.
noResetKey (boolean):
- Do not
reset local key to the value of keySignature at the start of a measure,
as determined by measurePosition.
Do not reset the key at the start of a measure. Accidentals will be
printed only once and are in effect until overridden, possibly many
measures later.
This engraver creates the following grobs:
Accidentals.
Local_key_engraver is part of contexts: Grace and Staff
Handles collisions of rests.
This engraver creates the following grobs:
RestCollision.
Rest_collision_engraver is part of contexts: Staff
This engraver creates the following grobs:
NoteCollision.
Collision_engraver is part of contexts: Staff
create the constellation of five (default) staff lines.
This engraver creates the following grobs:
StaffSymbol.
Staff_symbol_engraver is part of contexts: RhythmicStaff and Staff
Create a TimeSignature whenever timeSignatureFraction changes
This engraver creates the following grobs:
TimeSignature.
Time_signature_engraver is part of contexts: RhythmicStaff and Staff
keySignature (list):
- The current key signature. This is an alist containing (NAME . ALTER) or ((OCTAVE . NAME) . ALTER) pairs, where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2
explicitKeySignatureVisibility (procedure):
- visibility-lambda function for explicit Key changes;
override of #'visibility-lambda will set the visibility for normal
(ie. at the start of the line) key signatures.
createKeyOnClefChange (boolean):
- Print a key signature whenever the clef is changed.
keyAccidentalOrder (list):
-
Alist that defines in what order alterations should be printed.
The format is (NAME . ALTER), where NAME is from 0 .. 6 and ALTER from -1, 1.
keySignature (list):
- The current key signature. This is an alist containing (NAME . ALTER) or ((OCTAVE . NAME) . ALTER) pairs, where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2
This engraver creates the following grobs:
KeySignature.
Key_engraver is part of contexts: Staff
Clef_engraver
Determine and set reference point for pitches
Properties
clefPosition (number):
- Where should the center of the symbol go?
clefGlyph (string):
- Name of the symbol within the music font
centralCPosition (number):
- Place of the central C. Usually determined by looking at clefPosition and clefGlyph.
clefOctavation (integer):
- Add
this much extra octavation. Values of 7 and -7 are common.
explicitClefVisibility (procedure):
- visibility-lambda function for clef changes.
This engraver creates the following grobs:
Clef and OctavateEight.
Clef_engraver is part of contexts: Staff
Separating_line_group_engraver
Generates objects for computing spacing parameters.
This engraver creates the following grobs:
SeparatingGroupSpanner and SeparationItem.
Separating_line_group_engraver is part of contexts: LyricsVoice, RhythmicStaff, Staff, ChordNames and NoteNames
Volta_engraver
Make volta brackets
Properties
repeatCommands (list):
- This property is read to find any command of the form (volta . X), where X is a string or #f
voltaSpannerDuration (moment):
- maximum duration of the volta bracket.
Set to a duration to control the size of the brackets printed by
\alternative. It specifies the number of whole notes duration
to use for the brackets. This can be used to shrink the length of
brackets in the situation where one alternative is very large. It may
have odd effects if the specified duration is longer than the music
given in an \alternative.
.
This engraver creates the following grobs:
VoltaBracket.
Volta_engraver is part of contexts: RhythmicStaff and Staff
Bar_engraver
Create barlines. This engraver is controlled through the
whichBar property. If it has no bar line to create, it will forbid a linebreak at this point
Properties
whichBar (string):
- This property is read to determine what type of barline to create.
Example:
\property Staff.whichBar = "|:"
This will create a start-repeat bar in this staff only.
If not set explicitly (by property or bar), this is set
according to values of defaultBarType, barAlways,
barNonAuto and measurePosition.
Valid values are described in (lilypond-internals)bar-line-interface.
.
staffsFound (list):
- list of all staff-symbols found.
This engraver creates the following grobs:
BarLine.
Bar_engraver is part of contexts: RhythmicStaff and Staff
Property_engraver
This is a engraver that converts property settings into
back-end grob-property settings. Example: Voice.stemLength will set
#'length in all Stem objects.
Due to CPU and memory requirements, the use of this engraver is deprecated.
Properties
Generic_property_list (list):
- description of the conversion.
Defines names and types for generic properties. These are properties
than can be plugged into the backend directly. See the init file
generic-property.scm for details. For internal use only,
deprecated.
Property_engraver is part of contexts: Lyrics, PianoStaff, GrandStaff, Grace, Thread, RhythmicStaff, Voice, Staff and ChordNames
Output_property_engraver
Interpret Music of Output_property type, and apply a function
to any Graphic objects that satisfies the predicate.
Output_property_engraver is part of contexts: Grace, Thread, RhythmicStaff, Voice, Staff, Score, ChordNames, InnerStaffGroup and StaffGroup
Axis_group_engraver
Group all objects created in this context in a VerticalAxisGroup spanner.
Properties
VerticalExtent (pair of numbers):
- hard coded vertical extent.
The format is a pair of dimensions, for example, this sets the sizes
of a staff to 10 (5+5) staffspaces high.
property Staff.VerticalExtent = #(-5.0 . 5.0)
VerticalExtent, MinimumVerticalExtent and ExtraVerticalExtent are
predefined in all relevant contexts to #f, so they will not
inherit values.
Note that these VerticalExtents can only operate on vertical groups,
and therefore only work in contexts which contain an
Axis_group_engraver.
MinimumVerticalExtent (pair of numbers):
- minimum vertical extent, same format as VerticalExtent
ExtraVerticalExtent (pair of numbers):
- extra vertical extent, same format as MinimumVerticalExtent
This engraver creates the following grobs:
VerticalAxisGroup.
Axis_group_engraver is part of contexts: Lyrics, LyricsVoice, RhythmicStaff, Staff, ChordNames, StaffContainer and NoteNames
|