[icon]

GNU LilyPond

-- --

What is LilyPond
Home
Examples
Templates
Download
GNU/Linux binaries
Windows binaries
Source code
Documentation
Tutorial
Manual
Glossary
Index

Support
Mailing lists
Search
WikiWiki

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

Node:Voice, Previous:Thread, Up:Contexts



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 want to have multiple voices on the same staff.

This context creates the following grobs: Arpeggio, Beam, BreathingSign, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Hairpin, LigatureBracket, MultiMeasureRest, NoteColumn, NoteSpacing, PercentRepeat, PhrasingSlur, Porrectus, RepeatSlash, ScriptColumn, Script, Slur, StemTremolo, Stem, TextScript, TextSpanner, TieColumn, Tie and TupletBracket.

This context sets the following properties:

  • Set translator property localKeySignature to '()

Context Voice can contain Thread

This context is built from the following engravers:

Engraver_group_engraver

A group of engravers taken together

Engraver_group_engraver is part of contexts: Voice, StaffGroup, PianoStaff, InnerStaffGroup, LyricsVoice, RhythmicStaff, NoteNames, TabVoice, FiguredBass, Thread, Staff, StaffContainer, ChordNames, GrandStaff, InnerChoirStaff, Lyrics, ChoirStaff and TabStaff

Skip_req_swallow_translator

Swallow requests of Skip_req type.

Skip_req_swallow_translator is part of contexts: Voice, LyricsVoice, TabVoice and ChordNames

A2_engraver

Part combine engraver for orchestral scores.

The markings a2, Solo and Solo II, are created by this engraver. It also acts upon instructions of the part combiner. Another thing that the this engraver, is forcing of stem, slur and tie directions, always when both threads are not identical; up for the musicexpr called one, down for the musicexpr called two.

Properties (read)

unirhythm (boolean):
set if unirhythm is detected by the part combiner.
unisilence (boolean):
set if unisilence is detected by the part combiner.
solo (boolean):
set if solo is detected by the part combiner.
unison (boolean):
set if unisono is detected by the part combiner. .
split-interval (boolean):
set if part-combiner separated voices based on splitInterval.
aDueText (string):
text for begin of a due
soloIIText (string):
text for begin of solo for voice "two" when part-combining.
soloText (string):
text for begin of solo when part-combining.
soloADue (boolean):
set Solo/A due texts in the part combiner?.
noDirection (boolean):
Don't set directions by a2-engraver when part-combining.
combineParts (boolean):
try to combine parts?
This engraver creates the following grobs: TextScript.

A2_engraver is part of contexts: Voice and TabVoice

Tuplet_engraver

Catch Time_scaled_music and generate appropriate bracket

Properties (read)

tupletInvisible (boolean):
If set to true, tuplet bracket creation is switched off entirely. This has the same effect as setting both tupletNumberVisibility and tupletBracketVisibility to #f, but as this does not even create any grobs, this setting uses less memory and time.
tupletSpannerDuration (moment):
Normally a tuplet bracket is as wide as the imes expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
          @lilypond[verbatim,fragment]
          context Voice 	imes 2/3 {
            property Voice.tupletSpannerDuration = #(make-moment 1 4)
            [c8 c c] [c c c]
          }
          @end lilypond
          
.
tupletNumberFormatFunction (procedure):
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following grobs: TupletBracket.

Tuplet_engraver is part of contexts: Voice and TabVoice

Porrectus_engraver

Join adjacent notes to a porrectus ligature.

This engraver creates the following grobs: Porrectus.

Porrectus_engraver is part of contexts: Voice and TabVoice

Tie_engraver

Generate ties between noteheads of equal pitch.

Properties (read)

tieMelismaBusy (boolean):
Signal ties when automaticMelismata is set.
sparseTies (boolean):
only create one tie per chord.
This engraver creates the following grobs: Tie and TieColumn.

Tie_engraver is part of contexts: Voice and TabVoice

Slur_engraver

Build slurs from Slur_reqs

Properties (read)

slurMelismaBusy (boolean):
Signal a slur if automaticMelismata is set.
This engraver creates the following grobs: Slur.

Slur_engraver is part of contexts: Voice and TabVoice

Phrasing_slur_engraver

Print phrasing slurs. Similar to Slur_engraver

Properties (read)

slurMelismaBusy (boolean):
Signal a slur if automaticMelismata is set.
This engraver creates the following grobs: PhrasingSlur.

Phrasing_slur_engraver is part of contexts: Voice and TabVoice

Rhythmic_column_engraver

Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following grobs: NoteColumn and NoteSpacing.

Rhythmic_column_engraver is part of contexts: Voice and TabVoice

Script_column_engraver

This engraver creates the following grobs: ScriptColumn.

Script_column_engraver is part of contexts: Voice and TabVoice

Script_engraver

Handles note ornaments generated by \script.

Properties (read)

scriptHorizontal (boolean):
Put scripts left or right of note heads. Support for this is limited. Accidentals will collide with scripts.
scriptDefinitions (list):
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following grobs: Script.

Script_engraver is part of contexts: Voice and TabVoice

Fingering_engraver

Create fingering-scripts

Properties (read)

scriptHorizontal (boolean):
Put scripts left or right of note heads. Support for this is limited. Accidentals will collide with scripts.
This engraver creates the following grobs: Fingering.

Fingering_engraver is part of contexts: Voice and TabVoice

Dynamic_engraver

This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

This engraver creates the following grobs: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Dynamic_engraver is part of contexts: Voice and TabVoice

Text_engraver

Create text-scripts

Properties (read)

scriptHorizontal (boolean):
Put scripts left or right of note heads. Support for this is limited. Accidentals will collide with scripts.
This engraver creates the following grobs: TextScript.

Text_engraver is part of contexts: Voice and TabVoice

Melisma_engraver

Properties (read)

beamMelismaBusy (boolean):
Signal if a beam is set when automaticMelismata is set
tieMelismaBusy (boolean):
Signal ties when automaticMelismata is set.
slurMelismaBusy (boolean):
Signal a slur if automaticMelismata is set.
melismaBusy (boolean):
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Melisma_engraver is part of contexts: Voice and TabVoice

Percent_repeat_engraver

Make beat, whole bar and double bar repeats.

Properties (read)

currentCommandColumn (grob (GRaphical OBject)):
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment):
Length of one measure in the current time signature last?
This engraver creates the following grobs: DoublePercentRepeat, PercentRepeat and RepeatSlash.

Percent_repeat_engraver is part of contexts: Voice and TabVoice

Chord_tremolo_engraver

Generates beams for tremolo repeats.

This engraver creates the following grobs: Beam.

Chord_tremolo_engraver is part of contexts: Voice and TabVoice

Auto_beam_engraver

Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Properties (read)

subdivideBeams (boolean):
If set, multiple beams will be subdivided at beat positions - by only drawing one beam over the beat.
beatLength (moment):
The length of one beat in this time signature.
autoBeamSettings (list):
Specifies when automatically generated beams should begin and end. The elements have the format:
          
             function shortest-duration-in-beam time-signature
          
          where
          
              function = begin or end
              shortest-duration-in-beam = numerator denominator; eg: 1 16
              time-signature = numerator denominator, eg: 4 4
          
          unspecified or wildcard entries for duration or time-signature
          are given by * *
          
          The user can override beam begin or end time by pushing a wildcard entries
          '(begin * * * *) or '(end * * * *) resp., eg:
          
              property Voice.autoBeamSettings push #'(end * * * *) = #(make-moment 1 4)
          
          The head of the list:
              '(
          ((end * * 3 2) . ,(make-moment 1 2))
          ((end 1 16 3 2) . ,(make-moment 1 4))
          ((end 1 32 3 2) . ,(make-moment 1 8))
               ...
              )
          
          

autoBeaming (boolean):
If set to true then beams are generated automatically.
This engraver creates the following grobs: Beam.

Auto_beam_engraver is part of contexts: Voice and TabVoice

Grace_beam_engraver

Handles Beam_requests by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Properties (read)

subdivideBeams (boolean):
If set, multiple beams will be subdivided at beat positions - by only drawing one beam over the beat.
beatLength (moment):
The length of one beat in this time signature.
beamMelismaBusy (boolean):
Signal if a beam is set when automaticMelismata is set
This engraver creates the following grobs: Beam.

Grace_beam_engraver is part of contexts: Voice and TabVoice

Beam_engraver

Handles Beam_requests by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Properties (read)

subdivideBeams (boolean):
If set, multiple beams will be subdivided at beat positions - by only drawing one beam over the beat.
beatLength (moment):
The length of one beat in this time signature.
beamMelismaBusy (boolean):
Signal if a beam is set when automaticMelismata is set
This engraver creates the following grobs: Beam.

Beam_engraver is part of contexts: Voice and TabVoice

Stem_engraver

Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Properties (read)

stemRightBeamCount (integer):
idem, for the right side.
stemLeftBeamCount (integer):
Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased. .
tremoloFlags (integer):
Number of tremolo flags to add if none is specified.
This engraver creates the following grobs: Stem and StemTremolo.

Stem_engraver is part of contexts: Voice and TabVoice

Breathing_sign_engraver

This engraver creates the following grobs: BreathingSign.

Breathing_sign_engraver is part of contexts: Voice and TabVoice

Ligature_bracket_engraver

Handles Ligature_requests by engraving Ligature brackets.

This engraver creates the following grobs: LigatureBracket.

Ligature_bracket_engraver is part of contexts: Voice and TabVoice

Grob_pq_engraver

Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list):
a queue of (END-MOMENT . GROB) conses. This is for internal (C++) use only. Use at your own risk. This property contains the grobs for which END-MOMENT >= NOW.
Properties (write)

busyGrobs (list):
a queue of (END-MOMENT . GROB) conses. This is for internal (C++) use only. Use at your own risk. This property contains the grobs for which END-MOMENT >= NOW.

Grob_pq_engraver is part of contexts: Voice, TabVoice, Staff and TabStaff

Text_spanner_engraver

Create text spanner from a Span_req.

This engraver creates the following grobs: TextSpanner.

Text_spanner_engraver is part of contexts: Voice and TabVoice

Multi_measure_rest_engraver

Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest

Properties (read)

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.
currentCommandColumn (grob (GRaphical OBject)):
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
currentBarNumber (integer):
Contains the current barnumber. This property is incremented at every barline.
This engraver creates the following grobs: MultiMeasureRest.

Multi_measure_rest_engraver is part of contexts: Voice and TabVoice

Arpeggio_engraver

Generate an Arpeggio from a Arpeggio_req

This engraver creates the following grobs: Arpeggio.

Arpeggio_engraver is part of contexts: Voice and TabVoice

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: Voice, StaffGroup, InnerStaffGroup, RhythmicStaff, TabVoice, Thread, Staff, Score, ChordNames and TabStaff

Voice_devnull_engraver

Kill off certain items and spanners if we're Voice `two' and unison or unisilence is set.

Voice_devnull_engraver is part of contexts: Voice and TabVoice

Font_size_engraver

Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (integer):
Used to set the relative size of all grobs in a context. This is done using the Font_size_engraver.

Font_size_engraver is part of contexts: Voice, TabVoice, Thread, Staff and TabStaff


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 (address unknown)

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

<(address unknown)>, Thu Dec 26 14:15:44 2002 MSK.