From df8a24c551b60c5bac67aa1a24eb5f9bd4d5f1e7 Mon Sep 17 00:00:00 2001 From: Mark Polesky Date: Tue, 3 Sep 2013 21:32:23 -0700 Subject: [PATCH] Issue 3457: Add NullVoice context. --- ly/engraver-init.ly | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 0d1fe3d080..d5c8ffc3af 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -99,6 +99,7 @@ \defaultchild "Voice" \accepts "Voice" \accepts "CueVoice" + \accepts "NullVoice" \description "Handles clefs, bar lines, keys, accidentals. It can contain @code{Voice} contexts." @@ -767,6 +768,59 @@ automatically when an output definition (a @code{\\score} or context." } +\context { + \name "NullVoice" + \type "Engraver_group" + + \description "Non-printing context, typically used for aligning +lyrics in polyphonic situations, or with @code{\partcombine}." + + %% don't route anything out of here + \alias "Staff" + \alias "Voice" + + %% all three are needed for ties to work with lyrics + \consists "Note_heads_engraver" + \consists "Rhythmic_column_engraver" + \consists "Tie_engraver" + + %% both are needed for melismas to work with \autoBeamOff + \consists "Beam_engraver" + \consists "Stem_engraver" + + %% needed for slurs to work with lyrics + \consists "Slur_engraver" + + %% keep noteheads inside the staff + \consists "Pitch_squash_engraver" + squashedPosition = 0 + + %% `\omit NoteHead' would give slur attachment errors + \omit Accidental + \omit Beam + \omit Dots + \omit Flag + \omit Rest + \omit Slur + \omit Stem + \omit Tie + + %% let these take up space (for lyric extenders, etc.) + \override NoteHead.transparent = ##t + \override TabNoteHead.transparent = ##t + + %% don't let notes shift + \override NoteHead.X-offset = 0 + \override NoteColumn.ignore-collision = ##t + + %% keep beams and stems inside the staff + \override Beam.positions = #'(1 . 1) + \override Stem.length = 0 + + %% prevent "weird stem size" warnings + \override Stem.direction = #UP +} + \context { \Voice \name "TabVoice" -- 2.39.2