[icon]

GNU LilyPond

Welcome to the home of the GNU Music Typesetter

What is LilyPond
General information
Simple examples
Complex examples
Download
GNU/Linux binaries
Windows
Source code
Documentation
Tutorial
Manual
Glossary
other ...

Support
Mailing lists
Search
WikiWiki
FAQs

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

Node:Staff, Next:, 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:

Engraver_group_engraver

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

Instrument_name_engraver

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

Piano_pedal_engraver

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

Local_key_engraver

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

Rest_collision_engraver

Handles collisions of rests.

This engraver creates the following grobs: RestCollision.

Rest_collision_engraver is part of contexts: Staff

Collision_engraver

This engraver creates the following grobs: NoteCollision.

Collision_engraver is part of contexts: Staff

Staff_symbol_engraver

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

Time_signature_engraver

Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following grobs: TimeSignature.

Time_signature_engraver is part of contexts: RhythmicStaff and Staff

Key_engraver

Properties

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


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 lilypond@packages.debian.org

Copyright (c) 1997--2001 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.4.12 (stable-branch) by

Anthony Fok <lilypond@packages.debian.org>, Tue Mar 12 01:35:39 2002 HKT.