[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:Score, Next:, Previous:RhythmicStaff, Up:LilyPond interpretation contexts



Score

This is the top level notation context. No other context can contain a Score context. This context handles the administration of time signatures. It also makes sure that items such as clefs, time signatures, and key-signatures are aligned across staffs. It can contain Lyrics, Staff, RhythmicStaff, GrandStaff, StaffGroup, and ChoirStaff contexts.

You cannot explicitly instantiate a Score context (since it is not contained in any other context). It is instantiated automatically when an output definition (a score or paper block) is processed.

This context creates the following grobs: Arpeggio, BarNumber, BreakAlignGroup, BreakAlignment, LeftEdge, LineOfScore, NonMusicalPaperColumn, PaperColumn, RehearsalMark, SpacingSpanner, SystemStartDelimiter and VerticalAlignment.

Context Score can contain NoteNames, PianoStaff, ChoirStaff, GrandStaff, ChordNames, Lyrics, RhythmicStaff, StaffGroup, StaffContainer and Staff

This context is built from the following engravers:

Score_engraver

Top level engraver. Takes care of generating columns and the complete system (ie. LineOfScore)

This engraver decides whether a column is breakable. The default is that a column is always breakable. However, when every Bar_engraver that does not have a barline at a certain point will call Score_engraver::forbid_breaks to stop linebreaks. In practice, this means that you can make a breakpoint by creating a barline (assuming that there are no beams or notes that prevent a breakpoint.)

Properties

currentMusicalColumn (grob (GRaphical OBject)):
Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
currentCommandColumn (grob (GRaphical OBject)):
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following grobs: LineOfScore, NonMusicalPaperColumn and PaperColumn.

Score_engraver is part of contexts: Score

Span_arpeggio_engraver

Properties

connectArpeggios (boolean):
If set, connect all arpeggios that are found. In this way, you can make arpeggios that cross staffs.
This engraver creates the following grobs: Arpeggio.

Span_arpeggio_engraver is part of contexts: PianoStaff, GrandStaff, Score, InnerStaffGroup and StaffGroup

Bar_number_engraver

A bar number is created whenever measurePosition is zero. It is put on top of all staffs, and appears only at left side of the staff.

Properties

currentBarNumber (integer):
Contains the current barnumber. This property is incremented at every barline.
This engraver creates the following grobs: BarNumber.

Bar_number_engraver is part of contexts: Score

Lyric_phrasing_engraver

Properties

automaticPhrasing (boolean):
If set, the Lyric_phrasing_engraver will match note heads of context called Voice X to syllables from LyricsVoice called X-<something>. This feature is turned on by default. See the example file lyrics-multi-stanza.ly.
weAreGraceContext (boolean):
.
melismaEngraverBusy (boolean):
See (lilypond)melismaBusy. This is set automatically.
associatedVoice (string):
Name of the Voice that has the melody for this LyricsVoice.
phrasingPunctuation (string):

Lyric_phrasing_engraver is part of contexts: Score

Vertical_align_engraver

Catch Vertical axis groups and stack them.

This engraver creates the following grobs: VerticalAlignment.

Vertical_align_engraver is part of contexts: Lyrics, PianoStaff and Score

Spacing_engraver

make a SpacingSpanner and do bookkeeping of shortest starting and playing notes

This engraver creates the following grobs: SpacingSpanner.

Spacing_engraver is part of contexts: Score

Break_align_engraver

Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder

Properties

breakAlignOrder (list):
Defines the order in which prefatory matter (clefs, key signatures) appears, eg. this puts the key signatures after the bar lines:
	\property Score.breakAlignOrder = #'(
	  Span_bar
	  Breathing_sign
	  Clef_item
	  Staff_bar
	  Key_item
	  Time_signature
	)
This engraver creates the following grobs: BreakAlignGroup, BreakAlignment and LeftEdge.

Break_align_engraver is part of contexts: Score

Mark_engraver

Properties

rehearsalMark (number or string):

staffsFound (list):
list of all staff-symbols found.
This engraver creates the following grobs: RehearsalMark.

Mark_engraver is part of contexts: Score

System_start_delimiter_engraver

creates a SystemStartDelimiter spanner

This engraver creates the following grobs: SystemStartDelimiter.

System_start_delimiter_engraver is part of contexts: ChoirStaff, PianoStaff, GrandStaff, Score, InnerStaffGroup, InnerChoirStaff and StaffGroup

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

Timing_engraver

Responsible for synchronizing timing information from staffs. Normally in Score. In order to create polyrhythmic music, this engraver should be removed from Score and placed in Staff.

Properties

timeSignatureFraction (pair of numbers):
pair of numbers, signifying the time signature. For example #'(4 . 4) is a 4/4time signature.
barCheckNoSynchronize (boolean):
If set, don't reset measurePosition when finding a bbarcheck. This makes bar-checks for polyphonic music easier.
barNonAuto (boolean):
If set to true then bar lines will not be printed automatically; they must be explicitly created with bar keywords. Unlike with the cadenza keyword, measures are still counted. Bar generation will resume according to that count if this property is set to zero.
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.

.

barAlways (boolean):
If set to true a bar line is drawn after each note.
defaultBarType (string):
Sets the default type of bar line. Available bar types: [FIXME];

This variable is typically read at Score level, so overriding Staff.defaultBarType will have no effect.

skipBars (boolean):
Set to true to skip the empty bars that are produced by multimeasure notes and rests. These bars will not appear on the printed output. If not set (the default) multimeasure notes and rests expand into their full length, printing the appropriate number of empty bars so that synchronization with other voices is preserved.
@lilypond[fragment,verbatim,center]
r1 r1*3 R1*3  \\property Score.skipBars= ##t r1*3 R1*3

@end lilypond

timing (boolean):
Keep administration of measure length, position, bar number, etc? Switch off for cadenzas.
oneBeat (moment):
How long does one beat in the current time signature last?
measureLength (moment):
Length of one measure in the current time signature last?
measurePosition (moment):
How much of the current measure (measured in whole notes) have we had. This can be set manually to create incomplete measures (anacrusis, upbeat), the start of the music.
currentBarNumber (integer):
Contains the current barnumber. This property is incremented at every barline.

Timing_engraver is part of contexts: Score

Repeat_acknowledge_engraver

Acknowledge repeated music, and convert the contents of repeatCommands ainto an appropriate setting for whichBar

Properties

repeatCommands (list):
This property is read to find any command of the form (volta . X), where X is a string or #f
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.

.

Repeat_acknowledge_engraver is part of contexts: Score


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.