[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Interpretation contexts ] | [ Up : Interpretation contexts ] | [ Output definitions -- blueprints for contexts > ] |
5.1.1 Contexts explained
Contexts are arranged hierarchically:
Output definitions – blueprints for contexts | ||
Score – the master of all contexts | ||
Top-level contexts – staff containers | ||
Intermediate-level contexts – staves | ||
Bottom-level contexts – voices |
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Contexts explained ] | [ Up : Contexts explained ] | [ Score -- the master of all contexts > ] |
Output definitions – blueprints for contexts
This section explains the relevance of output definitions when working with contexts. Examples for actual output definitions are given later (see Changing all contexts of the same type).
While music written in a file may refer to context types and
names, contexts are created only when the music is actually being
interpreted. LilyPond interprets music under control of an
‘output definition’ and may do so for several different output
definitions, resulting in different output. The output definition
relevant for printing music is specified using \layout
.
A much simpler output definition used for producing Midi output is
specified using \midi
. Several other output definitions
are used by LilyPond internally, like when using the part combiner
(Automatic part combining) or creating music quotes
(Quoting other voices).
Output definitions define the relation between contexts as well as
their respective default settings. While most changes will
usually be made inside of a \layout
block, Midi-related
settings will only have an effect when made within a \midi
block.
Some settings affect several outputs: for example, if
autoBeaming
is turned off in some context, beams count as
melismata for the purpose of matching music to lyrics as described
in Automatic syllable durations. This matching is done both
for printed output as well as for Midi. If changes made to
autoBeaming
within a context definition of a \layout
block are not repeated in the corresponding \midi
block,
lyrics and music will get out of sync in Midi.
See also
Installed Files: ‘ly/engraver-init.ly’. ‘ly/performer-init.ly’.
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Output definitions -- blueprints for contexts ] | [ Up : Contexts explained ] | [ Top-level contexts -- staff containers > ] |
Score – the master of all contexts
This is the top level notation context. No other context can contain a Score context. By default the Score context handles the administration of time signatures and makes sure that items such as clefs, time signatures, and key signatures are aligned across staves.
A Score context is instantiated implicitly when a
\score {…}
block is processed.
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Score -- the master of all contexts ] | [ Up : Contexts explained ] | [ Intermediate-level contexts -- staves > ] |
Top-level contexts – staff containers
StaffGroup
Groups staves while adding a bracket on the left side, grouping
the staves together. The bar lines of the contained staves are
connected vertically. StaffGroup
only consists of a collection
of staves, with a bracket in front and spanning bar lines.
ChoirStaff
Identical to StaffGroup
except that the bar lines of the
contained staves are not connected vertically.
GrandStaff
A group of staves, with a brace on the left side, grouping the staves together. The bar lines of the contained staves are connected vertically.
PianoStaff
Just like GrandStaff
, but with support for instrument names
to the left of each system.
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Top-level contexts -- staff containers ] | [ Up : Contexts explained ] | [ Bottom-level contexts -- voices > ] |
Intermediate-level contexts – staves
Staff
Handles clefs, bar lines, keys, accidentals. It can contain
Voice
contexts.
RhythmicStaff
Like Staff
but for printing rhythms. Pitches are ignored
when engraving; the notes are printed on one line. The MIDI
rendition retains pitches unchanged.
TabStaff
Context for generating tablature. By default lays the music expression out as a guitar tablature, printed on six lines.
DrumStaff
Handles typesetting for percussion. Can contain DrumVoice
.
VaticanaStaff
Same as Staff
, except that it is designed for typesetting
a piece in gregorian style.
MensuralStaff
Same as Staff
, except that it is designed for typesetting
a piece in mensural style.
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Intermediate-level contexts -- staves ] | [ Up : Contexts explained ] | [ Creating and referencing contexts > ] |
Bottom-level contexts – voices
Voice
-level contexts initialise certain properties and start
appropriate engravers. A bottom-level context is one without
defaultchild
. While it is possible to let it
accept/contain subcontexts, they can only be created and entered
explicitly.
Voice
Corresponds to a voice on a staff. This context handles the conversion of dynamic signs, stems, beams, super- and subscripts, slurs, ties, and rests. You have to instantiate this explicitly if you require multiple voices on the same staff.
VaticanaVoice
Same as Voice
, except that it is designed for typesetting
a piece in gregorian style.
MensuralVoice
Same as Voice
, with modifications for typesetting a piece in
mensural style.
Lyrics
Corresponds to a voice with lyrics. Handles the printing of a single line of lyrics.
DrumVoice
The voice context used in a percussion staff.
FiguredBass
The context in which BassFigure
objects are created from
input entered in \figuremode
mode.
TabVoice
The voice context used within a TabStaff
context. Usually
left to be created implicitly.
CueVoice
A voice context used to render notes of a reduced size, intended primarily for adding cue notes to a staff, see Formatting cue notes. Usually left to be created implicitly.
ChordNames
Typesets chord names.
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Intermediate-level contexts -- staves ] | [ Up : Contexts explained ] | [ Creating and referencing contexts > ] |